摘 要:傳統的PPT演示需要使用鼠標、鍵盤等設備進行控制,通過手勢識別技術,演講者可以通過手勢控制PPT,從而可以更加專注于演示內容,提高演示效果,增強演示的互動性和創意性。本文提出了一種基于神經網絡手勢識別的演示控制系統,旨在解決傳統PPT演示中使用鼠標、鍵盤等設備進行控制不便的問題。文中制作了一個小規模圖像數據集,作為靜態圖像分類模型的訓練數據集。系統基于YOLOv5目標檢測模型實現的靜態手勢識別系統,包括手部動作識別模塊和演示控制模塊,實現了以手部動作進行控制的演示。本文研究表明,該演示控制系統具有極強的可行性和廣闊的發展前景。
關鍵詞:手勢識別;神經網絡;演示控制;圖像分類;圖像處理;目標檢測;圖像特征
中圖分類號:TP393 文獻標識碼:A 文章編號:2095-1302(2024)04-00-05
DOI:10.16667/j.issn.2095-1302.2024.04.004
0 引 言
隨著互聯網的發展和普及,PPT演示的流行程度也越來越高,在企業、學校、政府、科研機構等,PPT演示被廣泛用于產品推介、工作報告、學術研究、教學授課等方面。傳統的PPT演示需要使用鼠標、鍵盤等設備進行控制,這種方式會讓演講者分心,也會影響演示的連貫性和流暢度。通過手勢識別技術,演講者可以通過手勢控制PPT,從而可以更加專注于演示內容,增強演示的互動性和創意性,為觀眾提供更加生動、更具有吸引力的演示。
早期的手勢識別方法中,主要基于數據手套和視覺的手勢識別方法[1],基于傳感器的手勢識別方法識別率高但佩戴繁瑣無法單獨在計算機上實現。基于視覺的手勢識別方法中,早年主要使用背景差分法[2-3]和模板匹配法[4]進行手勢檢測,而近年來很多學者將手勢識別的分類問題轉換成了目標檢測問題,基于視覺的手勢識別方法獲得了長足的發展。本文提出了一種基于視覺目標檢測算法實現對手勢動作的判斷及演示控制。
1 神經網絡模型概述
1.1 目標檢測算法選型
手勢識別是一種通過對手部動作和姿勢的分析來識別特定手勢的技術,在實際應用中,基于視覺的手勢識別往往需要同時進行目標檢測、分類和動作判斷,以便更準確地識別手勢并執行相應的操作。
由于手勢識別通常需要同時進行目標檢測和分類,因此基于目標檢測的方法也被廣泛應用于手勢識別中。目標檢測算法可以直接對手部動作和姿勢進行檢測和分類,同時可以提供目標的坐標和尺寸信息,便于進一步進行動作判斷和操作執行。
當前最主流的幾種目標檢測算法有Faster R-CNN[5]、YOLOv4[6]、EfficientDet[7]、SSD[8]、YOLOv5等,經過對比,本文選擇YOLOv5算法作為目標檢測算法。各種算法的速度、精度和優缺點信息[9-12]在表1中列出。
1.2 目標檢測網絡YOLOv5
基于表1中的信息,本文選擇YOLOv5作為實驗訓練模型。YOLOv5是一種基于卷積神經網絡(CNN)的目標檢測模型,采用了一種單階段(single-stage)檢測器架構,能夠直接在輸入圖像上預測目標的位置和類別,滿足基本的目標檢測和分類需求。總體來說,YOLOv5的模型結構采用了多種技術,如CSPNet、FPN、YOLOv3等,以實現更快、更精確的目標檢測。
同時,YOLOv5還引入了自適應訓練策略,可以根據不同數據集的特點進行調整和優化,提高了模型的通用性和魯棒性。相比其他手勢識別算法,YOLOv5在手勢識別方面具有顯著優勢。其骨干網絡和檢測頭的優化使其在保持較高檢測精度的同時,具有更快的檢測速度和較低的計算復雜度。
此外,大量數據訓練使得YOLOv5能夠更好地適應不同的手勢和場景,提高了其實用性和適應性。同時,它具有多尺度檢測能力,能夠同時檢測不同尺度的手勢,進一步提高了其識別精度和適應性。相比之下,其他算法可能存在計算復雜度高、對數據訓練依賴強、尺度適應性有限等問題,影響其在實際場景中的應用效果。因此,選擇YOLOv5作為本文實驗訓練模型是更加合理的選擇。
2 手勢識別神經網絡模型
2.1 基本數據集準備
模型訓練前需要制作和收集數據集,數據集是模型訓練的重要組成部分,數據集的質量和數量可以直接影響模型最終的性能。本文數據集包括兩部分,一部分采自RWTH數據集,另一部分為自制數據集。RWTH數據集是一個公共手勢識別數據集,訓練集包含了15個手勢類別,實驗中抽取了部分內容重新組成4個靜態手勢分類。數據集組成如圖1所示,訓練集3 000張,測試集375張。
2.2 模型結構設計
本文在YOLOv5模型的基礎上搭建手勢識別的模型結構。如圖2所示,本系統模型網絡結構整體上包括輸入端(Input)、主干特征提取網絡(Backbone)、Neck與輸出層(Prediction)。
輸入端主要對圖片進行預處理,包括Mosaic數據增強、自適應錨框計算和自適應圖片縮放。主干網絡由Focus結構和CSP結構組成,相較于YOLOv4增加了Focus結構,并改進了CSP結構。Focus結構主要對輸入圖片進行切片操作。相較于YOLOv4只在主干網絡使用了CSP結構,YOLOv5中設計了2種CSP結構,CSP1_X結構應用于Backbone主干網絡,CSP2_X結構則應用于Neck中。Neck部分采用FPN+PAN結構,YOLOv4中也使用了這樣的結構,不同點在于YOLOv5的Neck結構中采用了借鑒CSPnet設計的CSP2結構,加強了網絡特征融合的能力。輸出層默認使用CIOU_Loss+普通nms實現。
2.3 參數設置及性能評估
在YOLOv5中,除了模型結構外,還有許多重要的訓練參數需要注意。這些參數包括batch size、image size、learning rate等。batch size是指每次訓練時送入神經網絡的樣本數,過大的batch size可能導致顯存不足而無法訓練,而過小的batch size則會使訓練過程變得不穩定。因此,需要根據顯存大小和模型復雜度來選擇合適的batch size。image size是指圖像的輸入尺寸,過小的image size會丟失圖像的細節信息,而過大的image size則會導致計算量增加。因此,需要根據訓練目標和硬件資源來選擇適當的image size。learning rate是指每次梯度下降時調整的步長,過大的learning rate會導致模型無法收斂,而過小的learning rate則會使模型訓練時間過長。因此,需要根據數據集和模型的復雜度來選擇合適的learning rate。
除了上述3個參數,還有其他重要的訓練參數,如momentum、weight decay、scheduler等。momentum可以幫助優化模型的收斂速度和穩定性,weight decay可以防止過擬合,scheduler可以動態調整learning rate,以提高模型的性能。在訓練過程中,還需要對數據進行增強,如隨機裁剪、隨機旋轉、隨機翻轉等,以增加數據的多樣性,提高模型的泛化能力。此外,還需要在訓練過程中,采用多尺度訓練等策略,以提高模型的檢測精度。綜上所述,對于YOLOv5模型的訓練過程,需要根據具體情況選擇適當的參數和策略,以達到最佳的訓練效果。
在YOLOv5中,通常使用mAP(mean Average Precision)作為主要評估指標。mAP是一種綜合評估指標,可以同時考慮檢測結果的準確性和召回率,能夠反映模型的整體表現,其計算方法是將所有類別的AP(平均精度)取平均值。AP的計算方法是在每個類別下,首先按照置信度從高到低對檢測結果進行排序,然后計算不同閾值下的精度和召回率,繪制出P-R曲線(精度-召回率曲線),再計算曲線下的面積即可得到AP值。在計算mAP時,一般采用IoU(交并比)的不同閾值來衡量預測框和真實框之間的匹配程度。通常情況下,IoU閾值越高,要求的匹配度就越高,計算出的AP值越低,COCO數據中計算的AP是IOU(用于決定是否為TP)在[0.5∶0.05∶0.95]計算10次AP后求均值得到的。AP計算公式如下:
mAP是評估模型性能的重要指標之一,它綜合了所有類別的性能表現,可以有效衡量模型的精度和泛化能力。mAP計算公式如下:
本次實驗模型訓練Epoch設置為1 000,訓練結果如圖3所示,mAP值約為70%。
3 演示控制及系統設計
3.1 演示控制動作及功能
本系統在目標檢測階段將基礎靜態手勢分為4類,具體名稱等已在圖1標示。設計的動作有4類,分別為右手點擊、右手平移、雙手縮放和右手抓取,編號為1,2,3,4。
右手點擊動作,具體表現為右手握拳伸出食指呈點擊樣式并上下移動,對應功能是控制演示進入下一頁;右手平移動作,具體表現為右手呈手掌狀態隨后手掌向另一側移動,最后五指并排面向攝像頭,對應功能是下一頁;雙手縮放動作,具體表現為雙手向合十靠近,對應功能是退出放映并中止系統;右手抓取具體表現為右手從手掌變為握拳,對應功能是演示開始放映。
3.2 演示控制動作判斷
識別4類動作時,根據目標檢測出的雙手分類組合進行其中1個動作的判斷。若右手單獨出現且分類為point,則循環判斷動作是否為右手點擊動作;若右手單獨出現且基礎分類為side,則循環判斷動作是否為右手平移動作;若雙手同時出現且基礎分類為side,則循環判斷動作是否為雙手縮放;若右手單獨出現且分類為rock,則循環判斷動作是否為抓取動作。分類對應關系見表2所列。
表2中類別的劃分用于判斷作為目標檢測結果的預處理結果,一張圖片上出現的雙手分類組合作為一個單元輸送到動作判斷系統中,系統根據后續單元集合判斷出動作后進行演示控制。
當任意一個單元符合表2中的分類時,系統將進行對應動作的具體判斷,采用動作識別算法[13]的簡化算法,具體判斷流程如圖4所示。
3.3 系統實現結果
本文對系統進行了測試,測試結果如圖5所示。圖5(a)
所示為靜態手勢paper,圖5(b)所示為靜態手勢rock,
圖5(c)所示為靜態手勢point,圖5(d)所示為右手單獨檢測為side,圖5(e)所示為雙手識別為side分類。4個動作對應的關系:由圖5(a)變為圖5(b)后判斷為抓取動作,隨后將控制演示開始放映;以圖5(c)中的靜態手勢為基礎上下旋轉手腕,抬起時判斷為點擊動作,隨后控制演示進入下一頁;以圖5(d)中的靜態手勢為基礎向另一方揮手會被判斷為平移動作,隨后控制演示返回上一頁;以圖5(e)中靜態手勢為基礎,雙手從兩側向中間靠近被判斷為縮放動作,隨后控制演示退出并中止系統。
4 結 語
本文提出了一種基于神經網絡手勢識別的演示控制系統,旨在解決傳統PPT演示中使用鼠標、鍵盤等設備進行控制不便的問題。通過實驗驗證,本文所提出的手勢識別模型在小規模數據集上的分類準確率達到了70%,證明了本文所提出的演示控制系統具有極大可行性。
本文對手部動作的識別是基于靜態手勢分類實現的,另一種實現方法是基于手部關鍵點檢測識別手部動作,以下是對兩種方式的對比。精度上,基于手部關鍵點檢測的手部動作識別相對于基于靜態手勢分類的手部動作識別更為準確。因為基于手部關鍵點檢測的手部動作識別可以捕捉到手指關節的運動軌跡和細微變化,從而更準確地識別手部動作。在實時性方面,基于靜態手勢分類的手部動作識別通常比基于手部關鍵點檢測的手部動作識別更具實時性。因為基于靜態手勢分類的方法只需要對手部圖像進行分類,而基于手部關鍵點檢測的方法需要對手指關鍵點進行跟蹤和分析,時間更長。穩定性方面,基于手部關鍵點檢測的手部動作識別相對于基于靜態手勢分類的手部動作識別更為穩定。因為基于手部關鍵點檢測的方法可以通過跟蹤手指關鍵點的運動軌跡來消除手部姿態的變化和干擾,而基于靜態手勢分類的方法很容易受到手部姿態的變化和干擾。
綜上所述,基于手部關鍵點檢測的手部動作識別和基于靜態手勢分類的手部動作識別各有優缺點,需要根據實際應用場景進行選擇。如果需要高精度的手部動作識別,可以選擇基于手部關鍵點檢測的方法;如果需要更好的實時性和穩定性,則可以選擇基于靜態手勢分類的方法。
注:本文通訊作者為唐亮。
參考文獻
[1]王粉花,黃超,趙波,等.基于YOLO算法的手勢識別[J].北京理工大學學報,2020,40(8):873-879.
[2]孫靖,艾矯燕.基于視覺的實時手勢識別及其在演示控制中的應用[J].計算技術與自動化,2013,32(3):52-59.
[3]張圓圓.基于視覺的手勢識別技術及其應用研究[J].計算技術與自動化,2015,34(1):131-135.
[4]陳雅茜,吳非,張代瑋,等.手勢識別關鍵技術研究[J].西南民族大學學報(自然科學版),2022,48(5):530-536.
[5] REN S,HE K,GIRSHICK R,et al. Faster R-CNN:Towards real-time object detection with region proposal networks [J]. IEEE transactions on pattern analysis amp; machine intelligence,2017,39(6):1137-1149.
[6] BOCHKOVSKIY A,WANG C Y,LIAO H. YOLOv4:Optimal speed and accuracy of object detection [Z]. arXiv.org 23 April,2020.
[7] TAN M,LE Q V. EfficientNet:Rethinking model scaling for convolutional neural networks [J]. arXiv:1905.11946,2019.
[8] LIU W,ANGUELOV D,ERHAN D,et al. SSD:single shot multibox detector [C]// Proceedings of European Conference on Computer Vision. Cham,Switzerland:Springer,2016:21-37.
[9]周曉彥,王珂,李凌燕.基于深度學習的目標檢測算法綜述[J].電子測量技術,2017,40(11):89-93.
[10]方路平,何杭江,周國民.目標檢測算法研究綜述[J]. 計算機工程與應用,2018,54(13):11-18.
[11]許德剛,王露,李凡.深度學習的典型目標檢測算法研究綜述
[J].計算機工程與應用,2021,57(8):10-25.
[12]程旭,宋晨,史金鋼,等.基于深度學習的通用目標檢測研究綜述[J].電子學報,2021,49(7):1428-1438.
[13]熊俊濤,劉梓健,孫寶霞,等.基于視覺技術的手勢跟蹤與動作識別算法[J].計算機與現代化,2014,30(7):75-79.
收稿日期:2023-04-10 修回日期:2023-05-11
作者簡介:盛 濤(2002—),男,本科,研究方向為人工智能與物聯網技術。
唐 亮(1981—),男,博士,高級工程師,研究方向為機器人控制與智能化儀器技術。