定義
姿態估計:在人體關節連接的所有姿勢空間中搜索某個特定姿勢,本質為關節點的定位。
人體骨架以一種圖的方式表示了人的方位姿態,本質上是一組能被連接起來表示人體姿態的坐標。坐標點又稱為關節或關鍵點,兩坐標點之間的連接稱為肢體--limb
姿勢空間的子集:
骨架表示的示例:
准確的說左側是openpose中的格式
2D Pose Estimation: 從RGB圖像中估計每個關節點的2D姿勢坐標,2D pose (x,y)
3D Pose Estimation: 從RGB圖像中估計每個關節點的3D姿勢坐標,3D pose (x,y,z),z---the depth
應用
- 動作識別
- 訓練機器人
- 游戲中跟蹤交互對象的動作
- 動畫視頻中增強現實--動作渲染
難點
- 關節的特點:強大而復雜的表達能力;小且幾乎看不見
- 遮擋、服裝和照明變化
2D Pose估計
傳統的方法是:過可變形區域建模,缺點是表性能力差,沒有考慮上下文信息。
基於深度學習的方法:
DeepPose——第一篇將基於卷積神經網絡的深度學習方法 應用到姿勢估計的論文
0.將關節點估計建模為回歸問題,證明了從整體推理隱藏的關節點的合理性,展示了CNN強大的表現力。
1.將alexnet前面的七層拿出來,加一個2K的向量(x,y)*k. k-----人體骨骼建模的關節點個數
2.再級聯一個同樣的回歸器,對1階段粗回歸得到的關節點位置從原圖上裁剪得到ROI區域,再一次回歸精修位置----此時分辨率變大
弊端:直接回歸一組向量作為xy坐標很困難,增加了學習的復雜度,降低了泛化能力,因此某些地方表現一般。
最新的SOTA方法:是回歸K張heatmap,代表某種關節點發生在此對應像素位置的置信度。如下面論文
Efficient Object Localization Using Convolutional Networks
- 並行的在多分辨率圖片上操作
- 精修時直接從第一層回歸器拿特征圖ROI,而不是去原圖拿ROI
優點:熱圖預測比直接回歸關節點效果好
不足:沒有考慮人體的結構建模------人體具有高度對稱性,部位比例關系,物理連接性(肘一定是連接腕關節或肩關節),貫通性以及關節局限性(比如肘向后彎曲限制)等,通過建模這種結構關系可以使關鍵點的確定更容易,使遮擋關節的估計變成可能。
Human Pose Estimation with Iterative Error Feedback迭代殘差反饋
Stacked Hourglass Networks for Human Pose Estimation堆疊沙漏網絡的人體姿態估計
不同尺度的圖像包含容易識別出人物朝向,四肢的排列及關節的連接關系的重要線索。較小的分辨率捕捉高階特征及全局信息。
雖然局部信息對於局部特征比如手、臉的識別至關重要,但是最終的姿勢估計需要全局信息。
沙漏網絡的特征:池化和上采樣的堆疊,中間監督---每個沙漏塊的輸出,利用跳層連接保持空間信息
沙漏網絡的設計動機:捕捉各種尺度的信息capture information at every scale
利用上采樣提高分辨率,但將卷積參數放在別的模塊中
Simple Baselines for Human Pose Estimation and Tracking 2018
SOTA : mAP of 73.7% on COCO
結構:Resnet+反卷積層-------極度簡潔
利用反卷積提高分辨率,直接將卷積參數放在反卷積模塊中。
采用均方誤差損失,即計算預測熱圖與真值熱圖的均方誤差
真值熱圖的由來:The targeted heatmap Hk for joint k is generated by applying a 2D Gaussian centered on the kth joint’s ground truth location with std dev = 1 pixel.
最終這里的熱圖上關鍵點怎么確定,通過局部最大???Best performing methods on 2D pose estimation are all detection based and generate a likelihood heat map for each joint and locate the joint as the point with the maximum likelihood in the map.
Deep High-Resolution Representation Learning for Human Pose Estimation -----[HRNet]
論文思路:以往的論文都是 特征圖從 高分辨率--->低分辨率---->高分辨率 的變化,HRNet全程保持高分辨率不變。
網絡結構:
- 從最大分辨率網絡逐步分出多個不同分辨率的子網絡,並行連接運行。
- 並行的不同分辨率子網絡間通過多尺度融合實現信息流通
- 也沒有使用stacked那樣的中間監督
Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields (CVPR’17)-----OpenPose
CPN(級聯金字塔網絡,2017coco關鍵點冠軍--- Cascaded Pyramid Network for Multi-Person Pose Estimation
多階段;整合來自金字塔的多個尺度的特征,通過擴大感受野的方式以及在線的關鍵點難例挖掘損失(OHKM loss)來優化對難例關鍵點的檢測
alphapsoe1 & alphapsoe2(解決人體框不准和擁擠場景姿態估計)
姿態估計模型評價指標:
-
正確檢測的肢體百分數------PCP
PCP@0.5------檢測到的肢體兩個關節點位置小於肢體長度的一半認為肢體檢測正確 -
正確檢測的關鍵點的百分數------PCK
PCK@0.2------預測關節點位置與真實關節點位置<0.2L_body(軀干距離)即為正確檢測
PCKh@0.5-----預測關節點位置與真實關節點位置<0.5L_head(0.5倍的頭部對角線長度作為判定閾值)即為正確檢測 -
正確檢測的關節點百分數-----PDJ
-
基於mAp的目標關節點相似度-----OKS
其中s^2 = H_obj * W_objcoco中關鍵點評估用,作用類似檢測中的IOU
顯然,在關鍵點估計的距離模型中,不同目標不同類型的關鍵點最重要的要考慮的因素就是目標尺度的不同導致的關鍵點距離的巨大差異
另外, AP:the mean of AP scores at 10 positions, OKS = 0.50, 0.55, . . . , 0.90, 0.95
heatmap的生成
- HR-net中是用模型最后層輸出的特征圖作為計算關鍵點的基准,根據最大響應找到預測的關鍵點
- Heatmap的是以真實關鍵點在heatmap位置為中心,做一個以1個像素為標准差sigma的二維高斯分布得到真實的heatmap_score.
- 由3 sigma定理知:在gt_point附近(-3sigma,3sigma)內,即(-3,3)像素寬度才有heat_score>0.