閆顥月,王 偉,田 澤
1.西安工程大學 計算機科學學院,西安 710048
2.集成電路與微系統設計航空科技重點實驗室,西安 710068
隨著人機交互技術的不斷發展,人們的生活變得越來越智能化。傳統的人機交互方式是通過鼠標、鍵盤及手柄等設備來實現的接觸式人機交互。而隨著語音識別、手勢識別等技術的發展,非接觸式的交互方式已成為目前主流的研究方向之一。手勢作為一種肢體語言,具有簡單、直接、便捷等特點,通過手勢識別實現的人機交互方式可用于車載座艙控制、航空航天、智能家居、智慧教育等領域,是未來人機交互技術的研究熱點之一。例如將手勢識別用于智能家居領域,那么只需通過簡單的手勢即可實現對家居的遠程控制,給人們的生活帶來了極大的便利。但是在實際的應用中,因易受周圍環境的影響,使得算法在復雜環境(如光線、背景、距離、膚色)下進行手勢識別仍面臨諸多困難。
手勢有靜態和動態之分,動態手勢可看作是由一系列相互關聯的靜態手勢組成,因此靜態手勢識別是研究動態手勢及其應用的重要基礎,故本文以靜態手勢識別為研究對象。
迄今為止,手勢識別技術已經經歷了多個階段的發展,傳統的手勢識別通常是基于傳感器的方法和基于計算機視覺的方法進行研究。基于傳感器的手勢識別方法,通常需要借助硬件設備來獲取和識別手勢信息[1-3],例如可穿戴式數據手套、Leap Motion、Kinect等。這類方法雖然識別速度快,精確度高且不易受到外部復雜環境變化的影響,但需要借助硬件設備才能實現且操作不便捷,硬件設備價格昂貴。基于視覺的手勢識別方法主要是通過深度相機、顏色空間(RGB[4]、HSV[5]、YCbCr[6])或膚色檢測的方法對手勢區域進行分割,然后對分割后的手勢通過模板匹配[7]、支持向量機(support vector machine,SVM)[8-9]等方法進行識別,這些方法都是通過人工設計提取特征實現的,容易受到環境因素影響使得模型的魯棒性差,從而造成手勢識別率低的問題。
近年來,隨著深度學習的出現,許多學者為了克服人工提取特征過程的復雜性,試圖將深度學習的方法用于復雜環境下的手勢識別,以期較大程度提升手勢識別率。例如,王龍等人[10]通過構建膚色模型對手勢區域進行檢測,并利用卷積神經網絡對手勢進行特征提取和識別,但這種基于膚色檢測的方法易受復雜環境下的光照、膚色等因素影響,導致算法的泛化能力和魯棒性較差。Mohanty等人[11]對原始圖像直接利用卷積神經網絡(convolutional neural network,CNN)進行手勢識別,當原圖像中存在膚色和背景顏色相近情況時,CNN 不能直接學習到有效的信息,從而導致較高的誤檢率。隨著深度學習中目標檢測算法的快速發展,越來越多的研究者發現將目標檢測算法用于復雜環境下的手勢識別,有利于提高手勢識別性能。例如,Chang等人[12]使用Faster R-CNN算法進行手勢識別并利用高斯濾波器對圖像數據進行預處理。Ding 等人[13]提出將神經網絡和SSD(single shot multibox detector)結構結合來提取手勢關鍵點。文獻[12-13]雖然可以提高在光線和膚色等影響因素下的手勢識別率,但因模型較大且檢測時間較長,在復雜環境下難以滿足檢測的實時性。因此,彭玉青等人[14]通過改進YOLO(you only look once)提出DSN算法對手勢進行檢測,并通過CNN 進行識別。該算法不僅提高了手勢在光照不均勻、背景近膚色影響因素下的識別率,也提高了檢測速度,基本實現了對目標的實時檢測,但該算法對于復雜環境下的小尺度手勢的檢測效果較差。而最新提出的YOLOv5 算法相較于其他的YOLO系列算法,識別精度更高,識別速度更快,具有較強的實時性。雖然YOLOv5 模型已在大型公開數據集上達到較好的性能,但是針對特定的檢測對象,仍需根據所選數據集的不同特點對網絡進行一定的改進以提高模型對特定目標的檢測性能。如錢伍等人[15]通過修改主干網絡卷積和構建特征融合網絡,提高了網絡對小目標交通燈的檢測能力。雖然較高的手勢識別率具有重要的應用,但現有的YOLOv5模型直接用于復雜環境下的手勢識別存在以下問題:(1)在識別光照不均勻情況下的手勢時,算法的泛化能力和魯棒性較差;(2)當膚色與復雜背景中的其他物體顏色混淆時,算法易產生較高的誤檢率;(3)在識別遠距離或小尺度的手勢時,算法易產生較高的漏檢和較低的識別率等缺陷。
針對目前手勢識別存在的問題,如在光照不均勻、背景近膚色、復雜環境下手勢尺度較小導致手勢漏檢、誤檢以及識別率不高等,本文提出了一種基于改進YOLOv5 網絡的手勢識別方法HD-YOLOv5s。首先采用自適應Gamma 圖像增強方法對數據集進行預處理,消除復雜環境下光照變化對手勢識別效果的影響;對于復雜環境中的背景干擾問題,將動態選擇機制網絡中的注意力機制模塊SK加入到特征提取網絡的末端特征提取層,通過對不同尺度的圖像自適應調整卷積核的大小,更有利于提取到有效特征,提高網絡的特征提取能力;最后將特征融合網絡中的PANet結構更換為調整過的雙向特征金字塔結構BiFPN,提高復雜環境中小尺度手勢的識別率。
YOLOv5是一種用于目標檢測的網絡模型,隨著網絡深度和權重的不斷增加,YOLOv5依次分為YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四個版本。其中YOLOv5s模型最小,且推理速度較快。YOLOv5s 網絡結構包括特征提取網絡Backbone、特征融合網絡Neck、檢測網絡Prediction三部分。
Backbone 包括CSPDarknet、Focus 和SPP(spatial pyramid pooling)模塊,主要作用為提取圖像高(深)中低(淺)層的特征。YOLOv5的主干網絡為CSPDarknet53,相比于Darknet53網絡而言,C3_X模塊先將基礎層的特征映射劃分為兩部分,然后通過部分局部跨層融合的方法將它們合并,既解決了網絡優化中的梯度信息重復導致的推理計算過高的問題,又使整個網絡在減少了計算量的同時可以保證準確率。為了提高網絡在特征提取時的效率,Focus 模塊將主干網絡中輸入的特征圖進行切片并拼接,壓縮網絡層數,在保證檢測精度的同時,有效降低了網絡計算量,提高了檢測速度。為了提取出圖像中的顯著特征,在CSPDarknet53 結構的后面添加了SPP模塊,SPP結構可以增大預測框的感受野,解決了目標框和特征圖的對齊問題,在提出最重要的上下文特征的同時,又可以保證網絡運行的速率。
Neck 的核心為特征金字塔(feature pyramid networks,FPN)[16]和路徑聚合網絡(path aggregation networks,PAN)[17],主要作用為增強網絡模型對不同縮放尺度對象的檢測。對于特征圖而言,深層的特征圖攜帶有更強的語義特征和較弱的定位信息。而淺層的特征圖攜帶有較強的位置信息和較弱的語義特征。對于FPN 網絡而言,其特征圖大小分為不同的尺度,可以對不同尺度做融合,FPN 把深層的語義信息傳遞到淺層,在多個尺度上提高了語義表達。而PAN則相反過來把淺層的位置信息傳遞到了深層,從而在多個尺度上提高了定位能力。
特征金字塔結構PANet 是在FPN 的基礎上引入了自底向上的結構。FPN 通過將深淺層特征信息進行融合以達到提升目標檢測的效果,尤其對于小尺度目標檢測效果的提升尤為明顯。因為目標檢測是像素級別的分類淺層特征,多為邊緣形狀等特征,所以網絡淺層特征信息對于目標檢測非常重要。自底向上的結構可以充分利用網絡淺層特征進行分割,因此PANet在FPN的基礎上加了一個自底向上方向的增強,使得深層特征圖也可以享受到淺層帶來的豐富的位置信息,從而提升大物體的檢測效果。
傳統神經網絡只將網絡最深層的特征輸入到檢測層,導致小目標特征在低層向高層傳遞中丟失,造成難以識別等檢測率低的問題。YOLOv5 采用多尺度檢測的方法,將特征圖分別通過32 倍下采樣、16 倍下采樣、8 倍下采樣分為三種尺度,通過感受野的不同,實現大輸出特征圖檢測小物體,小輸出特征圖檢測大物體,克服了頂層特征的局限性。
本文提出的手勢識別方法HD-YOLOv5s 是以YOLOv5s模型為原型進行改進。HD-YOLOv5s模型的結構如圖1 所示。HD-YOLOv5s 模型的各模塊結構如圖2所示。圖1中對比原YOLOv5s模型結構,新增內容用不同顏色標出。

