3D human pose estimation in video with temporal convolutions and semi-supervised training

一、簡介

本文是CVPR2019的文章,預測視頻中的三維人體姿態,主要是通過時域上的卷積,將2D人體姿態點提升爲3D人體姿態點。該方法具有通用性,可兼容多種2D人體姿態點預測方法,如Mask R-CNN、cascaded pyramid network (CPN) 、AlphaPose、OpenPose等等。

3D Pose Git地址 https://github.com/facebookresearch/VideoPose3D
3D Pose 論文地址 https://arxiv.org/pdf/1811.11742.pdf
2D Pose Git地址(AlphaPose) https://github.com/MVIG-SJTU/AlphaPose
2D Pose 論文地址(AlphaPose) https://arxiv.org/pdf/1612.00137.pdf
2D Pose 論文解讀(AlphaPose) https://www.cnblogs.com/taoshiqian/p/9593901.html

二、效果圖

拳擊
花滑

三、論文翻譯

論文翻譯來源於Git地址 https://github.com/lxy5513/videopose/blob/master/doc/translate.md,首先感謝lxy5513。

3D human pose estimation in video with temporal convolutions and semi-supervised training


Abstract

​ 在這項工作中,我們展示了視頻中的3D姿態可以被基於2D關節點的空洞時域的全卷積模型有效的預測,同時引進了反向映射back-projection, 一種可以利用爲標記的視頻數據的簡單而有效的半監督訓練方法。我們首先根據未標籤的視頻預測2D關節點,然後預測3D姿態,最後反向映射回2D關節點。在監督學習設置中,本方法超越了之前最好的結果(在Human3.6M的6mm平均關節點位置錯誤中mean per-joint position),將錯誤率減少了11%,模型在HumanEva-I中也有極大的提高。此外,反向映射實驗表明,在標籤數據稀少的情況下,它的效果也超越這方面之前最好的結果。


1. Introduction

​ 本項目聚焦於視頻中的3D人體姿態的預測。我們建立在最先進方法(2D關節點檢測,然後3D姿態預測)的基礎上【34,44,30,42,8,33,47,29】,雖然分解問題可以減少任務的困難,但由於多個3D姿勢可以映射到相同的2D關鍵點,因此它本質上是有歧義的。之前的工作在處理這種歧義性問題是通過RNN建模時序信息【14,24】。另一方面來說,CNN也可以處理時序信息,儘管傳統上都是用RNN(例如神經機器翻譯【9】、語言模型【6】)卷積模型能夠並行處理多幀,這是循環神經網絡所不具備的。

圖1:我們的時域卷積模型使用2D關節點序列(底部)作爲輸入,然後產生3D姿態預測作爲輸出(頂部)。採用空洞時域卷積去捕捉長期信息

​ 在本文中,如圖一所示,我們呈現一種全卷積結構來對視頻中的2D關節點執行時域卷積,得到精確的3D姿態預測。這種方法是與任何的2D關節點檢測器都兼容,並可以通過時域卷積來處理大的上下文信息。相比於給予RNN的方法【14,24】,它具有更高的精度、簡潔性和有效性,在計算複雜度和參數數量上都有優勢。

​ 具備了高精度和高效的結構,我們處理當標籤訓練集稀少的情況,引進了一種新的半監督訓練策略去利用未標記的視頻。對於需要大量標記的訓練數據並收集用於3D人體姿勢估計的標籤的神經網絡模型來說,低資源設定情況尤其具有挑戰性,這需要昂貴的動作捕捉設置以及相當長的信息記錄。本論文方法受到半監督訓練學習機器翻譯【23】(只用一種語言提供的句子翻譯成另一種語言,然後再翻譯成原始語言【38,7】的)啓發。詳細來說,先用現成的2D姿態檢測器來預測未標記的視頻,然後預測3D姿態,再映射回2D空間。

