【CVPR 2019】 論文閱讀:3D human pose estimation in video with temporal convolutions and semi-supervised training


2019 CVPR的文章,使用時序卷積和半監督訓練的3D人體姿態估計

論文鏈接:https://arxiv.org/abs/1811.11742

github:https://github.com/facebookresearch/VideoPose3D

已經有前輩對這篇文章做過理解:https://www.cnblogs.com/zeroonegame/p/15037269.html

此處不介紹引言和相關工作,具體可參考前輩的閱讀筆記,寫的已經很好了。本文也只是做一個閱讀記錄。

摘要

這篇文章主要工作:

(1)使用基於空洞時序卷積的全卷積模型評估視頻中的3D姿勢

(2)引入了半監督訓練方法,作者稱為back-projection

 

2. 模型內容

2.1 Temporal dilated convolutional model

時序卷積模型將2D關鍵點序列作為輸入,生成3D姿態估計,其間采用空洞卷積來提取時序信息。

關於空洞卷積,貼一個鏈接:https://zhuanlan.zhihu.com/p/113285797

上圖為網絡結構圖,輸入為(243,34)大小的2D關鍵點序列,開始為一個不完整的塊,將輸出通道數設置為1024,后續由四個包含殘差結構的塊組成,最后一層輸出所有幀的的三維姿態預測。

以第一個塊為例,綠色部分為卷積層,每個塊前后有兩個卷積層,前者的卷積核(kernel size)W大小為3,后者的為1。前者的空洞卷積超參數(dilated factor) D = W^B,B的大小取決於當前處在第幾個塊,如第一個塊D=3^1=3,網絡中則為3d3,以此類推第四個塊為3d81。卷積之后經過歸一化,線性函數ReLU和Dropout后輸出特征。每一個塊輸出的特征,類似於ResNet,經過一次slice操作后又加入到下下個塊中,防止梯度消失。這邊的slice操作是為了匹配前后兩個塊的張量大小,確保能夠進行殘差連接。

作者主要采用的是如下圖的對稱卷積:

為了用於實時場景,實際是不能用到未來幀的,作者也嘗試了如下圖的因果卷積(causal convolutions,)

2.2 Semi-supervised approach

作者利用現成的2D關鍵點檢測器(2D keypoint detector)和back-projection相結合,將未標注的視頻產生的loss加到總loss中,以加強監督學習

 2.2.1 Trajectory model

由於透視投影,屏幕中的2D姿態取決於軌跡(trajectory)和3D姿勢,軌跡可以是人體根關節的全局位置,從figure 3可以看出,最后通過譯碼器投影出的2D姿勢,包含了global position和 3D pose兩部分信息。

如果沒有這個全局位置信息,那么2D姿勢的主體會被固定投影在屏幕的中心。因此,這邊也對3D軌跡進行了回歸,以正確的進行2D反向投影。

 為此,優化了第二個網絡,這個網絡在相機空間中對gloabl trajectory進行回歸,后者將其投影到2D之前加到姿勢中。兩個網絡具有相同的架構,但不共享一套參數,因為作者發現以多任務方式訓練時,兩者會產生負面影響。

如果人體離相機較遠,就會更加難以對起trajectory進行精確回歸,因此作者優化了trajectory的加權平均關節位置誤差(WMPJPE)損失函數:

 使用相機空間中的真實深度值(y_z)的倒數對每個樣本進行加權,對於我們的目的來說,回歸遠目標的精確trajectory是不必要的,因為相應的2D keypoints往往集中在一個小區域周圍,因此對於目標越遠的目標,loss權重越低。

 

2.2.3 Bone length L2 loss

作者通過添加一個軟約束,對無標簽batch中subjects的平均骨長有標簽batch的subjects的骨長做近似匹配,發現效果是更好的,即figure 3中計算的Bone length L2 Loss。計算這個loss對自監督學習起到了很重要的作用。

 

2.3 Discuss

該方法僅需要一些相機的內置參數,這些參數基本商業相機都能夠提供。該方法不依賴於特定的網絡結構,可以應用在任何以2D關鍵點作為輸入的3D姿態檢測器中。

在實驗中,作者按照本章中描述的架構將2D姿勢映射到三維,為了將3D姿勢重新投影到2D,作者使用了一個簡單的投影層,該投影層考慮到了線性參數(焦距、焦點)和非線性的鏡頭畸變系數(切向、徑向)來實現。這邊也提到了在Human3.6M數據集中使用的鏡頭畸變參數對於姿態估計幾乎沒有影響,但仍然將其囊括進來,因為是相機真實的一個參數。

