国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

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

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

0 引言

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

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

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

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

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

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

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

圖1 是A2J 的網(wǎng)絡(luò)結(jié)構(gòu),A2J 包含1 個骨干網(wǎng)絡(luò)和3 個分支,骨干網(wǎng)絡(luò)使用深度殘差網(wǎng)絡(luò)ResNet50[10],XY偏差估計分支預(yù)測錨點與關(guān)鍵點在圖像平面坐標軸XY上的偏差,Z偏差估計分支預(yù)測錨點與關(guān)鍵點在深度坐標軸Z上的偏差,錨點響應(yīng)估計分支預(yù)測錨點的響應(yīng)強度。這3 個分支都采用相同的實現(xiàn)方式,包含4 個卷積核為3×3 的卷積層,每個卷積層后都有批歸一化層(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)估計計算手部關(guān)鍵點的3D 坐標A2J 將坐標的XY值和坐標的Z值分別用XY偏差估計分支和Z偏差估計分支計算,沒有很好地利用深度圖的3D特征。解決辦法是將XY偏差估計分支和Z偏差估計分支合并為一個分支,即XYZ偏差估計分支,關(guān)鍵點坐標估計準確度得以提高。

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

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

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

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

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

表1 符號定義Tab.1 Symbol definition

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

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

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

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

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

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

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

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

1.2 偏差估計分支

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

圖4 偏差估計分支Fig.4 Offset estimation branch

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

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

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

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

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

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

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

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

2.2 損失計算

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

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

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

2.2.1 計算關(guān)鍵點估計損失

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

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

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

2.2.2 計算偏差估計損失

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

2.2.3 端到端訓(xùn)練

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

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

3 實驗與結(jié)果分析

3.1 實驗設(shè)置

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

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ù)據(jù)包含10 名實驗人員的手部圖片。標簽為21 個關(guān)鍵點的3D 坐標。

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

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

使用平均距離誤差對手部姿態(tài)估計的效果進行評估。

3.1.2 實現(xiàn)細節(jié)

本文的實驗環(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 框架實現(xiàn)。

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

3.2 與主流方法對比

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

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

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

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

HigherA2J與前沿的3D 手姿態(tài)估計方 法[4-5,9,15-16,19-24]相比。使用平均距離誤差的實驗結(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 展示不同方法對各個關(guān)鍵點的估計誤差。觀察得到:1)HigherA2J 的平均誤差比A2J 都有所降低,分別降低了0.32 mm 和0.35 mm。2)HigherA2J 無論是在準確度還是在運行速度上都超過了所對比的方法。3)A2J 方法在ICVL 數(shù)據(jù)集上的效果稍微差于V2V*和P2P,但是改進后的HigherA2J 方法比V2V*和P2P 效果都好,說明了基于錨點的方法的高效性。

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

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

3.3 消融實驗

如表7 所示,HigherA2J 的消融實驗在NYU 數(shù)據(jù)上進行,每次實驗去掉HigherA2J 相對于A2J 的一個改進點。

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

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

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

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

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

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

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

3.4 運行速度分析

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

4 結(jié)語

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

猜你喜歡
錨點準確度手部
基于自注意力機制與無錨點的仔豬姿態(tài)識別
藝術(shù)史研究的錨點與視角
——《藝術(shù)史導(dǎo)論》評介
影響重力式自動裝料衡器準確度的因素分析
高通聯(lián)手Ultraleap 為XR2提供手部交互解決方案
5G NSA組網(wǎng)下錨點站的選擇策略優(yōu)化
5G NSA組網(wǎng)技術(shù)方案研究
廚房料理小妙招——山藥去皮手不癢的竅門
論提高裝備故障預(yù)測準確度的方法途徑
Word中“郵件合并”功能及應(yīng)用
對GB 17167實施過程中衡器準確度要求問題的探討
平顺县| 霍邱县| 马尔康县| 蕉岭县| 恩平市| 建宁县| 武安市| 宁津县| 吉木萨尔县| 皮山县| 上饶县| 镇坪县| 寿阳县| 进贤县| 双牌县| 青川县| 灌阳县| 株洲市| 长泰县| 竹溪县| 焦作市| 崇明县| 廊坊市| 平利县| 新邵县| 宣化县| 马关县| 西华县| 拜泉县| 江川县| 苏尼特右旗| 油尖旺区| 华池县| 鄄城县| 德昌县| 馆陶县| 大关县| 家居| 万全县| 综艺| 文昌市|