雷鋒網(公眾號:雷鋒網) AI 科技評論按:本文由上海交通大學的方浩樹為 AI 科技評論所撰寫的獨家解讀稿件,未經許可不得轉載。
下面要介紹的論文發表於 CVPR 2018,題為「Weakly and Semi Supervised Human Body Part Parsing via Pose-Guided Knowledge Transfer」。
arXiv地址:https://arxiv.org/abs/1805.04310
人體部位解析,或稱人類語義部位分割,是許多計算機視覺任務的基礎。在傳統的語義分割方法中,我們需要提供手工標註的標籤,以便使用全卷積網絡(FCN)進行端到端的訓練。雖然過去的方法能達到不錯的效果,但它們的性能高度依賴於訓練數據的數量和質量。
在本文中,我們提出了一種獲得訓練數據的新方法,它可以使用容易獲得的人體關鍵點的數據來生成人體部位解析數據。我們的主要想法是利用人類之間的形態相似性,將一個人的部位解析結果傳遞給具有相似姿勢的另一個人。使用我們生成的結果作為額外的訓練數據,我們的半監督模型在 PASCAL-Person-Part 數據集上優於強監督的方法 6 個 mIOU,並且達到了最好的人類部位解析結果。我們的方法具有很好的通用性。它可以容易地擴展到其他物體或動物的部位解析任務中,只要它們的形態相似性可以由關鍵點表示。我們的模型和原始碼公開在: https://github.com/MVIG-SJTU/WSHP
人體部分解析給出了人類的詳細語義分割,並將人解析為不同的身體部位。這種像素級的身體部位信息對於人的行為理解非常重要,並且在各種視覺任務中具有巨大的應用潛力,例如人機互動和識別人-物體交互關係。為了更加精細地對人的行為進行分析,關鍵的一點在於能夠將人體的各個部分分割出來。但是這個問題很難,標註訓練樣本十分費時而且成本很高;也正是因為這樣,目前這方面最大的數據集也只有少於 2000 個用於訓練的標註數據。而另一方面,人體關鍵點(人體姿態)由於標註比較輕鬆,所以目前有非常多的標註數據。所以我們就考慮是否可以利用人體姿態的數據,通過知識遷移來幫助人體部分分割標註的任務。
由於物理解剖學限制,具有相同姿勢的人將具有相似的形態。如圖所示,給定一個人,我們可以使用他/她的關鍵點在已有的少量標註過的 human body part parsing 數據集中搜索具有相似姿勢的人。然後對這些人對應的部位解析結果進行平均,形成人體部位分布的先驗概率。通過這種方式,我們可以將稀疏的人體關鍵點轉換為細粒度的身體部分分割。之後我們再將該先驗概率圖與原始輸入圖像相結合,輸入神經網絡,最後生成準確的部位分割結果。這些生成的部位分割可以用作額外訓練數據來訓練人類解析網絡。
具體的方法共分為三步:輸入帶有關鍵點的圖片+已有的部分分割數據集,首先根據關鍵點進行聚類,也即找到與輸入圖片相似的標註分割圖片;然後對找到的部位解析結果進行對齊、變形,再求平均得到人體部位分布的先驗概率;最後一步則是基於先驗概率進行預測真實的人體部位解析結果。
1)Discovering Pose-similar Cluster
為了度量不同姿態間的相似度,首先需要對所有的姿態進行歸一化和對齊,即將人體軀幹長度統一,臀部關鍵點作為坐標原點。由此計算出輸入圖片中幾個關鍵點與標註數據集中所有圖片的對應關鍵點之間的歐氏距離,選出距離最小的 Top n 作為 similar cluster。
這裡之所以選擇 top n,而不是 top 1,是因為真實的人體千奇百怪(例如存在遮擋),某一個人體的分割不一定能夠適用於另一個人體,所以要選擇最相似的幾個,在下一步生成 part-level prior 中做下平均。
2)Generating Part-level Prior
對於每個 similar cluster,存在一些不可避免的集群內姿勢變化,這使得部分解析結果和待標註的人是不對齊的。因此,我們引入了姿勢引導的變形方法。
對於每個身體部位,我們可以通過骨架的差異求得一個仿射變換矩陣 Q,利用該仿射變換矩陣,我們對其對應部位的 mask 做一個同樣的變換,最後得到一個變形過的部位解析結果。
將所有變形過的結果加起來求平均,即可得到人體部位分布的先驗概率。
3)Prior Refinement
前面通過遷移與平均得到的 part-level prior 是一個先驗概率,其代表一張圖片上某個像素屬於某個人體部位的可能性。我們通過 refinement network 進行進一步優化,輸出每個部位確定的 binary mask。Refinement Network 採用的是 U-Net 的一個變體。
首先來看,沒有使用先驗圖訓練的網絡和使用了先驗圖訓練的網絡的結果對比:
從左到右分別為:輸入圖像、全卷積網絡預測的結果、輸入圖像相關的 part-level prior、經過 refinement network 預測出的結果。如果有 part-level prior,預測效果會好很多。
以下是一些選自 COCO 數據集的圖片,以及用我們方法生成的訓練標籤:
這些生成的額外數據能作為訓練樣本。
通過混合原始數據與我們生成的數據進行訓練,我們的模型能取得當前最好的結果。
本文的模型和代碼已經開源在 https://github.com/MVIG-SJTU/WSHP。同時這裡也宣傳一下我們最近的工作 AlphaPose. AlphaPose 是一套人體姿態估計系統,目前速度已經達到 10fps(在 COCO test-dev 集上的測試結果),準確率達到 70mAP 以上,支持 PyTorch,代碼開源在 https://github.com/MVIG-SJTU/AlphaPose,歡迎各位使用。
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。