申瓊鑫, 楊 濤, 徐 勝
(福州大學 物理與信息工程學院,福建 福州 350116)
人體姿態估計是對圖像或視頻數據中的人的關節點位置進行檢測并還原的過程。根據估計結果的數據維度的不同分為2D人體姿態估計和3D人體姿態估計。目前,2D人體姿態估計技術獲得了較大進展[1]。Toshev A等人[2]首次提出了人體關鍵點解決方案,使用級聯形式的卷積神經網絡(convolutional neural network,CNN)完成更準確的姿態估計?,F在大多數的3D人體姿態估計都是在2D姿態估計的基礎上完成的。Wang K等人[3]提出長短期記憶( long short-term memory,LSTM)網絡架構,利用自頂向下的反饋機制,從而達到優化關節點的目的。Bogo F等人[4]提出自監督校正機制,其本質是利用了同一個姿態的二維特征和三維特征的一致性。上述研究從不同的方向上去優化關節點的位置,在效果上都取得了不同程度的提升,但基本上采用的的都是強監督學習模型,其需要大量的帶標簽的數據。
本文提出一種基于RGB-D圖像的弱監督學習模型實現3D人體姿態估計的方法。采用一種端到端的弱監督模型,解決數據標簽不足的問題,并在弱監督模型中對生成的2D熱圖進行積分回歸,克服基于熱圖估計的方法中所存在的缺陷,同時改善3D回歸網絡模塊,以實現減少網絡運算量,降低訓練時間的目的。
本文所使用的網絡整體實現具體框架如圖1所示。1)將深度圖像或者彩色圖像作為網絡輸入;2)圖像數據通過2D姿態估計模塊生成熱圖,即H2d;3)將熱圖進行積分回歸,生成對應的關節坐標J2d;4)將關節點坐標作為3D回歸模塊的輸入,回歸出3D關節坐標H3d,最終實現3D人體姿態估計。

圖1 3D人體姿態估計弱監督網絡模型
2D姿態估計網絡模塊采用了沙漏結構作為該部分的主體網絡[5],通過重復自下而上,自上而下推理的機制,重新評估整個圖像的初始估計和特征。整個沙漏結構不改變特征的尺度,只改變特征的深度,并且采用中繼監督訓練方式,因此,在堆疊網絡結構時不會出現梯度爆炸的問題。并在網絡中加入積分回歸操作[6],基于熱圖回歸的方式雖然表示方便且容易組合其它深層特征圖,但其存在著固有的缺陷,考慮到直接監督坐標的效果不如監督熱圖,需要將兩者結合起來。因此,可以通過將熱圖轉換成關節點坐標,從而避免這些缺點。使用積分回歸的優點在于積分函數是可微的,允許端到端訓練并且輸出是連續的。對于3D回歸模塊所采用的結構如圖2所示,其包含線性(linear)層、批歸一化(batch normalization,BN)、ReLU(rectified linear units)層、Dropout層,稱之為Block[7]。用于得到最后的3D關節點坐標。可以看到這部分網絡使用線性層進行運算,因此,能夠大幅減少網絡運算復雜度,節約運算成本,并且對于網絡超參數的訓練也比較容易。根據實際情況可以選擇級聯多個Block作為回歸模塊。

