• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      改進(jìn)的基于錨點(diǎn)的三維手部姿態(tài)估計(jì)網(wǎng)絡(luò)

      2022-04-12 09:25:12危德健王文明王全玉任好盼高彥彥王志
      計(jì)算機(jī)應(yīng)用 2022年3期
      關(guān)鍵詞:深度圖錨點(diǎn)關(guān)鍵點(diǎn)

      危德健,王文明,王全玉,任好盼,高彥彥,王志

      (北京理工大學(xué)計(jì)算機(jī)學(xué)院,北京 100081)

      0 引言

      高效準(zhǔn)確的3D 手部姿態(tài)估計(jì)在人機(jī)交互應(yīng)用中非常重要,如虛擬現(xiàn)實(shí)和增強(qiáng)現(xiàn)實(shí)。隨著深度相機(jī)和深度學(xué)習(xí)的快速發(fā)展,3D 手部姿態(tài)估計(jì)的準(zhǔn)確度和速度在近年來都有不少提高,不過由于手部姿態(tài)的豐富性、不同關(guān)節(jié)點(diǎn)的相似性、自遮擋等問題,3D手部姿態(tài)估計(jì)仍然是一個(gè)有挑戰(zhàn)的問題[1]。

      深度圖給出了被攝物體到攝像機(jī)的距離信息,相較于彩色(RGB)圖,深度圖對(duì)光照變化、陰影具有較高的魯棒性。基于深度圖的3D 手部姿態(tài)估計(jì)方法可以分成3 類:1)將深度圖當(dāng)作2D 圖像,利用2D 卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)進(jìn)行3D 手部姿態(tài)估計(jì);2)將深度圖轉(zhuǎn)化為3D體素,使用3D CNN進(jìn)行3D手部姿態(tài)估計(jì);3)將深度圖轉(zhuǎn)化為點(diǎn)云數(shù)據(jù),使用點(diǎn)云網(wǎng)絡(luò)進(jìn)行3D手部姿態(tài)估計(jì)。

      將深度圖轉(zhuǎn)化成體素或點(diǎn)云,利用3D CNN 或點(diǎn)云網(wǎng)絡(luò)可以更好地捕獲3D 空間信息。Ge 等[2]利用3D CNN 進(jìn)行手部姿態(tài)估計(jì),利用基于截?cái)嗟膸Х?hào)距離函數(shù)(Truncated Signed Distance Function,TSDF)方法[3]將深度圖轉(zhuǎn)換為體素,使用3D CNN 預(yù)測關(guān)鍵點(diǎn)3D 坐標(biāo)。Moon 等[4]提出的3D CNN 輸出的不是關(guān)鍵點(diǎn)坐標(biāo),而是體素?zé)釄D(Voxel Heatmap),通過取最大值的方法得到3D 關(guān)鍵點(diǎn)坐標(biāo)。Ge等[5]最早使用PointNet 和點(diǎn)云數(shù)據(jù)估計(jì)3D 手部姿態(tài),先將深度圖轉(zhuǎn)換為點(diǎn)云,經(jīng)過下采樣和歸一化后輸入給堆疊了兩層PointNet 的網(wǎng)絡(luò),輸出熱圖和單位矢量場,熱圖表示點(diǎn)到關(guān)鍵點(diǎn)的距離,單位矢量場表示點(diǎn)到關(guān)鍵點(diǎn)的方向,通過加權(quán)求和的方式計(jì)算關(guān)鍵點(diǎn)坐標(biāo)。

      基于體素的方法需要耗時(shí)的體素化過程,3D CNN 參數(shù)量大、計(jì)算速度較慢;基于點(diǎn)云的方法需要耗時(shí)的點(diǎn)云化過程,使用2D CNN 處理深度圖的效率較高。Tompson 等[6]最早利用CNN 進(jìn)行3D 手部姿態(tài)估計(jì),網(wǎng)絡(luò)的輸出不是關(guān)鍵點(diǎn)坐標(biāo),而是表示關(guān)鍵點(diǎn)分布概率的熱圖,通過取最大值的方式得到2D 關(guān)鍵點(diǎn)坐標(biāo)后,利用逆運(yùn)動(dòng)學(xué)結(jié)合深度值計(jì)算出3D關(guān)鍵點(diǎn)坐標(biāo)。只采用單張深度圖估計(jì)3D 手部姿態(tài)本質(zhì)上是一個(gè)病態(tài)問題(Ill-posed Problem),因?yàn)槭植孔藨B(tài)和對(duì)應(yīng)的投影不一定一一對(duì)應(yīng),使用多個(gè)視角的圖像可以解決此問題,但需要設(shè)置多臺(tái)相機(jī),相機(jī)之間校準(zhǔn)麻煩,用戶的活動(dòng)范圍也受到較大限制。Ge 等[7]將單張深度圖轉(zhuǎn)換為點(diǎn)云數(shù)據(jù),投影到多個(gè)視圖上,從而得到多個(gè)視角信息,利用多視圖CNN生成不同視圖的熱圖,從而提高3D 關(guān)鍵點(diǎn)估計(jì)的準(zhǔn)確度。

      根據(jù)網(wǎng)絡(luò)輸出類型可以分為基于回歸(Regression Based)的方法和基于檢測(Detection Based)的方法:基于回歸的方法輸出關(guān)鍵點(diǎn)坐標(biāo);基于檢測的方法輸出密集的估計(jì),比如熱圖或者偏差向量(Offset Vector)?;诨貧w的方法準(zhǔn)確度不高,基于檢測的方法常用運(yùn)算速度慢的反卷積提高特征圖的分辨率,并且網(wǎng)絡(luò)無法端到端訓(xùn)練。文獻(xiàn)[8]中詳細(xì)論述了基于回歸的方法和基于檢測的方法之間的關(guān)系,提出了使用取期望的后處理方式將兩種方法結(jié)合以提高準(zhǔn)確度。A2J(Anchor-to-Joint)[9]的思路與文獻(xiàn)[8]一致,將基于檢測的方法和基于回歸的方法結(jié)合起來。A2J 包含兩個(gè)步驟:1)在圖上均勻設(shè)置錨點(diǎn),先估計(jì)出錨點(diǎn)坐標(biāo)到關(guān)鍵點(diǎn)坐標(biāo)的偏差以及錨點(diǎn)的響應(yīng),錨點(diǎn)的坐標(biāo)加上錨點(diǎn)坐標(biāo)到關(guān)鍵點(diǎn)坐標(biāo)的偏差,即為關(guān)鍵點(diǎn)坐標(biāo);2)使用可微分的softmax 函數(shù)將錨點(diǎn)的響應(yīng)轉(zhuǎn)化為錨點(diǎn)的權(quán)重,對(duì)偏差和權(quán)重用加權(quán)求和的方式計(jì)算得到關(guān)鍵點(diǎn)坐標(biāo)。步驟1)輸出密集的估計(jì),步驟2)輸出關(guān)鍵點(diǎn)坐標(biāo)。但是A2J 的網(wǎng)絡(luò)結(jié)構(gòu)和損失函數(shù)設(shè)計(jì)不恰當(dāng),影響了網(wǎng)絡(luò)估計(jì)結(jié)果的準(zhǔn)確度;網(wǎng)絡(luò)分支存在冗余層,影響網(wǎng)絡(luò)的效率。

      針對(duì)這些問題,本文提出了更加高效準(zhǔn)確的HigherA2J網(wǎng)絡(luò),合并XY偏差估計(jì)分支和Z偏差估計(jì)分支,更好地利用深度圖的3D 信息;去除網(wǎng)絡(luò)分支中的冗余層,減少網(wǎng)絡(luò)參數(shù)量,提高運(yùn)行速度;設(shè)計(jì)關(guān)鍵點(diǎn)估計(jì)損失函數(shù),去掉錨點(diǎn)圍繞損失,增加偏差估計(jì)損失,更好地指導(dǎo)網(wǎng)絡(luò)的學(xué)習(xí)。通過實(shí)驗(yàn)論證了HigherA2J 的準(zhǔn)確度較高,運(yùn)行速度較快。

      1 HigherA2J回歸網(wǎng)絡(luò)

      圖1 是A2J 的網(wǎng)絡(luò)結(jié)構(gòu),A2J 包含1 個(gè)骨干網(wǎng)絡(luò)和3 個(gè)分支,骨干網(wǎng)絡(luò)使用深度殘差網(wǎng)絡(luò)ResNet50[10],XY偏差估計(jì)分支預(yù)測錨點(diǎn)與關(guān)鍵點(diǎn)在圖像平面坐標(biāo)軸XY上的偏差,Z偏差估計(jì)分支預(yù)測錨點(diǎn)與關(guān)鍵點(diǎn)在深度坐標(biāo)軸Z上的偏差,錨點(diǎn)響應(yīng)估計(jì)分支預(yù)測錨點(diǎn)的響應(yīng)強(qiáng)度。這3 個(gè)分支都采用相同的實(shí)現(xiàn)方式,包含4 個(gè)卷積核為3×3 的卷積層,每個(gè)卷積層后都有批歸一化層(Batch Normalization,BN)和ReLU(Rectified Linear Unit,ReLU)激活函數(shù)。

      圖1 A2J的網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Network structure of A2J

      A2J 的網(wǎng)絡(luò)結(jié)構(gòu)存在的不足與解決辦法如下:

      1)3D 手部姿態(tài)估計(jì)計(jì)算手部關(guān)鍵點(diǎn)的3D 坐標(biāo)A2J 將坐標(biāo)的XY值和坐標(biāo)的Z值分別用XY偏差估計(jì)分支和Z偏差估計(jì)分支計(jì)算,沒有很好地利用深度圖的3D特征。解決辦法是將XY偏差估計(jì)分支和Z偏差估計(jì)分支合并為一個(gè)分支,即XYZ偏差估計(jì)分支,關(guān)鍵點(diǎn)坐標(biāo)估計(jì)準(zhǔn)確度得以提高。

      2)偏差和響應(yīng)的關(guān)系比較直觀,偏差越小的錨點(diǎn),響應(yīng)強(qiáng)度越大,賦予的權(quán)重就越高,因?yàn)殡x關(guān)鍵點(diǎn)越近的錨點(diǎn)估計(jì)的可信度更高。在A2J 網(wǎng)絡(luò)中,偏差估計(jì)分支的起始位置是骨干網(wǎng)絡(luò)ResNet50 的卷積層4,錨點(diǎn)響應(yīng)估計(jì)分支的起始位置是骨干網(wǎng)絡(luò)ResNet50 的卷積層3,偏差估計(jì)分支的網(wǎng)絡(luò)層更多,將學(xué)到更加豐富的特征,而這對(duì)于偏差和響應(yīng)之間這種簡單的關(guān)系沒必要。解決辦法是將錨點(diǎn)響應(yīng)估計(jì)分支的起始位置也設(shè)置為骨干網(wǎng)絡(luò)ResNet50 的卷積層4。

      3)偏差和響應(yīng)分支各包含8 個(gè)網(wǎng)絡(luò)層(4 層卷積層+4 層BN 層),按照正態(tài)分布初始化權(quán)值,而骨干網(wǎng)絡(luò)ResNet50 使用在ImageNet 上預(yù)訓(xùn)練的模型作為初始權(quán)值,所以骨干網(wǎng)絡(luò)ResNet50 具有更強(qiáng)的視覺捕捉能力。偏差估計(jì)分支和響應(yīng)估計(jì)分支的視覺捕捉能力不如骨干網(wǎng)絡(luò),影響網(wǎng)絡(luò)訓(xùn)練的收斂速度。實(shí)驗(yàn)結(jié)果表明可以將分支的8 個(gè)網(wǎng)絡(luò)層簡化為用1個(gè)卷積核為3×3 的卷積層替代,使網(wǎng)絡(luò)更快收斂。

      對(duì)A2J 的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行以上修改,得到了HigherA2J 的網(wǎng)絡(luò)結(jié)構(gòu),如圖2 所示。

      圖2 HigherA2J的網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Network structure of HigherA2J

      表1 展示了本文使用的符號(hào)。HigherA2J 由1 個(gè)2D CNN骨干網(wǎng)絡(luò)ResNet50 和偏差估計(jì)分支、響應(yīng)估計(jì)分支組成,兩個(gè)分支分別預(yù)測了O(a,j)和P(a,j)。

      表1 符號(hào)定義Tab.1 Symbol definition

      在圖像上每隔16 個(gè)像素就設(shè)置1 個(gè)錨點(diǎn),如圖3 所示。每個(gè)錨點(diǎn)都預(yù)測了到所有關(guān)鍵點(diǎn)的偏差,偏差加上錨點(diǎn)本身的坐標(biāo)即可得到關(guān)鍵點(diǎn)坐標(biāo),因此錨點(diǎn)可以看成是一種局部回歸器。對(duì)于每個(gè)關(guān)鍵點(diǎn)來說,將所有錨點(diǎn)對(duì)它坐標(biāo)的預(yù)測進(jìn)行聚合得到最終的預(yù)測坐標(biāo)。因?yàn)槊總€(gè)錨點(diǎn)的貢獻(xiàn)程度不一樣,響應(yīng)估計(jì)分支估計(jì)每個(gè)錨點(diǎn)的響應(yīng),并通過softmax函數(shù)計(jì)算錨點(diǎn)權(quán)重。偏差的估計(jì)包含一定不確定性,加權(quán)求和的聚合方式可以減輕這種不確定性。關(guān)鍵點(diǎn)j的三維坐標(biāo)可以通過將所有錨點(diǎn)對(duì)它估計(jì)的偏差和錨點(diǎn)權(quán)重進(jìn)行加權(quán)求和得到:

      圖3 錨點(diǎn)與關(guān)鍵點(diǎn)的關(guān)系Fig.3 Relationship between anchor points and key points

      式中:(j)表示預(yù)測的關(guān)鍵點(diǎn)坐標(biāo),(a,j)是標(biāo)準(zhǔn)化后的權(quán)重,表示錨點(diǎn)a對(duì)于關(guān)鍵點(diǎn)j的權(quán)重。使用softmax 函數(shù)將所有錨點(diǎn)對(duì)關(guān)鍵點(diǎn)j的響應(yīng)標(biāo)準(zhǔn)化得到(a,j),如式(2)所示:

      1.1 骨干網(wǎng)絡(luò)架構(gòu)

      卷積神經(jīng)網(wǎng)絡(luò)在圖像分類、物體識(shí)別、目標(biāo)跟蹤等問題上展示了很強(qiáng)的能力。卷積神經(jīng)網(wǎng)絡(luò)由許多卷積層組成,每一層卷積層都輸出對(duì)應(yīng)的特征圖作為下一層卷積層的輸入,網(wǎng)絡(luò)從淺到深不同的卷積層所學(xué)習(xí)的特征也是從低到高,因此可以通過增加網(wǎng)絡(luò)深度來提取更加豐富的特征。然而實(shí)際上隨著網(wǎng)絡(luò)深度的加深,梯度消失、梯度爆炸的問題開始出現(xiàn),反而降低了網(wǎng)絡(luò)的準(zhǔn)確度。He 等[10]提出的深度殘差網(wǎng)絡(luò)(ResNet)使得訓(xùn)練更深的網(wǎng)絡(luò)成為了可能,深度殘差網(wǎng)絡(luò)在傳統(tǒng)的前向傳播基礎(chǔ)上,增加可以跳過某些層的躍層連接(Shortcut Connection),利用這種方式構(gòu)建的網(wǎng)絡(luò)在實(shí)踐中證明了ResNet 強(qiáng)大的學(xué)習(xí)能力。

      深度殘差網(wǎng)絡(luò)是由卷積層單元構(gòu)成,每個(gè)卷積層單元包含幾個(gè)卷積層,假設(shè)卷積層單元輸入為x,單元輸出為H(x),傳統(tǒng)網(wǎng)絡(luò)直接擬合H(x),但是 ResNet認(rèn)為H(x)=x+F(x),因此單元學(xué)習(xí)的就是F(x),稱為殘差。這樣設(shè)計(jì)的好處是當(dāng)x已經(jīng)是最優(yōu)結(jié)果時(shí),單元學(xué)習(xí)的F(x)就會(huì)趨近于0,即使網(wǎng)絡(luò)繼續(xù)加深,也不會(huì)使結(jié)果變得更差。因此本文采用深度殘差網(wǎng)絡(luò)作為HigherA2J 的骨干網(wǎng)絡(luò)。

      HigherA2J 使用2D CNN ResNet50 作為骨干網(wǎng)絡(luò)的一個(gè)優(yōu)勢便是可以利用豐富的RGB 數(shù)據(jù)對(duì)網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練,比如ImageNet 數(shù)據(jù)集。實(shí)踐證明使用在ImageNet 數(shù)據(jù)集上預(yù)訓(xùn)練的模型具有更強(qiáng)的視覺特征捕捉能力,可以幫助網(wǎng)絡(luò)更快收斂,降低誤差。

      為了更好地將ResNet 用于基于錨點(diǎn)的手部姿態(tài)估計(jì)任務(wù),對(duì)ResNet 進(jìn)行一些修改。將ResNet 網(wǎng)絡(luò)的卷積層4 輸出的特征圖大小改為輸入深度圖的1/16 不是1/32,更好地保留了空間關(guān)系。將卷積層4 的卷積修改為dilation=2 的擴(kuò)展卷積,以增大感受野。

      1.2 偏差估計(jì)分支

      偏差估計(jì)分支預(yù)測錨點(diǎn)到關(guān)鍵點(diǎn)的偏差O(a,j),如圖4所示。該分支只使用一個(gè)卷積核為3×3 的卷積層,不會(huì)改變特征圖的大小。因?yàn)檩敵鎏卣鲌D的大小是輸入深度圖的1/16,所以錨點(diǎn)分布為每隔16 個(gè)像素設(shè)置一個(gè)錨點(diǎn)。假設(shè)要預(yù)測k個(gè)關(guān)鍵點(diǎn)坐標(biāo),那么輸出特征圖的通道數(shù)為k× 3。

      圖4 偏差估計(jì)分支Fig.4 Offset estimation branch

      1.3 錨點(diǎn)響應(yīng)分支

      雖然偏差估計(jì)分支估計(jì)每個(gè)錨點(diǎn)到所有關(guān)鍵點(diǎn)的偏差,可以通過求平均的方式得到關(guān)鍵點(diǎn)坐標(biāo),但是因?yàn)槊總€(gè)錨點(diǎn)的估計(jì)可信度不一樣,離關(guān)鍵點(diǎn)越近的錨點(diǎn)估計(jì)可信度越高,應(yīng)該給它賦予更高的權(quán)重,而不是簡單求平均。因此使用錨點(diǎn)響應(yīng)估計(jì)分支,給每個(gè)錨點(diǎn)賦予不同權(quán)重,降低偏差估計(jì)結(jié)果中的噪聲,提高估計(jì)準(zhǔn)確度。

      另外許多基于檢測的方法在對(duì)估計(jì)結(jié)果進(jìn)行聚合時(shí),會(huì)限制權(quán)重分布為固定大小,比如基于高斯熱圖的方法會(huì)限制生成的高斯塊的大小,基于偏差向量的方法會(huì)限制候選點(diǎn)的分布范圍或者數(shù)量,以避免相關(guān)性小的點(diǎn)影響估計(jì)準(zhǔn)確度。這些方法會(huì)導(dǎo)致網(wǎng)絡(luò)泛化性變差,并且當(dāng)關(guān)鍵點(diǎn)周圍的深度值缺失時(shí),估計(jì)準(zhǔn)確度下降。與文獻(xiàn)[11]相似,本文設(shè)計(jì)的錨點(diǎn)響應(yīng)估計(jì)分支,不限制錨點(diǎn)范圍,所有錨點(diǎn)都參與了關(guān)鍵點(diǎn)位置的估計(jì),并且錨點(diǎn)的分布是每隔16 個(gè)像素設(shè)置一個(gè)錨點(diǎn),當(dāng)深度圖中部分深度值缺失時(shí),也不會(huì)影響到估計(jì)準(zhǔn)確度。

      錨點(diǎn)響應(yīng)估計(jì)分支預(yù)測錨點(diǎn)的響應(yīng)P(a,j)。錨點(diǎn)響應(yīng)估計(jì)分支和偏差估計(jì)分支幾乎一樣,唯一區(qū)別是錨點(diǎn)響應(yīng)分支輸出特征圖的通道數(shù)為k× 1,而偏差估計(jì)分支輸出特征圖的通道數(shù)為k× 3。估計(jì)出的錨點(diǎn)響應(yīng)會(huì)通過softmax 函數(shù)轉(zhuǎn)變?yōu)殄^點(diǎn)權(quán)重。

      2 HigherA2J學(xué)習(xí)過程

      2.1 數(shù)據(jù)預(yù)處理

      手部在深度圖中通常只占比較小的區(qū)域,因此首先需要找到深度圖中的手部區(qū)域,裁剪出來后縮放到固定的大小作為HigherA2J 網(wǎng)絡(luò)的輸入。為了確定手部位置,可以使用COM(Center Of Mass)方法根據(jù)深度閾值計(jì)算手部中心點(diǎn)位置,不過該方法在背景雜亂時(shí)容易出錯(cuò),出現(xiàn)只檢測到部分手部的情況,為了提高準(zhǔn)確度,按照文獻(xiàn)[4]的方法,先使用COM 方法計(jì)算初始手部中心點(diǎn),將手部區(qū)域裁剪出來;再訓(xùn)練一個(gè)2D 卷積網(wǎng)絡(luò),該網(wǎng)絡(luò)以裁剪后的手部深度圖作為輸入,計(jì)算初始手部中心點(diǎn)到真實(shí)手部中心點(diǎn)的偏差,得到更準(zhǔn)確的手部中心點(diǎn)坐標(biāo)。

      找到手部中心點(diǎn)后,使用中心點(diǎn)裁剪手部區(qū)域,將裁剪后的圖像縮放成正方形圖像作為HigherA2J 網(wǎng)絡(luò)的輸入。對(duì)于關(guān)鍵點(diǎn)j,Q(j)表示關(guān)鍵點(diǎn)j在裁剪后圖像上的真實(shí)圖像坐標(biāo),包含3 個(gè)值,分別使用Q(j,x)、Q(j,y)和Q(j,z)表示。為了使用一個(gè)分支預(yù)測Q(j),需要將Q(j)的三個(gè)值統(tǒng)一到可比較的維度。假設(shè)手部中心點(diǎn)的深度值為C,先將Q(j,z)減去C。假設(shè)縮放后的圖像大小為h,那么Q(j,x)和Q(j,y)的取值范圍為[0,h],將Q(j,z)的取值范圍處理為[-h/2,h/2]。

      2.2 損失計(jì)算

      誤差用于指導(dǎo)網(wǎng)絡(luò)的學(xué)習(xí),也被稱為損失。如圖1 所示,A2J 使用關(guān)鍵點(diǎn)估計(jì)損失和錨點(diǎn)圍繞損失。關(guān)鍵點(diǎn)估計(jì)損失計(jì)算估計(jì)的關(guān)鍵點(diǎn)坐標(biāo)和真實(shí)的關(guān)鍵點(diǎn)坐標(biāo)之間的誤差,錨點(diǎn)圍繞損失的作用是讓高響應(yīng)錨點(diǎn)分布在關(guān)鍵點(diǎn)周圍,而不是聚集在某一側(cè),因?yàn)閷?shí)驗(yàn)發(fā)現(xiàn)當(dāng)高響應(yīng)錨點(diǎn)聚集在關(guān)鍵點(diǎn)某一側(cè)時(shí),對(duì)該關(guān)鍵點(diǎn)坐標(biāo)的估計(jì)準(zhǔn)確度較低。A2J 網(wǎng)絡(luò)先輸出密集的估計(jì),即錨點(diǎn)坐標(biāo)到關(guān)鍵點(diǎn)坐標(biāo)的偏差和錨點(diǎn)的響應(yīng),再使用softmax 函數(shù)對(duì)偏差和響應(yīng)加權(quán)求和得到關(guān)鍵點(diǎn)坐標(biāo)。

      錨點(diǎn)到關(guān)鍵點(diǎn)的偏差對(duì)關(guān)鍵點(diǎn)坐標(biāo)估計(jì)準(zhǔn)確度的影響很大,然而A2J 并沒有計(jì)算網(wǎng)絡(luò)輸出的錨點(diǎn)坐標(biāo)到關(guān)鍵點(diǎn)坐標(biāo)的偏差的誤差,因此HigherA2J 使用偏差估計(jì)損失計(jì)算該誤差以提高關(guān)鍵點(diǎn)估計(jì)準(zhǔn)確度。從圖2 可以看出偏差估計(jì)損失和關(guān)鍵點(diǎn)估計(jì)損失計(jì)算網(wǎng)絡(luò)不同階段輸出的誤差。

      偏差估計(jì)損失結(jié)合關(guān)鍵點(diǎn)估計(jì)損失提高了關(guān)鍵點(diǎn)估計(jì)的準(zhǔn)確度,使高權(quán)重錨點(diǎn)的分布更加合理。實(shí)驗(yàn)發(fā)現(xiàn)錨點(diǎn)圍繞損失的作用不是很大,因此HigherA2J 去掉了錨點(diǎn)圍繞損失。

      2.2.1 計(jì)算關(guān)鍵點(diǎn)估計(jì)損失

      偏差估計(jì)分支計(jì)算錨點(diǎn)坐標(biāo)到關(guān)鍵點(diǎn)坐標(biāo)的偏差,錨點(diǎn)響應(yīng)分支計(jì)算每個(gè)錨點(diǎn)的權(quán)重,通過加權(quán)求和的方式可以得到預(yù)測的所有關(guān)鍵點(diǎn)坐標(biāo)。關(guān)鍵點(diǎn)估計(jì)損失定義為:

      Lj是基于兩點(diǎn)之間距離關(guān)系設(shè)計(jì)的距離損失函數(shù)。常用的指導(dǎo)網(wǎng)絡(luò)學(xué)習(xí)的損失函數(shù)有L2 損失函數(shù)和L1 損失函數(shù),離群點(diǎn)對(duì)L2 損失函數(shù)影響比較大,不利于網(wǎng)絡(luò)的學(xué)習(xí),因此基于偏差向量的估計(jì)方法通常使用L1 損失函數(shù),但是L1 損失函數(shù)在0 點(diǎn)無法求導(dǎo),L1 損失函數(shù)的改進(jìn)版本SmoothL1 損失函數(shù)在0 點(diǎn)處可導(dǎo)。

      雖然SmoothL1 損失函數(shù)可以指導(dǎo)網(wǎng)絡(luò)訓(xùn)練得到不錯(cuò)的效果,但是SmoothL1 損失函數(shù)不能反映預(yù)測的關(guān)鍵點(diǎn)坐標(biāo)和真實(shí)的關(guān)鍵點(diǎn)坐標(biāo)在3D 空間上的距離,因此為了更好地指導(dǎo)網(wǎng)絡(luò)學(xué)習(xí)對(duì)關(guān)鍵點(diǎn)坐標(biāo)的預(yù)測,可以基于兩點(diǎn)之間距離關(guān)系設(shè)計(jì)距離損失函數(shù)Lj:

      2.2.2 計(jì)算偏差估計(jì)損失

      使用SmoothL1 損失函數(shù)計(jì)算偏差估計(jì)的損失:

      2.2.3 端到端訓(xùn)練

      HigherA2J 使用以上兩種損失監(jiān)督網(wǎng)絡(luò)的訓(xùn)練,和文獻(xiàn)[11]類似,只是文獻(xiàn)[11]的訓(xùn)練方式是先用偏差估計(jì)損失訓(xùn)練好網(wǎng)絡(luò),然后再用關(guān)鍵點(diǎn)估計(jì)損失對(duì)訓(xùn)練好的網(wǎng)絡(luò)進(jìn)行微調(diào)(fine-tune),實(shí)驗(yàn)發(fā)現(xiàn)這種訓(xùn)練方式不如同時(shí)用關(guān)鍵點(diǎn)估計(jì)損失和偏差估計(jì)損失對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。損失計(jì)算公式為:

      loss1 前的系數(shù)λ用于平衡關(guān)鍵點(diǎn)估計(jì)損失和偏差估計(jì)損失,λ=1。正則化通過Adam 優(yōu)化器的權(quán)重衰減參數(shù)進(jìn)行控制。

      3 實(shí)驗(yàn)與結(jié)果分析

      3.1 實(shí)驗(yàn)設(shè)置

      3.1.1 數(shù)據(jù)集與評(píng)估方式

      HANDS 2017 數(shù)據(jù)集[12]從BigHand 2.2M數(shù)據(jù)集[13]和First-Person Hand Action 數(shù)據(jù)集[14]中采樣得到9.57E+5 的訓(xùn)練數(shù)據(jù)和2.95E+5 的測試數(shù)據(jù),訓(xùn)練數(shù)據(jù)集包含5 名實(shí)驗(yàn)人員的手部圖片,測試數(shù)據(jù)包含10 名實(shí)驗(yàn)人員的手部圖片。標(biāo)簽為21 個(gè)關(guān)鍵點(diǎn)的3D 坐標(biāo)。

      NYU Hand Pose 數(shù)據(jù)集[6]包含7.2E+4 的訓(xùn)練數(shù)據(jù)和8.2+E3 的測試數(shù)據(jù),每張深度圖都包含36 個(gè)3D 關(guān)鍵點(diǎn)坐標(biāo)。與文獻(xiàn)[15-16]一致,選擇正面拍攝的圖片,使用36 個(gè)關(guān)鍵點(diǎn)中的14 個(gè)。

      ICVL Hand Pose 數(shù)據(jù)集[17]包含2.2E+4 的訓(xùn)練數(shù)據(jù)和1.5E+3 的測試數(shù)據(jù)。標(biāo)簽是16 個(gè)關(guān)鍵點(diǎn)的3D 坐標(biāo)。

      使用平均距離誤差對(duì)手部姿態(tài)估計(jì)的效果進(jìn)行評(píng)估。

      3.1.2 實(shí)現(xiàn)細(xì)節(jié)

      本文的實(shí)驗(yàn)環(huán)境:操作系統(tǒng)為Ubuntu 18.04,CPU 為Intel Core-i5(2.9 GHz),內(nèi)存16 GB,顯卡為NVIDIA RTX 2060 6 GB。神經(jīng)網(wǎng)絡(luò)使用PyTorch 框架實(shí)現(xiàn)。

      HigherA2J 的參數(shù)設(shè)置與A2J 基本一致。輸入的深度圖片處理為176×176 的分辨率。數(shù)據(jù)增強(qiáng)包括了隨機(jī)縮放([0.5,1.5]),隨機(jī)旋轉(zhuǎn)([-180°,+180°]),隨機(jī)平移([-5,+5])。以0.5 的概率添加隨機(jī)噪聲。使用Adam 作為優(yōu)化器,學(xué)習(xí)率為0.000 35,權(quán)重衰減(Weight Decay)為10E-4。在NYU 數(shù)據(jù)集上訓(xùn)練35 個(gè)epoch,每訓(xùn)練10 個(gè)epoch 學(xué)習(xí)率降為之前的0.2 倍。在ICVL 和HANDS 2017 上訓(xùn)練17 個(gè)epoch,每訓(xùn)練7 個(gè)epoch 學(xué)習(xí)率降為之前的0.1 倍。

      3.2 與主流方法對(duì)比

      3.2.1 HANDS 2017 數(shù)據(jù)集對(duì)比分析

      HigherA2J與前沿的3D 手姿態(tài)估計(jì)方法[4,9,16,18-19]相 比較,使用平均距離誤差的實(shí)驗(yàn)結(jié)果在表2 中給出。表中:AVG 表示在所有實(shí)驗(yàn)人員提供的數(shù)據(jù)上的結(jié)果,SEEN 表示在訓(xùn)練數(shù)據(jù)中出現(xiàn)的實(shí)驗(yàn)人員提供的數(shù)據(jù)上的結(jié)果,UNSEEN 表示不在訓(xùn)練數(shù)據(jù)中出現(xiàn)的實(shí)驗(yàn)人員提供的數(shù)據(jù)上的結(jié)果,帶有“*”的方法表示使用了模型集成技術(shù)。觀察得到:1)HigherA2J 的平均誤差比A2J 降低了0.1 mm。2)在有挑戰(zhàn)性的百萬級(jí)數(shù)據(jù)集上,HigherA2J 無論是在準(zhǔn)確度還是在運(yùn)行速度上都超過了所對(duì)比方法。3)值得注意的是雖然HigherA2J 在“UNSEEN”數(shù)據(jù)上的估計(jì)準(zhǔn)確度較A2J 降低了0.4 mm,但是依舊比其他所比較方法優(yōu)秀,而且HigherA2J 在“SEEN”數(shù)據(jù)上的估計(jì)準(zhǔn)確度比A2J 提高了0.71 mm,平均估計(jì)準(zhǔn)確度HigherA2J 優(yōu)于A2J。

      表2 在HANDS 2017數(shù)據(jù)集上的方法比較Tab.2 Method comparison on HANDS 2017 dataset

      3.2.2 NYU和ICVL數(shù)據(jù)集對(duì)比分析

      HigherA2J與前沿的3D 手姿態(tài)估計(jì)方 法[4-5,9,15-16,19-24]相比。使用平均距離誤差的實(shí)驗(yàn)結(jié)果在表3 和表4 中給出。

      表3 在NYU數(shù)據(jù)集上的方法比較Tab.3 Method comparison on NYU dataset

      表4 在ICVL數(shù)據(jù)集上的不同方法比較Tab.4 Method comparison on ICVL dataset

      表5 和表6 展示不同方法對(duì)各個(gè)關(guān)鍵點(diǎn)的估計(jì)誤差。觀察得到:1)HigherA2J 的平均誤差比A2J 都有所降低,分別降低了0.32 mm 和0.35 mm。2)HigherA2J 無論是在準(zhǔn)確度還是在運(yùn)行速度上都超過了所對(duì)比的方法。3)A2J 方法在ICVL 數(shù)據(jù)集上的效果稍微差于V2V*和P2P,但是改進(jìn)后的HigherA2J 方法比V2V*和P2P 效果都好,說明了基于錨點(diǎn)的方法的高效性。

      表5 在NYU數(shù)據(jù)集上不同關(guān)鍵點(diǎn)的誤差 單位:mmTab.5 Errors of different key points on NYU dataset unit:mm

      表6 在ICVL數(shù)據(jù)集上不同關(guān)鍵點(diǎn)的誤差 單位:mmTab.6 Errors of different key points on ICVL dataset unit:mm

      3.3 消融實(shí)驗(yàn)

      如表7 所示,HigherA2J 的消融實(shí)驗(yàn)在NYU 數(shù)據(jù)上進(jìn)行,每次實(shí)驗(yàn)去掉HigherA2J 相對(duì)于A2J 的一個(gè)改進(jìn)點(diǎn)。

      表7 在NYU數(shù)據(jù)集上的消融實(shí)驗(yàn)結(jié)果Tab.7 Ablation experimental results on NYU dataset

      實(shí)驗(yàn)一,以HigherA2J 為基礎(chǔ),使用XY偏差估計(jì)分支和Z偏差估計(jì)分支替代XYZ偏差估計(jì)分支;實(shí)驗(yàn)二,在HigherA2J基礎(chǔ)上去掉偏差估計(jì)損失;實(shí)驗(yàn)三,在HigherA2J 基礎(chǔ)上使用SmoothL1 損失函數(shù)替換距離損失函數(shù)。觀察得到:

      1)XYZ偏差估計(jì)損失有效提高關(guān)鍵點(diǎn)估計(jì)準(zhǔn)確度。

      2)去掉偏差估計(jì)損失準(zhǔn)確度較差,說明只要提高錨點(diǎn)對(duì)關(guān)鍵點(diǎn)的偏差估計(jì)準(zhǔn)確度,可以提高關(guān)鍵點(diǎn)坐標(biāo)預(yù)測準(zhǔn)確度,驗(yàn)證了基于錨點(diǎn)的關(guān)鍵點(diǎn)估計(jì)方法的高效性。

      3)使用SmoothL1 損失函數(shù)計(jì)算關(guān)鍵點(diǎn)誤差效果不如使用距離損失函數(shù),證明了距離損失函數(shù)的高效性。

      為了進(jìn)一步驗(yàn)證距離損失函數(shù)相對(duì)于SmoothL1 損失函數(shù)的高效性,使用不同的骨干網(wǎng)絡(luò)(ResNet18、ResNet50)和數(shù)據(jù)集(NYU、ICVL)進(jìn)行測試。如表8 所示,使用距離損失函數(shù)的網(wǎng)絡(luò)的誤差比使用SmoothL1 損失函數(shù)的網(wǎng)絡(luò)的誤差要小,證明了距離損失函數(shù)相較于SmoothL1 損失函數(shù)更適合于關(guān)鍵點(diǎn)估計(jì)。

      表8 在NYU數(shù)據(jù)集和ICVL數(shù)據(jù)集上距離損失函數(shù)和SmoothL1損失函數(shù)結(jié)果對(duì)比Tab.8 Result comparison between distance loss and SmoothL1 loss on NYU dataset and ICVL datasets

      3.4 運(yùn)行速度分析

      HigherA2J 在NVIDIA RTX 2060 上的平均運(yùn)行速度為121.17 frame/s(fps),對(duì)于每一張深度圖需要1.75 ms 的圖片讀取和預(yù)處理,5.1 ms 的網(wǎng)絡(luò)前向推理和后處理,證明了HigherA2J 具有優(yōu)秀的實(shí)時(shí)性。

      4 結(jié)語

      本文提出了一種改進(jìn)的基于錨點(diǎn)的手部姿態(tài)估計(jì)網(wǎng)絡(luò)HigherA2J,在A2J 的基礎(chǔ)上改進(jìn)了網(wǎng)絡(luò)結(jié)構(gòu)和損失函數(shù)。在公共數(shù)據(jù)集NYU、ICVL 和HANDS2017 上的實(shí)驗(yàn)結(jié)果表明,HigherA2J 無論是準(zhǔn)確度還是運(yùn)行速度都超過了A2J。HigherA2J 運(yùn)行速度快,骨干網(wǎng)絡(luò)可以輕易地替換為輕量化網(wǎng)絡(luò),適合部署到嵌入式端。雖然基于錨點(diǎn)的關(guān)鍵點(diǎn)估計(jì)方式在局部特征的獲取上取得了不錯(cuò)的效果,但是HigherA2J對(duì)全局特征的獲取還不夠優(yōu)秀,下一步的研究方向是增強(qiáng)網(wǎng)絡(luò)對(duì)于全局特征的獲取能力以提高關(guān)鍵點(diǎn)坐標(biāo)預(yù)測的準(zhǔn)確度。

      猜你喜歡
      深度圖錨點(diǎn)關(guān)鍵點(diǎn)
      聚焦金屬關(guān)鍵點(diǎn)
      肉兔育肥抓好七個(gè)關(guān)鍵點(diǎn)
      基于NR覆蓋的NSA錨點(diǎn)優(yōu)選策略研究
      5G手機(jī)無法在室分NSA站點(diǎn)駐留案例分析
      5G NSA錨點(diǎn)的選擇策略
      5G NSA組網(wǎng)下錨點(diǎn)站的選擇策略優(yōu)化
      基于深度圖的3D-HEVC魯棒視頻水印算法
      一種基于局部直方圖匹配的深度編碼濾波算法
      疊加速度譜在鉆孔稀少地區(qū)資料解釋中的應(yīng)用
      科技視界(2016年2期)2016-03-30 11:17:03
      醫(yī)聯(lián)體要把握三個(gè)關(guān)鍵點(diǎn)
      光山县| 郧西县| 肇州县| 武定县| 朝阳市| 资中县| 定边县| 温州市| 灵山县| 西贡区| 彭水| 衡水市| 建昌县| 抚松县| 禹城市| 诸城市| 封丘县| 屯昌县| 南溪县| 金沙县| 永川市| 平昌县| 美姑县| 英德市| 民权县| 沂水县| 南召县| 武夷山市| 九台市| 富民县| 仁化县| 肥城市| 调兵山市| 万山特区| 黄大仙区| 鹿邑县| 贵德县| 新泰市| 平武县| 汝阳县| 军事|