論文閱讀筆記 — 3D人體姿態辨識 Integral human pose regression

Hung-Chih Chiu
6 min readNov 25, 2020

--

這周要跟大家分享的3D人體動作識別論文連結如下:

論文的github連結如下:

本篇文章並沒有提出什麼新穎的模型架構, 但對於座標的預測提出新的解法. 過去人體動作辨識, 對於人體關鍵點常常用網路產生的Heatmap表示座標位置, 但作者認為利用Heatmap表示關鍵點座標會有兩個問題, 第1, 針對Heatmap中關鍵點的座標, 常常使用的是argmax的方法, 透過argmax只用Heatmap最大值作為關鍵點的位置, 而argmax本身無法微分, 因此模型的參數無法做到端對端的訓練. 第2個則是經過模型所得到的Heatmap往往是經過多層convolution之後的feature map, 因此解析度會下降許多, 這樣會導致後續計算出的關鍵點座標有誤差, 但是如果採用較高解析度的Heatmap, 則會需要較多的硬體資源, 因此作者改變過去直接使用argmax得到關鍵點的方式, 改採回歸的方法從Heatmap直接回歸出關鍵點的座標位置.

模型架構如圖1所示, 流程為平面影像經CNN先產生Heatmap, 接著再透過Heatmap回歸出最終關鍵點3維座標.

圖1 模型架構

過去關鍵點位置的計算是透過下列式子, 式中Jk代表第k個關鍵點的位置, Hk代表第k個關鍵點的Heatmap, p則是影像座標.

但是因為取argmax無法微分, 而不能讓整個模型做端到端的訓練, 因此最終座標的計算改以下式, 關鍵點的座標是以影像座標與座標代表關鍵點的機率(Heatmap)積分得到.

而上式H~為經過Softmax正規化後的Heatmap, 定義如下:

將積分化為離散型式可表示如下, 式中D, H, W分別代表Heatmap的深度, 高與寬, 如果只有2維平面的Heatmap則D設為1.

另外在模型進行訓練時因為3維人體資料較少, 因此必須合併2維影像資料一併訓練, 這一段其實我看不太懂作者的意思, 但是就是把上述的離散式分拆成兩個步驟, 以要預測第k個關鍵點的x座標為例, 上式可以拆解成下面兩式分別計算, 如果遇到2維的資料, 第一式的D就是1:

過去在使用Heatmap做計算時分別有3種方法, 作者將這些方法標註為H1, H2與H3.

H1是指ground truth中關鍵點的以一個2維高斯分布代表這個關鍵點的可能位置, 高斯分布的中心點就在關鍵點上, 標準差σ取1, 而經模型預測出的Heatmap與ground truth 之間採用L2 loss去計算誤差.

H2的方法則參照的Mask RCNN, 採用一組one-hot encoding, m x m的遮罩, 之中只有關鍵點所在的位置有被標註, 而採用的loss是針對m x m遮罩經softmax的輸出做cross-entropy.

H3採用binary cross-entropy, 在ground truth關鍵點位置周遭15個像素點標註為1, 其他像素點則都標註為0.

而骨幹網路依據資料集不同選擇不同, 如Human3.6M與MPII資料集選用ResNet以及HourGlass, COCO資料集下則選擇ResNet-101.

在MPII的資料集上, 利用ResNet-50作為骨幹網路預測關鍵點的結果如表1, 其中網路先分別以H1, H2, H3的方式對模型進行預先的訓練, 之後再用積分回歸的方式對模型做最後調整, 這樣的訓練方式以I1, I2與I3表示. 另外如果完全沒有使用Heatmap作預訓練, 直接使用積分回歸的方式進行訓練則標註為I*. 另外也有使用模型直接進行回歸的方式R1, 就是在主網路之後接一層average pooling, 再透過一層fully connected layer 直接回歸出3K個關鍵點座標.

表1 以ResNet-50對MPII資料集進行預測

從表1的結果可以看出I1與I2的結果較好, 且經過積分回歸後較原本只對Heatmap取argmax的結果有顯著的提升, 另外直接用積分回歸而沒有用Heatmap進行預訓練的I*同樣也顯示出較好的結果.

而在MPII資料集下與其他模型的比較結果如表2

表2 MPII資料集下與其他模型比較結果

3維資料驗證的結果如表3, 在Human3.6M資料集下進行測試的, 表中Strategy 1採用的是6個受試者進行模型訓練(S1, S5, S6, S7, S8, S9), S11每64個frame作為測試, 評量的方式是先經過generalized procrustes analysis做剛性座標轉換對齊的MPJPE(mean per joint position error)誤差. Strategy 2採用的是5個受試者進行模型訓練(S1, S5, S6, S7, S8), S9與S11每64個frame作為測試, 評量方式則是直接使用MPJPE.

表3 Human3.6M測試結果

從表3中可以看到Startegy 1下I2有較好的結果, 而Strategy 2下I*有較好結果.

而在Human3.6M下與其他模型的比較結果如表4, 可以看到本篇論文在兩種情形下都有最佳結果.

表4 Human3.6M資料集下與其他模型比較結果

--

--