[論文精讀翻譯]Associative Embedding: End-to-End Learning for Joint Detection and Grouping

關聯嵌入:聯合檢測和分組的端到端學習

Alejandro Newell, Zhiao Huang, Jia Deng

參考文獻
https://simochen.github.io/2017/12/25/associative-embedding/

 

 

摘要

本文介紹了一種用於檢測和分組任務的監督卷積神經網絡方法--聯合嵌入associative embedding。以這種方式可以建立多人姿態估計、實例分割和多目標跟蹤等多種計算機視覺問題。通常檢測的分組是通過多級流程pipeline實現的, 相反, 我們提出了一種方法, 教網絡同時輸出檢測和分組分配。這種技術可以很容易地集成到任何最先進的網絡體系結構中, 從而產生像素級的預測。我們展示瞭如何將此方法應用於多人姿態估計和實例分割, 並在 MPII 和 MS-COCO 數據集上報告多人姿態的最先進性能。

1. Introduction 介紹

許多計算機視覺任務可以看作是聯合的檢測和分組: 檢測較小的視覺單元並將它們分組到更大結構中。例如, 多人姿態估計可以看作是檢測身體關節, 並將其分組到個體中; 實例分割可以看作是檢測相關像素並將其分組到目標實例中; 多目標跟蹤可以被看作是檢測對象實例並將其分組到軌道中。在所有這些情況下, 輸出都是可變數量的視覺單元同時它們也要分組到可變數量的組別中。
這類任務通常由雙階段流程來處理, 即先檢測後分組。但這種方法可能是次優的, 因爲檢測和分組通常是緊密耦合的: 例如, 在多人姿勢估計中, 如果附近沒有肘部檢測可與之進行的檢測, 則手腕檢測很可能是假陽性。
本文探討了使用單級深度網絡端到端訓練的聯合執行檢測和分組的可能性。我們提出了一種表示聯合檢測和分組輸出的新方法--聯想嵌入。其基本思想是爲每一種檢測引入一個實數, 作爲 "標記" 來標識檢測所屬的組。換句話說, 標記將每個檢測與同一組中的其他檢測相關聯。
考慮二維中檢測和一維嵌入 (實數) 檢測的特殊情況。網絡輸出像素級檢測熱圖和像素級標記熱圖,然後解碼檢測和分組信息。
爲了訓練網絡來預測標記, 我們使用一個損失函數, 如果相應的檢測屬於標註真值中的同一組則會鼓勵對標記具有相似的值,否則不相似的值。需要注意的是, 我們沒有標註真值標籤供網絡預測, 因爲重要的不是特定的標籤值, 而是它們之間的差異。網絡可以自由地決定標記值, 只要它們與標註真值分組一致。
我們將我們的方法應用於多人姿態估計, 這是理解圖像中人類的一項重要任務。 Concretely具體而言, 給定一個輸入圖像, 多人姿態估計尋求檢測每個人和定位他們的身體關節點。與單人姿勢不同的是, 事先對一個人的位置或體型沒有任何假設。多人姿勢系統必須掃描整個圖像檢測所有的人和他們的相應的關鍵點。對於此任務, 我們將關聯嵌入與堆疊沙漏網絡 [31] 集成在一起, 該網絡爲每個身體關節生成檢測熱圖和標記熱圖, 然後將具有相似標記的身體關節分組到個人中。實驗表明, 我們的方法優於所有最新的方法, 並在 MS-COCO [27] 和 MPII 多人姿勢 [3, 35] 上取得了最先進的結果。
我們進一步論證了我們的方法的效用, 將其應用於實例分割。表示將關聯嵌入應用於適合於檢測再分組的各種視覺任務是直接的。
我們的貢獻有兩個方面: (1) 引入關聯嵌入, 這是一種單級、端到端聯合檢測和分組的新方法。此方法簡單、通用;它適用於任何產生像素級預測的網絡體系結構;(2) 將關聯嵌入應用於多人姿態估計, 並在兩個標準基準上實現最先進的結果。

2. Related Work 相關工作