3. 實驗及結果

 3.1  實驗設置

評估使用的數據集:Human3.6M 和 HumanEva-I

Human3.6M中標志了3D姿態的7個子集,從中提取17的關節點,(S1,S5,S6,S7,S8)作為訓練集,(S9, S11)作為測試集。

HumanEva-I相對小得多,從三個視角記錄同一個對象,作者既通過對每個動作訓練不同模型來評估三個動作,也未所有動作訓練了一個模型。

 

衡量指標:MPJPE、P-MPJPE、N-MPJPE

3.2 實現細節

 3.2.1 Implementation details for 2D pose estimation

 之前的工作大部分都是在ground-truth bounding boxes提取目標,后使用stacked hourglass detector預測ground-truth bounding boxes中的2D關鍵點的位置。這篇文章並不依賴於任何特定的2D關鍵點檢測器。作者研究了集中不依賴於ground-truth boxes的2D detectors,使得該實驗在真實場景也可用。

除了stacked hourglass detector ,作者研究了包含一個ResNet-101-FPN bone的Mask-R-CNN網絡,參考其在Detectron中的實現,以及cascaded pyramid network(CPN) ——FPN表示的擴展,CPN實現需要外部提供邊界框(在這一情況下使用Mask R-CNN)

對於Mask R-CNN和CPN,因為關鍵點在COCO和Human3.6M不同,作者在COCO上進行預訓練,后在Huaman3.6M上fine-tune 2D投影的檢測器。在消融實驗中,作者還實驗了直接將3D姿態估計應用於預訓練的2D COCO關鍵點,以估計Human3.6M中的3D joints。

對於Mask R-CNN,作者采用了“stretched 1x”表訓練的ResNet-101作為backbone。微調時重新初始化了最后一層的keypoint network,反卷積層,來回歸hetmaps來學習一組新的keypoints。使用4個GPU進行步長衰減學習率訓練。

CPN使用輸入分辨率為384x288的ResNet-50作為backbone,微調時重新初始化GlobalNet和RefineNet的最后一層。訓練時采用指數衰減學習率。在微調時保持batch normalization。

 

下圖為作者研究的幾個2D key joints檢測器的效果對比

 

3.2.2 Implementation details for 3D pose estimation

 這部分留個坑

3.3  結果

3.3.1 Temporal dilated convolutional model

下面兩張表顯示的是B=4blocks,receptive field=243 frames時的結果,可以看到兩個指標的效果普遍是比較好的,(+)表示需要額外依賴數據。

MPJPE Metric

 

 P-MPJPE Metric

 

table 2展示了在單幀情況和時序情況下實現3D pose預測的Velocity error,即3D pose sequence的MPJPE(mean per-joint position error)的一階倒數,這一失序模型將單幀的MPJVE(measure joint velocity errors)平均降低了76%。

可以這么理解,絕位置對誤差(Abosolute position errors)是無法衡量預測的平滑性的,需要對其進行求導,一般誤差越大,就越不平滑,誤差越小,就會越平滑。

table4展示了在HumanEva-I的結果,結果也是很好的,說明可以推廣到更小的數據集上。

table 5 對比了與LSTM的復雜度,主要比較參數量、浮點運算量和MPJPE,27f表示使用27個frame預測一個3D pose,類似的,81f表示81 frames預測一個3D pose。

 

 3.3.2 Semi-supervised approach

Figure 5a 顯示,隨着標記數據量的減少,半監督方法變得更加有效,當標記幀少於5K時,要比以 supervised 為 baseline的效果提升大約9-10.4 mm N-MPJPE

 

 Figure 5b顯示了對數據集進行非下采樣版本的結果,這種設置方法更加適合這個模型,因為可以充分利用視頻中完整的時間信息,即使在感受野為27或者9時,也比baseline效果好上很多。

 

  Figure 5c 更換了2D keypoints detector,發現會影響最終的誤差,說明一個好的detector是很重要的,最高可以提高22.6mm MPJPE(1% S1的情況下)

 4. Conclution

本文介紹了一個簡單的全卷積模型。用於視頻中的3D人體估計。主要貢獻在於兩個:

(1)該架構通過在2D keypoint trajectory上使用空洞卷積,利用了視頻中的時序信息。

(2)使用半監督訓練,提高了數據缺少時的效果。該方法使用於未標記視頻,且只需要用到相機的一些內部參數。

 

附錄部分還有不少內容,作者其實做了很多工作,后續要學習一下代碼才能更深入領會。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM