劉 瑋,戴仕明,楊文姬,楊紅云,3,錢文彬
1(江西農業(yè)大學 計算機與信息工程學院, 南昌330045)
2(江西農業(yè)大學 軟件學院, 南昌330045)
3(江西省高等學校 農業(yè)信息技術重點實驗室, 南昌 330045)
E-mail :ywenji614@163.com
基于視覺的三維手勢估計在人機交互和虛擬現(xiàn)實等眾多領域[1-3]中有著重要的應用,隨著這些領域不斷發(fā)展,準確的三維手勢估計越來越重要.但是由于手的靈活性,手指關節(jié)的多變性以及手部自我遮擋等原因,基于視覺的三維手勢估計仍是一個具有挑戰(zhàn)性的問題.
近年來,基于深度圖像的三維手勢估計取得了巨大的成果[4-10],但深度相機在現(xiàn)實應用中具有一定的局限性.相比于深度相機,普通彩色相機的應用更為廣泛,因此本文是基于彩色圖像進行的.與深度圖像相比,彩色圖像缺少深度信息,這使得從單個彩色圖像估計三維手勢具有更大的挑戰(zhàn)性.
為了解決從單個彩色圖像估計準確的三維手勢困難這一問題,本文提出了一種基于級聯(lián)卷積神經網絡的估計方法,該級聯(lián)網絡分為三階段,手部掩膜估計階段、二維手勢估計階段和三維手勢估計階段.首先,基于手的輪廓信息有助于更準確的進行手部定位與跟蹤[11],因此,在級聯(lián)網絡中設計了手部掩膜估計階段,用于產生手部的掩膜信息和特征信息,該信息有助于后續(xù)的手姿態(tài)估計;二維手勢估計階段則利用生成的手掩膜和特征信息估計二維手勢,并利用多個子階段優(yōu)化估計的二維手勢;三維手勢估計階段在二維手勢估計的基礎上,通過三維提升網絡,得到最終的三維手勢.
該三階段級聯(lián)網絡采用端到端的訓練,因此各階段可實現(xiàn)相互促進.一方面,第一階段手部掩膜估計階段生成的掩膜以及相應的特征信息有助于第二階段的二維手勢估計,從而進一步優(yōu)化第三階段的三維手勢估計結果;另一方面,基于深度學習的反向傳播原理,二維手勢估計與三維手勢估計階段又會優(yōu)化掩膜估計階段,因此可實現(xiàn)各階段共同進步,優(yōu)于各階段網絡單獨訓練[12].
本文的主要貢獻如下:1)新增手部掩膜估計階段,將生成的手部掩膜以及相應特征信息加入到二維手勢估計中,手掩膜提供的軟約束可以使手勢估計更為準確;2)提出了一種新穎的級聯(lián)卷積神經網絡,從單個彩色圖像估計三維手勢,三階段進行端到端訓練,實現(xiàn)三階段互相促進,最終優(yōu)化三維手勢估計的準確性;3)在兩個公開數(shù)據(jù)集上進行評估,實驗結果表明該三階段級聯(lián)網絡產生了卓越的三維手勢估計精度,驗證了其有效性.
隨著低成本的深度傳感器出現(xiàn),基于深度圖像的三維手勢估計研究迅速發(fā)展,因為深度圖像提供了更加豐富的背景信息,降低了深度模糊度.隨著深度學習概念的普及[13],深度神經網絡也被用于從深度圖像估計手勢,這些方法大致可以分成生成方法[14-16]、判別方法[17-19]和混合方法[20-22]三類.但深度相機在實際生活中的應用還不夠廣泛,具有一定的局限性,目前大部分深度相機僅應用于科學研究中,這使得基于深度圖像的手勢估計方法缺乏實際應用性.
彩色圖像在日常生活中應用廣泛,所以目前也有很多學者進行基于彩色圖像手勢估計方法的研究.早期基于彩色圖像的手勢估計方法[23,24]基于圖像序列估計手勢,其中Gorce等人[23]通過最小化目標函數(shù)動態(tài)估計三維手勢、手紋理和光源.隨著深度學習被應用于深度圖像的手勢估計中,基于深度神經網絡的彩色圖像手勢估計[25,26]也被提出.目前大多方法都是通過設計不同的深度神經網絡來進行手勢的估計,例如Z&B[12]使用了兩個獨立的深度神經網絡來估計三維手姿態(tài),兩個獨立的網絡包括二維手勢估計網絡和三維手勢估計網絡,估計前對圖像進行定位、裁剪和調整尺寸預處理操作,將裁剪圖像輸入二維估計網絡估計二維手熱圖,再輸入三維估計網絡估計三維手勢.然而該方法是兩個網絡單獨訓練,不能達到全局最優(yōu).Wang等人[27]將手部掩膜估計和二維手勢估計級聯(lián)起來,用于提高單個彩色圖像的二維手勢估計精度.但是未能提升到三維手勢估計,缺乏實際應用性.Cai等人[28]提出了一個弱監(jiān)督網絡,使用一個深度正則化器,將從彩色圖像估計的三維手勢轉換成深度圖,將三維坐標估計損失轉化為深度圖損失,有效的解決了三維關鍵點標記獲取困難這一問題.Ge等人[29]將手表面網格估計加入到網絡中,將彩色圖像估計的二維手熱圖通過圖形卷積網絡,估計手表面網格,再通過手表面網格回歸三維手勢,該方法識別精度較高,但是手表面網格真實標記缺乏,制作合成數(shù)據(jù)也較為困難,數(shù)據(jù)獲取代價較大.
基于文獻[12]中各階段網絡單獨訓練,不能達到全局最優(yōu),以及文獻[27]中手勢估計未能提升到三維,缺乏實際應用性等問題,本文提出了一種基于級聯(lián)卷積神經網絡的三維手勢估計方法.與Z&B[12]提出的方法不同點有兩個,首先本文在估計二維手勢前新增了一個手的掩膜估計,并將估計得到的掩膜和特征信息加入到二維手勢估計的卷積中去,這樣做能夠提高二維手勢估計的準確性,其次本文將新增的手部掩膜估計、二維手勢估計和三維手勢估計級聯(lián)起來,進行端到端的訓練,發(fā)現(xiàn)三階段級聯(lián)進行端到端的訓練能夠互相促進共同進步.與Wang等人[27]方法的區(qū)別在于本文將三維手勢估計加入到級聯(lián)網絡中,進行單個彩色圖像的三維手勢估計,此外他們的方法沒有對原始彩色圖像進行手部定位裁剪,對于手部比例較小的圖像識別效果不佳,而本文使用了裁剪網絡對原始彩色圖像手的位置進行定位,并將手部裁剪出來,有助于提高手姿態(tài)估計的準確度.
本文從單個彩色圖像估計三維手勢,如圖1所示,采用了三階段級聯(lián)架構,由手掩膜估計階段、二維手勢估計階段和三維手勢估計組成.
圖1 三階段級聯(lián)網絡框架圖
首先使用裁剪網絡對原始圖像進行預處理,定位手的位置,將手部裁剪出來,得到以手為中心的單個彩色圖像作為級聯(lián)網絡的輸入,通過手掩膜估計網絡生成手部掩膜和特征信息,并將掩膜和特征信息輸入到二維估計網絡中估計手的二維關鍵點熱圖,再通過三維估計網絡,學習多種可能的手部關節(jié)及其先驗概率,在二維手熱圖的基礎上輸出最有可能的三維手勢.
(1)
手在每張圖像所占比例有大有小,而網絡通常對于手部明顯的圖像識別率較高,對于手部所占比例較小,手部不明顯的圖像識別效果較差.為了解決手部比例問題,本文簡化了卷積姿態(tài)機器(CPM)網絡[30]的網絡架構作為分割網絡,對原始彩色圖像進行定位和裁剪的預處理,該網絡通過學習估計手部的掩膜,利用掩膜將手部定位并按比例分割出來,統(tǒng)一輸出分辨率為256×256的裁剪彩色圖像,定位和裁剪的預處理能夠使后續(xù)的姿態(tài)估計更為準確.
為了解決從單個彩色圖像估計準確的三維手勢困難這一問題,本文提出了一種基于級聯(lián)卷積神經網絡的估計方法,網絡結構如圖2所示.
圖2 三階段級聯(lián)網結構圖
第一階段對手部掩膜進行估計,該階段使用VGG-19網絡[31]的前部分,對輸入的裁剪彩色圖像進行卷積得到128通道的特征F,對特征F再卷積得到2通道的手部掩膜M.估計得到的手部掩膜M就是對彩色圖像中手的空間布局進行編碼,而這種空間布局可以通過卷積圖像得到.
第二階段是進行二維手勢的估計,該階段利用了5個連續(xù)的子階段[32]估計手關鍵點熱圖,使用二維熱圖來描述二維手勢是因為Pfister等人[33]證明了回歸二維關鍵點熱圖要優(yōu)于二維坐標.該階段首先將128通道的特征F和2通道的手掩膜M連接,生成新的130通道的特征信息S,作為二維手勢估計第1個子階段的輸入,通過第1個子階段輸出手部21個關鍵點的手熱圖1(21通道),后4個子階段都將前一子階段估計的21通道熱圖和130通道特征信息S連接生成的151通道特征信息作為輸入,最后一子階段估計的手熱圖5作為第二階段二維手勢估計的結果.
第三階段進行三維手勢的估計,其將第二階段估計的結果作為三維手勢估計的輸入,使用一個三維提升網絡來估計三維手勢.該網絡由兩個分支構成,兩個分支分別估計三維手勢的規(guī)范坐標xc旋轉矩陣R,結合規(guī)范坐標和旋轉矩陣,可得到3.2節(jié)中的三維手勢的相對歸一化坐標xrel.相對歸一化坐標xrel可以通過相應的規(guī)范坐標xc旋轉得到,因此通過直接估計規(guī)范坐標xc和旋轉矩陣R,可間接得到相對歸一化坐標xrel:
xrel=xc·RT
(2)
(3)
再估計繞y軸旋轉的Ry:
(4)
最終結合兩部分得到旋轉矩陣R:
R=Rxz·Ry
(5)
掩膜估計使用了標準的softmax交叉熵損失來計算手部掩膜估計損失loss mask,其中y是標記,su是掩膜預測階段第u個標簽的輸出分數(shù),而掩膜是二值圖,u∈{0,1}:
(6)
二維手勢估計使用了L2損失計算關鍵點的二維熱圖損失loss 2d,其中prej是估計的二維關鍵點熱圖,gtj是相應標記:
(7)
(8)
以及對規(guī)范坐標進行旋轉的L2平方損失lossR,Rpre和Rgt分別是估計旋轉矩陣和對應標記:
(9)
三維手勢估計的損失loss 3d為兩部分之和:
loss 3d=lossxc+lossR
(10)
該數(shù)據(jù)集簡稱RHD[12],是一個合成的手姿態(tài)數(shù)據(jù)集,每張彩色圖像都是通過軟件合成的,數(shù)據(jù)集分41258張訓練圖像和2728張測試圖像,圖像的分辨率統(tǒng)一為320×320,數(shù)據(jù)集包含20個不同人物,在39種不同光照條件、背景和相機視點下采集,每張彩色圖像具有相應的掩膜和深度圖,以及精確的手部21個關鍵點的二維和三維注釋.由于視點和手形的巨大變化,光照、背景和視點的變化,以及較低的分辨率,該數(shù)據(jù)集非常具有挑戰(zhàn)性.
該數(shù)據(jù)集簡稱STB[34],是一個真實的手姿態(tài)數(shù)據(jù)集,為18000個手立體對(每個立體對表示同一左手在兩個不同視角下的三維手姿態(tài))提供21個關鍵點的二維和三維注釋,彩色圖像的分辨率統(tǒng)一為640×480,數(shù)據(jù)集是在6種不同背景和不同的光照條件下采集的單人左手姿態(tài).STB數(shù)據(jù)集分為12個部分,本文完全依照文獻的設置,將其中10個部分用作訓練集,另外2個部分用作評估集.
OneHand10K[27]是一個真實的手姿態(tài)數(shù)據(jù)集,以下簡稱OHK,包含10000張訓練圖像和1703張測試圖像,數(shù)據(jù)集是在不同背景和不同光照條件下采集的單手姿態(tài),每張彩色圖像具有相應的手部掩膜和二維注釋.本文使用OHK的掩膜標記來訓練分割網絡,以提升定位網絡的準確性.在使用該數(shù)據(jù)集前,由于該數(shù)據(jù)集圖像尺寸不統(tǒng)一,本文對圖像進行了預處理,以便網絡的訓練,使用調整比例m對彩色圖像和掩膜進行尺寸調整,其中w和h是原圖像的寬和高,l是目標尺寸:
(11)
令l=320,調整后輸出320×320大小的彩色圖像和掩膜,并且限制空白處在右下角,對彩色圖像的空白區(qū)域使用灰度值(128,128,128)進行填充,對掩膜的空白區(qū)域使用零填充.
本文提出的方法是基于Tensorflow框架[35]實現(xiàn),使用Adam優(yōu)化器[36]訓練網絡,所有的實驗都是在一臺Nvidia RTX2080Ti單GPU的服務器上完成的.
5.1.1 分割網絡的訓練過程
分割網絡使用了真實數(shù)據(jù)集OHK訓練,以增強分割網絡對于真實數(shù)據(jù)的效果,后續(xù)的實驗將會對比使用RHD訓練的分割網絡和使用OHK訓練的分割網絡的性能.分割網絡訓練的損失函數(shù)為手部掩膜估計損失loss mask.分割網絡的訓練,批量大小為8,初始學習率設置為10-5,訓練20K次后學習率衰減一次,往后每訓練10K次學習率衰減一次,衰減比率為0.1,并且在40K次迭代后停止訓練.
5.1.2 三階段級聯(lián)網絡的訓練過程
由于不存在同時擁有手部掩膜、二維手勢標記和三維手勢標記三種標記的真實數(shù)據(jù)集,本文先使用合成數(shù)據(jù)集RHD預訓練網絡,再通過真實數(shù)據(jù)集STB調整網絡,讓網絡適應真實世界.預訓練階段批量大小為8,初始學習率5×10-5,每50K迭代學習率衰減一次,衰減比率為0.3,預訓練階段在250K次迭代后停止訓練.調整階段批量大小為8,初始學習率為5×10-5,每50K迭代學習率衰減一次,衰減比率為0.1在200K次迭代后停止訓練.
預訓練階段的損失loss RHD為掩膜估計損失、二維手勢估計損失和三維手勢估計損失三部分之和,由于手部掩膜估計損失數(shù)值較大,所以為該項添加的權重比v以縮小其損失數(shù)值,經過大量實驗,發(fā)現(xiàn)令v=0.05實現(xiàn)了最好的效果:
loss RHD=v·loss mask+loss 2d+loss 3d
(12)
調整階段的訓練損失loss STB為二維手勢估計損失和三維手勢估計損失兩部分之和:
loss STB=loss 2d+loss 3d
(13)
本文使用章節(jié)3中介紹的兩個公開可用的數(shù)據(jù)集評估提出的三階段級聯(lián)網絡:合成數(shù)據(jù)集RHD和真實數(shù)據(jù)集STB.使用了兩個評估指標:1)端點誤差(EPE);2)正確關鍵點(PCK)百分比曲線下的面積(AUC).本文的實驗完全遵守文獻[12]中的評估標準.
本文首先評估了不同的數(shù)據(jù)集訓練對網絡的影響,對于相同的級聯(lián)網絡,使用了三種不同數(shù)據(jù)集訓練:1)只使用合成數(shù)據(jù)集RHD訓練級聯(lián)網絡;2)只使用真實數(shù)據(jù)集STB訓練級聯(lián)網絡;3)使用合成數(shù)據(jù)集RHD預訓練網絡,再使用真實數(shù)據(jù)集STB微調網絡.三個實驗所使用的級聯(lián)網絡保持一致,參數(shù)設置保持一致,分割網絡保持一致,分割網絡只使用RHD訓練.
在真實數(shù)據(jù)集STB上進行評估,實驗結果如圖3所示.
圖3 評估不同訓練數(shù)據(jù)集對級聯(lián)網絡的影響
融合RHD和STB的訓練得到了最好的結果,而直接使用合成數(shù)據(jù)集訓練的模型得到了最差的結果.這是由于合成數(shù)據(jù)集和真實數(shù)據(jù)集相比,圖像特征具有很大的合成域轉移,合成圖像訓練的網絡不能很好的直接推廣到真實世界中.而只用真實數(shù)據(jù)集STB訓練的網絡效果并不好的原因有兩個,一是由于真實數(shù)據(jù)訓練樣本較少,二是真實數(shù)據(jù)集沒有手部掩膜標記,只使用了二維標記和三維標記訓練網絡,并沒有發(fā)揮三階段級聯(lián)網絡的優(yōu)勢.
本文對三階段級聯(lián)網絡進行了模塊有效性實驗,通過去除或拆分三階段級聯(lián)網絡的某個級聯(lián)部位,以驗證級聯(lián)的各個模塊的有效性.將三階段級聯(lián)網絡mask-2d-3d和3個拆分的網絡進行比較:
1)2d-3d網絡,表示將三階段級聯(lián)網絡新增的手掩膜估計階段去除,二維估計和三維估計級聯(lián)訓練;
2)mask-2d網絡,表示手掩膜估計階段和二維手勢估計階段級聯(lián)訓練,而三維手勢估計階段單獨訓練;
3)2d網絡,表示將三階段級聯(lián)網絡新增的手掩膜估計階段去除,并且二維手勢估計階段和三維手勢估計階段均單獨訓練.
注意該實驗保持參數(shù)設置一致,均使用了RHD和STB融合訓練,使用了相同的分割網絡對圖像進行預處理,分割網絡只使用RHD訓練.
在真實數(shù)據(jù)集STB上進行評估,實驗結果如圖4和表1所示.圖4中,三階段級聯(lián)網絡mask-2d-3d在真實數(shù)據(jù)集STB上實現(xiàn)了最好的效果,AUC曲線明顯高于其他網絡結構的結果,原因是三階段級聯(lián)網絡的手掩膜估計對二維手勢估計和三維手勢估計提供了軟約束,姿態(tài)估計部分又反向傳播,有利于手部掩膜估計,三者級聯(lián)共同提升.該實驗驗證了三階段級聯(lián)網絡的有效性,三個階段缺一不可.
圖4 驗證級聯(lián)網絡模塊有效性的對比實驗
如表1所示,三階段級聯(lián)網絡mask-2d-3d實現(xiàn)了最小的誤差,平均端點誤差7.961(mm)和中值端點誤差10.496(mm)均實現(xiàn)最??;而掩膜和二維手勢估計級聯(lián)的網絡mask-2d相比于各階段單獨訓練的網絡2d,減小了誤差,提升性能,驗證了加入掩膜估計階段的有效性;二維手勢估計和三維手勢估計級聯(lián)的網絡2d-3d,相比于2d網絡,也得到了提升,驗證了將三維姿態(tài)估計加入級聯(lián)網絡的有效性.
表1 模塊有效性對比實驗的誤差分析
Table 1 Comparative experiment to error analysis of module effectiveness
網絡AUCEPE median(mm)EPE mean(mm)2d0.62310.09812.859mask-2d0.6329.77312.5062d-3d0.6389.86912.221mask-2d-3d0.6877.96110.496
以往的分割網絡[12,30]只使用合成數(shù)據(jù)訓練,由于當時不存在具有手部掩膜信息的真實彩色圖像數(shù)據(jù)集.本文使用真實手部數(shù)據(jù)集OHK,該數(shù)據(jù)集具有彩色圖像的手部掩膜信息,使用該數(shù)據(jù)集代替合成數(shù)據(jù)集RHD去訓練網絡,以提高分割網絡在真實世界的效果.該實驗使用相同的三階段級聯(lián)網絡,參數(shù)設置一致,使用兩個不同數(shù)據(jù)集訓練的分割網絡,一個使用合成數(shù)據(jù)集RHD訓練,另一個使用真實數(shù)據(jù)集OHK訓練.在真實數(shù)據(jù)集STB上進行評估,實驗結果如圖5所示,真實數(shù)據(jù)OHK的AUC達到0.706,要高于合成數(shù)據(jù)RHD的0.687,OHK訓練的分割網絡在真實世界實現(xiàn)了更好的效果.
將本文提出的三階段級聯(lián)網絡與RHD以及STB數(shù)據(jù)集上最先進三維手勢估計方法進行比較.在RHD數(shù)據(jù)集上,如圖6所示,本文提出的方法優(yōu)于RHD上最先進的方法[12],將AUC從0.675提升到0.742,性能提升了9.93%.
在STB數(shù)據(jù)集上,三階段級聯(lián)網絡融合了合成數(shù)據(jù)集RHD和真實數(shù)據(jù)集STB的訓練,其中Ours網絡使用了OHK訓練的分割網絡,而Ours(without OHK)網絡使用RHD訓練分割網絡,實驗結果如圖7所示,本文提出的方法優(yōu)于在STB上最先進的四個方法[12,26,34,37],AUC達到了0.977,驗證了三階段級聯(lián)網絡對三維手勢估計的優(yōu)越性,同時未使用OHK數(shù)據(jù)集訓練的級聯(lián)網絡也得到了較好的效果,AUC達到了0.958,進一步驗證了三階段級聯(lián)的有效性.
圖5 不同數(shù)據(jù)集訓練的分割網絡的對比實驗
圖6 在合成數(shù)據(jù)集RHD上和其他方法的對比實驗
圖7 在真實數(shù)據(jù)集STB上和其他方法的對比實驗
本文提出了一種新穎的級聯(lián)卷積神經網絡,用于估計單個彩色圖像的三維手勢,級聯(lián)網絡分三階段,手部掩膜估計、二維手勢估計和三維手勢估計.將第一階段估計的掩膜和提取的特征加入到二維手勢估計中,對后續(xù)的手勢估計提供軟約束,以提高手勢估計的準確性,而手勢估計又會通過反向傳播對掩膜估計進行優(yōu)化,三階段互相促進實現(xiàn)共同優(yōu)化.在兩個公開數(shù)據(jù)集上進行了實驗,并與最先進方法進行了比較,通過實驗驗證了該級聯(lián)網絡的有效性與先進性.