Vector Embeddings 向量嵌入:我們的方法與許多使用矢量嵌入的早期工作有關。在圖像檢索image retrieval中的工作使用矢量嵌入來測量圖像之間的相似性 [17, 53]。在image classification, image captioning, and phrase localization圖像分類、圖像字幕和短語定位方面, 使用矢量嵌入通過將視覺特徵和文本特徵映射到相同的矢量空間 [16、20、30] 來連接視覺特徵和文本特徵。在自然語言處理的研究中使用矢量嵌入來表示單詞、句子和 [39, 32] 段的含義。我們的工作與之前的工作不同, 因爲我們在聯合檢測和分組的背景下使用矢量嵌入作爲標識標記。
Perceptual Organization感知組織:
在感知組織中的工作旨在將圖像的像素分組到區域、部分和對象中。感知組織encompasses包括一系列不同複雜的任務, 從 figure-ground segmentation圖形-地面分段 [37] 到hierarchical image parsing分層圖像解析 [21]。早期工作典型地使用雙階段流程 [38], 首先檢測基本的視覺單位 (補丁、超級像素、部件等), 然後將它們分組。常見的分組方法包括spectral clustering譜聚類 [51, 46]、條件隨機場(例如 [31]), 和生成概率模型(例如 [21])。這些分組方法都假設了預先檢測到的基本視覺單位和它們之間預先計算的親和力度量affinity measures, 但在將親和力度量轉化爲分組的過程中, 它們之間的親和力不同。相反, 我們的方法在一個階段中使用通用網絡進行性能檢測和分組, 該網絡不包括特殊的分組設計。
It is worth noting值得注意的是, 我們的應用與使用譜聚類的方法之間有着密切的聯繫。譜聚類 (如歸一化切割 [46]) 技術將視覺單元之間的輸入預先計算的相關性 (如深度網絡預測) 作爲輸入, 並解決了一個 generalized eigenproblem廣義特徵問題, 以產生高親和力視覺單位具有高相似度的嵌入表達。 Angular Embedding角型編碼 [37, 47] 通過嵌入深度順序和分組來擴展譜聚類。我們的方法不同於譜集羣, 因爲我們沒有親和力的中間表示, 也不解決任何特徵問題。相反, 我們的網絡直接輸出最終的嵌入。
我們的方法也與Harley et al. 在學習密集卷積嵌入[24]的工作有關,該工作訓練深度網絡爲語義分割任務產生像素級嵌入表達。我們的工作與他們的不同, 因爲我們的網絡不僅產生像素級的嵌入, 而且還產生像素級的檢測分數。我們的新穎性在於將檢測和分組整合到一個單一的網絡中; 就我們所知,多人姿態估計中這種整合並沒有被嘗試過。
Multiperson Pose Estimation 多人姿態估計:最近的方法極大的改進了人體姿態估計, 特別是對單人姿勢估計的方法 [50、48、52、40、8、5、41、4、14、19、34、26、7、49、44]。對於多人姿態, 早期和現在的工作可以分爲自上而下或自下而上。自上而下的方法 [42, 25, 15]首先檢測人體實例individual people, 然後估計每個人的姿態。自下而上的方法 [45, 28, 29, 6] 相反, 檢測身體關節點實例individual body joints, 然後將它們分組成人體實例。我們的方法更類似於resembles自下而上的方法, 但不同的是沒有檢測和分組階段的分離。整個預測是在單級通用網絡上完成的。這就消除了其他方法所要求的複雜後處理步驟的需要 [6, 28]。
Instance Segmentation實例分割:大多現有的實例分割方法使用多級流程來進行先檢測後分割 [23、18、22、11]。Dai[12] 通過一個由空間座標來反向傳播的特殊網絡層,使得這樣的流程可微分。
最近兩項作品通過全卷積網絡找到了更緊密地整合檢測和分割任務的方法。DeepMask [43] 密集地掃描子窗口, 併爲每個子窗口輸出檢測分數和分割掩碼 (整型爲矢量)。Instance-Sensitive FCN[10]將每個目標視爲由一組規則網格中的對象部件組成, 併爲每個對象部件輸出檢測分數的像素級熱圖。IS-FCN的中心表示對象實例, 其中部件檢測得分與方向一致, 並從對象部件的熱圖中組裝對象掩碼。與 DeepMask和IS-FCN相比, 我們的方法要簡單得多: 對於每個對象類別, 我們在每個像素位置只輸出兩個值, 即表示前景與背景的核心值, 以及表示對象實例標識的標記, 而生成更高的維數輸出。