​ 總之,本文提供了兩個主要的貢獻:1.呈現了一種基於2D關節點軌跡的空洞時域卷積方法,簡單、有效的預測出視頻中的3D人體姿態。此模型在相同精確度水平下比基於RNN的模型更加高效,不論是在計算複雜度方面還是模型參數方面。


2. Related work

​ 在深度學習流行起來之前,對3D姿態預測一直是基於特徵工程和骨架與關節的流動性方面進行的【48,16,18】。最初基於CNN的方法是專注於通過無需中間監督直接從RGB圖像預測3D姿態的端到端的重建進行3D姿態預測【25,45,34,43】。

兩步姿態預測。一種新的3D姿態預測家族,首先在圖片空間中預測出2D關節點的位置(kepoints),接下來提升到3D空間【19,30,34,44,3,14】。因爲他們利用了中間監督模式,因此這些方法是比端到端的方法效果更佳。最近的研究表明,對於真實的2D關鍵點,預測3D姿勢相對簡單,所以困難之處就在與難以預測準確的2D姿勢【30】。 早期方法【19,3】簡單地執行最近鄰搜索在多組2D關鍵點上的預測的一組2D關鍵點,然後簡單地輸出相應的3D姿勢。 一些方法利用圖像特徵和2D實際姿態【34,44】。 或者,可以通過簡單地預測其深度來從一組給定的2D關鍵點預測3D姿勢[49]。

視頻姿態預測。 很多之前的方法是在單幀圖片上進行3D姿態預測,但是最近有一些研究如何從視頻中探究時域信息進而產生更穩定的預測,減少對噪聲的敏感性。【45】是涉及基於空間時域卷的梯度直方圖(HoG)特徵。【21】雙向LSTMs一直是用來精調從單幀圖片上的3D姿態預測。然而最成功的方法是從2D關節點運動軌跡中學習,本文就是基於此種方法的。

​ 最近,LSTM序列到序列的方法已經提出了編碼視頻中的2D姿態到固定大小的向量,然後解碼到3D姿態序列【14】。然而,輸入和輸出序列都具有相同的長度,並且2D姿勢的確定性變換是更自然的選擇。我們實驗了這種seq2seq模型,發現輸出序列是趨向於冗長的序列,【14】處理這樣的問題是以時間上的連續性爲代價通過每5幀重新初始化編碼器。這也被用於基於RNN的方法(考慮之前身體部位上的連接性)【24】。

半監督訓練。一直用於多任務網絡【2】,比如2D 關節點、3D姿態預測,還有使用Human3.6M【18】的2D/3D標註和MPII【1】2D標註的動作識別上。爲標籤的多角度錄像用於3D姿態預測【37】上的預訓練表示上。但是這些錄像無法在非監督學習中被使用。在只有2D標註數據集可用的情況下GAN(對抗生成網絡)可以從非時間的姿態中找出實際的姿態【47】,這提供了有用的正則化形式。【33】提出了一種弱監督學習方法,基於序數深度(ordinal depth),這利用2D標註的深度對比信息,如:左腿位置是在右腿之後。

我們的工作不同於以上的幾種方法,比較與【33】【34】,我們沒有使用heatmap, 而使用檢測的關節點座標來代表姿態。heatmap可以傳遞更多信息但是需要更大的2D卷積(如果考慮時間,就是3D卷積)計算量並且他們的準確率取決於heatmap的分辨率。我們的模型在只有較少參數的同時可以達到很高的準確率,能夠快速的訓練和運行。比較於基於單幀的兩種方法:【30】和通過【14】的LSTM模型,我們通過一維的卷積操作探究了時域信息,並且提出了幾種優化方法取得了更低的重建錯誤。不同於【14】,我們採用了確定性映射來代替seq2seq模型。最後比較於所有的2D姿態預測方法,我們發現MASK-RCNN和CPN(級聯金字塔網絡)檢測器是對3D人體姿態預測來說,效果更具有魯棒性。


3. Temporal dilated convolutional model