圖1 HD-YOLOv5s網絡結構Fig.1 HD-YOLOv5s network structure

圖2 HD-YOLOv5各模塊結構Fig.2 HD-YOLOv5s structure of each module
由于在復雜背景情境下,手勢目標可能存在尺寸較小、背景近膚色等問題,從而容易造成識別目標尺度的多樣性,因此對于網絡模型的特征提取能力要求更高。注意力機制能夠提升網絡對模型特征的表達能力,強化重要特征,減弱一般特征,故本文采用融合注意力機制的方法增強網絡的特征提取能力。
而動態選擇機制網絡(selective kernel neural network,SKNet)[18]采用了一種自適應選擇機制。其優點在于既考慮到了多個卷積核的作用,又使神經元能夠根據不同尺寸的輸入信息選擇合適的卷積核大小,有效地調整了感受野的大小,從而使網絡更加關注重要特征的信息。相對而言,傳統卷積網絡在構建時通常在同一層上僅采用一種卷積核,在進行特征提取時,每層網絡的卷積核大小是固定的,導致感受野大小也是確定的,而感受野尺度的大小能夠直接影響特征尺度的大小,因此在傳統卷積網絡中提取到的圖像特征較為單一,存在一定的局限性。盡管如Inception結構為了適應多尺度圖像,增加多個卷積核,但由于卷積核的權重都相同,訓練完成后參數也是固定的,致使所有的多尺度信息被不加區分地全部使用。顯然,選擇動態選擇機制網絡更有優勢。
SKNet在SENet[19]網絡的基礎上結合了多分支卷積網絡、空洞卷積和組卷積的思想,在關注通道間關系的同時,也考慮到卷積核的作用。SKNet可以使網絡在提取特征時更加側重于對識別有用的通道,并自動選擇最優的卷積算子,進一步改善識別性能。SKNet的操作分為分解(split)、融合(fuse)和選擇(select)三步,其結構如圖3所示。