3. Approach

3.1. Overview

爲了引入聯合檢測和分組的關聯嵌入, 我們首先回顧了視覺檢測的基本公式。許多視覺任務涉及一組視覺單元的檢測。這些任務通常是被作爲對大量候選人的打分。例如, 單人姿勢估計可以視爲對所有可能像素位置的候選人體關節打分。對象檢測可以視爲在不同像素位置、比例和長寬比的候選邊界框打分。
聯想嵌入的思想是對每個候選除了檢測分數外, 還有一個嵌入。嵌入用作對編碼分組的標記: 具有類似標記的降級應組合在一起。多人人姿勢估計中, 身體關節標籤類似的分組形成一個人。值得注意的是, 標記的絕對值並不重要, 只有標記之間的距離。也就是說, 只要屬於同一組的檢測的值相同, 網絡就可以自由地爲標記分配任意值。
請注意, 嵌入的尺寸不是決定性的。如果網絡能夠成功地預測高維嵌入, 將檢測分離成組, 它也應該能夠學習將這些高維嵌入投影到較低的維數, 只要有足夠的網絡容量。在實踐中, 我們發現一維嵌入式對於多人姿態估計是足夠的, 而更高的維度並不能帶來顯著的改善。因此在本文中, 我們假設一維嵌入。
爲了訓練網絡來預測標籤, 我們強制實施類似的標籤, 鼓勵從同一組檢測類似的標籤, 爲不同組的檢測提供不同的標籤。具體而言, 這種標記損失是在與標籤真值一致的候選檢測上強制進行的。我們比較檢測對兒並根據其標記的相對值以及檢測是否應該來自同一組別定義懲罰.

3.2. Stacked Hourglass Architecture 堆疊沙漏架構

在本工作中, 我們將關聯嵌入與堆疊沙漏體系結構 [40] 結合在一起, 後者是一個密集像素級預測模型, 由一系列像沙漏一樣的模塊組成 (圖 2)。每個 "沙漏" 都有一組標準卷積和池化層,這些層將特徵下采樣到低分辨率以捕獲圖像的全文。而後, 對這些特徵上採樣, 並逐步與來自更高的分辨率轉的輸出組合, 直到達到最終的輸出分辨率。堆疊多個沙漏可以重複的自下而上和自上而下的推斷, 從而產生更準確的最終預測。有關網絡體系結構的更多詳細信息, 我們請讀者參考 [40]。

堆疊沙漏模型最初是爲單人姿態估計而開發的。該模型爲目標人體的每個身體關節提供了一個熱圖。然後, 將熱圖激活最高的像素位置作爲該關節的預測。該網絡旨在整合consolidate全局和局部特徵, 用於收集有關身體完整結構的信息, 同時保留精細細節, 以便精確定位。全局和局部特徵之間的這種平衡在其他像素級預測任務中同樣重要, 因此我們將相同的網絡應用於多人姿態估計和實例分割。
我們對網絡結構做了一些輕微的修改。我們在分辨率下降時 (256-> 386-> 512-> 768) 時增加了輸出特徵的數量。此外, 各個層由3x3卷積而不是殘差模塊組成, 緩解訓練的shortcut effect效果仍然存在於每個沙漏的剩餘環節上, 以及每個分辨率的跳躍連接。

3.3. Multiperson Pose Estimation 多人姿態估計

爲了將關聯嵌入應用於多人姿態估計, 我們訓練網絡像單人姿態估計一樣檢測關節 [40]。我們使用堆疊沙漏模型來預測每個身體關節 ("左手腕"、"右肩" 等) 在每個像素定位上的檢測分數, 而不考慮個體實例。與單人不同的是, 一個理想的多人姿態估計熱圖應該有多個高峯 (例如, 以確定屬於不同的人的多重手腕), 而不是隻是一個單一的高峯對某個人。
除了生成全部關鍵點檢測外, 網絡還自動將檢測分組爲個體實例姿態。爲此, 網絡將在每個關節的像素位置生成一個標記。換句話說, 每個關節熱圖都有相應的 "標籤" 熱圖。因此, 如果有m個人體關節需要預測, 那麼網絡將輸出總共2m通道, m用於檢測和m用於分組。爲了將檢測解析成個體實例, 我們使用非最大抑制來獲取每個關節的峯值檢測, 並在相同的像素位置檢索其相應的標記 (如圖3所示)。然後, 我們通過比較檢測的標記值和匹配足夠接近的標記值, 對整個人體關節點檢測進行分組。而後一組檢測形成了一個人的姿勢估計。