​ 我們的模型是一種帶有殘差連接的全卷積結構,採用一個密集2D姿態序列作爲輸入,並將時域卷積與線性投影層交替。卷積模型可以同時處理2D姿態信息和時間維度信息(RNN無法做到)。在卷積模型中,這個輸入、輸出的梯度路徑有一個固定的長度,無論序列長度的大小,這相較於RNN減少了梯度消失和梯度爆炸的風險。此外,卷積結構對時間感受野有着精確的控制,這有利於3D姿態預測模型的時間依賴性。另外,我們採用擴張卷積[13]來建模長時間依賴性,同時保持效率。相似的空洞卷積結構在音頻生成【46】、語意分割【48】和機器翻譯上也有着傑出的效果。

圖2:一個全卷積3D姿態預測模型結構的實例。這個輸入包含了243幀(B = 4 塊)的2D關節點感受野, 每幀有J=17的關節點。卷積層是綠色的,其中2J,3d1,10242J, 3d1, 1024 分別代表2 x J 個輸入通道、一個過濾器大小爲3的空洞卷積和1024個輸出通道。一幀的3D預測需要(243,34)(243, 34), 這代表243幀和34個通道。因爲卷積的效果,我們需要在殘差連接中間切割,去匹配這卷積生成的張量。

​ 此結構把每幀關節點的x, y軸座標作爲輸入,應用過濾器爲WW的卷積層來輸出CC個特徵, 然後應用BB個殘差網絡風格的殘差塊,來形成一個skip-connection【11】。每個殘差塊執行過濾器大小爲WW的空洞因子爲D=WBD=W^B的1D卷積操作,然後是線性映射,接下來是組正則化【15】,線性修正單元【31】和dropout【41】。通過參數WW每個殘差塊都指數級增大了感受野,儘管參數只有線性級的增加。過濾器超參數的設置WandDW and D是使得對於任何輸出幀的感受野形成一種樹狀,能夠覆蓋所有的輸入幀(參考圖一)。最後一個輸出包含所有輸入序列的一個3D姿態,同時考慮了過去和未來的時間信息.爲了評估這個方法在實時場景的應用, 我們試驗了因果卷積的方法(只對過去的信息進行卷積)。我們在附錄A.1A.1中展示了空洞卷積和因果卷積的結果。

​ 卷積網絡一般採用零填充來獲得和輸入大小一樣的輸出,然而在早期實驗中發現這會導致邊際效應,增加了損失值。所以,我們填充這個輸入序列通過左右幀關節點的複製(看 附錄 A.5A.5 圖 9a) 或者 採用valid 卷積(不填充)

​ 圖2顯示了我們的體系結構的實例化,其中接收字段大小爲243幀,B = 4塊。 對於卷積層,我們設置W = 3,C = 1024 輸出特徵,我們使用dropout丟失率p = 0.25。


4. Semi-supervised approach

​ 因爲獲得實際的3D姿態預測的標註很困難,我們引進了一種半監督訓練方法去提高在實際3D姿態標註有限情況下的姿態預測準確率。我們利用現有的2D姿態檢測器和未標註的視頻,將反向映射損失加入到監督損失函數中。去解決未標籤數據的自動編碼問題的關鍵思想是:將3D姿態預測作爲編碼器,把預測的姿態反向映射到2D姿態,基於此進行一個重建損失的計算。

圖3.帶有3D姿態預測模型的半監督訓練採用預測的2D關節點作爲輸入,我們迴歸人體的3D軌跡並添加一個軟限制(soft-constraint) 將未標籤預測的平均骨骼長度映射到標籤的數據中。所有的都在一起聯合訓練。WMPJPEWMPJPE 代表帶有權重的 MPJPEMPJPE

​ 此方法的概括在圖三中可見,我們有一個監督元件和一個,非監督元件(充當正則器)。這兩個對象是聯合優化的。有標籤的數據佔據一個批次的前半部分、無標籤的數據佔據一個批次的後半部分。對於有標籤的數據我們採用實際的3D姿態作爲目標,訓練一個有監督的損失。這個未標籤的數據被用於去執行一個自動編碼器損失,即將預測的3D姿態反向映射到2D,然後檢查它輸入的連貫性。