圖3 SKNet網絡結構Fig.3 SKNet network structure
具體步驟如下:
(1)分解。給定一個輸入特征X∈RH×W×C,進行兩個卷積操作,卷積核分別為3×3和5×5,得到兩個輸出,為了進一步提升效率,這里用dilation=2 的空洞卷積替代5×5 的卷積。
(2)融合。為了實現自適應地調整感受野大小,首先將兩個分支結果通過逐元素求和的方法進行融合,表述如下:
其次,對整合后的信息使用全局池化操作,獲取全局信息,如下式所示:
式中,Fgp表示全局平均池化操作函數,sc表示第c個通道的輸出,Uc(i,j)表示第c個通道的坐標,H為特征圖的高度,W為特征圖的寬度,其中i、j分別為特征圖高度和寬度的坐標值。
最后,通過全連接層對sc進行降維操作得到z,公式如下:
式中,Ffc表示全連接操作函數,δ表示非線性激活函數,β為BN層,d表示用縮減比r控制全連接層,L為d的最小值,其中W∈Rd×c,z∈Rd×1。
(3)選取。首先生成通道的注意力,然后用來自適應挑選不同規模的信息,表述如下:
式中,A,B∈Rc×d,ac,bc分別表示對應的注意力向量,其中Ac表示第c行,ac表示a的第c個元素。
最后,將兩分支輸出的特征進行加權融合得到Vc,公式如下:
其中,V=[V1,V2,…,Vc],Vc∈RH×W。
SKNet 是一個輕量級嵌入式的模塊,由多個SK(selective kernel)卷積單元組成,本文將SK卷積層加入到HD-YOLOv5s 主干網絡的末端C3 模塊后,使網絡更關注提取到有效特征。具體過程如下:設置初始特征圖大小為640×640×3,通道放縮系數為0.5,在經過了1 次Focus 操作和4 次CBS 操作后末端C3 模塊的輸出特征圖大小為20×20×512,將其作為SK 模塊的輸入。首先通過分組卷積的方式將特征圖分別通過3×3和5×5的卷積核輸出兩個通道為512 的不同尺度的特征圖和。其次將兩個分支結果進行逐元素加,經過全局平均池化操作后輸出大小為1×1×512 的特征圖。然后經過兩個全連接層進行降維和升維操作后得到大小為1×1×d的特征圖,再經過softmax 激活函數進行動態的自適應調整,自動選擇出最優的卷積算子a和b,分別用來控制兩條分支的感受野特征圖。最后兩分支進行加權融合計算后得到本層網絡的輸出結果,使網絡更加關注對識別有用的手勢信息。文獻[20-21]分別將SKNet 加入到YOLOv3 和SSD網絡中,提高了網絡的特征提取能力,網絡的平均檢測精度值(mAP)也都有不同程度的提升。因此將SKNet添加到本文所提算法HD-YOLOv5s 中,以此來提高網絡的檢測性能。
本文的識別目標為人的手部姿勢,存在目標較小、尺寸多樣的問題。原始的YOLOv5s網絡模型使用特征金字塔網絡PANet 結構來解決多尺度輸入的問題。但由于輸入的手勢區域特征分辨率不同,PANet在融合不同的輸入特征時,通常會不加區分地進行融合,對于小目標而言,仍然會出現誤檢和漏檢的情況。為了解決這一問題,本文將采用調整過的加權雙向特征金字塔網絡替換PANet 進行特征融合,進一步提高模型的檢測效率,提升網絡對不同尺度手勢目標的檢測效果。
谷歌大腦團隊在EfficientDet 目標檢測算法中提出了BiFPN[22],其主要思想可以概括為:有效的雙向跨尺度連接和加權特征融合。BiFPN 的特征融合方法是將雙向特征金字塔提取的特征加權后按像素求和。而原始的YOLOv5s算法則采取按通道維度進行拼接的方式。因此本文將雙向特征金字塔BiFPN引入到YOLOv5s模型的特征融合網絡中,采用按通道維度拼接方式進行特征融合,并利用跨層級聯的方式,提高網絡特征融合能力。原始的YOLOv5s算法的特征融合網絡如圖4所示。