爲了訓練網絡, 我們在輸出熱圖上施加了檢測損失和強化損失。檢測損失計算每個預測檢測熱圖及其 "地面真理" 熱圖之間的平均平方誤差, 該真值熱圖由每個關鍵點位置上的二維高斯激活組成。這種損失與Newell 等人使用的相同。
分組損失評估預測的標籤與地面真相分組的契合程度。具體而言, 我們爲所有人在他們所有身體關節的地面真相位置檢索預測的標籤; 然後, 我們比較個體內和個體間的標籤。個體內的標籤應該是一樣的, 而個體間的標籤應該是不一樣的。
與其在所有可能的關鍵點對之間強制施加損失, 我們爲每個每個個體生成一個參考嵌入。這是通過取每個個體關節的輸出嵌入的平均值來實現的。在每個個體中, 我們計算出每個關節的預測嵌入與參考嵌入之間的平方距離。然後, 在每對人之間, 我們將他們的參考嵌入相互比較並施加隨着兩個標籤之間的距離增加呈指數下降到零的懲罰。
形式上, 設h_k \in R^{W\times h}是標記第k個身體關節的預測熱圖, 其中h (x)是像素位置 x 的標記值。給定 N 個人, 設地面真值身體關節位置爲 T = \left \{ (x_{nk}) \right \}, n = 1, ..., N, k = 1, ..., K. 其中 x_{nk} 是第 n 人的 k 身體關節的地面真相像素位置。
假設所有的 K 關節都有註釋, 第 n 個人的參考嵌入將是

爲了產生最後一個最終預測集合,我們對每個關節點進行迭代。迭代的順序是先考慮頭和軀幹而後逐漸像肢體移動。我們從第一個關節點開始,NMS後得到每個超過閾值的關節點。這些關鍵點組組成了我們待檢測人的最初候選池。
我們之後考慮檢測後續的關節點。我們將後續關節點與我們現有關節點候選池相比,得到其最優匹配。只有當兩個標記相差小於一個特別的閾值時纔會被匹配。除此之外,我們因此基於標記距離和檢測分數的最大匹配。如果沒有任何檢測額被匹配,則被視爲一個新的人體實例。這種情況可能是因爲某個特定人體只有手或腳可見。
我們在每類關節點上循環匹配,直到每個檢測都被匹配到一個人。沒有任何步驟被執行來確保解剖學的正確性和關鍵點之間的空間關係。To give an impression of爲了展示神經網絡學習的標記和自然匹配,我們畫出了圖4.

儘管訓練網絡來預測所有尺寸大小的人體是可行的,但這存在一些缺陷。額外的容量將被用來學習必要的尺度不變性,同時小尺寸的人體將會遇到經過池化後低分辨率的困難。爲了解決這個問題,我們在測試時在不同尺度下對圖片進行了評測。這裏使用了一些可能的方法來利用不同尺度的輸出來產生最終姿態估計。在我們的打算中,我們將產生的熱圖平均起來輸出。然後,爲了融合不同尺度下的標記,我們我們將標記集合中同一點座標連接成一個向量v \in R^m (assuming m scales). 解碼過程不變即標量標記值的方法,我們現在只是比較向量距離。

3.4. 實例分段