Trajectory model. 由於透視投影,屏幕上的2D姿勢取決於軌跡(即,在每個時間步長處空間中人體的相對位置)和3D姿勢(人體的相對關節位置)。因此我們迴歸人體的3D軌跡,使得可以正確的反向傳播到2D。爲此, 我們優化第二個神經網絡去迴歸相機空間的全局軌跡。後者在投影到2D姿態之前,添加到3D姿態中。這兩個網絡擁有同樣的結構但不共享任何的權重,因爲,就我們的觀察,他們在多任務方法訓練上會互相造成不好的效果。因爲隨着物體遠離攝像頭,迴歸精確的軌跡變的愈加困難,所以我們優化一種帶權重的平均關節點位置錯誤(WMPJPE)損失函數:

即,我們對每個樣本給一個實際相機空間深度yzy_z的倒數作爲權重。因爲在遠處物體中,相關的2D關節點都集中在一起,所以迴歸遠處的物體也不是我們的目標。

Bone length L2 loss 我們希望去激勵這個大概的3D姿態預測,而不僅僅是複製這個輸入。爲此,發現那是有效的去大概的匹配一個批次中以標籤的數據集的平均骨長度到未標籤數據的平均骨長度(“L2骨長損失” in 圖3),這在自我監督中啓到了巨大的作用。見在6.26.2

討論。 我們的方法僅僅需要相機的內部參數(如:焦距、焦點、偏斜參數),在一般的商用相機中都可得到。此方法並沒有特定的網絡結構,可以適用於任何採用2D關節點作爲輸入的3D姿態預測器。在實驗中,我們採用在$$3​$ 中描述的結構去映射2D到3D。去映射3D到2D,我們採用簡單的映射層(考慮線性參數:焦距、焦點;非線性失真係數:切向和徑向)。觀察到非線性項幾乎沒有什麼大的影響,這增加了我們方法對輸入視頻要求的實用性。


5. Experimental setup

5.1 數據集和評估

​ 我們在兩個動作捕捉數據集上做評估測試:Human3.6M[18,17] 和 HumanEva-I【39】。Human3.6M 訓練11個對象的360萬幀的數據,其中7個對象是由3D姿態的標註。每個對象包含15個動作的視頻,使用的是4個50赫茲的同步攝像頭來記錄的。根據之前的工作【34,44,30,42,8,33,47,29】,我們採用一個17幀的骨架,在5個對象(S1, S5, S6, S7, S8), 測試在(S9, S11)上。對於所有對象訓練出單個模型。

​ HumanEva-I 是一個很小的數據集,包含3個對象視頻記錄,由60Hz的3個角度攝像頭所拍攝。根據【30,14】,我們通過對每個動作訓練一個不一樣的模型(單行爲SA)來分別測試三個動作(行走、慢跑、拳擊), 如【34, 24】。採用15個關節點骨架和提供測試/訓練分割。

​ 本實驗中,考慮到3個評估協議。協議一:毫米級的平均關節點位置錯誤(MPJPE),意味着預測的關節點和實際的關節點之間的歐幾里得距離【26,45,50,30,43】。協議二:實際關節點剛性對齊(rigif alignment)之後的誤差P-MPJPE【30,42,8,33,47,14】。協議三:僅僅在標量上對其實際和預測的姿態關節點:N-MPJPE. 根據【37】的半監督實現。

5.2 2D姿態預測的實現細節

​ 很多之前的工作【30,49,44】,在圖片中提取實際的人體邊框,然後應用棧式沙漏型檢測器中預測2D關節點。本方法(圖2 圖3)不依賴於任何特殊的2D關節點檢測器,因此可以探究了一些沒有實際邊框標註的視頻。除了棧式沙漏檢測器,我們研究了DetectronDetectron(ResNet-101-FPN backbone)和CPN(需要提供人體邊框)