圖4 原始YOLOv5s算法的特征融合網絡Fig.4 Original YOLOv5s algorithm for feature fusion network
圖中Ci(i=2~5)表示前饋網絡提取到的多尺度特征。F表示C3_3算子,Pi表示輸出特征,2×指的是通過雙線性插值操作來實現兩倍的上采樣,0.5×表示下采樣。將主干網絡提取到的不同尺度的特征{C2,C3,C4,C5}輸入到特征融合網絡中,設置原圖分辨率為640×640,經過雙向跨尺度連接和加權特征融合后,得到三個不同尺度的特征{P3,P4,P5}作為YOLOv5s 的檢測層,分辨率分別為20×20、40×40、80×80。
具體改進如下:
(1)為了提高小目標的識別準確率,本文提出了一種充分利用低層級特征的特征融合方法。該方法充分利用P2特征,在特征融合中加入了高分辨率P2特征的信息。將用于檢測小目標特征的P3與前一層級的特征C2 建立聯系,緩解由于網絡下采樣限制而間接導致的F3 特征的缺失,從而進一步提高網絡對一部分小目標的監督能力。
(2)為了提高模型的效率,在網絡進行自頂向下和自底向上的雙向特征融合的同時,在同一尺度的輸入和輸出節點之間增加跨尺度橫向連接,這種跨層級的連接方式能夠將表層的細節信息、邊緣信息、輪廓信息等整合到深層網絡中,從而在不增加計算量的情況下,實現對目標邊緣的精確回歸,減少了網絡因層級過多而造成的特征丟失。改進后的特征融合網絡結構如圖5所示。

