SAGANPose | 隱式結構化對抗人體姿態估計網絡

Adversarial PoseNet: A Structure-aware Convolutional Network for Human Pose Estimation
Official Code: pytorch

1.背景分析

關鍵點遮擋和人體重疊會導致人體姿態估計的難度增大,在這種情況下,可能會產生生物學上難以置信的姿勢預測。相反,人類視覺能夠通過利用聯合互連的人體關節間的幾何約束來預測姿勢。 爲了通過結合關於人體結構的先驗來解決該問題,本文嘗試使用生成對抗網絡的形式,以在訓練時隱式考慮這些先驗信息,因爲顯式學習此類約束通常具有挑戰性。基於此,本文設計了一個多任務生成器用以生成精準的人體關鍵點,設計了姿態辨別器P使得生成器獲取的人體關鍵點視覺友好,設計了置信度鑑別器C使得生成器獲取的人體關鍵點置信度高。

2.隱式結構化生成對抗網絡

如下圖所示,我們的對抗姿態估計網絡分爲三部分,1用於生成姿態的生成器網絡,2用於鑑別姿態的鑑別器網絡,3用於鑑別置信度的鑑別器網絡。其中生成器輸出32個heatmap圖,其中16個是關鍵點heatmap,另外16個是與其對應的關鍵點遮擋heatmap。下圖中的(1)分支,展示了沒有對抗操作情況下,常規人體姿態估計網絡的損失計算和參數更新方法。下圖中的(2)分支,展示了利用置信度鑑別器C來輔助訓練生成器G,將會產生更加可信的置信值結果。下圖中的(3)分支,展示了利用姿態鑑別器P和置信值鑑別器C來輔助訓練生成器G,將會將先驗的人體連接結構隱式的利用到網絡中,並提高預測效果。

3.多任務生成器

瞭解是否明顯遮擋了身體部位爲推斷人體姿勢的幾何信息提供了重要信息。在此,爲了有效地結合姿勢估計和遮擋預測,我們建議使用多任務生成網絡來解決該問題。該多任務網絡既用來對關鍵點位置進行估計,又用來對關鍵點是否遮擋進行判斷。

多任務生成器網絡的loss如下公式所示,主要對各個階段的關鍵點熱圖(y)和遮擋判斷(z)進行迴歸。

4.置信度鑑別器C

首先明確,置信度鑑別器C的目的是爲了使得最終生成器G獲得的人體姿態的置信度能夠更高。
文章利用一個卷積模塊作爲姿態鑑別器,具體結構如下圖所示。

若生成器G生成了低置信度熱度圖,則置信度鑑別器C將結果歸類爲fake。生成器會基於這個結果誤差做自我優化,產生更高的置信度,直到能夠使得鑑別器C認爲生成器的結果爲True。因此即使存在遮擋,此過程也將幫助生成器G生成高置信度熱度圖。

鑑別器C的損失函數如下:

由於置信度鑑別器需要進行計算兩個loss,因此需要有兩個標籤。
當置信度鑑別器的輸入爲GT熱度圖時,對應的標籤爲Creal,作者將標籤編碼爲一個16維的向量。其中有對應關鍵點值的特徵圖所對應的向量爲1,沒有關鍵點的所對應的向量爲0。
當置信度鑑別器的輸入爲生成器生成的虛假熱度圖時,對應的標籤未Cfake,同理Cfake也是一個16維的向量。Cfake對應的取值如下公式所示,當生成的關鍵點熱度圖和GT熱度圖比較接近(距離小於閾值)時,對應的向量爲1,反之對應的向量爲0。

5.姿態鑑別器P

首先明確,姿態鑑別器P的目的是爲了使得最終生成器G獲得的人體姿態能夠更加準確,且符合人體關節所固有的約束(不會生成一個不像人的關節圖)。

文章利用一個卷積模塊作爲姿態鑑別器,具體結構如下圖所示。

姿態鑑別器P的輸入有三個,分別爲:生成器產生的人體姿態熱度圖,遮擋熱度圖,以及對應的原始RGB圖像。之所以要把RGB圖像也作爲輸入,是因爲有的情況下即使人體姿態和遮擋都符合正常的人體結構,但並不符合原始的RGB圖,就是說生成了其他姿態的人體關鍵點,所以加入這個輸入就是爲了提升最終網絡的性能。

鑑別器P的損失函數如下:

由於姿態鑑別器需要進行計算兩個loss,因此需要有兩個標籤。在傳統的使用GAN進行圖像轉換的工作中,鑑別網絡,將真實樣本標記爲1,僞樣本標記爲0。對於人體姿態估計問題,我們發現僅通過將0或1作爲標籤,很難收斂網絡。

當姿態鑑別器的輸入爲GT熱度圖和GT遮擋熱圖時,對應的標籤爲Preal,文章將標籤編碼爲一個16維的向量。其中有對應關鍵點值的特徵圖所對應的向量爲1,沒有關鍵點的所對應的向量爲0。
當姿態鑑別器的輸入爲生成器生成的虛假熱度圖和虛假遮擋熱度圖時,對應的標籤未Pfake,同理Pfake也是一個16維的向量。Pfake對應的取值如下公式所示,其中di是第i個身體部位的預測位置與GT真實位置之間的歸一化距離。對於假樣本,如果預測的身體部位遠離GT真實位置,則此圖像中的姿勢顯然對身體構造不可信。因此若距離比較接近則對應的向量爲1,反之對應的向量爲0。

6.SAGANPose網絡訓練流程

最終整體的優化函數如下所示,通過最大化P,C兩個鑑別器,以及最小化生成器達到對抗訓練的目的。需要注意的是,在實驗中,爲了使最終目標函數的不同分量具有相同的比例,將超參數α和β分別設置爲1/220和1/180。

如下圖所示,算法的訓練每一個迭代過程如下:

1.將原始圖片x,輸入到生成器,計算雙向生成器的前向結果。G(x)=(y,z),通過最小化公式1優化生成器參數。
2.將原始圖片x,雙向生成器生成的兩個虛假熱度圖G(x)=(y,z),輸入到姿態鑑別器,得到虛假姿態鑑別結果Pfake^,通過最大化公式2中的第二部分優化姿態鑑別器。
3.將原始圖片x,兩個GT熱度圖(y,z),輸入到姿態鑑別器,得到GT姿態鑑別結果Preal^,通過最大化公式2中的第一部分優化姿態鑑別器。
4.將原始圖片x,雙向生成器生成的兩個虛假熱度圖G(x)=(y,z),輸入到置信度鑑別器,得到虛假置信度鑑別結果Cfake^,通過最大化公式3中的第二部分優化置信度鑑別器。
5.將原始圖片x,兩個GT熱度圖(y,z),輸入到置信度鑑別器,得到GT置信度鑑別結果Creal^,通過最大化公式3中的第一部分優化置信度鑑別器。
6.利用公式4更新所有的結果。

7.結果展示

作者在LSP和MPII兩個人體關鍵點數據集上對上述隱式結構化對抗網絡進行了結果分析,從下表可以看出,利用該方法能夠有效提升模型效果,且不會增加太多推理時間。


從下表的結果可以進一步看出本文提出的隱式結構化對抗網絡,通過生成對抗的方式隱含了人體四肢的結構化信息,能夠有效處理人體關鍵點遮擋情況下的姿態估計。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章