Associative Embedding: End-to-End Learning for Joint Detection and Grouping
會議:2017 NIPS
1、任務:multi-person pose estimation(多人人體關鍵點檢測)
從一張有多個人的圖片中檢測出每個人的人體關節點
2、特點:
(1)先檢測關鍵點,再對關鍵點進行分組,預測關鍵點屬於哪一個人;
(2)不同於以往multi-stage,論文提出一種single-stage,end-to-end的關節點檢測和分組方法;
(3)假定人體有N個關鍵點,使用stacked hourglass architecture生成2N個feature maps, N個feature maps用於檢測關鍵點,N個feature maps用於associative embeddings;
(4)對於檢測關鍵點的feature maps,同單人姿態關鍵點檢測,每個feature map檢測特定的一個關鍵點位置,不同的是,多人姿態檢測時,一張feature map(設表示左腳)上存在多個峰值,如果有M個人,則存在M個峰值。
(5)對於associative embedding的N個feature maps,上面的值可以看作一個“tag”,作者希望屬於同一個人的joint具有相同的tags,不論這個tag值為多少,只要同一個人的tag相同,不同人的tag不同即可。
3、基礎網絡:stacked hourglass architecture
可以看作多個encoder-decoder級聯的網絡,成一個堆疊的沙漏形狀。
stacked hourglass architecture最初用來進行單人姿態檢測,該網絡由多個encoder-decoder級聯的網絡構成,encoder可以得到圖片的全局上下文信息,decoder上採樣到圖像分辨率,堆疊多個可以提高準確率;
4、完整網絡:
輸入:圖片
輸出:2N個feature maps(N個feature maps用於檢測關鍵點,N個feature maps用於associative embeddings),每一個feature map針對一個關節點的任務。
5、Loss
(1)detection loss : 典型的關鍵點檢測Loss
ground truth: 由於數據集的監督信息是人體關鍵點的位置,是一個點,所以將這個點進行2D高斯擴散,成為圓域,作為關鍵點檢測的監督信息。
pred location: 網絡預測出圖片中每個位置像素屬於某一個特定人體關鍵點的可能性。
detection loss: 使用ground truth和pred location之間的均方誤差作為loss.
(2)group loss: 目標使同一個人的關鍵點tag相同而不同人之間的tag不同。
因為這裡不限制某個具體的人的tag是多少,只限制同一個人的tag相同,不同人的tag 不同,這裡先計算一個reference embedding tag作為參考tag.
reference embedding:針對ground truth中的某一個人的所有關鍵點的位置,對應到預測group tag的feature maps上,獲取對應位置上的tag,計算這些tags的均值作為reference embedding.
然後,根據同一個人的不同關鍵點的tag相同,不同人的tag不同,設計group loss。
6、應用
除了可以做multi-person pose estimation,還可以做instance segmentation, and multi-object tracking.
7、問題:
(1)為什麼使用stacked hourglass architecture?
答:stacked hourglass architecture最初用來進行單人姿態檢測,該網絡由多個encoder-decoder級聯的網絡構成,encoder可以得到圖片的全局上下文信息,decoder上採樣到圖像分辨率,堆疊多個可以提高準確率;
該網絡輸入圖片,輸出2N個feature map。
(2)這個文章主要創新點在哪裡?
答:我覺得主要創新點在於group loss的設計,特別是沒有gt數據,使用計算的平均值作為參考tag.
閱讀更多 AI深度學習求索 的文章