圖5 本文改進的特征融合網絡Fig.5 Improved feature fusion network in this paper
圖5中紅色虛線表示跨層級聯,跨層級聯表示在同一尺度的輸入節點到輸出節點之間增加一個跳躍連接,因為它們在相同層,所以可以在不增加太多計算成本的同時,融合更多的特征。如圖5 所示,為了減少計算量和縮短推理時間,本文并未在低層級的P2 特征上采用跨層加權融合,只是在獲取用于最終檢測的P3和P4特征時用了跨層加權融合,只是充分利用低層級的P2 特征,將高分辨率的特征信息引入到特征融合中,提高了檢測模型在小目標檢測上的效果,有效提高了主干網絡在不同尺度手勢區域目標檢測中的學習能力。
加權特征融合部分使用快速歸一化融合公式,如式(7)所示,其歸一化過程通過每個權值與全部權值加和得到,且歸一化權重的值在[0,1]之間,提高了GPU的運行速度,減少了額外的時間成本。
在手勢數據集的采集過程中常常存在光照不均勻或背景近膚色等現象,該現象會導致圖片質量下降,影響模型對手勢的識別效果,從而造成漏檢和誤檢的問題。為了解決上述問題,本文在原網絡的基礎上增加了一種自適應調節對比度的圖像增強方法,即基于Retinex(Retina and Cortex)理論改進的自適應Gamma增強算法[23]。該算法的特點在于處理光照不均勻問題時具有較好的對比度、自然性和時效性。對于目前常用的圖像增強算法如直方圖均衡化、Retinex算法等,在進行圖像增強時會出現過度增強、顏色失真、光暈等問題[24]?;赗etinex 的自適應Gamma 增強算法可以根據圖像區域的明暗程度進行自適應的矯正,通過降低光照過強區域的圖像亮度,提高光照過低區域的圖像亮度,有效減弱圖像處理過程中的過度增強問題,使圖像具有較好的對比度。其次,該算法通過自適應矯正處理后保留了更多圖像的細節信息,可以減少圖像的顏色失真和光暈現象。此外,該算法在處理光照不均勻圖像時能夠根據光照分量的分布特性自適應地調整Gamma 參數,節省了人工設定Gamma值的時間。該圖像增強算法的主要步驟為:
(1)利用Retinex 理論將圖像的亮度分量和反射分量分離。
式中,Rc(x,y)表示被分離后的反射分量,Ic(x,y)表示RGB各個通道的亮度,L(x,y)表示圖像的亮度分量。
(2)利用自適應Gamma 校正算法對亮度分量進行矯正。
式中,Len(x,y)表示通過矯正后的亮度分量,γ(x,y)表示系數矩陣,表示亮度分量的累積分布函數,Pω(l)表示各個亮度值的權值分布函數:
式中,P(l)表示亮度分量的概率密度函數,nl表示對應的亮度包含的像素數,np表示亮度分量所含的像素總數。
(3)通過融合Len(x,y)和Rc(x,y)得到最終增強后的圖像,恢復原來圖像的顏色和細節。
通過矯正后的實驗對比圖如圖6所示。

圖6 通過Gamma矯正前后的對比圖Fig.6 Pictures before and after correction by Gamma
實驗結果表明,通過對光照不均勻的圖像進行校正處理,不僅使預處理后的圖像清晰度得到了較大的提高,同時也增加了數據集中圖像的光照多樣性。將數據集進行光照增強預處理,在提高手勢圖像質量的同時,也提高了手勢識別的準確率和召回率。增加該圖像增強算法的HD-YOLOv5s手勢識別方法流程圖如圖7所示。

圖7 HD-YOLOv5s手勢識別方法流程圖Fig.7 Flowchart of HD-YOLOv5s hand gesture recognition method
本文采用NUS-II數據集[9],共有2 750個樣本,分為10類。數據集是通過在各種室內和室外復雜環境下對40位不同手型和種族的實驗人員采集而成的。該數據集中的手勢圖像具有不同的大小和尺寸,且膚色各異,背景復雜,符合本文的研究標準。數據集部分樣例如圖8所示。

圖8 NUS-II數據集樣例Fig.8 Sample in NUS-II dataset
自制手勢數據集采用紅外攝像頭進行拍攝,在不同距離不同光照條件下分別對5 名實驗人員進行手勢采集,每名人員比出7種不同的手勢,分別為數字手勢0~5以及手勢ok。為了獲得更多的數據,本文采用數據增強的方法對采集的圖片進行翻轉、縮放、移位等操作,對數據集進行擴充。擴充后的數據集,每個類有300 個樣本,總共2 100張圖片。
本文采用的手勢數據集均采用VOC 數據集格式,自制手勢數據集采用labelImage 標注工具對格式為JPEGImages 的圖片進行人工標注,并將數據集中的2 100 個樣本按照9∶1 的比例劃分為訓練集和測試集。自制手勢數據集的示例如圖9所示。

