閆顥月,王 偉,田 澤
1.西安工程大學(xué) 計算機科學(xué)學(xué)院,西安 710048
2.集成電路與微系統(tǒng)設(shè)計航空科技重點實驗室,西安 710068
隨著人機交互技術(shù)的不斷發(fā)展,人們的生活變得越來越智能化。傳統(tǒng)的人機交互方式是通過鼠標(biāo)、鍵盤及手柄等設(shè)備來實現(xiàn)的接觸式人機交互。而隨著語音識別、手勢識別等技術(shù)的發(fā)展,非接觸式的交互方式已成為目前主流的研究方向之一。手勢作為一種肢體語言,具有簡單、直接、便捷等特點,通過手勢識別實現(xiàn)的人機交互方式可用于車載座艙控制、航空航天、智能家居、智慧教育等領(lǐng)域,是未來人機交互技術(shù)的研究熱點之一。例如將手勢識別用于智能家居領(lǐng)域,那么只需通過簡單的手勢即可實現(xiàn)對家居的遠程控制,給人們的生活帶來了極大的便利。但是在實際的應(yīng)用中,因易受周圍環(huán)境的影響,使得算法在復(fù)雜環(huán)境(如光線、背景、距離、膚色)下進行手勢識別仍面臨諸多困難。
手勢有靜態(tài)和動態(tài)之分,動態(tài)手勢可看作是由一系列相互關(guān)聯(lián)的靜態(tài)手勢組成,因此靜態(tài)手勢識別是研究動態(tài)手勢及其應(yīng)用的重要基礎(chǔ),故本文以靜態(tài)手勢識別為研究對象。
迄今為止,手勢識別技術(shù)已經(jīng)經(jīng)歷了多個階段的發(fā)展,傳統(tǒng)的手勢識別通常是基于傳感器的方法和基于計算機視覺的方法進行研究?;趥鞲衅鞯氖謩葑R別方法,通常需要借助硬件設(shè)備來獲取和識別手勢信息[1-3],例如可穿戴式數(shù)據(jù)手套、Leap Motion、Kinect等。這類方法雖然識別速度快,精確度高且不易受到外部復(fù)雜環(huán)境變化的影響,但需要借助硬件設(shè)備才能實現(xiàn)且操作不便捷,硬件設(shè)備價格昂貴?;谝曈X的手勢識別方法主要是通過深度相機、顏色空間(RGB[4]、HSV[5]、YCbCr[6])或膚色檢測的方法對手勢區(qū)域進行分割,然后對分割后的手勢通過模板匹配[7]、支持向量機(support vector machine,SVM)[8-9]等方法進行識別,這些方法都是通過人工設(shè)計提取特征實現(xiàn)的,容易受到環(huán)境因素影響使得模型的魯棒性差,從而造成手勢識別率低的問題。
近年來,隨著深度學(xué)習(xí)的出現(xiàn),許多學(xué)者為了克服人工提取特征過程的復(fù)雜性,試圖將深度學(xué)習(xí)的方法用于復(fù)雜環(huán)境下的手勢識別,以期較大程度提升手勢識別率。例如,王龍等人[10]通過構(gòu)建膚色模型對手勢區(qū)域進行檢測,并利用卷積神經(jīng)網(wǎng)絡(luò)對手勢進行特征提取和識別,但這種基于膚色檢測的方法易受復(fù)雜環(huán)境下的光照、膚色等因素影響,導(dǎo)致算法的泛化能力和魯棒性較差。Mohanty等人[11]對原始圖像直接利用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)進行手勢識別,當(dāng)原圖像中存在膚色和背景顏色相近情況時,CNN 不能直接學(xué)習(xí)到有效的信息,從而導(dǎo)致較高的誤檢率。隨著深度學(xué)習(xí)中目標(biāo)檢測算法的快速發(fā)展,越來越多的研究者發(fā)現(xiàn)將目標(biāo)檢測算法用于復(fù)雜環(huán)境下的手勢識別,有利于提高手勢識別性能。例如,Chang等人[12]使用Faster R-CNN算法進行手勢識別并利用高斯濾波器對圖像數(shù)據(jù)進行預(yù)處理。Ding 等人[13]提出將神經(jīng)網(wǎng)絡(luò)和SSD(single shot multibox detector)結(jié)構(gòu)結(jié)合來提取手勢關(guān)鍵點。文獻[12-13]雖然可以提高在光線和膚色等影響因素下的手勢識別率,但因模型較大且檢測時間較長,在復(fù)雜環(huán)境下難以滿足檢測的實時性。因此,彭玉青等人[14]通過改進YOLO(you only look once)提出DSN算法對手勢進行檢測,并通過CNN 進行識別。該算法不僅提高了手勢在光照不均勻、背景近膚色影響因素下的識別率,也提高了檢測速度,基本實現(xiàn)了對目標(biāo)的實時檢測,但該算法對于復(fù)雜環(huán)境下的小尺度手勢的檢測效果較差。而最新提出的YOLOv5 算法相較于其他的YOLO系列算法,識別精度更高,識別速度更快,具有較強的實時性。雖然YOLOv5 模型已在大型公開數(shù)據(jù)集上達到較好的性能,但是針對特定的檢測對象,仍需根據(jù)所選數(shù)據(jù)集的不同特點對網(wǎng)絡(luò)進行一定的改進以提高模型對特定目標(biāo)的檢測性能。如錢伍等人[15]通過修改主干網(wǎng)絡(luò)卷積和構(gòu)建特征融合網(wǎng)絡(luò),提高了網(wǎng)絡(luò)對小目標(biāo)交通燈的檢測能力。雖然較高的手勢識別率具有重要的應(yīng)用,但現(xiàn)有的YOLOv5模型直接用于復(fù)雜環(huán)境下的手勢識別存在以下問題:(1)在識別光照不均勻情況下的手勢時,算法的泛化能力和魯棒性較差;(2)當(dāng)膚色與復(fù)雜背景中的其他物體顏色混淆時,算法易產(chǎn)生較高的誤檢率;(3)在識別遠距離或小尺度的手勢時,算法易產(chǎn)生較高的漏檢和較低的識別率等缺陷。
針對目前手勢識別存在的問題,如在光照不均勻、背景近膚色、復(fù)雜環(huán)境下手勢尺度較小導(dǎo)致手勢漏檢、誤檢以及識別率不高等,本文提出了一種基于改進YOLOv5 網(wǎng)絡(luò)的手勢識別方法HD-YOLOv5s。首先采用自適應(yīng)Gamma 圖像增強方法對數(shù)據(jù)集進行預(yù)處理,消除復(fù)雜環(huán)境下光照變化對手勢識別效果的影響;對于復(fù)雜環(huán)境中的背景干擾問題,將動態(tài)選擇機制網(wǎng)絡(luò)中的注意力機制模塊SK加入到特征提取網(wǎng)絡(luò)的末端特征提取層,通過對不同尺度的圖像自適應(yīng)調(diào)整卷積核的大小,更有利于提取到有效特征,提高網(wǎng)絡(luò)的特征提取能力;最后將特征融合網(wǎng)絡(luò)中的PANet結(jié)構(gòu)更換為調(diào)整過的雙向特征金字塔結(jié)構(gòu)BiFPN,提高復(fù)雜環(huán)境中小尺度手勢的識別率。
YOLOv5是一種用于目標(biāo)檢測的網(wǎng)絡(luò)模型,隨著網(wǎng)絡(luò)深度和權(quán)重的不斷增加,YOLOv5依次分為YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四個版本。其中YOLOv5s模型最小,且推理速度較快。YOLOv5s 網(wǎng)絡(luò)結(jié)構(gòu)包括特征提取網(wǎng)絡(luò)Backbone、特征融合網(wǎng)絡(luò)Neck、檢測網(wǎng)絡(luò)Prediction三部分。
Backbone 包括CSPDarknet、Focus 和SPP(spatial pyramid pooling)模塊,主要作用為提取圖像高(深)中低(淺)層的特征。YOLOv5的主干網(wǎng)絡(luò)為CSPDarknet53,相比于Darknet53網(wǎng)絡(luò)而言,C3_X模塊先將基礎(chǔ)層的特征映射劃分為兩部分,然后通過部分局部跨層融合的方法將它們合并,既解決了網(wǎng)絡(luò)優(yōu)化中的梯度信息重復(fù)導(dǎo)致的推理計算過高的問題,又使整個網(wǎng)絡(luò)在減少了計算量的同時可以保證準(zhǔn)確率。為了提高網(wǎng)絡(luò)在特征提取時的效率,F(xiàn)ocus 模塊將主干網(wǎng)絡(luò)中輸入的特征圖進行切片并拼接,壓縮網(wǎng)絡(luò)層數(shù),在保證檢測精度的同時,有效降低了網(wǎng)絡(luò)計算量,提高了檢測速度。為了提取出圖像中的顯著特征,在CSPDarknet53 結(jié)構(gòu)的后面添加了SPP模塊,SPP結(jié)構(gòu)可以增大預(yù)測框的感受野,解決了目標(biāo)框和特征圖的對齊問題,在提出最重要的上下文特征的同時,又可以保證網(wǎng)絡(luò)運行的速率。
Neck 的核心為特征金字塔(feature pyramid networks,F(xiàn)PN)[16]和路徑聚合網(wǎng)絡(luò)(path aggregation networks,PAN)[17],主要作用為增強網(wǎng)絡(luò)模型對不同縮放尺度對象的檢測。對于特征圖而言,深層的特征圖攜帶有更強的語義特征和較弱的定位信息。而淺層的特征圖攜帶有較強的位置信息和較弱的語義特征。對于FPN 網(wǎng)絡(luò)而言,其特征圖大小分為不同的尺度,可以對不同尺度做融合,F(xiàn)PN 把深層的語義信息傳遞到淺層,在多個尺度上提高了語義表達。而PAN則相反過來把淺層的位置信息傳遞到了深層,從而在多個尺度上提高了定位能力。
特征金字塔結(jié)構(gòu)PANet 是在FPN 的基礎(chǔ)上引入了自底向上的結(jié)構(gòu)。FPN 通過將深淺層特征信息進行融合以達到提升目標(biāo)檢測的效果,尤其對于小尺度目標(biāo)檢測效果的提升尤為明顯。因為目標(biāo)檢測是像素級別的分類淺層特征,多為邊緣形狀等特征,所以網(wǎng)絡(luò)淺層特征信息對于目標(biāo)檢測非常重要。自底向上的結(jié)構(gòu)可以充分利用網(wǎng)絡(luò)淺層特征進行分割,因此PANet在FPN的基礎(chǔ)上加了一個自底向上方向的增強,使得深層特征圖也可以享受到淺層帶來的豐富的位置信息,從而提升大物體的檢測效果。
傳統(tǒng)神經(jīng)網(wǎng)絡(luò)只將網(wǎng)絡(luò)最深層的特征輸入到檢測層,導(dǎo)致小目標(biāo)特征在低層向高層傳遞中丟失,造成難以識別等檢測率低的問題。YOLOv5 采用多尺度檢測的方法,將特征圖分別通過32 倍下采樣、16 倍下采樣、8 倍下采樣分為三種尺度,通過感受野的不同,實現(xiàn)大輸出特征圖檢測小物體,小輸出特征圖檢測大物體,克服了頂層特征的局限性。
本文提出的手勢識別方法HD-YOLOv5s 是以YOLOv5s模型為原型進行改進。HD-YOLOv5s模型的結(jié)構(gòu)如圖1 所示。HD-YOLOv5s 模型的各模塊結(jié)構(gòu)如圖2所示。圖1中對比原YOLOv5s模型結(jié)構(gòu),新增內(nèi)容用不同顏色標(biāo)出。
圖1 HD-YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 HD-YOLOv5s network structure
圖2 HD-YOLOv5各模塊結(jié)構(gòu)Fig.2 HD-YOLOv5s structure of each module
由于在復(fù)雜背景情境下,手勢目標(biāo)可能存在尺寸較小、背景近膚色等問題,從而容易造成識別目標(biāo)尺度的多樣性,因此對于網(wǎng)絡(luò)模型的特征提取能力要求更高。注意力機制能夠提升網(wǎng)絡(luò)對模型特征的表達能力,強化重要特征,減弱一般特征,故本文采用融合注意力機制的方法增強網(wǎng)絡(luò)的特征提取能力。
而動態(tài)選擇機制網(wǎng)絡(luò)(selective kernel neural network,SKNet)[18]采用了一種自適應(yīng)選擇機制。其優(yōu)點在于既考慮到了多個卷積核的作用,又使神經(jīng)元能夠根據(jù)不同尺寸的輸入信息選擇合適的卷積核大小,有效地調(diào)整了感受野的大小,從而使網(wǎng)絡(luò)更加關(guān)注重要特征的信息。相對而言,傳統(tǒng)卷積網(wǎng)絡(luò)在構(gòu)建時通常在同一層上僅采用一種卷積核,在進行特征提取時,每層網(wǎng)絡(luò)的卷積核大小是固定的,導(dǎo)致感受野大小也是確定的,而感受野尺度的大小能夠直接影響特征尺度的大小,因此在傳統(tǒng)卷積網(wǎng)絡(luò)中提取到的圖像特征較為單一,存在一定的局限性。盡管如Inception結(jié)構(gòu)為了適應(yīng)多尺度圖像,增加多個卷積核,但由于卷積核的權(quán)重都相同,訓(xùn)練完成后參數(shù)也是固定的,致使所有的多尺度信息被不加區(qū)分地全部使用。顯然,選擇動態(tài)選擇機制網(wǎng)絡(luò)更有優(yōu)勢。
SKNet在SENet[19]網(wǎng)絡(luò)的基礎(chǔ)上結(jié)合了多分支卷積網(wǎng)絡(luò)、空洞卷積和組卷積的思想,在關(guān)注通道間關(guān)系的同時,也考慮到卷積核的作用。SKNet可以使網(wǎng)絡(luò)在提取特征時更加側(cè)重于對識別有用的通道,并自動選擇最優(yōu)的卷積算子,進一步改善識別性能。SKNet的操作分為分解(split)、融合(fuse)和選擇(select)三步,其結(jié)構(gòu)如圖3所示。
圖3 SKNet網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 SKNet network structure
具體步驟如下:
(1)分解。給定一個輸入特征X∈RH×W×C,進行兩個卷積操作,卷積核分別為3×3和5×5,得到兩個輸出,為了進一步提升效率,這里用dilation=2 的空洞卷積替代5×5 的卷積。
(2)融合。為了實現(xiàn)自適應(yīng)地調(diào)整感受野大小,首先將兩個分支結(jié)果通過逐元素求和的方法進行融合,表述如下:
其次,對整合后的信息使用全局池化操作,獲取全局信息,如下式所示:
式中,F(xiàn)gp表示全局平均池化操作函數(shù),sc表示第c個通道的輸出,Uc(i,j)表示第c個通道的坐標(biāo),H為特征圖的高度,W為特征圖的寬度,其中i、j分別為特征圖高度和寬度的坐標(biāo)值。
最后,通過全連接層對sc進行降維操作得到z,公式如下:
式中,F(xiàn)fc表示全連接操作函數(shù),δ表示非線性激活函數(shù),β為BN層,d表示用縮減比r控制全連接層,L為d的最小值,其中W∈Rd×c,z∈Rd×1。
(3)選取。首先生成通道的注意力,然后用來自適應(yīng)挑選不同規(guī)模的信息,表述如下:
式中,A,B∈Rc×d,ac,bc分別表示對應(yīng)的注意力向量,其中Ac表示第c行,ac表示a的第c個元素。
最后,將兩分支輸出的特征進行加權(quán)融合得到Vc,公式如下:
其中,V=[V1,V2,…,Vc],Vc∈RH×W。
SKNet 是一個輕量級嵌入式的模塊,由多個SK(selective kernel)卷積單元組成,本文將SK卷積層加入到HD-YOLOv5s 主干網(wǎng)絡(luò)的末端C3 模塊后,使網(wǎng)絡(luò)更關(guān)注提取到有效特征。具體過程如下:設(shè)置初始特征圖大小為640×640×3,通道放縮系數(shù)為0.5,在經(jīng)過了1 次Focus 操作和4 次CBS 操作后末端C3 模塊的輸出特征圖大小為20×20×512,將其作為SK 模塊的輸入。首先通過分組卷積的方式將特征圖分別通過3×3和5×5的卷積核輸出兩個通道為512 的不同尺度的特征圖和。其次將兩個分支結(jié)果進行逐元素加,經(jīng)過全局平均池化操作后輸出大小為1×1×512 的特征圖。然后經(jīng)過兩個全連接層進行降維和升維操作后得到大小為1×1×d的特征圖,再經(jīng)過softmax 激活函數(shù)進行動態(tài)的自適應(yīng)調(diào)整,自動選擇出最優(yōu)的卷積算子a和b,分別用來控制兩條分支的感受野特征圖。最后兩分支進行加權(quán)融合計算后得到本層網(wǎng)絡(luò)的輸出結(jié)果,使網(wǎng)絡(luò)更加關(guān)注對識別有用的手勢信息。文獻[20-21]分別將SKNet 加入到Y(jié)OLOv3 和SSD網(wǎng)絡(luò)中,提高了網(wǎng)絡(luò)的特征提取能力,網(wǎng)絡(luò)的平均檢測精度值(mAP)也都有不同程度的提升。因此將SKNet添加到本文所提算法HD-YOLOv5s 中,以此來提高網(wǎng)絡(luò)的檢測性能。
本文的識別目標(biāo)為人的手部姿勢,存在目標(biāo)較小、尺寸多樣的問題。原始的YOLOv5s網(wǎng)絡(luò)模型使用特征金字塔網(wǎng)絡(luò)PANet 結(jié)構(gòu)來解決多尺度輸入的問題。但由于輸入的手勢區(qū)域特征分辨率不同,PANet在融合不同的輸入特征時,通常會不加區(qū)分地進行融合,對于小目標(biāo)而言,仍然會出現(xiàn)誤檢和漏檢的情況。為了解決這一問題,本文將采用調(diào)整過的加權(quán)雙向特征金字塔網(wǎng)絡(luò)替換PANet 進行特征融合,進一步提高模型的檢測效率,提升網(wǎng)絡(luò)對不同尺度手勢目標(biāo)的檢測效果。
谷歌大腦團隊在EfficientDet 目標(biāo)檢測算法中提出了BiFPN[22],其主要思想可以概括為:有效的雙向跨尺度連接和加權(quán)特征融合。BiFPN 的特征融合方法是將雙向特征金字塔提取的特征加權(quán)后按像素求和。而原始的YOLOv5s算法則采取按通道維度進行拼接的方式。因此本文將雙向特征金字塔BiFPN引入到Y(jié)OLOv5s模型的特征融合網(wǎng)絡(luò)中,采用按通道維度拼接方式進行特征融合,并利用跨層級聯(lián)的方式,提高網(wǎng)絡(luò)特征融合能力。原始的YOLOv5s算法的特征融合網(wǎng)絡(luò)如圖4所示。
圖4 原始YOLOv5s算法的特征融合網(wǎng)絡(luò)Fig.4 Original YOLOv5s algorithm for feature fusion network
圖中Ci(i=2~5)表示前饋網(wǎng)絡(luò)提取到的多尺度特征。F表示C3_3算子,Pi表示輸出特征,2×指的是通過雙線性插值操作來實現(xiàn)兩倍的上采樣,0.5×表示下采樣。將主干網(wǎng)絡(luò)提取到的不同尺度的特征{C2,C3,C4,C5}輸入到特征融合網(wǎng)絡(luò)中,設(shè)置原圖分辨率為640×640,經(jīng)過雙向跨尺度連接和加權(quán)特征融合后,得到三個不同尺度的特征{P3,P4,P5}作為YOLOv5s 的檢測層,分辨率分別為20×20、40×40、80×80。
具體改進如下:
(1)為了提高小目標(biāo)的識別準(zhǔn)確率,本文提出了一種充分利用低層級特征的特征融合方法。該方法充分利用P2特征,在特征融合中加入了高分辨率P2特征的信息。將用于檢測小目標(biāo)特征的P3與前一層級的特征C2 建立聯(lián)系,緩解由于網(wǎng)絡(luò)下采樣限制而間接導(dǎo)致的F3 特征的缺失,從而進一步提高網(wǎng)絡(luò)對一部分小目標(biāo)的監(jiān)督能力。
(2)為了提高模型的效率,在網(wǎng)絡(luò)進行自頂向下和自底向上的雙向特征融合的同時,在同一尺度的輸入和輸出節(jié)點之間增加跨尺度橫向連接,這種跨層級的連接方式能夠?qū)⒈韺拥募毠?jié)信息、邊緣信息、輪廓信息等整合到深層網(wǎng)絡(luò)中,從而在不增加計算量的情況下,實現(xiàn)對目標(biāo)邊緣的精確回歸,減少了網(wǎng)絡(luò)因?qū)蛹夁^多而造成的特征丟失。改進后的特征融合網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 本文改進的特征融合網(wǎng)絡(luò)Fig.5 Improved feature fusion network in this paper
圖5中紅色虛線表示跨層級聯(lián),跨層級聯(lián)表示在同一尺度的輸入節(jié)點到輸出節(jié)點之間增加一個跳躍連接,因為它們在相同層,所以可以在不增加太多計算成本的同時,融合更多的特征。如圖5 所示,為了減少計算量和縮短推理時間,本文并未在低層級的P2 特征上采用跨層加權(quán)融合,只是在獲取用于最終檢測的P3和P4特征時用了跨層加權(quán)融合,只是充分利用低層級的P2 特征,將高分辨率的特征信息引入到特征融合中,提高了檢測模型在小目標(biāo)檢測上的效果,有效提高了主干網(wǎng)絡(luò)在不同尺度手勢區(qū)域目標(biāo)檢測中的學(xué)習(xí)能力。
加權(quán)特征融合部分使用快速歸一化融合公式,如式(7)所示,其歸一化過程通過每個權(quán)值與全部權(quán)值加和得到,且歸一化權(quán)重的值在[0,1]之間,提高了GPU的運行速度,減少了額外的時間成本。
在手勢數(shù)據(jù)集的采集過程中常常存在光照不均勻或背景近膚色等現(xiàn)象,該現(xiàn)象會導(dǎo)致圖片質(zhì)量下降,影響模型對手勢的識別效果,從而造成漏檢和誤檢的問題。為了解決上述問題,本文在原網(wǎng)絡(luò)的基礎(chǔ)上增加了一種自適應(yīng)調(diào)節(jié)對比度的圖像增強方法,即基于Retinex(Retina and Cortex)理論改進的自適應(yīng)Gamma增強算法[23]。該算法的特點在于處理光照不均勻問題時具有較好的對比度、自然性和時效性。對于目前常用的圖像增強算法如直方圖均衡化、Retinex算法等,在進行圖像增強時會出現(xiàn)過度增強、顏色失真、光暈等問題[24]?;赗etinex 的自適應(yīng)Gamma 增強算法可以根據(jù)圖像區(qū)域的明暗程度進行自適應(yīng)的矯正,通過降低光照過強區(qū)域的圖像亮度,提高光照過低區(qū)域的圖像亮度,有效減弱圖像處理過程中的過度增強問題,使圖像具有較好的對比度。其次,該算法通過自適應(yīng)矯正處理后保留了更多圖像的細節(jié)信息,可以減少圖像的顏色失真和光暈現(xiàn)象。此外,該算法在處理光照不均勻圖像時能夠根據(jù)光照分量的分布特性自適應(yīng)地調(diào)整Gamma 參數(shù),節(jié)省了人工設(shè)定Gamma值的時間。該圖像增強算法的主要步驟為:
(1)利用Retinex 理論將圖像的亮度分量和反射分量分離。
式中,Rc(x,y)表示被分離后的反射分量,Ic(x,y)表示RGB各個通道的亮度,L(x,y)表示圖像的亮度分量。
(2)利用自適應(yīng)Gamma 校正算法對亮度分量進行矯正。
式中,Len(x,y)表示通過矯正后的亮度分量,γ(x,y)表示系數(shù)矩陣,表示亮度分量的累積分布函數(shù),Pω(l)表示各個亮度值的權(quán)值分布函數(shù):
式中,P(l)表示亮度分量的概率密度函數(shù),nl表示對應(yīng)的亮度包含的像素數(shù),np表示亮度分量所含的像素總數(shù)。
(3)通過融合Len(x,y)和Rc(x,y)得到最終增強后的圖像,恢復(fù)原來圖像的顏色和細節(jié)。
通過矯正后的實驗對比圖如圖6所示。
圖6 通過Gamma矯正前后的對比圖Fig.6 Pictures before and after correction by Gamma
實驗結(jié)果表明,通過對光照不均勻的圖像進行校正處理,不僅使預(yù)處理后的圖像清晰度得到了較大的提高,同時也增加了數(shù)據(jù)集中圖像的光照多樣性。將數(shù)據(jù)集進行光照增強預(yù)處理,在提高手勢圖像質(zhì)量的同時,也提高了手勢識別的準(zhǔn)確率和召回率。增加該圖像增強算法的HD-YOLOv5s手勢識別方法流程圖如圖7所示。
圖7 HD-YOLOv5s手勢識別方法流程圖Fig.7 Flowchart of HD-YOLOv5s hand gesture recognition method
本文采用NUS-II數(shù)據(jù)集[9],共有2 750個樣本,分為10類。數(shù)據(jù)集是通過在各種室內(nèi)和室外復(fù)雜環(huán)境下對40位不同手型和種族的實驗人員采集而成的。該數(shù)據(jù)集中的手勢圖像具有不同的大小和尺寸,且膚色各異,背景復(fù)雜,符合本文的研究標(biāo)準(zhǔn)。數(shù)據(jù)集部分樣例如圖8所示。
圖8 NUS-II數(shù)據(jù)集樣例Fig.8 Sample in NUS-II dataset
自制手勢數(shù)據(jù)集采用紅外攝像頭進行拍攝,在不同距離不同光照條件下分別對5 名實驗人員進行手勢采集,每名人員比出7種不同的手勢,分別為數(shù)字手勢0~5以及手勢ok。為了獲得更多的數(shù)據(jù),本文采用數(shù)據(jù)增強的方法對采集的圖片進行翻轉(zhuǎn)、縮放、移位等操作,對數(shù)據(jù)集進行擴充。擴充后的數(shù)據(jù)集,每個類有300 個樣本,總共2 100張圖片。
本文采用的手勢數(shù)據(jù)集均采用VOC 數(shù)據(jù)集格式,自制手勢數(shù)據(jù)集采用labelImage 標(biāo)注工具對格式為JPEGImages 的圖片進行人工標(biāo)注,并將數(shù)據(jù)集中的2 100 個樣本按照9∶1 的比例劃分為訓(xùn)練集和測試集。自制手勢數(shù)據(jù)集的示例如圖9所示。
圖9 自制數(shù)據(jù)集樣例Fig.9 Sample in self-made dataset
為了更好地呈現(xiàn)對比實驗前后的模型檢測性能,采用目前主流的目標(biāo)檢測算法的驗證指標(biāo)進行實驗。本文采用的具體檢測指標(biāo)如下:
準(zhǔn)確率(Precision,P):模型預(yù)測的所有目標(biāo)中,預(yù)測正確的比例。
召回率(Recall,R):所有真實目標(biāo)中,模型預(yù)測正確的目標(biāo)比例。
式中,TP(true positives)表示手勢圖像的正確識別數(shù)目;FP(false positives)表示錯誤辨識手勢圖像的數(shù)目;FN(false negatives)表示漏檢的手勢圖像數(shù)目。
平均精度(average precision,AP):數(shù)據(jù)集中單一類別的精度值,它的取值范圍是0 到1。因為使用11 點插值采樣法會使模型在精度方面有損失,所以本文采用VOC 2010以后更改的AP值計算方法,定義如下:
式中,AP 是對P-R(Precision-Recall)曲線上的Precision值求均值。P-R曲線則是以召回率值為橫軸,準(zhǔn)確率值為縱軸,在坐標(biāo)軸上繪制出的一條曲線。首先對P-R曲線進行平滑處理,即取所有真實的Recall 值都作為閾值,當(dāng)召回率r′大于每一個閾值時,都會對應(yīng)得到一個最大的Precision值為Psmooth(r),然后用積分的方式計算平滑曲線下方的面積作為最終的AP值。
平均精度均值(mean average precision,mAP):數(shù)據(jù)集中所有類別AP 值的平均值,又稱識別率。計算公式如式(19)所示,其中k為識別目標(biāo)的總類別數(shù)。
本文的所有對比實驗均在操作系統(tǒng)Windows10 下進行,硬件設(shè)備為GPU NVIDIA GTX970。實驗環(huán)境配置:深度學(xué)習(xí)框架為PyTorch 1.10.0;CUDA的版本號為CUDA10.2;cuDNN 的版本號為cuDNN8.2.4。實驗參數(shù)配置:學(xué)習(xí)率(learning rate)設(shè)置為0.01,可以更快地使局部達到收斂;批次大小設(shè)置為16,使得訓(xùn)練速度較快。
3.4.1 對比實驗
為了解決復(fù)雜環(huán)境下小尺度手勢識別率低的問題,本文對YOLOv5s 模型的特征融合網(wǎng)絡(luò)做了改進,對當(dāng)前主流特征融合網(wǎng)絡(luò)FPN、PANet、BiFPN的精度值和參數(shù)量進行比較,并選出檢測結(jié)果最優(yōu)的多尺度融合網(wǎng)絡(luò)。如表1所示,F(xiàn)PN只進行自頂向下的單方向特征融合,檢測精度不高;PANet 在FPN 后面添加了一個自底向上的路徑,融合了低層特征的強定位信息,檢測進度提升明顯;BiFPN網(wǎng)絡(luò)又在PANet的基礎(chǔ)上增加了雙向跨尺度連接,雖然參數(shù)量M相比于PANet的參數(shù)量提高了13.2%,但計算量FLOPs 幾乎無增長,且mAP 值增長了1.4 個百分點,因此增加跨尺度連接使網(wǎng)絡(luò)在幾乎不增加計算成本的情況下,融合了更多的特征,檢測精度相比于其他網(wǎng)絡(luò)更優(yōu)。
表1 特征融合網(wǎng)絡(luò)性能比較Table 1 Performance comparison of feature fusion networks
為了更好地展現(xiàn)出本文改進模型的優(yōu)勢,分別與目標(biāo)檢測算法中較為經(jīng)典的兩階段模型Faster R-CNN和一階段模型SSD、YOLOv3 以及YOLOv5s 進行對照,模型統(tǒng)一使用NUS-II數(shù)據(jù)集進行訓(xùn)練和驗證,如表2所示。
表2 主流目標(biāo)檢測算法與本文方法對比Table 2 Comparison of mainstream target detection algorithms with methods in this paper
由表2 可知,F(xiàn)aster R-CNN、SSD 和YOLOv3 模型大小相當(dāng)于HD-YOLOv5s 模型大小的6~10 倍,參數(shù)量相當(dāng)于HD-YOLOv5s 的3~10 倍,因此HD-YOLOv5s 相較于這些模型而言屬于輕量級網(wǎng)絡(luò)。HD-YOLOv5s模型相比于YOLOv5s模型大小相差不大,雖然HD-YOLOv5s在原YOLOv5s 的特征融合網(wǎng)絡(luò)中添加了特征層,導(dǎo)致模型計算量增加,推理時間比YOLOv5s 慢了1.44 ms,但檢測精度比YOLOv5s 提高了3.6 個百分點。HDYOLOv5s 在檢測精度和推理速度方面都優(yōu)于Faster R-CNN、SSD 和YOLOv3 模型,且對單幀照片的檢測時間僅需0.01~0.02 s,能夠滿足手勢識別的實時性要求。
為了充分驗證本文提出的手勢識別方法的優(yōu)越性,將本文方法與其他手勢識別方法在公共數(shù)據(jù)集NUS-II上進行比較,實驗結(jié)果如表3所示。
表3 主流手勢識別算法與本文方法對比Table 3 Comparison of mainstream gesture recognition algorithms with methods in this paper
由表3可知,文獻[9]采用貝葉斯注意力模型提取手勢特征(顏色、形狀和紋理),并使用支持向量機進行分類,識別率為93.7%。文獻[25]利用膚色模型將手勢區(qū)域分割出來,然后用卷積神經(jīng)網(wǎng)絡(luò)對手勢區(qū)域進行識別,識別率為95.6%。文獻[26]提出了基于深度卷積神經(jīng)網(wǎng)絡(luò)的新方法,將圖像調(diào)整到統(tǒng)一大小后,忽略分割和檢測階段,直接對手勢進行分類,識別率為96.2%。文獻[27]提出了一種基于雙通道卷積神經(jīng)網(wǎng)絡(luò)(DC-CNN)的手勢識別方法,它將手勢圖像和邊緣圖像分別輸入兩個通道中,經(jīng)池化操作后在全連接層融合特征以提取更深的分類信息,識別率為98.0%?;谝陨辖Y(jié)果,可以得出以下結(jié)論。
(1)文獻[9,25]通過手勢分割和膚色檢測的方法,易受環(huán)境因素的影響,導(dǎo)致復(fù)雜環(huán)境下的手勢識別率不高,而本文提出的方法通過添加圖像增強預(yù)處理和在特征提取網(wǎng)絡(luò)中添加SKNet注意力模塊,提高了網(wǎng)絡(luò)的特征提取能力,增強了模型在復(fù)雜環(huán)境下的泛化能力和魯棒性,提高了手勢識別率。
(2)文獻[26-27]分別通過直接分類和增加網(wǎng)絡(luò)層次的方法對手勢進行識別,利用這種結(jié)構(gòu)可以削弱光照不均勻及復(fù)雜背景的影響,提高模型對復(fù)雜環(huán)境的適應(yīng)性,但對于小尺度手勢的識別效果一般。而本文算法通過構(gòu)建新型的特征融合網(wǎng)絡(luò),提高了模型對遠距離小尺度手勢的識別能力,進一步提高了手勢識別率。
3.4.2 消融實驗
為了驗證各改進模塊在YOLOv5s網(wǎng)絡(luò)模型中的作用,下面將基于YOLOv5s模型進行消融實驗,并對改進的不同模型性能進行對比。如表4表示,其中“—”代表不使用,“√”代表使用。
從表4中可以看出,本文改進的網(wǎng)絡(luò)模型HD-YOLOv5s的mAP 值達到了99.5%。改進模型1 是在原主干提取網(wǎng)絡(luò)中加入注意力機制SKNet,參數(shù)量M并無大幅增長,mAP相較于原模型提高了1.5個百分點,由于SKNet既是一個輕量級嵌入式模塊,又在自動選擇最優(yōu)算子后產(chǎn)生了更合理的權(quán)重系數(shù),在參數(shù)量穩(wěn)定的情況下,提高了網(wǎng)絡(luò)的特征提取能力;改進模型2是在原特征融合網(wǎng)絡(luò)中引入新型的雙向特征融合網(wǎng)絡(luò)BiFPN,對比表1中具有三層融合特征層的BiFPN,引入低特征層后的BiFPN的融合能力更強,其充分利用低層級的P2特征,提高了檢測模型在小目標(biāo)檢測上的效果,對比檢測層為4的改進模型3,改進模型2并沒有將低特征層加入雙向特征融合中,mAP 下降了0.3 個百分點,但計算量減小了0.5%,參數(shù)量減少了4.9%,故為了減少計算量和縮短推理時間,本文并未在低層級的P2 特征上采用雙向特征融合;改進模型4是將注意力機制和改進的特征融合模塊同時加入網(wǎng)絡(luò)中,與改進模型2 相比,計算量和參數(shù)量幾乎無增長,但mAP 增長了1.3 個百分點,與原模型相比,mAP 增長了3.4 個百分點;改進后的模型HD-YOLOv5 在輸入端對數(shù)據(jù)集進行了Gamma 圖像增強預(yù)處理,mAP值達到了99.5%,相比原YOLOv5s網(wǎng)絡(luò)提高了3.6個百分點。
表4 各改進模型的性能比較Table 4 Performance comparison of each improved model
如圖10 所示,分別為改進前后的各模型在自制訓(xùn)練集上的訓(xùn)練結(jié)果曲線,其中設(shè)置迭代次數(shù)為200,學(xué)習(xí)率為0.01,動量因子為0.937。圖(a)中橫坐標(biāo)E表示訓(xùn)練輪次,縱坐標(biāo)表示IOU為0.5時的mAP值,可以看出,改進后模型的性能均比改進前的模型更好。圖(b)中改進后的HD-YOLOv5s 模型相比于YOLOv5 模型,收斂速度更快,Loss 值更小,說明改進后的模型網(wǎng)絡(luò)的收斂能力更強。
圖10 各模型訓(xùn)練曲線Fig.10 Training curves for each model
3.4.3 檢測結(jié)果分析
本文進行訓(xùn)練的數(shù)據(jù)集為公共數(shù)據(jù)集NUS-II,驗證結(jié)果如表5 所示。NUS-II 數(shù)據(jù)集雖然背景具有多樣性和復(fù)雜性,但對于本文而言,該數(shù)據(jù)集中不同光照條件下的手勢圖像較少。為了驗證改進方法的泛化能力及魯棒性,本文在具有豐富光照強度對比的自制數(shù)據(jù)集上也進行了驗證實驗,驗證結(jié)果如表6所示。可以得出HD-YOLOv5s 在自制數(shù)據(jù)集上識別率也有較大的提升。由此可以證明,本文改進的算法對于各種復(fù)雜背景下的干擾,都可以取得較好的識別效果和更好的魯棒性。
表5 不同手勢類別在NUS-II測試集上的檢測效果Table 5 Detection effects of different gesture categories on NUS-II test set
表6 不同手勢類別在自制測試集上的檢測效果Table 6 Detection effects of different gesture categories on homemade test set
為了驗證改進模型HD-YOLOv5s 的可行性,在測試集中選取部分手勢圖片進行測試。如圖11 為模型YOLOv5s和模型HD-YOLOv5s在不同光照條件下的手勢識別效果對比圖,其中圖(a)和(b)分別表示在強光和弱光環(huán)境下對手勢的識別,圖(c)表示在光照不均勻環(huán)境下對手勢的識別,左圖均為YOLOv5s 模型的識別效果圖,右圖均為HD-YOLOv5s 模型的識別效果圖??梢钥闯龈倪M后的模型HD-YOLOv5s 在不同光照環(huán)境下對手勢圖像的識別率均有不同程度的提升,圖(c)中左圖將手勢ok和窗沿分別誤檢為手勢5和手勢0,右圖則識別正常且識別精度高于左圖。如圖12為改進前后模型在背景近膚色情況下對手勢的識別效果對比圖,其中圖(a)和圖(b)分別表示在簡單和復(fù)雜背景下對手勢的識別,圖(a)中通過左右圖對比可知,在簡單背景下改進前后模型的識別效果相差不大,圖(b)中在復(fù)雜背景下,右圖的識別率明顯高于左圖,可知改進后的模型HDYOLOv5s對膚色近背景問題下的手勢識別率有明顯的提升作用。如圖13為改進前后模型在復(fù)雜環(huán)境下對小尺度手勢的識別效果,其中圖(a)、(b)、(c)分別表示在不同的復(fù)雜場景下對距離較遠的小尺度手勢的檢測,尤其在圖(a)中光照不均勻且背景復(fù)雜情況下,改進后的模型對小尺度手勢的識別率提升效果較為明顯。
圖11 不同光照條件下的識別效果Fig.11 Recognition effect under different lighting conditions
圖12 背景近膚色情況下的識別效果Fig.12 Recognition effect in case of near-skin color background
圖13 復(fù)雜環(huán)境下小尺度手勢的識別效果Fig.13 Recognition effect of small-scale gestures in complex environment
綜上所述,改進后的模型HD-YOLOv5s 相較于原模型YOLOv5s 在識別性能方面表現(xiàn)更優(yōu),YOLOv5s 模型在光照不均勻、背景近膚色等復(fù)雜環(huán)境下的識別性能不佳,容易出現(xiàn)誤檢等問題,并且對遠距離小尺度手勢的識別效果較差。而HD-YOLOv5s 模型能夠準(zhǔn)確識別復(fù)雜環(huán)境下的手勢,且識別率較高,并改善了原模型YOLOv5s對小尺度手勢識別率低的問題。改進后模型的性能提升,并不是具體到某一方法的改進,而是通過模型整體的特征提取能力和特征融合能力的提高使模型的識別性能得到提升。
本文提出手勢識別方法HD-YOLOv5s,使得手勢識別在復(fù)雜場景下也能獲得較高的準(zhǔn)確率,進一步促進了人機交互技術(shù)的發(fā)展。首先采用基于Retinex理論的自適應(yīng)Gamma 圖像增強方法對數(shù)據(jù)集進行預(yù)處理;其次在特征提取網(wǎng)絡(luò)中引入自適應(yīng)卷積注意力機制模型SKNet,提高網(wǎng)絡(luò)的特征提取能力;最后將調(diào)整后的BiFPN結(jié)構(gòu)引入特征融合網(wǎng)絡(luò)中,提高了網(wǎng)絡(luò)對小目標(biāo)的識別率。
實驗結(jié)果表明,HD-YOLOv5s 的mAP 值達到了99.5%,與Faster R-CNN、SSD 和YOLOv3 模型相比,本文方法對單個照片的檢測時間僅需0.01~0.02 s,模型較小,檢測速度較快,能夠滿足復(fù)雜場景下手勢識別的實時性要求。與原YOLOV5s 模型相比,模型精準(zhǔn)度提升了3.6個百分點,且相比于目前主流的手勢識別算法,具有較好的泛化能力和魯棒性。最后,分別在自制數(shù)據(jù)集和具有復(fù)雜背景的公共數(shù)據(jù)集NUS-II 上做驗證實驗,識別率達到99.5%和98.9%。結(jié)合上述所言,本文改進的網(wǎng)絡(luò)模型對于光照不均勻、背景近膚色以及手勢尺度較小等問題,都可以取得較好的識別效果和更好的魯棒性,且滿足復(fù)雜場景下手勢識別的實時性要求。
高效的靜態(tài)手勢識別是研究動態(tài)手勢及其應(yīng)用的重要基礎(chǔ),實驗證明本文方法在復(fù)雜環(huán)境下具有較好的魯棒性和實時性。未來計劃將本文方法用于具有復(fù)雜背景變化的動態(tài)手勢追蹤中,嘗試解決其識別率差的問題,使本文方法能夠在人機交互領(lǐng)域更具有實用性。