魯杰偉 盤軒 彭雯蝶 諶愛文
關(guān)鍵詞:手勢識別;YOLOv5S;改進(jìn)YOLOv5s模型;目標(biāo)檢測;動態(tài)稀疏注意力
0 引言
隨著人工智能技術(shù)的不斷發(fā)展,手勢識別作為一種基于人機交互的智能技術(shù)逐漸受到廣泛關(guān)注和應(yīng)用。手勢識別技術(shù)可以通過感應(yīng)設(shè)備對人的肢體動作進(jìn)行識別和分析,并將其轉(zhuǎn)化為電子信號,從而實現(xiàn)與計算機、智能設(shè)備的自然交互。手勢識別技術(shù)在智能城市、智能家居、智能醫(yī)療、智能交通等領(lǐng)域都有廣泛的應(yīng)用,為人們提供了更加自然、便捷、高效的交互方式,從而提高了生活質(zhì)量和工作效率。
深度學(xué)習(xí)技術(shù)的進(jìn)步極大地推動了手勢識別領(lǐng)域的發(fā)展。在理論研究方面,學(xué)者們不僅探索了手勢的識別和處理機制,還深入分析了手勢交互的基本動作及其參數(shù)。國際上,例如CMU、Stanford、MIT 和Google等研究機構(gòu),在手勢識別技術(shù)的硬件、算法和應(yīng)用方面取得了顯著成果[1]。這些進(jìn)展為手勢識別的實際應(yīng)用提供了新視角和解決方案。特別是結(jié)合深度學(xué)習(xí)技術(shù),如YOLOv5[2],對提高識別算法的準(zhǔn)確性和效率的研究,成為了重點。YOLOv5s的應(yīng)用優(yōu)化了手勢識別中的準(zhǔn)確度和速度,尤其在處理復(fù)雜背景和動態(tài)手勢方面顯示出了優(yōu)勢。
YOLOv5s作為一種高效的目標(biāo)檢測模型,在手勢識別領(lǐng)域得到了廣泛的關(guān)注和應(yīng)用。其在手勢識別方面的主要優(yōu)勢體現(xiàn)在其快速和準(zhǔn)確的識別能力,特別適用于需要實時處理的動態(tài)手勢場景。通過對YOLOv5s模型的調(diào)整和優(yōu)化,該模型能夠更有效地識別各種復(fù)雜度的手勢,進(jìn)而提高手勢識別系統(tǒng)的整體性能。
然而,現(xiàn)有的基于YOLOv5s手勢識別算法在目標(biāo)檢測準(zhǔn)確率和效率方面存在一定的問題,限制了其在實際應(yīng)用中的性能[3]。其中一個原因是現(xiàn)有的基于YOLOv5s手勢識別算法在目標(biāo)檢測階段存在相似手勢區(qū)分能力較弱以及檢測結(jié)果的重疊和重復(fù)問題。因此,我們希望通過改進(jìn)YOLOv5s算法來提高手勢識別的準(zhǔn)確率和效率。本文將從目標(biāo)檢測預(yù)測階段對YOLOv5s算法進(jìn)行改進(jìn),以解決現(xiàn)有算法在目標(biāo)檢測和速度方面的不足,從而使其在手勢檢測領(lǐng)域更加快速和準(zhǔn)確。
1 相關(guān)工作
YOLOv5是YOLO(You Only Look Once) 系列目標(biāo)檢測模型的一個版本,由Ultralytics 團(tuán)隊開發(fā)。YO?LOv5s模型的整體架構(gòu)可以分為幾個主要部分,包括骨干網(wǎng)絡(luò)、特征提取器、檢測頭和損失函數(shù)[2]。YO?LOv5s 模型的骨干網(wǎng)絡(luò)采用了CSPDarknet53,CSP?Darknet 是Darknet 系列中的一種變體,引入了CSP(Cross Stage Partial) 結(jié)構(gòu),以提高網(wǎng)絡(luò)的效率和性能。CSP結(jié)構(gòu)通過將特征圖分成兩部分,一部分進(jìn)行卷積計算,另一部分保持不變,從而減少了計算量和參數(shù)數(shù)量。在骨干網(wǎng)絡(luò)之后,YOLOv5s模型使用了一系列的卷積層、上采樣層和殘差連接來提取圖像的特征。這些層逐漸減小特征圖的尺寸,并增加特征圖的深度,以捕獲圖像中不同尺度的信息。YOLOv5s模型的檢測頭負(fù)責(zé)預(yù)測邊界框的位置和類別。檢測頭由一系列的卷積層和最終的輸出層組成,其中輸出層負(fù)責(zé)生成目標(biāo)的位置坐標(biāo)、置信度分?jǐn)?shù)和類別概率[3-4]。
YOLOv5s 模型在YOLOv5 的基礎(chǔ)上對目標(biāo)檢測中常見的問題都做了一定的優(yōu)化改進(jìn),在性能上同時兼顧檢測速度和檢測精度,具有較好的工程實用性。YOLOv5s模型采用了一種簡單而有效的設(shè)計,具有較低的計算和參數(shù)量,同時能夠?qū)崿F(xiàn)較高的檢測精度和速度。這使得它成為一種適用于移動設(shè)備和嵌入式系統(tǒng)的理想選擇。
然而,通過分析,發(fā)現(xiàn)YOLOv5s在手勢識別上依然存在部分問題。為了滿足手勢檢測的需求,本文對YOLOv5s模型進(jìn)行了進(jìn)一步優(yōu)化,以提升檢測精度和效率。本文通過引入動態(tài)稀疏注意力BiFormer模塊,更好地處理長序列數(shù)據(jù)和具有變長結(jié)構(gòu)的數(shù)據(jù)[5],例如文本和視頻,從而可以更好地捕捉目標(biāo)在時間和空間上的關(guān)系。因此,改進(jìn)的YOLOv5s在處理物體尺度和形狀的變化、長序列數(shù)據(jù)和具有變長結(jié)構(gòu)的數(shù)據(jù)以及目標(biāo)重疊和形狀信息方面有了很大的提升,使得其在手勢識別上更加強大和精準(zhǔn)。
2 基于改進(jìn)YOLOv5s 的手勢識別算法
在視覺變換器中,注意力機制作為核心構(gòu)件,擅長捕捉長距離依賴關(guān)系。然而,這種能力的代價是巨大的計算負(fù)荷和內(nèi)存占用。為解決這個問題,提出了動態(tài)稀疏注意力機制(Dynamic Sparse Attention,DSA) 。DSA通過對自注意力(Self-Attention) 矩陣進(jìn)行二值化處理,僅計算選定特征,有效減少了計算量和內(nèi)存使用。
BiFormer 模塊融合了Transformer 網(wǎng)絡(luò)中的自注意力(Self-Attention) 和交叉注意力(Cross-Attention) 機制[5],以更有效捕捉序列數(shù)據(jù)的依賴關(guān)系。在該模塊中,輸入序列先后通過自注意力和交叉注意力計算,然后通過前饋網(wǎng)絡(luò)處理,以產(chǎn)生最終輸出。其結(jié)構(gòu)如圖1所示,詳細(xì)信息如表1所示,這種方法優(yōu)化了信息處理流程,提高了處理效率。
具體來說,DSA引入了一個自適應(yīng)閾值Tau,用以將自注意力矩陣A 二值化成一個二值矩陣B。在這個過程中,只有那些自注意力矩陣中的值大于閾值Tau元素才會在二值矩陣中被設(shè)為1。然后,使用這個二值矩陣B 替代原始的自注意力矩陣A 來進(jìn)行注意力計算,要注意的是,在計算過程中僅需要計算那些在二值矩陣中被選中的位置上的特征。DSA的具體計算公式如下:
其中,Q、K 和V 分別是查詢、鍵和值矩陣,dk 是鍵的維度。
BiFormer模塊中,除了自注意力機制,還引入了交叉注意力機制。交叉注意力機制將序列中的每個位置視為一個節(jié)點,通過計算節(jié)點之間的注意力權(quán)重來進(jìn)行特征的交互,可以更好地捕捉序列數(shù)據(jù)中的長距離依賴關(guān)系。具體地,對于一個序列X ={ x1,x2…xn },交叉注意力機制的計算公式如下:
其中,Y 是輸出序列,Attention(X,X,X )表示交叉注意力計算,LayerNorm 表示歸一化操作。BiFormer模塊中,交叉注意力計算是在自注意力計算之后進(jìn)行的。
3 實驗與分析
3.1 數(shù)據(jù)集
實驗采用了Microsoft Kinect and Leap Motion數(shù)據(jù)集[6-7],該數(shù)據(jù)集記錄了14名不同的人執(zhí)行的10種不同手勢,每種手勢重復(fù)10次,共計1 400個手勢。數(shù)據(jù)集中不僅包括了Kinect和Leap Motion的動作數(shù)據(jù),還提供了Kinect的校準(zhǔn)參數(shù)。此外,Leap Motion的數(shù)據(jù)包括了所有Leap SDK提供的參數(shù)。
3.2 評估指標(biāo)
本文將均值平均精度(mAP) 作為衡量模型在手勢識別準(zhǔn)確性的主要指標(biāo),該指標(biāo)綜合考慮了精確率(P) 和召回率(R) 。此外,模型的大小通過參數(shù)量(Pa?rameters) 來評估,而模型的計算量則通過每次卷積所需的浮點運算量(BFlops) 來衡量。模型的檢測速度則通過每秒處理的圖片數(shù)量(FPS) 來評定。這些評價指標(biāo)全面反映了模型的性能和效率[8]。各評價指標(biāo)的計算公式如下:
其中,TP表示模型預(yù)測為正類且實際標(biāo)簽也為正類的樣本數(shù)量,F(xiàn)P表示模型預(yù)測為正類但實際上標(biāo)簽為負(fù)類的樣本數(shù)量,TN表示模型預(yù)測為負(fù)類且實際標(biāo)簽也為負(fù)類的樣本數(shù)量,F(xiàn)N表示模型預(yù)測為負(fù)類但實際上標(biāo)簽為正類的樣本數(shù)量[9]。
3.3 實驗結(jié)果與分析
為驗證改進(jìn)模型的性能,本研究選擇了與之類似的輕量級模型進(jìn)行比較,包括YOLOv3s、YOLOv4-tiny[10] 以及MobilenetV3-YOLOv5s[11]。其中,Mobile?netV3-YOLOv5s是通過將YOLOv5s的backbone 部分替換為MobilenetV3的backbone而構(gòu)建的。這樣的對比實驗有助于展示改進(jìn)模型在相似類別中的優(yōu)勢和特點。將模型按照第2節(jié)的配置進(jìn)行訓(xùn)練,將訓(xùn)練好的模型放在測試集上測試模型的性能,測試集包含800張圖片。實驗均不采用預(yù)訓(xùn)練模型,訓(xùn)練過程中參數(shù)配置相同。實驗結(jié)果如表2所示:
通過對比實驗結(jié)果可以發(fā)現(xiàn),不同模型的mAP(0.5)和Recall(0.5)略有差異,但整體上在80%以上,說明這些模型在目標(biāo)檢測任務(wù)中都具有較高的準(zhǔn)確性和全面性。YOLOv3s的模型參數(shù)和計算復(fù)雜度都遠(yuǎn)遠(yuǎn)高于其他模型,而YOLOv4-tiny和MobilenetV3-YO?LOv5s在這兩個指標(biāo)上都有較小的數(shù)值,說明它們是相對輕量級的模型。YOLOv4-tiny 在FPS 上表現(xiàn)最好,達(dá)到了72幀/秒,而YOLOv3s則最低,僅為27幀/ 秒。MobilenetV3-YOLOv5s雖然模型參數(shù)和計算復(fù)雜度更低,但性能和推理速度都略遜于YOLOv4-tiny。不過通過引入動態(tài)稀疏注意力BiFormer模塊,對關(guān)鍵特征的動態(tài)聚焦,加強了模型對復(fù)雜場景的識別能力,進(jìn)而在提升mAP的同時,略微犧牲了召回率,表明了在優(yōu)化模型對特定特征的關(guān)注度時,可能影響到模型對較為細(xì)微手勢的檢測能力。綜上所述,這項改進(jìn)措施促進(jìn)了手勢識別算法在準(zhǔn)確性、效率和速度方面的提升。
4 結(jié)束語
本研究通過改進(jìn)YOLOv5s算法,有效提升了手勢識別的準(zhǔn)確性和效率。實驗結(jié)果表明,這些改進(jìn)對于提高手勢識別在實際應(yīng)用中的可行性和實用性具有重要意義。未來的工作將集中在進(jìn)一步優(yōu)化算法性能,并探索其在更廣泛應(yīng)用場景下的潛力。此外,本研究也為深度學(xué)習(xí)在圖像識別領(lǐng)域的其他應(yīng)用提供了有價值的參考和啟示。我們期待著手勢識別技術(shù)在未來的發(fā)展,以及它在人機交互、增強現(xiàn)實等領(lǐng)域的更廣泛應(yīng)用。