圖9 自制數據集樣例Fig.9 Sample in self-made dataset
為了更好地呈現對比實驗前后的模型檢測性能,采用目前主流的目標檢測算法的驗證指標進行實驗。本文采用的具體檢測指標如下:
準確率(Precision,P):模型預測的所有目標中,預測正確的比例。
召回率(Recall,R):所有真實目標中,模型預測正確的目標比例。
式中,TP(true positives)表示手勢圖像的正確識別數目;FP(false positives)表示錯誤辨識手勢圖像的數目;FN(false negatives)表示漏檢的手勢圖像數目。
平均精度(average precision,AP):數據集中單一類別的精度值,它的取值范圍是0 到1。因為使用11 點插值采樣法會使模型在精度方面有損失,所以本文采用VOC 2010以后更改的AP值計算方法,定義如下:
式中,AP 是對P-R(Precision-Recall)曲線上的Precision值求均值。P-R曲線則是以召回率值為橫軸,準確率值為縱軸,在坐標軸上繪制出的一條曲線。首先對P-R曲線進行平滑處理,即取所有真實的Recall 值都作為閾值,當召回率r′大于每一個閾值時,都會對應得到一個最大的Precision值為Psmooth(r),然后用積分的方式計算平滑曲線下方的面積作為最終的AP值。
平均精度均值(mean average precision,mAP):數據集中所有類別AP 值的平均值,又稱識別率。計算公式如式(19)所示,其中k為識別目標的總類別數。
本文的所有對比實驗均在操作系統Windows10 下進行,硬件設備為GPU NVIDIA GTX970。實驗環境配置:深度學習框架為PyTorch 1.10.0;CUDA的版本號為CUDA10.2;cuDNN 的版本號為cuDNN8.2.4。實驗參數配置:學習率(learning rate)設置為0.01,可以更快地使局部達到收斂;批次大小設置為16,使得訓練速度較快。
3.4.1 對比實驗
為了解決復雜環境下小尺度手勢識別率低的問題,本文對YOLOv5s 模型的特征融合網絡做了改進,對當前主流特征融合網絡FPN、PANet、BiFPN的精度值和參數量進行比較,并選出檢測結果最優的多尺度融合網絡。如表1所示,FPN只進行自頂向下的單方向特征融合,檢測精度不高;PANet 在FPN 后面添加了一個自底向上的路徑,融合了低層特征的強定位信息,檢測進度提升明顯;BiFPN網絡又在PANet的基礎上增加了雙向跨尺度連接,雖然參數量M相比于PANet的參數量提高了13.2%,但計算量FLOPs 幾乎無增長,且mAP 值增長了1.4 個百分點,因此增加跨尺度連接使網絡在幾乎不增加計算成本的情況下,融合了更多的特征,檢測精度相比于其他網絡更優。

表1 特征融合網絡性能比較Table 1 Performance comparison of feature fusion networks
為了更好地展現出本文改進模型的優勢,分別與目標檢測算法中較為經典的兩階段模型Faster R-CNN和一階段模型SSD、YOLOv3 以及YOLOv5s 進行對照,模型統一使用NUS-II數據集進行訓練和驗證,如表2所示。

表2 主流目標檢測算法與本文方法對比Table 2 Comparison of mainstream target detection algorithms with methods in this paper
由表2 可知,Faster R-CNN、SSD 和YOLOv3 模型大小相當于HD-YOLOv5s 模型大小的6~10 倍,參數量相當于HD-YOLOv5s 的3~10 倍,因此HD-YOLOv5s 相較于這些模型而言屬于輕量級網絡。HD-YOLOv5s模型相比于YOLOv5s模型大小相差不大,雖然HD-YOLOv5s在原YOLOv5s 的特征融合網絡中添加了特征層,導致模型計算量增加,推理時間比YOLOv5s 慢了1.44 ms,但檢測精度比YOLOv5s 提高了3.6 個百分點。HDYOLOv5s 在檢測精度和推理速度方面都優于Faster R-CNN、SSD 和YOLOv3 模型,且對單幀照片的檢測時間僅需0.01~0.02 s,能夠滿足手勢識別的實時性要求。
為了充分驗證本文提出的手勢識別方法的優越性,將本文方法與其他手勢識別方法在公共數據集NUS-II上進行比較,實驗結果如表3所示。