​ 對於Mask R-CNN 和 CPN, 我們從coco上的預訓練模型【28】上所開始的,然後在Human3.6M【18】的2D投影上做些(微調)fine-tune(COCO上的關節點與Human3.6M上有所不同)。在控制變量實驗中,我們也直接將2D的COCO關節點作爲輸入去預測Human3.6M的3D關節點。

​ 對於 Mask R-CNN, 我們採用ResNet-101後端,“stretched x1”策略【10】。在Human3.6M上做fine-tune時, 重新初始化最後一層關節點網絡和反捲積層,即迴歸heatmap到一系列新的關節點。我們在4個GPU上訓練,逐步的衰減學習率:6萬步的1e-3, 10萬步的1e-4, 1萬步的1e-5的學習率。在interface(實施)層,我們對heatmap做softmax並提取期待的2D分佈結果。這個結果比hard-argmax【29】更平滑、更準確。

​ 對於CPN,我們採用帶有384x288分辨率的ResNet50後端。去做fine-tune,重新初始化了GlobalNetGlobalNetRefineNetRefineNet, 然後在每批次32張圖片上訓練,衰減學習率:6k步的5e-5, 4k步的5e-6, 2k步的5e-7。在fine-tune時保持批標準化。在訓練時用實際的人體邊框。測試時用fine-tune的Mask R-CNN模型提供的邊框。

5.3 3D姿態預測的實現細節

​ 參考之前的一系列工作【30,26,45,50,30,34】。我們在相機空間中訓練和測試3D姿態,根據逆相機變換旋轉和平移實際姿勢,而不是使用全局軌跡(半監督設置除外,圖4)。

​ 選用Amsgrad【35】作爲優化器訓練80個epochs,對於Human3.6M,我們採用指數級衰減策略,η\eta = 0.001 (縮減因子爲α\alpha=0.95)應用到每個epoch。 所有的時域模型(感受野超過一的),在姿態序列中(圖3),都對樣本相關性很敏感,這導致批量標準化的偏差統計量(其假定獨立樣本)。在初步實驗中,發現在訓練過程中預測大量的相鄰幀會導致結果比沒有時域信息(在batch中隨機樣本)時更差,我們通過選擇從不同視頻中選擇片段來減少訓練樣本的相關性。這個片段的大小是模型結構的感受野大小,這是爲了預測單個3D姿態。我們在附錄A.5中分析詳情。

​ 我們可以極大的優化單幀通過代替空洞卷積爲步幅卷積(stride convolutions),其中步幅長度爲空洞係數(見附錄A.6)。這避免了計算從未使用的狀態,我們僅在訓練期間應用此優化。在interface中,我們可以處理整個序列,並重新使用其它3D幀的中間狀態,去做更快的interface。這種可實施性是因爲本模型沒有在時間維度使用任何的池化操作(?),爲了避免在valid conv中丟失幀,我們在序列的邊界做pad.(見附錄A.5, 圖片9a).

​ 實驗發現,默認的批次標準化超參數會導致在測試誤差和interface誤差上的較大的波動(1 mm).爲了避免這個,實現更穩定的運行,我們對批次標準化上定一個衰減策略:從β\beta=0.1開始,到最後一個epoch,β\beta=0.001結束。

​ 最後在訓練、測試中做一些橫向的數據擴充,在附錄A.4中顯示他的效果。

​ 對於 HumanEva, 我們使用N=128, α\alpha=0.996 ,訓練27幀的感受野1000epochs. 一些幀被傳感器dropout所破壞了,我們分割這些被破壞的幀成一個個實際相鄰的塊,把它們當作獨立的視頻來訓練。


6. Results

6.1 時域空洞卷積模型

​ 表一展示了在兩個評估協議上(圖5)感受野爲243個輸入幀、block=4 的卷積模型的結果。本模型在這兩種協議上比任何其他的模型的平均誤差都要低,且不依賴於其他的數據。在協議一上(表1a) 本模型是比之前最佳的結果【24】要平均好上6mm, 大約11%的誤差減少率。更可觀的是,【24】使用的是實際邊框,本模型則沒有用。

