論文閱讀筆記 — 3D人體姿態辨識 Integral human pose regression
這周要跟大家分享的3D人體動作識別論文連結如下:
論文的github連結如下:
本篇文章並沒有提出什麼新穎的模型架構, 但對於座標的預測提出新的解法. 過去人體動作辨識, 對於人體關鍵點常常用網路產生的Heatmap表示座標位置, 但作者認為利用Heatmap表示關鍵點座標會有兩個問題, 第1, 針對Heatmap中關鍵點的座標, 常常使用的是argmax的方法, 透過argmax只用Heatmap最大值作為關鍵點的位置, 而argmax本身無法微分, 因此模型的參數無法做到端對端的訓練. 第2個則是經過模型所得到的Heatmap往往是經過多層convolution之後的feature map, 因此解析度會下降許多, 這樣會導致後續計算出的關鍵點座標有誤差, 但是如果採用較高解析度的Heatmap, 則會需要較多的硬體資源, 因此作者改變過去直接使用argmax得到關鍵點的方式, 改採回歸的方法從Heatmap直接回歸出關鍵點的座標位置.
模型架構如圖1所示, 流程為平面影像經CNN先產生Heatmap, 接著再透過Heatmap回歸出最終關鍵點3維座標.
過去關鍵點位置的計算是透過下列式子, 式中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的結果可以看出I1與I2的結果較好, 且經過積分回歸後較原本只對Heatmap取argmax的結果有顯著的提升, 另外直接用積分回歸而沒有用Heatmap進行預訓練的I*同樣也顯示出較好的結果.
而在MPII資料集下與其他模型的比較結果如表2
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中可以看到Startegy 1下I2有較好的結果, 而Strategy 2下I*有較好結果.
而在Human3.6M下與其他模型的比較結果如表4, 可以看到本篇論文在兩種情形下都有最佳結果.