表3 主流手勢識別算法與本文方法對比Table 3 Comparison of mainstream gesture recognition algorithms with methods in this paper
由表3可知,文獻[9]采用貝葉斯注意力模型提取手勢特征(顏色、形狀和紋理),并使用支持向量機進行分類,識別率為93.7%。文獻[25]利用膚色模型將手勢區域分割出來,然后用卷積神經網絡對手勢區域進行識別,識別率為95.6%。文獻[26]提出了基于深度卷積神經網絡的新方法,將圖像調整到統一大小后,忽略分割和檢測階段,直接對手勢進行分類,識別率為96.2%。文獻[27]提出了一種基于雙通道卷積神經網絡(DC-CNN)的手勢識別方法,它將手勢圖像和邊緣圖像分別輸入兩個通道中,經池化操作后在全連接層融合特征以提取更深的分類信息,識別率為98.0%?;谝陨辖Y果,可以得出以下結論。
(1)文獻[9,25]通過手勢分割和膚色檢測的方法,易受環境因素的影響,導致復雜環境下的手勢識別率不高,而本文提出的方法通過添加圖像增強預處理和在特征提取網絡中添加SKNet注意力模塊,提高了網絡的特征提取能力,增強了模型在復雜環境下的泛化能力和魯棒性,提高了手勢識別率。
(2)文獻[26-27]分別通過直接分類和增加網絡層次的方法對手勢進行識別,利用這種結構可以削弱光照不均勻及復雜背景的影響,提高模型對復雜環境的適應性,但對于小尺度手勢的識別效果一般。而本文算法通過構建新型的特征融合網絡,提高了模型對遠距離小尺度手勢的識別能力,進一步提高了手勢識別率。
3.4.2 消融實驗
為了驗證各改進模塊在YOLOv5s網絡模型中的作用,下面將基于YOLOv5s模型進行消融實驗,并對改進的不同模型性能進行對比。如表4表示,其中“—”代表不使用,“√”代表使用。
從表4中可以看出,本文改進的網絡模型HD-YOLOv5s的mAP 值達到了99.5%。改進模型1 是在原主干提取網絡中加入注意力機制SKNet,參數量M并無大幅增長,mAP相較于原模型提高了1.5個百分點,由于SKNet既是一個輕量級嵌入式模塊,又在自動選擇最優算子后產生了更合理的權重系數,在參數量穩定的情況下,提高了網絡的特征提取能力;改進模型2是在原特征融合網絡中引入新型的雙向特征融合網絡BiFPN,對比表1中具有三層融合特征層的BiFPN,引入低特征層后的BiFPN的融合能力更強,其充分利用低層級的P2特征,提高了檢測模型在小目標檢測上的效果,對比檢測層為4的改進模型3,改進模型2并沒有將低特征層加入雙向特征融合中,mAP 下降了0.3 個百分點,但計算量減小了0.5%,參數量減少了4.9%,故為了減少計算量和縮短推理時間,本文并未在低層級的P2 特征上采用雙向特征融合;改進模型4是將注意力機制和改進的特征融合模塊同時加入網絡中,與改進模型2 相比,計算量和參數量幾乎無增長,但mAP 增長了1.3 個百分點,與原模型相比,mAP 增長了3.4 個百分點;改進后的模型HD-YOLOv5 在輸入端對數據集進行了Gamma 圖像增強預處理,mAP值達到了99.5%,相比原YOLOv5s網絡提高了3.6個百分點。

表4 各改進模型的性能比較Table 4 Performance comparison of each improved model
如圖10 所示,分別為改進前后的各模型在自制訓練集上的訓練結果曲線,其中設置迭代次數為200,學習率為0.01,動量因子為0.937。圖(a)中橫坐標E表示訓練輪次,縱坐標表示IOU為0.5時的mAP值,可以看出,改進后模型的性能均比改進前的模型更好。圖(b)中改進后的HD-YOLOv5s 模型相比于YOLOv5 模型,收斂速度更快,Loss 值更小,說明改進后的模型網絡的收斂能力更強。

