傳統方法
- 模板匹配
在幾何先驗的基礎上基於模板匹配進行骨架關鍵點的檢測
人體骨骼關鍵點檢測
兩個方向
- 自上而下
人體檢測 + 單人人體關鍵點檢測
代表性方法:G-RMI, CFN, RMPE, Mask R-CNN, and CPN
mask rcnn的檢測+分割框架很適合用來做關鍵點檢測,將關鍵點進行one-hot mask編碼,針對k個關鍵點會預測k個mask。
實現細節爲,訓練時採用mm的mask,僅標註一個像素作爲前景,對每一個關鍵點採用最小化的交叉熵損失函數進行訓練,即鼓勵每個mm的圖像僅檢測一個關鍵點。在實例分割時,關鍵點也是各自獨立分割的。
頭部的網絡結構爲256個33的卷積,反捲積、雙線性上採樣層,最後輸出5656的mask,相比實例分割,人體關鍵點檢測需要更高的分辨率以實現關鍵點的準確定位。 - 自下而上:關鍵點檢測+關鍵點聚類(將關鍵點聚合成人體)
關鍵點聚類方法:PAF, Associative Embedding, Part Segmentation, Mid-Range offsets - 總體而言,自上而下的方法要好於自下而上的方法,因爲自上而下的方法加入了整個人體作爲空間先驗,而自下而上的方法沒有建立人體的整體空間關係,僅建模了局部空間關係,因而準確率不及自上而下的方法。自上而下的方法計算代價較大,且與圖片中的人體數量成正比。
關鍵點回歸的GT構建
- coordinate:迴歸offset,各個點之間相互獨立,訓練時提供的監督信息較少,收斂速度慢
- heatmap:概率迴歸,訓練時每個點都提供了監督信息,對每個像素位置進行預測可提高關鍵點的定位精度,可視化效果更好
- Heatmap + Offsets:距離關鍵點一定區域範圍內採用heatmap方法,將概率值置爲1,在heatmap外,採用offset
自上而下的關鍵點檢測方法
在關鍵點檢測算法中,要考慮的問題:
- 局部信息的區分性較弱,背景中很容易出現同樣的背景信息造成混淆,所以需要採用較大的感受野
Convolutional Pose Machines網絡中:
第一個階段產生粗略的關鍵點,後面的網絡都是以stage1的響應輸出和對原圖提取的特徵作爲輸入,進一步提高關鍵點的定位精度 - 人體不同關鍵點檢測的難易程度不同,腰、腿 > 頭,遮擋不可見>不遮擋可見,所以不同關鍵點要區分對待
Cascaded Pyramid Network網絡中:
GlobalNet:檢測容易和可見的較難的關鍵點
RefineNet:檢測不可見的更難的關鍵點 - 關鍵點定位依賴於proposals,可能出現檢測不準,或者重複檢測等現象
RMPE網絡通過空間變換網絡,將同一個人體產生的不同裁剪區域都變換到一個較好的結果,比如人體位於裁剪區域的正中央,實現對proposals的優化