​ 在協議一上,使用時域信息的模型比未使用(W設置爲1)的要至少好上5mm.在快速運動的行爲上(比如走路6.7mm, 一起走路 =8.8mm),其中的差距會更大。具有因果卷積的模型的性能大約是單幀基線和空洞卷積模型之間的一半。因果卷積可以實現在線預測3D姿態,即預測最右邊的輸入幀。

​ 有趣的是在提供實際人體檢測框和有Mask-RCNN預測的檢測框之間的效果很相似,這表明我們的單一主題情景中的預測幾乎是完美的。圖表4顯示了包含預測的2D關節點和3D姿態,在附屬材料(附錄A.7)和https://dariopavllo.github.io/VideoPose3D 有視頻展示。

​ 接下來,我們評估2D關鍵點檢測器對最終結果的影響。 表3報告了我們的模型的準確性,具有實際2D姿勢,[30]的沙漏網絡預測(均在MPII上預先訓練並在人類3.6M上進行了調整),Detectron和CPN(均在COCO上預先訓練和 在Human3.6M上進行了調整)。 Mask R-CNN和CPN都比疊層沙漏網絡具有更好的性能。 改善可能是由於熱圖heatmap較高的分辨率,更強的特徵結合(Mask-RCNN的特徵金字塔【27,36】和CPN的RefineNet),和我們預測的更多樣的數據集,比如COCO【28】。當採用實際的2D關節點時,在協議一上 本模型比【30】錯誤降低了8.3mm. 【24】比它錯誤降低了1.2mm.因此,本模型的提升比僅僅在於使用了更好的2D檢測器。

表1:在Human3.6上的重建錯誤,圖例(*)實際的人體邊框。(+)額外的數據-【42,33,47,29】使用了MPII數據集上的2D標註,【33】使用額外的Leeds sports Pose(LSP)數據集和序列標註,【42,29】評估在每64幀。【14】向我們提供了最初公佈的結果的更正結果3。 較低的是更好的,最好的是粗體,最好的第二個下劃線。

​ 絕對位置誤差不會測量預測的平滑性,這對於視頻很重要。 爲了評估這一點,我們測量聯合速度誤差(MPJVE),對應於3D姿勢序列的第一導數的MPJPE。 表2顯示我們的時間卷積模型將單幀基線的MPJVE平均降低了76%,從而使姿勢更加平滑。

圖4、表2:鑑於時間和單幀基線的由卷積模型產生的3D姿態的速度誤差

表3: 在協議一和協議二下的2D檢測器結果下的影響。圖表GT(實際)、SH(棧式沙漏)、D(detection)、PT(預訓練)、FT(fine-tune)

表4:在HumanEva-I數據集、協議2下的單動作(SA)和多動作(MA)模型。

表5:在HumanEva-I數據集、協議2下的單動作(SA)和多動作(MA)模型。​

​ 最後表5在複雜度方面比較了與LSTM 模型【14】的差距。我們在一次interface時的測量了參數數量和浮點運算(FLOPs)詳情可見附錄A.2。本模型在計算量減半的情況下實現了更低的錯誤率。最大的模型(感受野爲243幀)計算複雜度和【14】幾乎相等,但誤差減少了3.8mm。這個表也強調了空洞卷積的效果,它就感受野方面僅僅增加了對數級別的複雜度。

​ 由於我們的模型是卷積的,因此可以在序列數量和時間維度上並行化。 這與RNN形成對比,RNN只能在不同的序列上進行並行化,因此對於小批量大小效率要低得多。 在interface過程中,我們在單個NVIDIA GP100 GPU上測量了大約150k FPS的單個長序列,即批量大小爲1(假設2D姿勢已經可用)。 但是,由於並行處理,速度在很大程度上與批量大小無關。