實例分割的目標是檢測和分類對象實例, 同時爲每個對象提供分割掩碼。作爲概念的證明, 我們向您展示瞭如何應用我們的方法來解決這個問題, 並演示了初步的結果。與多人姿態估計一樣, 實例分段是一個聯合檢測和分組的問題。檢測到屬於對象類的像素, 然後將與單個對象關聯的像素組合在一起。簡單地下面我們的方法的描述只假設了一個對象類別。
給定輸入圖像, 我們使用堆疊沙漏網絡生成兩個熱圖, 一個用於檢測, 一個用於標記。檢測熱圖給出了每個像素的檢測分數, 指示像素是否屬於對象類別的任何實例, 即檢測熱圖從背景中分割出前景。同時, 標記熱圖標記每個像素, 以便屬於同一對象實例的像素具有類似的標記。
爲了訓練網絡, 我們通過將預測的熱圖與地面熱圖 (所有實例掩碼的並集) 進行比較來監督檢測熱圖。損失是兩個熱圖間的MSE。我們通過施加損失來監督標記熱圖, 該損失鼓勵標記在對象實例中相似, 並在不同實例之間進行不同。損失的表述與多人姿勢的表述相似。無需對實例分段掩碼中的每個像素進行比較。相反, 我們隨機抽取來自每個對象實例的一小部分像素, 並對一組採樣像素進行成對比較。
形式上, 讓h \in R^{W \times H} 是一個預測的 WxH 標記熱圖。讓x表示像素位置, h (x) 標記在該位置處的標記值, 讓S_n = x_{kn} , k = 1, . . . , K 是在 n 個對象實例中隨機採樣的一組位置。分組損失 Lg 被定義爲

爲了對網絡的輸出進行解碼, 我們首先對檢測通道熱圖進行閾值, 以生成二進制掩碼。然後, 我們查看此掩碼. 計算標記的直方圖, 並執行非最大抑制, 以確定一組值, 以用作每個對象實例的標識符。然後, 檢測掩碼每個像素將其分組到給最接近其標記值的某對象。圖5用於說明此過程。


請注意, 將對象類別推廣到多個對象很簡單: 我們只需輸出檢測熱圖和每個對象類別的標記熱圖。我們不是訓練一個網絡來識別對象實例在各種可能的尺度上的外觀, 而是在多個尺度上進行評估, 並將預測與姿勢估計的預測方式結合起來。

4. Experiments

4.1. Multiperson Pose Estimation

Dataset 我們評估兩個數據集: MS-COCO [35] 和MPII人體姿勢 [3]。MPII 人類姿勢包括大約25k圖像, 包含約40 k加註釋的人 (其中四分之三可用於訓練)。評估是在 MPII  Multi-Person, 一組如[45]列出從測試集採取了的1758樣本。這個MPII 多人組通常是特定圖像中總人員的子集, 因此提供了一些信息, 以確保預測是針對正確的目標。這包括一個通用的邊界框和尺度參數, 用於指示被佔領的區域。沒有提供關於人數或個人數字比例的信息。我們使用 Pishchulin 等人的評價指標計算關節檢測的平均精度。
MS-COCO [35] 包括大約60K 訓練圖象與超過100 k人與註釋的關鍵點。我們報告了兩個測試集 (一個開發測試集 (test-dev) 和一個標準測試集 (test-std)) 的性能。我們使用官方評估指標, 以類似於對象檢測的方式報告平均精度 (AP) 和平均召回 (AR), 只是使用了基於關鍵點距離的分數而不是邊界框重疊。有關詳細信息, 請向讀者推薦 MS-COCO 網站 [1]。
Implementation 用於此任務的網絡一致爲四個堆疊沙漏模塊, 輸入大小爲512×512, 輸出分辨率爲128x128。我們使用tensorflow 以32大小的批處理進行網絡訓練, 初始學習率爲2e-4(在100k 迭代後衰減爲1e-5)。關聯嵌入損耗的權重爲1e-3 的因子, 相對於檢測熱圖的 MSE 損耗。損失函數使用掩碼忽略了稀疏註釋的人羣。在測試時, 輸入圖像以多個尺度運行;輸出檢測熱圖在比例之間平均, 而跨比例的溫圖標記被連接到更高的尺寸中。由於 MPII 和 MS-COCO 的度量對關鍵點的精確定位非常敏感, 因此在之前的工作 [6] 之後, 我們在同一數據集上訓練了一個單人姿勢模型 [40], 以進一步細化預測。
MPII Results 在表1中可以看到平均精度結果, 總的表明其在AP中上有較大改進. 聯合嵌入被證明是將網絡進行分組關鍵點檢測到個人的有效方法。它對圖像中存在的人數沒有任何假設, 也爲網絡提供了一種分配混亂關節的表達機制。例如, 如果兩個人的相同連接在完全相同的像素位置重疊, 則預測的關聯嵌入將是一個介於兩個個體之間的某個標記。

