陳 帥,袁宇浩
(南京工業(yè)大學 電氣工程與控制科學學院,南京 211816) E-mail:1621253937@qq.com
手語是聾啞人進行信息交流的重要手段,而手語字母是手語的基本組成單元,手語字母識別也是人機交互的重要組成部分[1].手語識別作為一種新的交互方式,被廣泛應用到虛擬現(xiàn)實系統(tǒng)、互動游戲平臺、手語識別和控制機器人等領域[2].
在人機交互的過程中,為了能夠準確地識別出手部信息,提高識別的準確率就顯得尤其重要[3].目前,對于手部信息的識別方法主要可以分為兩類:基于外部設備的識別方法,基于計算機視覺的識別方法[3].
基于外部設備的手部信息識別方法指借助外部設備對數(shù)據(jù)進行采集,根據(jù)采集的數(shù)據(jù)對手部信息進行識別,如Kinect,可穿戴數(shù)據(jù)手套等[4],該識別方法具有極高的準確性和檢測速度.但價格過于昂貴且操作不方便[4].基于計算機視覺的手勢識別則是通過識別圖像中手部的特征來判斷手勢[5].
近年來,卷積神經(jīng)網(wǎng)絡在圖像識別領域取得巨大成果,與傳統(tǒng)機器學習手勢識別相比,基于卷積神經(jīng)網(wǎng)絡的手勢識別具有更好的自適應能力,具有更強的魯棒性.目前,吳曉鳳、張江鑫等人利用Faster-RCNN對手勢進行識別,取得了較高的精度,但檢測速度較慢,不能做到實時檢測[6].張強、張勇[7]等人采用Yolov3網(wǎng)絡對靜態(tài)手勢進行識別,該方法采用Kinect設備采集手勢信息,利用K-means算法對Yolov3的錨框進行設定,在實時性和檢測精度上同時取得了不錯的效果[8,9].Rao等人利用前饋神經(jīng)網(wǎng)絡對手語視頻進行檢測,檢測精度達到了90%[10].CHAUDHARY利用方向直方圖,設計了一種手勢識別神經(jīng)網(wǎng)絡,準確率達到了92.8%[11].
由于現(xiàn)有的檢測設備價格昂貴,檢測方法檢測速度慢,不能做到實時檢測,且檢測精度較差,在不同的設備之間移植困難.而Yolov5網(wǎng)絡相比于其他網(wǎng)絡具有檢測速度快,檢測精度高,且方便移植到手機等便攜式設備中.本文以Yolov5網(wǎng)絡為基礎進行改進,融入SE通道注意力機制[12]和ASFF自適應特征融合機制[13],并對數(shù)據(jù)集進行處理,增加在強光下帶有投影以及復雜背景和進行灰度處理過的圖片,使Yolov5對于圖像高層的語義信息以及對底層的輪廓、邊緣、顏色、形狀信息利用的更加充分[14].改進后的Yolov5-ASFF-SE網(wǎng)絡在手語字母識別準確度上達到了96.1%,平均精度均值達到了96.8%.相比原Yolov5網(wǎng)絡,在檢測速度基本保持不變的前提下,平均精度均值提高6%.
目標檢測就是對圖像中的目標物體位置和大小進行判定,隨著深度學習的不斷發(fā)展,基于深度學習的目標檢測方法也得到了廣泛普及[15].深度學習目標檢測算法大體上可以分為雙階段和單階段兩種,雙階段目標檢測算法雖然檢測精度較高,但速度比較慢,很多時候無法滿足要求[15].單階段目標檢測算法則是端到端檢測,雖然單階段目標檢測算法速度較快,但檢測不夠準確,很多重疊遮擋的物體無法被檢測到[15,16].
Yolo是目標檢測領域常用的端到端的卷積神經(jīng)網(wǎng)絡模型,發(fā)展至今,共有5個版本,分別是Yolov1至Yolov5[17].Yolo在第3代發(fā)展到巔峰,網(wǎng)絡結(jié)構(gòu)基本成型,在兼顧實時性的同時保證了檢測的準確性.Yolov4和Yolov5也是在Yolov3的基礎上進行改進,提高了檢測速度和檢測精度.
與Yolov3相比,Yolov5具有更高的準確性以及更快的速度.Yolov5包括四種不同的網(wǎng)路結(jié)構(gòu),Yolov5s,Yolov5m,Yolov5l,Yolov5x,這4種網(wǎng)絡結(jié)構(gòu)的深度和寬度各不相同,其中Yolov5s寬度和深度最小[18].為了滿足速度要求,本文選用網(wǎng)絡深度和寬度最小的Yolov5s網(wǎng)絡模型.根據(jù)處理內(nèi)容的不同,Yolov5s目標檢測網(wǎng)絡可以分為Input輸入端、Backbone特征提取端、Neck頸部端、Prediction預測端.
Yolov5的Input輸入端,采用Mosaic圖像增強來提升檢測效果,采用自適應錨框計算來設定初始錨框的大小,采用自適應圖片縮放固定圖片的尺寸.
2.2.1 Mosaic數(shù)據(jù)增強
Mosaic圖像增強是隨機將4張圖片拼接成一張圖片進行訓練,4張圖片拼接成一張增加了很多小目標,提升了小目標的識別能力[19].增加了網(wǎng)絡的穩(wěn)定性,改善了網(wǎng)絡的訓練效果.
2.2.2 自適應錨框計算
自適應錨框計算,指在網(wǎng)絡訓練前,Yolov5根據(jù)不同的目標檢測數(shù)據(jù)集,自動設定初始錨框的大小,而Yolov3需要單獨采用K-means聚類算法人為設定初始錨框的大小,Yolov5將其嵌入到算法中.在網(wǎng)絡訓練的過程中,網(wǎng)絡自行設定錨框的大小.
2.2.3 自適應圖片縮放
自適應圖片縮放,即自動縮放圖片尺寸到640×640的大小,傳統(tǒng)的圖片縮放和拉伸,增添的黑邊比較多,增加了網(wǎng)絡的計算量,而Yolov5對該算法進行改進,增添最小的黑邊,這樣可以減少網(wǎng)絡的訓練速度和檢測速度.
Yolov5的Backbone主干部分采用darknet53特征提取網(wǎng)絡,特征提取網(wǎng)絡主要由Focus結(jié)構(gòu),CSP結(jié)構(gòu)和SPP結(jié)構(gòu)組成.
2.3.1 Focus結(jié)構(gòu)
Focus結(jié)構(gòu)的功能和鄰近下采樣相似,對圖片進行切片操作,得到了4張互補的圖片,4張互補的圖片長相相似,但沒有信息丟失,這樣一來,將W、H信息就集中到了通道空間,輸入通道擴充了4倍,即拼接起來的圖片相對于之前RGB三通道變成了12個通道,最后將得到的新圖片再經(jīng)過卷積操作,最終得到了沒有信息丟失的2倍下采樣特征圖.Yolov5的Focus結(jié)構(gòu)如圖1所示.
圖1 Yolov5的Focus結(jié)構(gòu)Fig.1 Focus structure of Yolov5
2.3.2 CSP結(jié)構(gòu)
Yolov5設計了兩種CSP結(jié)構(gòu),一種是帶了殘差的CSP1_X結(jié)構(gòu),另一種是用普通的卷積塊替換殘差的CSP2_X結(jié)構(gòu).帶殘差的CSP1_X結(jié)構(gòu)使用在backbone里,不帶殘差的CSP2_X結(jié)構(gòu)使用在neck部分.darknet53為較深的網(wǎng)絡,增加殘差結(jié)構(gòu)可以避免因為網(wǎng)絡深度的增加而帶來的梯度消失.從而增強部分的泛化能力.Yolov5的CSP結(jié)構(gòu)如圖2所示.
圖2 Yolov5的CSP結(jié)構(gòu)Fig.2 CSP structure of Yolov5
2.3.3 SPP結(jié)構(gòu)
SPP結(jié)構(gòu),也叫空間金字塔池化層,通過不同大小卷積核的池化操作抽取不同尺度特征,增加了尺度的多樣性,防止出現(xiàn)過擬合,同時加快了網(wǎng)絡的收斂速度.SPP結(jié)構(gòu)如圖3所示.
圖3 Yolov5的SPP結(jié)構(gòu)Fig.3 SPP structure of Yolov5
Neck頸部端采用自頂向下的特征金字塔FPN結(jié)構(gòu)以及自底向上的PAN的組合結(jié)構(gòu),FPN+PAN的組合結(jié)構(gòu)中采用了不帶殘差的CSP2_X結(jié)構(gòu),增強了網(wǎng)絡的特征融合能力.Yolov5的FPN和PAN結(jié)構(gòu)如圖4所示.
圖4 Yolov5的FPN和PAN結(jié)構(gòu)Fig.4 FPN and PAN structure of Yolov5
Yolov5的輸出端,使用 GIOU作為邊界框損失函數(shù),使用加權(quán) NMS 對非極大值進行抑制,從而獲得最優(yōu)目標框[20].輸出層共有3個尺寸的輸出通道,大小分別 19×19×255、38×38×255、76×76×255[21].
手語字母圖像相較于其他圖像,不同手勢的相似性太高,細節(jié)信息不夠豐富,因此,手語字母識別進行細節(jié)提取就顯得尤其重要.對于卷積操作,很大一部分工作是增大感受野,通過在CNN卷積神經(jīng)網(wǎng)絡中融入SE通道注意力機制,可以增大特征提取的感受野,從而可以提取到更多的手勢細節(jié)信息[22].
圖5 SE通道注意力結(jié)構(gòu)Fig.5 SE channel attention structure
SE通道注意力機制,包括Squeeze壓縮操作和Excitation操作,首先對Darknet53特征提取網(wǎng)絡提取到的特征進行壓縮操作,進而對特征進行Excitation操作,最后累加Excitation操作得到的權(quán)重與初始特征圖進行相乘得到的結(jié)果.進而輸出.SE通道注意力結(jié)構(gòu)如圖5所示.
Yolov5目標檢測網(wǎng)絡采用PANet結(jié)構(gòu)進行融合,這種融合方式只是簡單的將特征圖變換成相同尺寸,然后再相加,無法充分利用不同尺度的特征[23].為了對圖像高層的語義信息以及對底層的輪廓、邊緣、顏色、形狀信息進行充分利用,現(xiàn)融入自適應特征融合機制.自適應特征融合機制的結(jié)構(gòu)圖如圖6所示.
圖6 ASFF的結(jié)構(gòu)設計圖Fig.6 Structural design diagram of ASFF
Yolov5頸部的輸出為level、level2和level3特征圖,圖中以ASFF-3為例進行介紹,融合后的ASFF-3輸出為level1、level2、level3的語義特征與來自不同層的權(quán)重α,β和γ相乘并進行相加的結(jié)果[23].如公式(1)所示:
(1)
(2)
實驗從線上收集了1800張手語字母數(shù)據(jù)集.數(shù)據(jù)集包含26個數(shù)據(jù)類別,分別是′A′,′B′,′C′,′D′,′E′,′F′,′G′,′H′,′I′,′J′,′K′,′L′,′M′,′N′,′O′,′P′,′Q′,′R′,′S′,′T′,′U′,′V′,′W′,′X′,′Y′,′Z′,為了提高手語字母識別的準確性,對手語字母數(shù)據(jù)集進行處理,增加在強光下帶有投影以及復雜背景和進行灰度處理過的圖片,如圖7所示.
圖7 復雜背景下圖片F(xiàn)ig.7 Picture with complex background
使用 LabelImg軟件對圖片進行標注,數(shù)據(jù)集格式選用YOLO,標簽保存為txt格式,文件名和圖片名稱一致[24].標注的圖片如圖8所示.
圖8 手語字母數(shù)據(jù)集Fig.8 Sign language alphabet data set
根據(jù)用途不同,對標注好的數(shù)據(jù)集進行劃分,分為訓練集、驗證集和測試集.具體劃分比例如表1所示.
表1 訓練集,驗證集和測試集Table 1 Training set,validation set and test set
本實驗采用 Ubuntu18.04 操作系統(tǒng),深度學習框架選用 Pytorch 架構(gòu),使用 GeForce GTX 2060 的顯卡進行訓練.具體實驗配置如表2所示.
表2 實驗環(huán)境Table 2 Experimental environment
本文選用平均精度均值MAP作為模型的評估指標,它們的數(shù)值越大,表示手語字母識別效果越好[25,26].在介紹平均精度均值之前先介紹準確率和召回率,準確率P是檢測正確的數(shù)量占預測為正的比例,召回率R是檢測為正的數(shù)量占實際為正的比例[25,26].
(3)
(4)
式中:TP為手指字母檢測正確的數(shù)量,FP為手指字母檢測錯誤的數(shù)量,FN為未被檢測出的數(shù)量.
AP為平均精度,其值為PR曲線下的面積,平均精度均值MAP即AP的平均值.MAP公式如下:
(5)
Yolov5s在對手語字母數(shù)據(jù)集進行訓練過程中,將batch_size大小設置為16,在對模型訓練200個epochs后,模型逐漸收斂.準確率,召回率,平均精度均值均已穩(wěn)定.本文將訓練次數(shù)設置成300.Yolov5s訓練結(jié)果圖如圖9所示.
圖9 yolov5s訓練結(jié)果圖Fig.9 yolov5s training results graph
Yolov5s模型經(jīng)過300輪訓練,手勢識別準確度達到90.3%,平均精度均值MAP達到90.8%.實驗結(jié)果如圖10所示.
圖10 Yolov5s模型的MAPFig.10 MAP of Yolov5s model
Yolov5s模型在訓練300輪后,保存的權(quán)重文件僅為13.8Mb,圖片大小設置為640×640,RTX2060顯卡檢測一張圖片的速度為0.021秒,即47.6FPS,檢測速度可以滿足需求.
4.3.1 Yolov5s-SE實驗結(jié)果
Yolov5s-SE模型經(jīng)過300輪訓練,手勢識別準確度達到93.0%,平均精度均值MAP達到93.3%.由此可見,通道注意力機制對于手部細節(jié)信息提取較為豐富.實驗結(jié)果如圖11所示.
Yolov5-SE模型在訓練300輪后,圖片大小設置為640×640,RTX2060顯卡檢測一張圖片的速度為0.023秒,即43.47FPS.
4.3.2 Yolov5s-ASFF實驗結(jié)果
Yolov5s-ASFF模型經(jīng)過300輪訓練,手勢識別準確度達到94.1%,平均精度均值MAP達到94.3%.由此可見,ASFF對于手部高層的語義信息和底層的細節(jié)信息較為豐富.實驗結(jié)果如圖12所示.
圖11 Yolov5s-SE模型的MAPFig.11 MAP for the Yolov5s-SE model
圖12 Yolov5s-ASFF模型的MAPFig.12 MAP for the Yolov5s-ASFF model
Yolov5-ASFF模型在訓練300輪后,圖片大小設置為640×640,RTX2060顯卡檢測一張圖片的速度為0.019秒,即52.6FPS.
4.3.3 Yolov5s-ASFF-SE實驗結(jié)果
Yolov5s-ASFF-SE模型經(jīng)過300輪訓練,手勢識別準確度達到96.1%,平均精度均值MAP達到96.8%.實驗結(jié)果如圖13所示.
圖13 Yolov5s-ASFF-SE模型的MAPFig.13 MAP for the Yolov5s-ASFF-SE model
Yolov5-ASFF-SE模型在訓練300輪后,圖片大小設置為640×640,RTX2060顯卡檢測一張圖片的速度為0.022秒,即45.45FPS.
相比原Yolov5模型,Yolov5-ASFF-SE模型在檢測速度基本不變的前提下,平均精度均值提升了6%.為了直觀看出模型改進前后MAP的變化情況,現(xiàn)統(tǒng)計模型改進前后的MAP,繪制MAP曲線,如圖14所示.
由圖14可得,模型在改進前后,相比于原模型擁有更快的收斂速度,原Yolov5s模型在150輪左右逐漸收斂,改進后的模型在訓練100輪時逐漸收斂,節(jié)省了大量的訓練時間.在訓練時間有限的前提下,能夠取得較好的效果.
圖14 模型改進前后MAP變化Fig.14 Change in MAP before and after model improvement
現(xiàn)對比其他一些先進的目標檢測神經(jīng)網(wǎng)絡,即Faster-rcnn,Yolov3,Yolov3-tiny等,在訓練集,測試集,驗證集,實驗設備保持不變的前提下,統(tǒng)計這些方法的平均精度均值和檢測速度.如圖15所示.
圖15 主流網(wǎng)絡MAP和FPS對比Fig.15 Mainstream network MAP and FPS comparison
由圖15可得,Yolov5s模型相比其他神經(jīng)網(wǎng)路模型,檢測速度和精度均高于其他主流神經(jīng)網(wǎng)絡模型,改進后的Yolov5-ASFF-SE模型相比原Yolov5s模型在檢測速度基本不變的前提下,檢測精度大大提高,可以滿足日常使用.
模型改進前后,每個手指字母的識別平均精度均值MAP如表3所示.
由表3可以看出,在模型改進前后,基本每個手語字母的識別平均精度均值MAP均有提升,在模型改進前,C,I,N,V字母的準確率較低,模型改進后,C,I,N,V字母的準確率提升較為明顯.由此可見,改進后的Yolov5-ASFF-SE網(wǎng)絡對于手部細節(jié)的提取更加充分.
4.3.4 Yolov5便攜設備移植
Yolov5使用Android studio和Visual studio軟件,可以方便的將訓練好的權(quán)重移植到手機中,也可以使用Qt進行前段界面編程,方便進行攝像頭調(diào)用.圖16為攝像頭實時監(jiān)測.
本文基于Yolov5s網(wǎng)絡模型提出一種改進的Yolov5-ASFF-SE模型,融入SE通道注意力機制和ASFF自適應特征融合機制,并對數(shù)據(jù)集進行處理,增加背景的復雜度,相比原Yolov5s網(wǎng)絡,Yolov5-ASFF-SE模型在檢測速度基本不變的前提下,檢測精度提升了6%.但個別手語字母檢測精度仍有待提升,下一步將改進Yolov5的網(wǎng)絡結(jié)構(gòu),并擴充數(shù)據(jù)集,來提升個別字母的檢測精度.另外,本文檢測的手語字母為靜態(tài)檢測,而靜態(tài)手語字母檢測是動態(tài)檢測的基礎,以后將進一步研究動態(tài)檢測.
表3 單一字母識別MAPTable 3 Single letter identification MAP
圖16 攝像頭檢測Fig.16 Camera detection