圖2 3D回歸模塊單元示意
本文目標是對于給定的彩色圖或者深度圖能夠估計出其對應的3D人體姿勢J3d。本文提出的網絡框架包括2D姿態估計網絡和深度回歸模塊。
本文采用沙漏結構作為2D姿態估計模塊,用于預測人體各個關鍵點的位置??紤]到運算的規模和速度,選擇使用2個沙漏結構構成輕量級的2D估計模塊。該網絡輸出的是一組包含J(J=16)個關節點的低分辨率熱圖。2D模塊的輸入是經過預處理后的數據,圖像分辨率為256×256,熱圖輸出的分辨率為64×64。訓練2D模塊所使用的損失函數為
(1)
針對2D姿態檢測模塊輸出的熱圖進行關節坐標轉換,對于提升估計網絡模型的性能是很有必要的,因為熱圖進行轉換成關節坐標之后,后續網絡不會再要求熱圖保持更高的分辨率,因此能夠大幅減少后續網絡的運算復雜度。對2D熱圖進行積分,關節被估計為熱圖中所有位置的積分,并根據概率加權求和做歸一化。由于積分是沒有參數的,因此在計算和存儲方面帶來的開銷很小。轉換公式分別為
(2)
(3)
式中Jk為轉換后的關節點,Hk為熱圖,k為正則化的熱圖,Ω為Hk的域。
回歸模塊的主要任務獲取各個關節的深度信息。此模塊鑲嵌在2D姿態估計的后面,因此在進行端到端的訓練時,會充分利用權重共享功能。并且可以通過實驗確定構成3D回歸網絡所需要的Block數目。3D回歸網絡訓練的Loss函數為
(4)
式中xi為通過2D檢測器或照相機標定的二維關節坐標,yi為預測的各關節的三維坐標,N為關節點數目。
本文的實驗數據集包括RGB數據集MPII[8]、Human 3.6M[9]和深度數據集ITOP[10]、K2HGD[11]。使用MPII中的2萬張圖像進行訓練;使用Human 3.6M中的5萬張圖像進行訓練,1 000張作為測試;ITOP包含3D關節標簽的深度圖,但其數據量不充足且不準確,因此將其糾錯后作為測試樣本;使用K2HGD中的1萬張圖作為訓練樣本。由于深度圖和彩色圖包含的信息不一樣,不能直接進行混合訓練,因此將彩色圖數據進行灰度處理,從而減少數據信息不同造成的干擾。
本文使用Human 3.6M和ITOP數據作為測試樣本,并將本文的方法與文獻[7]進行對比實驗,比較其精度、參數量、訓練時間三個指標。本實驗基于Torch平臺,訓練采用的學習率為0.001,batch-size的尺寸為16,分兩個階段進行訓練,第一階段僅使用2D標簽數據訓練2D網絡,第二階段使用3D標簽數據集訓練整個網絡。實驗使用NVIDIA GTX1060顯卡,64位Ubuntu系統,Intel i5—7600CPU。使用平均精度(mean average precision,mAP)作為評價標準,通過計算網絡預測得到的關節點坐標與真實標簽的人體關節點坐標之間歐氏距離,當距離小于設定的閾值即認為估計正確。
為了更加科學地選擇3D回歸模塊所用的堆疊模塊Block的數目,對Block數目不同的模型分別在彩色圖像Human 3.6M和深度圖像ITOP上進行實驗測試,并與文獻[12]所提出的方法進行對比試驗,分別將Human 3.6M和ITOP數據上的測試結果進行可視化如圖3所示。

圖3 3D姿態估計可視化結果
表1給出了ITOP數據集上各關節的預測精度。在表2中給出其對應的準確率、訓練時間、參數數量三個指標。

表1 模型在閾值為10 mm時的各關節精度 %

表2 模型性能比較
根據表2的結果可以看出,使用4個Block堆疊模塊,其精確度確實增加了,但是其訓練時間和參數量也增多了,考慮到網絡的輕量性,選擇2個Block堆疊模塊的模型作為3D回歸模塊。實驗結果表明:加入積分回歸的思想,是有助于減少整個網絡模型的參數量和訓練時間的,相比于文獻[12],本文方法參數量減少了20.9 %,訓練時間減少了37.9 %,并且該模型同時適用于彩色圖像和深度圖像。但本文所提供的方法在精度上略有降低了,相比于文獻[7],在深度圖數據集上降低了約1.5 %,在彩色圖上降低了1.14 %,其中的原因可能在于兩個方面:1)網絡模型訓練規模太小,從而導致精度的下降;2)彩色圖數據集的數量遠大于深度圖數據集,因而在深度圖上損失了更多的精度。
本文提出了一種基于RGB-D數據的一種弱監督學習網絡模型實現3D人體姿態估計的方法。方法的核心思想首先在于將基于熱圖回歸的方式轉換為基于關節點的回歸;其次是將彩色數據與深度數據進行關聯,使得該網絡可以同時適用于彩色圖和深度圖。方法主要在降低訓練時間和參數量兩個方面做出了努力,并取得了一定的進步,但也損失了一部分估計精度。因此,后續還需要在輕量級網絡的基礎上往提高精度方面繼續展開研究。