6.2 半監督方法

​ 我們採用[37]的設置,他們將Human3.6M訓練集的各種子集視爲標記數據,其餘樣本用作未標記數據。他們的設置通常還將所有數據下采樣到10 FPS(從50 FPS, 每五幀選一幀)。 通過首先減少subjects數量然後通過下采樣subject 1來創有標記的子集。

​ 由於數據集被下采樣,我們使用9幀的感受野,這相當於45幀上採樣。 對於非常小的子集,S1的1%和5%,我們使用3幀感受野,並且我們使用單幀模型用於0.1%的S1,其中僅有49幀可用。 我們僅對標記數據進行了CPN的fine-tuned,並通過僅針對幾個時期的標記數據進行迭代來加熱訓練(對於較小的子集,1個epoch≥1S,20個epochs)。

在這裏插入圖片描述

​ 圖5a顯示,隨着標記數據量的減少,我們的半監督方法變得更加有效。 對於標記幀數少於5K的設置,我們的方法在我們的監督基線上實現了約9-10.4 mm NMPJPE的改進。 我們的監督基線比[37]強得多,並且大大超過了他們的所有結果。

​ 圖5b顯示了針對數據集的非下采樣版本(50 FPS)的更常見的協議1下的我們的方法的結果。 此設置更適合我們的方法,因爲它允許我們利用視頻中的完整時態信息。 這裏我們使用一個27幀的感受野,除了1%的S1,我們使用9幀,和0.1%的S1,我們使用一幀。 我們的半監督方法在監督基線上獲得高達14.7 mm的MPJPE。

在這裏插入圖片描述

​ 圖5c切換用於實際 2D姿勢爲CPN 檢測的2D關鍵點,以測量我們是否可以使用更好的2D關鍵點檢測器更好地執行。 在這種情況下,改進可以達到22.6 mm MPJPE(S1的1%),這證明了更好的2D檢測可以提高性能。 同一圖表顯示骨骼長度項對於預測有效姿勢至關重要,因爲它迫使模型遵守運動學約束(圖表中的 “our semi-surprised GT abl)。 刪除該項會大大降低半監督訓練的有效性:對於1%的S1,誤差從78.1 mm增加到91.3 mm,而監督訓練誤差則達到100.7 mm。


7. 結論

​ 我們在視頻中引入了一個簡單的全卷積模型用於3D人體姿態估計。 我們的架構利用2D關鍵點軌跡上的空洞卷積來利用時間信息。 這項工作的第二個貢獻是反向投影,這是一種半監督的訓練方法,用於在標記數據稀缺時提高性能。 該方法適用於未標記的視頻,只需要內置的攝像頭參數。

我們的全卷積體系結構改善了Human3.6M數據集的先前最佳結果有6mm平均關節誤差,相當於相對減少了11%,並且還顯示了在HumanEva-I數據集上的大幅改進。 當5K或更少的註釋幀可用時,反投影可以在強基線上提高約10mm N-MPJPE(15mm MPJPE)的3D姿態估計精度。


A. Supplenmentary material 補充材料

A.1 信息流

圖表6中我們展示了了本模型中的信息流,也強調了對稱卷積和因果(causal)卷積之間的差異

在這裏插入圖片描述

模型中從底(輸入)到首(輸出)的信息流, 虛線表示skip-connectiobs

A.2 計算代價分析

在這裏插入圖片描述

A.3 感受野和通道大小的設置

​ 在圖8b中,我們總結了不感受野的測試誤差,即1, 9, 27, 72和243幀。 爲此,我們堆疊了不同數量的殘差塊,每個塊將接收場乘以3. 在單幀場景中,我們使用2個殘差塊並將所有層的卷積寬度設置爲1,從而獲得功能等效的模型 [30]。 可以看出,隨着感受野的增加,該模型似乎並未過擬合, 另一方面,誤差趨於快速飽和,這表明3D人體姿態估計的任務不需要建模長期依賴性, 因此,我們通常採用243幀的接收場。 類似地,在圖8a中,我們將通道大小在128和2048之間變化,具有相同的結果:模型不容易過度配置,但是誤差在某個點之後飽和。 由於計算複雜度相對於信道大小呈二次方增加,因此我們採用C = 1024。