圖10 各模型訓練曲線Fig.10 Training curves for each model
3.4.3 檢測結果分析
本文進行訓練的數據集為公共數據集NUS-II,驗證結果如表5 所示。NUS-II 數據集雖然背景具有多樣性和復雜性,但對于本文而言,該數據集中不同光照條件下的手勢圖像較少。為了驗證改進方法的泛化能力及魯棒性,本文在具有豐富光照強度對比的自制數據集上也進行了驗證實驗,驗證結果如表6所示。可以得出HD-YOLOv5s 在自制數據集上識別率也有較大的提升。由此可以證明,本文改進的算法對于各種復雜背景下的干擾,都可以取得較好的識別效果和更好的魯棒性。

表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)分別表示在強光和弱光環境下對手勢的識別,圖(c)表示在光照不均勻環境下對手勢的識別,左圖均為YOLOv5s 模型的識別效果圖,右圖均為HD-YOLOv5s 模型的識別效果圖。可以看出改進后的模型HD-YOLOv5s 在不同光照環境下對手勢圖像的識別率均有不同程度的提升,圖(c)中左圖將手勢ok和窗沿分別誤檢為手勢5和手勢0,右圖則識別正常且識別精度高于左圖。如圖12為改進前后模型在背景近膚色情況下對手勢的識別效果對比圖,其中圖(a)和圖(b)分別表示在簡單和復雜背景下對手勢的識別,圖(a)中通過左右圖對比可知,在簡單背景下改進前后模型的識別效果相差不大,圖(b)中在復雜背景下,右圖的識別率明顯高于左圖,可知改進后的模型HDYOLOv5s對膚色近背景問題下的手勢識別率有明顯的提升作用。如圖13為改進前后模型在復雜環境下對小尺度手勢的識別效果,其中圖(a)、(b)、(c)分別表示在不同的復雜場景下對距離較遠的小尺度手勢的檢測,尤其在圖(a)中光照不均勻且背景復雜情況下,改進后的模型對小尺度手勢的識別率提升效果較為明顯。

圖11 不同光照條件下的識別效果Fig.11 Recognition effect under different lighting conditions

圖12 背景近膚色情況下的識別效果Fig.12 Recognition effect in case of near-skin color background

圖13 復雜環境下小尺度手勢的識別效果Fig.13 Recognition effect of small-scale gestures in complex environment
綜上所述,改進后的模型HD-YOLOv5s 相較于原模型YOLOv5s 在識別性能方面表現更優,YOLOv5s 模型在光照不均勻、背景近膚色等復雜環境下的識別性能不佳,容易出現誤檢等問題,并且對遠距離小尺度手勢的識別效果較差。而HD-YOLOv5s 模型能夠準確識別復雜環境下的手勢,且識別率較高,并改善了原模型YOLOv5s對小尺度手勢識別率低的問題。改進后模型的性能提升,并不是具體到某一方法的改進,而是通過模型整體的特征提取能力和特征融合能力的提高使模型的識別性能得到提升。
本文提出手勢識別方法HD-YOLOv5s,使得手勢識別在復雜場景下也能獲得較高的準確率,進一步促進了人機交互技術的發展。首先采用基于Retinex理論的自適應Gamma 圖像增強方法對數據集進行預處理;其次在特征提取網絡中引入自適應卷積注意力機制模型SKNet,提高網絡的特征提取能力;最后將調整后的BiFPN結構引入特征融合網絡中,提高了網絡對小目標的識別率。
實驗結果表明,HD-YOLOv5s 的mAP 值達到了99.5%,與Faster R-CNN、SSD 和YOLOv3 模型相比,本文方法對單個照片的檢測時間僅需0.01~0.02 s,模型較小,檢測速度較快,能夠滿足復雜場景下手勢識別的實時性要求。與原YOLOV5s 模型相比,模型精準度提升了3.6個百分點,且相比于目前主流的手勢識別算法,具有較好的泛化能力和魯棒性。最后,分別在自制數據集和具有復雜背景的公共數據集NUS-II 上做驗證實驗,識別率達到99.5%和98.9%。結合上述所言,本文改進的網絡模型對于光照不均勻、背景近膚色以及手勢尺度較小等問題,都可以取得較好的識別效果和更好的魯棒性,且滿足復雜場景下手勢識別的實時性要求。
高效的靜態手勢識別是研究動態手勢及其應用的重要基礎,實驗證明本文方法在復雜環境下具有較好的魯棒性和實時性。未來計劃將本文方法用于具有復雜背景變化的動態手勢追蹤中,嘗試解決其識別率差的問題,使本文方法能夠在人機交互領域更具有實用性。