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