在這裏插入圖片描述

圖表8, fine-tune 兩個實驗的CPN檢測器

A.4.數據增強和卷積類型

當我們刪除測試階段的數據增強時,在我們的最佳性能模型中,誤差增加到47.7 mm(從46.8 mm)。 如果我們也取消了訓練階段的數據增強,則誤差達到49.2 mm(另一個+1.5 mm)。

接下來,我們用常規的密集卷積代替空洞卷積。 在具有27幀的接收場和fine-tune的CPN檢測的模型中,誤差從48.8mm增加到50.4mm(+ 1.6mm),同時還將參數和計算的數量增加了≈3.5倍。 這突出表明,空洞卷積對於效率至關重要,並且它們抵消了過擬合。

A.5 批次策略

我們認爲重建誤差在很大程度上取決於模型的訓練方式,我們建議以預測一次只有一個輸出幀的方式。 爲了說明這一點,我們引入了一個新的超參數 - 塊大小C(或步長),它指定了每個樣本一次預測的幀數。 僅預測一幀,即C = 1,需要完整的接收場F作爲輸入。 預測兩幀(C = 2)需要F + 1幀,依此類推。 很明顯,預測多個幀在計算上更有效,因爲中間卷積的結果可以在幀之間共享 - 事實上,我們在在interface階段這樣做的。 另一方面,實驗顯示在訓練期間這樣做是有害的。

在這裏插入圖片描述

圖9b示出了當訓練具有不同步長的27幀模型(即1,2,4,8,16和32幀)時的重建誤差(以及訓練時間的相對加速)。 由於預測多個幀相當於增加批量大小 - 這不利於泛化結果[22] - 我們通過調整批量大小使結果具有可比性,以便模型始終預測1024幀。 因此,1幀實驗採用1024個序列的批量大小,2幀爲512,4幀爲256,依此類推。 該方法還確保模型將以相同數量的重量更新進行訓練。

​ 結果表明,誤差隨步長的減小而減小,但代價是訓練速度。 高步長訓練模型的性能受損是由相關性批次統計引起的[12]。 我們針對單幀輸出優化的實現了2倍的加速,但是對於具有較大接收場的模型(例如,≈4具有81幀),該增益甚至更高,並且使我們能夠訓練具有243幀的模型。

A.6 優化的訓練實現

圖10顯示了爲單幀預測定製的實施方案的重要性。 常規實現是逐層計算中間狀態,這對於長序列非常有效,因爲在層n中計算的狀態可以由層n + 1重用,而無需重新計算它們。 但是,對於短序列,這種方法變得無效,因爲不使用靠近邊界的狀態。 在單幀預測(我們用於訓練)的極端情況下,浪費了許多中間計算,如圖10a所示。 在這種情況下,我們用跨步卷積代替擴張的卷積,確保獲得在功能上等同於原始的卷積模型(例如,通過也適應跳過連接)。 該策略確保不會丟棄任何中間狀態。

如上所述,在推理中,我們使用常規的逐層實現,因爲它更有效地進行多幀預測。

在這裏插入圖片描述

比較於感受野爲243的兩種實現,在層到層的實現中,多箇中間狀態被丟棄,只保留實現過程中所需要的狀態。隨着訓練序列長度的增加,層到層的實現方式變的更加高效。

A.7 Demo 視頻

補充材料包含幾個視頻,突出顯示我們的時間卷積模型與單幀基線相比的預測的平滑性。 具體而言,我們並排顯示由單幀基線預測的3D姿勢,來自時間卷積模型的3D姿勢以及實際的3D姿勢。 一些演示視頻也可以在https://dariopavllo.githubIO/VideoPose3D上找到。

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