袁帥 呂佳琪
(沈陽建筑大學(xué) 遼寧沈陽 110168)
在過去的幾十年里,傳統(tǒng)人機(jī)交互技術(shù)所使用的鍵盤、鼠標(biāo)或者可觸摸屏幕在機(jī)器控制方面已有非常廣泛的應(yīng)用,但是新出現(xiàn)的手勢識別技術(shù)更加符合人體的使用習(xí)慣,因此對手勢識別技術(shù)的研究具有重要意義和潛在應(yīng)用價值。除此之外,手勢是人類普遍使用的交流方式之一,同時又是聾啞人的主要交流方式,因此,手勢識別方面的研究將可能給人機(jī)交互和人與人之間的交互方式帶來重大變革[1]。手勢識別技術(shù)因其特有的優(yōu)勢已在許多領(lǐng)域獲得廣泛應(yīng)用,例如:(1)在人機(jī)交互領(lǐng)域,以手勢特征作為控制信號的方式相較于傳統(tǒng)以按鍵觸屏進(jìn)行控制的方式來說更加富有交互體驗(yàn);(2)在智能家居領(lǐng)域,用戶可通過手勢實(shí)現(xiàn)對智能設(shè)備相應(yīng)功能的控制,從而使控制過程更加自然簡單;(3)在身體語言分析領(lǐng)域中,通過手勢識別可以更加準(zhǔn)確地識別和理解人們的意圖和情感,進(jìn)而為人們提供更好的交互體驗(yàn)。除此之外,手勢識別在智能駕駛、網(wǎng)絡(luò)直播、安防監(jiān)控等領(lǐng)域也有廣泛的應(yīng)用。
YOLOv5(You Only Look Once version 5)是一種用于目標(biāo)檢測的深度學(xué)習(xí)算法,由美國加州大學(xué)伯克利分校的研究人員Alexey Bochkovskiy 和團(tuán)隊(duì)開發(fā),核心思想是將輸入的圖像分為一個個小的方格,對每個方格同時預(yù)測出目標(biāo)的位置、類別和置信度等信息。YOLOv5 在目標(biāo)檢測領(lǐng)域廣受歡迎,但仍存在對手勢特征不敏感問題。
針對目標(biāo)檢測網(wǎng)絡(luò)對手勢特征不敏感和傳統(tǒng)的樸素貝葉斯分類器的分類精度缺失問題,本文提出了一種新型改進(jìn)YOLOv5網(wǎng)絡(luò)和Copula貝葉斯分類器手勢識別算法。該算法包含預(yù)處理、手勢檢測和手勢分類3個主要步驟,預(yù)處理主要有圖片統(tǒng)一大小、轉(zhuǎn)化成灰度圖、圖片歸一化3 個部分;手勢檢測利用改進(jìn)YOLOv5 網(wǎng)絡(luò)訓(xùn)練出的檢測模型實(shí)現(xiàn);手勢分類采用了Copula 貝葉斯分類器手勢識別算法。實(shí)驗(yàn)結(jié)果表明:本文提出的算法通過改進(jìn)現(xiàn)有框架,進(jìn)一步提高了手勢識別分類精度和速度,具有一定實(shí)際價值。
YOLOv5目標(biāo)檢測網(wǎng)絡(luò)包含一系列網(wǎng)絡(luò)模型,包括YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x、YOLOv5x+TTA等不同版本??傮w上說,YOLOv5是YOLOv4的改進(jìn)加強(qiáng)版,通過對細(xì)節(jié)進(jìn)一步優(yōu)化,從而具有更好的檢測精度和速度。YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)[2]主要包含輸入端、Backbone、Neck和輸出端4個部分。其中,輸入端的拼接方式采用隨機(jī)縮放、排布、縮減,可以提高對小目標(biāo)檢測精度;Backbone 部分采用了Focus 結(jié)構(gòu),且包含切片操作;Neck部分采用CSPNet中的CSP2結(jié)構(gòu),增強(qiáng)了特征融合能力;輸出端采用了Bounding box 損失函數(shù)和nms 加權(quán)方式,可對多目標(biāo)進(jìn)行篩選和非極大值抑制。
卷積注意力機(jī)制模塊[3,4](Convolutional Block Attention Module,CBAM)的基本思想是在卷積神經(jīng)網(wǎng)絡(luò)中引入注意力機(jī)制,以便在處理輸入數(shù)據(jù)時更好地捕捉其重要的特征。CBAM 模塊依次從通道和空間兩個不同的維度推算注意力圖,然后將得到的注意力圖與輸入特征圖相乘,以此進(jìn)行自適應(yīng)特征細(xì)化。作為一個輕量級模塊,CBAM可以很方便地集成到卷積神經(jīng)網(wǎng)絡(luò)中實(shí)現(xiàn)端到端訓(xùn)練。此外,CBAM還具有參數(shù)少、速度快和效果好等特點(diǎn),含有CBAM的特征層可以捕捉到簡單的邊緣、形狀等,進(jìn)而獲取更復(fù)雜的語義表示。
本文將CBAM 模塊添加到Y(jié)OLOv5 結(jié)構(gòu)中,它可以將輸入手勢圖片中的手勢特征進(jìn)行加權(quán),從而突出目標(biāo)物體與背景的差異。
經(jīng)YOLOv5實(shí)現(xiàn)手勢檢測后,為實(shí)現(xiàn)手勢識別,還需要引入一種圖片分類算法。貝葉斯分類器是一種簡單快速且可解釋性強(qiáng)的多分類算法,較為適合本研究中的場景,因此,本研究選取該算法實(shí)現(xiàn)圖片分類。
貝葉斯定理的基本思想是在已知某些先驗(yàn)信息的基礎(chǔ)上,通過新的觀測數(shù)據(jù)來更新對于某個事件發(fā)生概率的估計(jì),其數(shù)學(xué)表達(dá)如式(1)所示。
假設(shè)各屬性Xk(k=1,2,…,n)之間相互獨(dú)立,那么該事件各屬性發(fā)生概率和數(shù)學(xué)表達(dá)如式(2)所示。
由于分母的P(X)對各屬性間概率相同,因此根據(jù)貝葉斯定理形成的樸素貝葉斯分類器[5],只需要比較哪個屬性的分子屬性概率最大,就是該目標(biāo)特征的屬性,樸素貝葉斯分類器的判別準(zhǔn)則的數(shù)學(xué)表達(dá)如式(4)所示。
傳統(tǒng)貝葉斯分類器依賴于屬性間相互獨(dú)立的假設(shè),這在實(shí)際應(yīng)用中難以得到保證,因而本文在此基礎(chǔ)上采用一種屬性間關(guān)系描述利用Copula理論方法構(gòu)造類條件概率密度函數(shù)的方法。
基于Copula理論改進(jìn)的樸素貝葉斯分類器構(gòu)造的類條件概率密度函數(shù),可以刻畫各屬性間的相關(guān)性。Copula貝葉斯分類器在一定程度上改善了樸素貝葉斯分類器因?qū)傩蚤g相互獨(dú)立的假設(shè)而產(chǎn)生的分類精度缺失問題[6]。
Copula 理論的核心概念是:隨機(jī)變量X的聯(lián)合概率密度函數(shù)可以使用邊緣概率密度函數(shù)和與此相關(guān)的Copula密度函數(shù)的乘積來表示,其數(shù)學(xué)公式為
Pair Copula構(gòu)建樹是一種基于樹形結(jié)構(gòu)的聯(lián)合概率密度估計(jì)方法,它的基本思想是將多維變量的聯(lián)合概率密度函數(shù)分解為一系列邊緣分布和條件分布函數(shù)的乘積形式。假設(shè)概率密度函數(shù)為fn(x),其核密度估計(jì)如式(6)所示。
YOLOv5 在手勢識別中應(yīng)用廣泛,但其對易混淆信息的抑制能力不夠,無法選擇性地關(guān)注到更有用的目標(biāo)對象。因此,本文在YOLOv5 中插入CBAM 模塊,得到的Attention-YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)如圖1(a)所示。由此可以看出,在經(jīng)典YOLOv5 基本結(jié)構(gòu)的Backbone 與Neck部分之間,本文添加了多個CBAM模塊,從而使網(wǎng)絡(luò)更關(guān)注手勢特征部分。
圖1 結(jié)構(gòu)圖與檢測結(jié)果
本文采取融合注意力模塊CBAM的改進(jìn)方式去實(shí)現(xiàn)手勢特征向量篩選加權(quán),在YOLOv5目標(biāo)檢測網(wǎng)絡(luò)中添加CBAM 模塊的具體步驟如下:(1)首先修改YOLOv5s的配置文件,將C3模塊修改為添加注意力機(jī)制后的模塊CBAMC3;(2)然后在原來的YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)中添加CBAMC3 模塊;(3)在改進(jìn)的YOLOv5 網(wǎng)絡(luò)程序中添加額外的判斷語句,得到修改后的CBAMC3模塊。
添加該模塊后,本文在模型訓(xùn)練時調(diào)用了修改后的YOLOv5配置文件,去驗(yàn)證注意力機(jī)制在YOLOv5模型上的有效性。
Copula 貝葉斯分類器的主要思想是:屬性間的聯(lián)合概率密度函數(shù)可以表示為Pair Copula函數(shù)和對應(yīng)邊緣概率密度函數(shù)的乘積。改進(jìn)分類器的具體實(shí)現(xiàn)方法是:首先計(jì)算相關(guān)系數(shù)矩陣,然后構(gòu)建Copula 模型,再利用極大似然估計(jì)進(jìn)行參數(shù)估計(jì),最后根據(jù)貝葉斯原理樣本類別屬于后驗(yàn)概率最大的類別。
3.1.1 數(shù)據(jù)集制作
數(shù)據(jù)集制作主要是將包含自建數(shù)據(jù)和標(biāo)準(zhǔn)數(shù)據(jù)集的手勢圖片放在特定文件夾中。其中,手勢識別標(biāo)準(zhǔn)數(shù)據(jù)集為HaGRID(Hand Gesture Recognition Image Dataset),包含18類手勢共計(jì)552 992個樣本,因該數(shù)據(jù)集過于龐大,本文選取手勢0~5這6組數(shù)據(jù)中的部分圖片作為標(biāo)準(zhǔn)數(shù)據(jù)集,與自建數(shù)據(jù)集混合進(jìn)行后續(xù)模型訓(xùn)練。
3.1.2 標(biāo)簽制作
首先對數(shù)據(jù)集進(jìn)行手勢區(qū)域人工標(biāo)注,再將標(biāo)注后的圖片放到指定的文件夾中,用于后續(xù)的訓(xùn)練。
3.1.3 模型訓(xùn)練
在確定好訓(xùn)練數(shù)據(jù)集的相關(guān)路徑之后,修改模型配置文件的相關(guān)參數(shù),并使用預(yù)訓(xùn)練模型中的權(quán)重作為訓(xùn)練權(quán)重。在經(jīng)過50 個epoch 后,選取訓(xùn)練結(jié)果最好的權(quán)重進(jìn)行保存。
3.1.4 圖片檢測
修改測試?yán)玫臋?quán)重路徑為訓(xùn)練時得到的最好權(quán)重路徑,并輸入測試的手勢圖片數(shù)據(jù)集,手勢檢測的結(jié)果示意圖見圖1(b)。
針對YOLOv5手勢識別目標(biāo)檢測網(wǎng)絡(luò)存在的識別偏差問題,本文提出了Attention-YOLOv5算法。該算法將CBAM添加到Y(jié)OLOv5結(jié)構(gòu)中,通過對輸入的手勢圖像中手勢目標(biāo)進(jìn)行加權(quán),從而突出了手勢目標(biāo)與背景的差異。圖片檢測實(shí)驗(yàn)結(jié)果如表1所示,從表中數(shù)據(jù)可以看出:相比于改進(jìn)前的YOLOv5網(wǎng)絡(luò),Attention-YOLOv5目標(biāo)檢測網(wǎng)絡(luò)精確度提升3.0%,平均精度提升3.2%,召回率提升5.9%。圖片分類的結(jié)果如表2所示,從表中數(shù)據(jù)可以看出:Copula貝葉斯分類器分類結(jié)果相比于樸素貝葉斯分類器在不同手勢的準(zhǔn)確率上均有顯著提升。
表1 YOLOv5算法改進(jìn)前后性能對比(單位:%)
表2 改進(jìn)前后貝葉斯分類器分類準(zhǔn)確率對比(單位:%)
本文提出的Attention-YOLOv5 算法,將注意力機(jī)制網(wǎng)絡(luò)模塊融合到Y(jié)OLOv5結(jié)構(gòu)中,提高了YOLOv5目標(biāo)檢測手勢識別網(wǎng)絡(luò)的識別準(zhǔn)確率和召回率。此外,本文提出的Copula 貝葉斯分類器,通過刻畫隨機(jī)變量間復(fù)雜的相關(guān)性,解決了樸素貝葉斯分類器必須依賴于隨機(jī)變量間相互獨(dú)立的問題,并且在實(shí)驗(yàn)中取得了比樸素貝葉斯分類器更高的分類準(zhǔn)確率。今后相關(guān)研究還應(yīng)關(guān)注復(fù)雜背景、復(fù)雜光照和多目標(biāo)同時存在情況下的手勢識別,以使手勢識別算法可以具有更好的魯棒性。