我們可以利用嵌入熱圖的可視化 (圖 7)更好地瞭解嵌入輸出的關聯輸出。我們特別關注的是預測的差異, 當人們嚴重重疊嚴重的閉塞和接近的間隔檢測到的關節, 使它更難以解析個別人的姿勢。


MS-COCO Results 表2和表3報告了我們對 MS-COCO 的影響。我們報告test-std 和test-dev的結果, 因爲並非所有最近的方法都在test-std上報告。我們看到, 在這兩套中, 我們都實現了SOTA的水平。如圖6所示, 是網絡預測掃描的示意圖。網絡的典型故障情況源於雜亂場景中的重疊和閉塞的關節。表4報告了我們的完整管道的燒蝕版本的性能, 顯示了在多個尺度上應用我們的模型和使用單人姿態估計器進一步細化的貢獻。我們看到, 在多個尺度上簡單地應用我們的網絡已經達到了與以前最先進的方法相比有競爭力的性能, 這表明了我們的端到端聯合檢測和分組的有效性。

 

我們還對 MS-COCO進行了額外的實驗, 以衡量檢測相對於分組的難度, 即哪一部分是我們系統的主要瓶頸。我們在一組500張訓練圖像上利用留一法對我們的系統進行評估。在本評價中, 我們用地面真相的檢測取代預測的檢測, 但仍然使用預測的標籤。使用地面真相檢測可將AP從59.2 檢測提高到94.0。這表明, 關鍵點檢測是我們系統的主要瓶頸, 而網絡已經學會了產生高質量的分組。這一事實也可由對預測的標記值進行定性檢查來支持, 如圖4所示, 從中我們可看到標記得到很好分離, 並且對解碼分組也非常簡單。

4.2. Instance Segmentation

Dataset  對於評估, 我們使用 PASCAL VOC 2012 [13] 的 val 分割數據, 包括 1, 449 張圖像。附加預訓練是用 MS COCO [35] 的圖像完成的。在不同 IOU 閾值下, 利用平均精度計算。[22, 10, 36]
Implementation 該網絡採用Torch框架[9]並以256x256的輸入分辨率和64x64 的輸出分辨率來訓練。關聯嵌入損失權重爲1e-4。在訓練過程中, 爲了考慮到尺度, 只有出現在特定大小範圍內的對象受到監督, 並且使用損失掩碼來忽略太大或太小的對象。在 PASCAL VOC 忽略區域在對象邊框也被定義,我們將這些區域包括在損失掩碼中。在 MS COCO 上從零開始進行爲期三天的訓練, 然後在 PASCAL VOC 上進行了12小時的微調訓練。在測試時從圖像的3個比例 (x0.5、x0.5 和 x0.5) 下計算輸出。我們在每個比例生成實例建議並執行非最大抑制, 而不是生成平均熱圖,以消除跨比例的重疊建議。一種更爲複雜的多尺度評價方法是值得進一步探索的。
Results 我們在表4.2 中顯示了 PASCAL 2012 的 val 集合上的 mAP 結果, 以及圖8中的一些定性示例。我們提供這些結果作爲概念的證明, 關聯嵌入能以這種方式使用。我們使用多人姿勢的監控實現了合理的實例分割預測。調整訓練和後處理可能會提高性能, 但主要的賣點main takeaway是, 關聯嵌入以一種通用的技術對不同的計算機視覺任務都工作得很好, 這些任務都屬於 fall under the umbrella of 檢測和分組問題範疇。
 

5. Conclusion

在本工作中, 我們將聯想嵌入引入卷積神經網絡, 使其能夠同時進行檢測和分組。我們將該方法應用於兩個視覺問題: 多人姿勢估計和實例分割。我們展示了對這兩項任務進行訓練的可行性, 並在姿態上我們實現了最佳性能。我們的方法很一般, 也可以應用到其他視覺問題上, 比如視頻中的多對象跟蹤。關聯嵌入損失可以在給定任何產生像素預測的網絡上實施, 因此它可以很容易地與其他最先進的體系結構集成。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章