楚康波 牛芳琳



摘要:為了提升基于深度學(xué)習(xí)的手勢(shì)識(shí)別算法的精度與效率,文章提出了一種改進(jìn)的YOLOv4-tiny的手勢(shì)識(shí)別模型,首先,利用輕量化網(wǎng)絡(luò)MobileNet代替YOLOv4-tiny中的三個(gè)CSPBlock作為YOLOv4-tiny的主干提取網(wǎng)絡(luò),目的是降低網(wǎng)絡(luò)的計(jì)算量和參數(shù)量。其次在YOLOv4-tiny網(wǎng)絡(luò)中引入自注意力機(jī)制,更好地獲取豐富的上下文信息,通過結(jié)合自注意力機(jī)制的方法,彌補(bǔ)模型輕量化帶來(lái)的部分精度損失。經(jīng)過在不同特征提取模型以及注意力機(jī)制的作用下的手勢(shì)識(shí)別測(cè)試,MobileNet比CSPBlock模型在YOLOv4-tiny中對(duì)手勢(shì)識(shí)別準(zhǔn)確率上相差不大,但MobileNet模型運(yùn)行時(shí)間僅為CSPBlock模型所需時(shí)間的三分之二。同時(shí),與未引入注意力機(jī)制的準(zhǔn)確率相比較,MobileNet模型識(shí)別準(zhǔn)確率從93%上升到96%。由此表明,文章提出的基于注意力機(jī)制和MobileNet手勢(shì)識(shí)別模型比普通手勢(shì)識(shí)別模型識(shí)別效果更佳。
關(guān)鍵詞:深度學(xué)習(xí);手勢(shì)識(shí)別;YOLOv4-tiny;輕量級(jí);注意力機(jī)制
中圖分類號(hào):TP391 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)29-0004-03
手勢(shì)作為一種無(wú)聲的交流工具,成為生活中溝通交流的重要方式。特別在一些特殊的場(chǎng)合(比如聽力障礙者間的交流、真空的條件下等),更能體現(xiàn)手勢(shì)的便捷性和重要性。隨著科技的發(fā)展,人機(jī)交互成了人們生活中的一部分,人控制機(jī)器,使機(jī)器按照人的意志去工作,此時(shí)手勢(shì)作為一種無(wú)聲的交流工具被廣泛地應(yīng)用于各種人機(jī)交互中,包括航空航天、智能家居、安全駕駛等領(lǐng)域。
目前手勢(shì)識(shí)別算法主要有三種,分別是基于硬件設(shè)備、基于機(jī)器視覺和基于深度學(xué)習(xí)的方法。首先,基于硬件設(shè)備的方法,比較成熟且應(yīng)用廣泛,具有識(shí)別精度高、識(shí)別速度快等特點(diǎn),比如可穿戴數(shù)據(jù)手套[1]、Kinect[2]和Leap motion[3]等方式,但其設(shè)備昂貴、人機(jī)交互不順暢。其次,基于機(jī)器視覺[4]的方法雖然降低了手勢(shì)識(shí)別算法對(duì)于硬件的依賴,但其網(wǎng)絡(luò)模型復(fù)雜化,降低了手勢(shì)識(shí)別速度。
近年來(lái),深度學(xué)習(xí)在目標(biāo)檢測(cè)[5]、圖像分類等領(lǐng)域得到了巨大的發(fā)展。如YOLO[6]、SSD[7]、R-CNN[8]和Faster R-CNN[9]等算法在目標(biāo)檢測(cè)和分類問題中取得了較高的準(zhǔn)確率。謝淋東等人[10]提出了一種多尺度卷積特征融合的SSD手勢(shì)識(shí)別方法,引入了不同卷積層的特征融合思想,經(jīng)過空洞卷積下采樣操作與反卷積上采樣操作,實(shí)現(xiàn)網(wǎng)絡(luò)結(jié)構(gòu)中的淺層視覺卷積層與深層語(yǔ)義卷積層的融合,代替原有的卷積層用于手勢(shì)識(shí)別,以提高模型對(duì)中小目標(biāo)手勢(shì)的識(shí)別精度;張雷樂等人[11]為了提高手勢(shì)識(shí)別的準(zhǔn)確性、魯棒性以及收斂速度,提出一種基于改進(jìn)殘差網(wǎng)絡(luò)和動(dòng)態(tài)調(diào)整學(xué)習(xí)率的手勢(shì)識(shí)別方法研究;袁帥等人[12]提出基于改進(jìn)YOLOv3網(wǎng)絡(luò)與貝葉斯分類器相結(jié)合的手勢(shì)識(shí)別深度學(xué)習(xí)模型,雖然解決了數(shù)據(jù)易受影響問題并且增強(qiáng)了網(wǎng)絡(luò)不變性,但是該方法使用的手勢(shì)數(shù)據(jù)集較為簡(jiǎn)單且背景較為單一;郭紫嫣等人[13]針對(duì)使用YOLOv4算法識(shí)別手勢(shì)的誤檢和漏檢較多及手勢(shì)數(shù)據(jù)較少的問題,提出了一種基于改進(jìn)YOLOv4的手勢(shì)交互算法,該方法能識(shí)別復(fù)雜場(chǎng)景下的手勢(shì),并且能夠滿足實(shí)時(shí)要求。基于深度學(xué)習(xí)的手勢(shì)識(shí)別方法雖然能夠取得較高的識(shí)別精度,但隨著網(wǎng)絡(luò)層數(shù)的不斷加深,給神經(jīng)網(wǎng)絡(luò)模型在嵌入式設(shè)備上存儲(chǔ)的硬件成本、計(jì)算量和訓(xùn)練運(yùn)行的難度上帶來(lái)了巨大挑戰(zhàn)。因此,本文提出一種具有輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò)的手勢(shì)識(shí)別方法,在保持高精度的同時(shí),降低模型大小,使模型更利于在資源有限的移動(dòng)端或嵌入式設(shè)備上部署。
1 Yolov4-tiny網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv4-tiny的主干網(wǎng)絡(luò)為CSPdarknet53-tiny,檢測(cè)模型的主要結(jié)構(gòu)如圖1所示。
在YOLOV4-tiny中,對(duì)(104,104,64)的特征圖進(jìn)行上采樣并與(52,52,128)特征圖融合,得到感受野較大的檢測(cè)路徑,然后結(jié)合最小感受野的檢測(cè)路徑由骨干網(wǎng)直接輸出,檢測(cè)路徑協(xié)同完成檢測(cè)任務(wù),保證多尺度感知。雖然,現(xiàn)有的基于 Yolov4-tiny 網(wǎng)絡(luò)在狹小空間中取得良好的檢測(cè)性能,但也存在以下不足:(1)骨干網(wǎng)絡(luò)過于輕量化,特征圖在逐層傳遞過程中輪廓演化不足,無(wú)法在訓(xùn)練過程中有效地學(xué)習(xí)更多的遮擋目標(biāo)特征。(2)頸部傳統(tǒng)特征融合網(wǎng)絡(luò)(Feature Pyramid Network,F(xiàn)PN)過于簡(jiǎn)單,不同尺度特征圖間融合效率低下,易丟失邊緣細(xì)節(jié)信息。(3)傳統(tǒng)IoU-NMS 算法在后處理階段具有局限性,易將重疊預(yù)測(cè)框誤刪,導(dǎo)致漏檢。針對(duì)以上問題,提出基于MobileNet[14]和注意力機(jī)制的YOLOv4-tiny手勢(shì)識(shí)別模型。
2改進(jìn)的YOLOv4-tiny手勢(shì)識(shí)別模型
2.1 YOLOv4-tiny結(jié)合注意力機(jī)制
本文參考CBAM[15]設(shè)計(jì)了注意力模塊,并將該模塊添加到骨干網(wǎng)絡(luò)中,使檢測(cè)模型更加關(guān)注手勢(shì)區(qū)域。通道注意力和空間注意力可以表示為:
[F,=Mc(F)?F] ? ? ? ? ? ? ? ? ? ? ? ? ? (1)
[F,,=Ms(F,)?F,] ? ? ? ? ? ? ? ? ? ? ? ? ? (2)
其中[?]表示逐元素乘法。[F]表示輸入特征圖,[F,]表示細(xì)化后的特征圖,[F,,]表示最終細(xì)化后的輸出。
通道注意力如圖2(a)所示,利用了特征圖的通道間關(guān)系。每個(gè)卷積核都可以看作是一個(gè)特征檢測(cè)器,因此每個(gè)通道產(chǎn)生的特征圖可以代表一種對(duì)象特征,通道注意力的目的是集中在所有通道中最有意義的部分。首先,擠壓特征圖的維度,它會(huì)分別經(jīng)過最大池化層和平均池化層,然后輸出兩個(gè)特征描述符,最大池化層是強(qiáng)調(diào)對(duì)象的重要特征,平均池化層是有效地計(jì)算對(duì)象的范圍。其次,兩個(gè)特征描述符都被轉(zhuǎn)發(fā)到一個(gè)共享網(wǎng)絡(luò),共享網(wǎng)絡(luò)由級(jí)聯(lián)層組成:一個(gè)輸入層、一個(gè)輸出層和三個(gè)隱藏層。當(dāng)兩個(gè)描述符通過共享網(wǎng)絡(luò)時(shí),使用逐元素求和來(lái)合并輸出特征向量。最后,通過sigmoid函數(shù)激活特征向量,得到通道注意力圖。
空間注意力如圖2(b)所示,使用空間特征關(guān)系來(lái)生成空間注意力圖。當(dāng)圖像進(jìn)入卷積神經(jīng)網(wǎng)絡(luò)時(shí),圖像中的每個(gè)像素都會(huì)參與計(jì)算。與通道注意力類似,空間注意力集中在圖像中對(duì)物體貢獻(xiàn)最大的區(qū)域。首先,通道注意力圖和特征圖計(jì)算出的細(xì)化特征圖將分別通過最大池化層和平均池化層,得到兩個(gè)特征描述子。其次,將兩個(gè)特征描述符連接起來(lái),然后應(yīng)用兩個(gè)卷積層來(lái)強(qiáng)調(diào)描述符的區(qū)域。最后通過sigmoid函數(shù)激活向量,得到通道注意力圖。經(jīng)過通道注意模塊和空間注意力模塊后,對(duì)特征圖的權(quán)重進(jìn)行優(yōu)化,最終的特征圖會(huì)有更多的手勢(shì)特征信息。假設(shè)平均池化和最大池化過程分別為[Favg]和[Fmax]。[Attavg]可以很好地過濾掉物體的全局背景信息,[Attmax]可以很好地突出手勢(shì)的顯著特征。設(shè)[X=x1,x2,...,xn],其中[xn]表示第n個(gè)卷積核的權(quán)重。[Attavg]和[Attmax]的公式如下:
[Attavg=1H×Wi=1Hj=1Wxn(i,j)=Favg(xn)] ? ? ? ? ? ?(3)
[Attmax=agrmax(i=1Hj=1Wxn(i,j))=Fmax(xn)] ? ? ? ? ?(4)
共享網(wǎng)絡(luò)后,通道注意力的輸出可以表示為:
[outputavg=relu(FC×Attavg)] ? ? ? ? ? ? ? ? ? (5)
[outputmax=relu(FC×Attmax)] ? ? ? ? ? ? ? ? ? (6)
[outputchannel=σ(outputavg×outputmax)] ? ? ?(7)
矩陣乘法得到的加權(quán)特征,濾波后的通道特征為[W=ω1,ω2,...,ωn],可以表示為:
[W=(xn,outputchannel)=xn×outputchannel] ? ? ?(8)
在通道特征過濾之后,需要將[W]輸入空間注意力模塊中。首先,特征向量分別通過平均池化層和最大池化層,然后沿著通道維度,將特征連接起來(lái)得到[Cconv∈R1×1×2C]。為了得到特征權(quán)重信息,需要進(jìn)行卷積操作,讓[F5×5]表示輸入通道為2,輸出通道為1,核大小為5×5的卷積操作。最終過濾后的權(quán)重可以表示為:
[outputcbsp=F5×5(Cconv)×W] ? ? ? ? ? ? ?(9)
整個(gè)注意力模塊的輸出是輸出[outputcbsp+X],重新計(jì)算原始輸入向量不同部分的比例,通過這種結(jié)構(gòu),模型可以選擇性地增強(qiáng)包含手勢(shì)的特征,抑制不相關(guān)或弱特征。本章提出的模型如下圖所示:
2.2 YOLOv4-tiny結(jié)合MobileNet
YOLOv4-tiny方法使用CSPBlock模塊作為殘差模塊,提高了準(zhǔn)確性,但也增加了網(wǎng)絡(luò)復(fù)雜性,降低了對(duì)象檢測(cè)的速度。為了加速手勢(shì)識(shí)別檢測(cè)速度,使用Mobilenet模塊代替YOLOv4-tiny中的三個(gè)CSPBlock模塊。本文以Mobilenet-V1作為主干提取網(wǎng)絡(luò),Mobilenet-V1模型核心思想便是深度可分離卷積塊(Depthwise Separable Convolution)。常規(guī)卷積核是同時(shí)對(duì)三個(gè)通道做卷積得到一個(gè)數(shù),深度可分離卷積先用三個(gè)卷積對(duì)三個(gè)通道進(jìn)行卷積后,得到三個(gè)數(shù),再通過一個(gè)1×1×3的卷積核(pointwise),得到最終的一個(gè)數(shù)。當(dāng)提取的特征屬性越來(lái)越多時(shí),深度可分離卷積就能節(jié)省更多的參數(shù),本節(jié)提出模型如圖4所示:
3實(shí)驗(yàn)
3.1自制數(shù)據(jù)集
本文共采集了15種類型的手勢(shì)圖片約10000張,15種類型為分別為從1到10和比心、OK、贊、踩、打電話,其中訓(xùn)練集8000張、驗(yàn)證集1000張、測(cè)試集1000張。采用Anoconda中的Lambimg用拉框的方式進(jìn)行人工標(biāo)注如圖5所示,得到的標(biāo)注信息存儲(chǔ)成xml格式的文件。
3.2實(shí)驗(yàn)設(shè)置
本文所有的實(shí)驗(yàn)都在Linux系統(tǒng)下訓(xùn)練采用PyTorch框架,訓(xùn)練設(shè)置每次迭代訓(xùn)練樣本數(shù)為64分16個(gè)批次。在自制的手勢(shì)數(shù)據(jù)集上對(duì)應(yīng)的迭代次數(shù),與損失函數(shù)的關(guān)系。模型在迭代10000次左右達(dá)到了收斂,損失值在0.1左右。mAP(平均精度的)、FPS(每秒幀數(shù))和GPU利用率用于定量評(píng)估不同方法的性能。mAP是檢測(cè)所有類別的平均精度的平均值。FPS表示一秒內(nèi)可以成功檢測(cè)到的圖像數(shù)量。GPU利用率表示在測(cè)試不同檢測(cè)方法時(shí)使用的GPU內(nèi)存。對(duì)于評(píng)估,引入了精度(Pr)、召回率(Re)和F1分?jǐn)?shù),它們被廣泛用于分類和檢測(cè)視覺任務(wù)。定義如下:
[Pr=TPTP+FP] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)
[Re=TPTP+FN] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(2)
[F1=2×Pr×RePr+Re] ? ? ? ? ? ? ? ? ? ? ? ? ? (3)
其中TP、FP、FN分別代表被模型預(yù)測(cè)為正類的正樣本、被模型預(yù)測(cè)為正類的負(fù)樣本和被模型預(yù)測(cè)為負(fù)類的正樣本。
3.3實(shí)驗(yàn)分析
為了比較不同模塊對(duì)檢測(cè)結(jié)果的影響,只改變了YOLOv4-tiny主干提取網(wǎng)絡(luò),數(shù)據(jù)集上獲取檢測(cè)結(jié)果如表1所示。
在YOLOv4-tiny上進(jìn)行測(cè)試。結(jié)果表明,使用Mobilenet-V1的Yolov4-tiny提高了算法運(yùn)行時(shí)間。雖然Mobilenet-V1算法在準(zhǔn)確度上有所降低,但降低僅為1%~2%。在算法訓(xùn)練時(shí)間損耗上,提高了三分之一,改進(jìn)效果明顯。兩種結(jié)構(gòu)的YOLOv4-tiny算法損失函數(shù)圖像如圖6所示:
類似,為了比較注意力機(jī)制對(duì)檢測(cè)結(jié)果的影響,使用YOLOv4-tiny+CSPBlock、Yolov4-tiny+ Mobilenet-V1和注意力模塊作為對(duì)比模型,結(jié)果見表2。
從表2可以看出,加入注意力機(jī)制后的方法取得了更好的性能。以MobileNet為基礎(chǔ)模型,在算法準(zhǔn)確率、召回率、F1和平均精度比原始模型分別提高了1%、6%、3%和2%。文中改進(jìn)的注意力模塊召回率方面具有優(yōu)勢(shì),意味著筆者的模型更關(guān)注手勢(shì)細(xì)節(jié)區(qū)域。在推理時(shí)適當(dāng)降低了置信度閾值(0.35),以確保可以檢測(cè)到更多的手指區(qū)域邊界,避免因疏忽而造成的不必要的損失。引入注意力機(jī)制后部分實(shí)驗(yàn)效果如圖7所示:
4結(jié)論
針對(duì)基于深度學(xué)習(xí)的手勢(shì)識(shí)別模型參數(shù)量大、訓(xùn)練速度緩慢且對(duì)設(shè)備要求高、增加了成本的問題,本文提出了一種基于輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò)的手勢(shì)識(shí)別檢測(cè)算法YOLOv4-tiny。結(jié)合手勢(shì)識(shí)別困境,本文的結(jié)論如下:
1)在YOLOv4-tiny的主干網(wǎng)絡(luò)中引入改進(jìn)的注意力模塊,優(yōu)化了通道注意力和空間注意力,用加權(quán)特征向量代替原始特征向量進(jìn)行殘差融合,即增強(qiáng)特征表達(dá)并減少其他背景噪聲的影響;
2)為了減少物體檢測(cè)的耗時(shí),使用三個(gè)相同的MobileNet模塊替換YOLOv4-tiny網(wǎng)絡(luò)中的三個(gè)CSPBlock模塊,以簡(jiǎn)化網(wǎng)絡(luò)結(jié)構(gòu)。
參考文獻(xiàn):
[1] 呂蕾,張金玲,朱英杰,等.一種基于數(shù)據(jù)手套的靜態(tài)手勢(shì)識(shí)別方法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2015,27(12):2410-2418.
[2] 王松林.基于Kinect的手勢(shì)識(shí)別與機(jī)器人控制技術(shù)研究[D].北京:北京交通大學(xué),2014.
[3] 胡弘,晁建剛,楊進(jìn),等.Leap Motion關(guān)鍵點(diǎn)模型手姿態(tài)估計(jì)方法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2015,27(7):1211-1216.
[4] 徐勝,馮文宇,劉志誠(chéng),等.基于機(jī)器視覺的復(fù)雜環(huán)境下精確手勢(shì)識(shí)別算法研究[J].系統(tǒng)仿真學(xué)報(bào),2021,33(10):2460-2469.
[5] 謝富,朱定局.深度學(xué)習(xí)目標(biāo)檢測(cè)方法綜述[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2022,31(2):1-12.
[6] REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: Unified, real-time object detection[C]//IEEE. CVPR2016 Conference on Computer Vision and Pattern Recognition. Washington DC: IEEE Computer Society Press, 2016: 779-788.
[7] LIU W, ANGUELOV D, ERHAN D, et al. SSD:singleshotmultibox detector[C]//Proceedings of the European conference on computer vision. Berlin, Heidelberg: Springer, 2016: 21-37.
[8] Girshick R,Donahue J,Darrell T,et al.Region-based convolutional networks for accurate object detection and segmentation[C]//IEEE Transactions on Pattern Analysis and Machine Intelligence.IEEE,2016:142-158.
[9] Ren S,He K,Girshick R,et al.Faster R-CNN:towards real-time object detection with region proposal networks[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(6):1137-1149.
[10] 謝淋東,仲志丹,喬棟豪,等.多尺度卷積特征融合的SSD手勢(shì)識(shí)別算法[J].計(jì)算機(jī)技術(shù)與發(fā)展,2021,31(3):100-105.
[11] 張雷樂,田軍委,劉雪松,等.一種改進(jìn)的殘差網(wǎng)絡(luò)手勢(shì)識(shí)別方法[J].西安工業(yè)大學(xué)學(xué)報(bào),2021,41(2):206-212.
[12] 袁帥,韓曼菲,張莉莉,等.基于改進(jìn)YOLOV3與貝葉斯分類器的手勢(shì)識(shí)別方法研究[J].小型微型計(jì)算機(jī)系統(tǒng),2021,42(7):1464-1469.
[13] 郭紫嫣,韓慧妍,何黎剛,等.基于改進(jìn)的YOLOV4的手勢(shì)識(shí)別算法及其應(yīng)用[J].中北大學(xué)學(xué)報(bào)(自然科學(xué)版),2021,42(3):223-231.
[14] Howard A G,Zhu M L,Chen B,et al.MobileNets:efficient convolutional neural networks for mobile vision applications[EB/OL].2017:arXiv:1704.04861.https://arxiv.org/abs/1704.04861
[15] Woo S,Park J,Lee J Y,et al.CBAM:convolutional block attention module[EB/OL].2018:arXiv:1807.06521.https://arxiv.org/abs/1807.06521
【通聯(lián)編輯:唐一東】