国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于OpenCV的手勢(shì)識(shí)別系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)

這篇具有很好參考價(jià)值的文章主要介紹了基于OpenCV的手勢(shì)識(shí)別系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

摘要

隨著計(jì)算機(jī)技術(shù)與信息處理技術(shù)迅速發(fā)展,智能化電子設(shè)備逐漸進(jìn)入到日常的生產(chǎn)和生活中,與此同時(shí),人們對(duì)電子設(shè)備操作過(guò)程的便捷化也提出了新的要求,這也促使計(jì)算機(jī)進(jìn)行圖像處理的技術(shù)也得到了發(fā)展。近些年興起的模式識(shí)別技術(shù)為操作便捷化提供了新的研究方向和發(fā)展平臺(tái),其中通過(guò)對(duì)手勢(shì)的識(shí)別來(lái)向電子產(chǎn)品進(jìn)行命令操作逐漸成為一項(xiàng)新的關(guān)鍵技術(shù)。目前,手勢(shì)識(shí)別技術(shù)已經(jīng)逐步應(yīng)用在AR和汽車輔助駕駛等方面,同時(shí),在人機(jī)交互過(guò)程中應(yīng)用手勢(shì)識(shí)別技術(shù)還可以提高體驗(yàn)感。所以,研究開(kāi)發(fā)手勢(shì)識(shí)別系統(tǒng)具有一定的學(xué)術(shù)意義和經(jīng)濟(jì)價(jià)值。這項(xiàng)技術(shù)涉及了包含靜態(tài)圖片識(shí)別與分析、視頻圖像處理及計(jì)算機(jī)視覺(jué)等多方面內(nèi)容。
本文介紹了開(kāi)發(fā)手勢(shì)識(shí)別系統(tǒng)的背景及意義,分析了過(guò)程中涉及到的必要步驟及算法。本系統(tǒng)基于C++環(huán)境使用OpenCV開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù)進(jìn)行手勢(shì)識(shí)別。本系統(tǒng)通過(guò)計(jì)算機(jī)本地單目攝像頭錄入手勢(shì),分別對(duì)動(dòng)態(tài)和靜態(tài)手勢(shì)進(jìn)行識(shí)別,并實(shí)時(shí)顯示不同手勢(shì)所表示的結(jié)果??傮w上可分為圖像采集、圖像預(yù)處理,特征提取及識(shí)別四個(gè)模塊,具體包括非線性中值濾波、形態(tài)學(xué)膨脹濾波、HOG特征和SVM分類等步驟。
目前系統(tǒng)開(kāi)發(fā)完成,實(shí)驗(yàn)結(jié)果基本可以實(shí)現(xiàn)手勢(shì)的識(shí)別,并顯示出結(jié)果。
關(guān)鍵詞:圖像處理;手勢(shì)識(shí)別;OpenCV;計(jì)算機(jī)視覺(jué)

ABSTRACT
With the rapid development of computer technology and information processing technology, intelligent electronic equipment has gradually entered into daily production and life. At the same time, people have put forward new requirements for the convenience of electronic equipment operation process, which also promotes the development of computer image processing technology.The emerging pattern recognition technology in recent years provides a new research direction and development platform for the convenience of operation, among which the command operation of electronic products through gesture recognition has gradually become a new key technology.At present, gesture recognition technology has been gradually applied in AR, automobile assisted driving and other aspects. Meanwhile, the application of gesture recognition technology in human-computer interaction can also improve the sense of experience.Therefore, the research and development of gesture recognition system has certain academic significance and economic value.The technology involves static image recognition and analysis, video image processing and computer vision.
This paper introduces the background and significance of developing gesture recognition system, and analyzes the necessary steps and algorithms involved in the process.This system uses OpenCV open source computer vision library for gesture recognition based on C++ environment.In this system, gestures are recorded by computer local monocular camera, and the dynamic and static gestures are recognized respectively, and the results of different gestures are displayed in real time.In general, it can be divided into four modules: image acquisition, image preprocessing, feature extraction and recognition, including nonlinear median filtering, morphological expansion filtering, HOG feature and SVM classification.
At present, the system has been developed, and the experimental results can basically realize gesture recognition and display the results.
Key words: Image processing;Gesture recognition;OpenCV;Computer vision

目錄

1 緒論 1
1.1 課題背景及意義 1
1.2 手勢(shì)識(shí)別的發(fā)展現(xiàn)狀 1
1.3 本文主要內(nèi)容 2
1.4 本文結(jié)構(gòu)安排 2
2 系統(tǒng)開(kāi)發(fā)平臺(tái) 3
2.1 OpenCV 3
2.1.1 OpenCV簡(jiǎn)介 3
2.1.2 OpenCV配置 4
2.2 MFC 8
2.2.1 MFC簡(jiǎn)介 8
2.2.2 創(chuàng)建一個(gè)MFC 8
3 系統(tǒng)相關(guān)技術(shù)及算法介紹 8
3.1 系統(tǒng)相關(guān)技術(shù) 8
3.1.1 圖像采集技術(shù) 8
3.1.2 圖像預(yù)處理技術(shù) 9
3.1.3 膚色檢測(cè)與分割技術(shù) 9
3.1.4 特征提取 9
3.2 系統(tǒng)相關(guān)算法 10
3.2.1 HOG特征 10
3.2.2 SVM 14
3.2.3 核函數(shù) 15
3.2.4 膚色模型 15
3.2.5 RGB色彩空間模型 16
3.2.6 YCbCr色彩空間模型 17
3.2.7 中值濾波 19
3.2.8 膨脹濾波 19
4 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 21
4.1 系統(tǒng)整體設(shè)計(jì) 22
4.1.1 手勢(shì)訓(xùn)練模塊 23
4.1.2 手勢(shì)測(cè)試模塊 27
5 系統(tǒng)測(cè)試與分析 28
5.1 系統(tǒng)測(cè)試環(huán)境 28
5.2 系統(tǒng)界面測(cè)試 28
5.2.1 手勢(shì)注冊(cè)功能測(cè)試 28
5.2.2 手勢(shì)識(shí)別(動(dòng)態(tài)手勢(shì))測(cè)試 31
5.2.3 圖片識(shí)別(靜態(tài)手勢(shì))測(cè)試 34
5.3 測(cè)試問(wèn)題 36
5.3.1 手勢(shì)識(shí)別(動(dòng)態(tài)手勢(shì))問(wèn)題 36
5.3.2 圖片識(shí)別(靜態(tài)手勢(shì))問(wèn)題 38
5.4 測(cè)試結(jié)論 39
6 總結(jié)和展望 39
6.1 本系統(tǒng)優(yōu)點(diǎn)總結(jié) 39
6.2 本論文不足總結(jié) 40
6.3 未來(lái)工作展望 40
參考文獻(xiàn) 42
致謝 43

1緒論

1.1課題背景及意義
隨著計(jì)算機(jī)技術(shù)的進(jìn)步和技術(shù)革新以及智能化時(shí)代的要求,人們不斷探尋開(kāi)發(fā)新的、更加便捷的人機(jī)交互方式。其中,基于計(jì)算機(jī)視覺(jué)的手勢(shì)識(shí)別技術(shù)已成為研究熱點(diǎn)之一。手勢(shì)的檢測(cè)和識(shí)別技術(shù)作為一種有著自然性、簡(jiǎn)潔性和直接性的一種新型的交互方式,是這些交互技術(shù)當(dāng)中倍受重視的研究和應(yīng)用的技術(shù)。近幾年來(lái),已經(jīng)有相當(dāng)一部分的應(yīng)用采用了這種手勢(shì)識(shí)別的方式作為跟機(jī)器交互的手段。本文討論一種采用基于單目攝像機(jī)的特定顏色模型的背景分離方法和基于關(guān)鍵信息的手勢(shì)提取方法,用Visual Studio C++和OpenCV進(jìn)行開(kāi)發(fā),實(shí)現(xiàn)在單攝像機(jī)下的手勢(shì)識(shí)別交互系統(tǒng)。
1.2手勢(shì)識(shí)別的發(fā)展現(xiàn)狀
手勢(shì)識(shí)別在計(jì)算機(jī)科學(xué)中是指通過(guò)數(shù)學(xué)算法來(lái)識(shí)別人類手勢(shì)。為了獲得更好的人機(jī)交互體驗(yàn),計(jì)算機(jī)需要正確地理解人類手勢(shì)的含義,并根據(jù)預(yù)定義的手勢(shì)指令進(jìn)行相關(guān)操作。手勢(shì)識(shí)別技術(shù)通常包括圖像采集技術(shù)、圖像預(yù)處理技術(shù)、特征提取技術(shù)和識(shí)別分類技術(shù)幾個(gè)方面。目前手勢(shì)識(shí)別主要有兩個(gè)研究方向,一是基于計(jì)算機(jī)視覺(jué),二是基于可穿戴設(shè)備。
本文是基于計(jì)算機(jī)視覺(jué)開(kāi)發(fā)的的手勢(shì)識(shí)別系統(tǒng)。無(wú)論是靜態(tài)或動(dòng)態(tài)手勢(shì),其識(shí)別順序首先需進(jìn)行圖像的獲取、手勢(shì)檢測(cè)和手勢(shì)分割,然后進(jìn)行手勢(shì)識(shí)別。其關(guān)鍵件技術(shù)主要為圖像處理、手勢(shì)分析與分割、手勢(shì)識(shí)別三個(gè)過(guò)程。圖像處理是系統(tǒng)把通過(guò)計(jì)算機(jī)單目攝像頭采集的視頻流進(jìn)行幀分離處理,從視頻流中分離出單一手勢(shì)圖像,并對(duì)圖像進(jìn)行濾波、平滑等預(yù)處理操作,作為下一階段的輸入量。然后通過(guò)檢測(cè)算法檢測(cè)輸入量中是否含有人類手勢(shì),如果檢測(cè)出手勢(shì)圖像,則進(jìn)行膚色分割處理,將手勢(shì)與背景進(jìn)行分離,得到手勢(shì)的平面模型,建立手勢(shì)形狀數(shù)據(jù)庫(kù)。手勢(shì)識(shí)別階段采用模板匹配法,將動(dòng)態(tài)手勢(shì)看成由靜態(tài)手勢(shì)圖像所組成的序列,然后將待識(shí)別的手勢(shì)模板序列與已知的手勢(shì)模板序列進(jìn)行比較,識(shí)別出手勢(shì)。
本文是將部分手勢(shì)轉(zhuǎn)化成所對(duì)應(yīng)的信息。未來(lái)可以進(jìn)一步將手勢(shì)直接轉(zhuǎn)化成語(yǔ)音,通過(guò)對(duì)話的方式將信息傳遞出去。方便聾啞人士與普通人的溝通。另外,汽車行業(yè)一如既往的對(duì)手勢(shì)識(shí)別保持熱情,汽車中的各種儀表可以直接通過(guò)手勢(shì)識(shí)別直接控制。而在穿戴設(shè)備領(lǐng)域,使用手勢(shì)識(shí)別技術(shù)以追蹤用戶包括睡姿、心率、體脂肪率、總肌肉量、體脂肪量和基礎(chǔ)代謝率在內(nèi)的一系列數(shù)據(jù),進(jìn)而促進(jìn)穿戴設(shè)備的發(fā)展。
1.3本文主要內(nèi)容
本文所涉及到的一系列軟件開(kāi)發(fā)有效憑借以及完成相應(yīng)試驗(yàn)平臺(tái)的建立,使用OpenCV中的一些功能函數(shù)及控件對(duì)圖像和視頻流進(jìn)行手勢(shì)檢測(cè)的研究。其中以HOG特征、局部二值模式(LBP)為提取的目標(biāo),通過(guò)手勢(shì)檢測(cè)橢圓模型算法,對(duì)圖片及視頻序列中的手勢(shì)進(jìn)行,提取手勢(shì)輪廓。之后,通過(guò)對(duì)RGB、YCrCb等顏色空間模型的處理,而后通過(guò)非線性中值濾波,形態(tài)學(xué)膨脹等方式進(jìn)行降噪濾波以達(dá)到皮膚分割的效果。最終通過(guò)MFC構(gòu)建了一個(gè)支持多手勢(shì)的視頻和圖像處理系統(tǒng),該系統(tǒng)可以對(duì)視頻和圖像中的多個(gè)手勢(shì)進(jìn)行實(shí)時(shí)識(shí)別。
本文的目的是在大量學(xué)習(xí)和理解傳統(tǒng)的算法之后,將其實(shí)現(xiàn)并優(yōu)化。在閱讀了大量的相關(guān)文獻(xiàn)和搜索了大量的資料后,設(shè)計(jì)并完成了一套相對(duì)方便簡(jiǎn)潔的手勢(shì)識(shí)別系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)了10個(gè)手勢(shì)的動(dòng)態(tài)和靜態(tài)識(shí)別,能夠快速識(shí)別并顯示手勢(shì)所代表的信息。另外可隨時(shí)采集并訓(xùn)練新的手勢(shì)模型。
1.4本文主要研究?jī)?nèi)容
本文整體結(jié)構(gòu)具體可以歸結(jié)為六個(gè)部分,其各個(gè)章節(jié)的布局如下所示:
第一章緒論,針對(duì)于手勢(shì)識(shí)別相關(guān)研究背景及意義進(jìn)行了相對(duì)較為切實(shí)有效的分析,介紹了手勢(shì)識(shí)別研究現(xiàn)狀和發(fā)展趨勢(shì),簡(jiǎn)要闡述了本文的主要內(nèi)容以及相應(yīng)章節(jié)的布局。
第二章系統(tǒng)開(kāi)發(fā)平臺(tái),具體涵蓋了開(kāi)發(fā)環(huán)境和實(shí)驗(yàn)平臺(tái)的搭建,在手勢(shì)檢測(cè)、手勢(shì)識(shí)別算法研究的基礎(chǔ)上,借助OpenCV計(jì)算機(jī)視覺(jué)庫(kù)中的一些函數(shù)實(shí)現(xiàn)算法和MFC微軟基礎(chǔ)類庫(kù)以及Visual Studio 2013開(kāi)發(fā)環(huán)境來(lái)構(gòu)建交互界面。
第三章系統(tǒng)相關(guān)技術(shù)及算法介紹,首先介紹了手勢(shì)識(shí)別相關(guān)基本原理,其次研究了Hog檢測(cè)算法的基本原理,同時(shí)介紹了相關(guān)概念如色彩和伽馬歸一化、計(jì)算圖像梯度等。而后闡述SVM分類原理。最后分析RGB、YCbCr等顏色空間模型及中值濾波算法、膨脹濾波算法的原理。
第四章系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),首先介紹了手勢(shì)識(shí)別的主要流程和設(shè)計(jì)思路,然后介紹了對(duì)應(yīng)的模塊組成及具體功能描述,最后進(jìn)行軟件的實(shí)現(xiàn)。
第五章系統(tǒng)測(cè)試與分析,對(duì)本文所設(shè)計(jì)的系統(tǒng)進(jìn)行測(cè)試,本章主要介紹對(duì)系統(tǒng)各功能的測(cè)試結(jié)果及針對(duì)不同測(cè)試結(jié)果的分析。
第六章總結(jié)和展望,對(duì)本文所描述的研究工作進(jìn)行總結(jié),并對(duì)目前需要進(jìn)一步改進(jìn)優(yōu)化的部分加以說(shuō)明,同時(shí)簡(jiǎn)單介紹改進(jìn)之后期望達(dá)到的效果。

2系統(tǒng)開(kāi)發(fā)平臺(tái)

本文所開(kāi)發(fā)的系統(tǒng)是基于所進(jìn)行開(kāi)發(fā)的,相應(yīng)的開(kāi)發(fā)環(huán)境具體涉及到了 ,在此過(guò)程當(dāng)中還應(yīng)用到了作為系統(tǒng)內(nèi)部相應(yīng)的界面庫(kù),并且基于相對(duì)開(kāi)源的針對(duì)于手勢(shì)檢測(cè)以及識(shí)別完成了相應(yīng)的開(kāi)發(fā)。
2.1OpenCV
2.1.1關(guān)于的OpenCV概述
所謂的具體可以歸結(jié)為開(kāi)源形式的計(jì)算機(jī)視覺(jué)庫(kù),相應(yīng)的組合命名可以概括為。
在年就已經(jīng)建立起,如今由提供支持。它是一個(gè)跨平臺(tái)開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù),可以運(yùn)行在以為代表的多個(gè)操作系統(tǒng)上。包括C函數(shù)和少量類,同時(shí)提供了包含在內(nèi)等多種語(yǔ)言接口,在圖像處理和計(jì)算機(jī)視覺(jué)方面有很多通用算法。
提供了機(jī)器學(xué)習(xí)庫(kù)。該機(jī)器學(xué)習(xí)庫(kù)側(cè)重于統(tǒng)計(jì)方面的模式識(shí)別和聚類。除了在視覺(jué)相關(guān)的任務(wù)中,還可以方便地應(yīng)用與其他的機(jī)器學(xué)習(xí)場(chǎng)合。
版本于年發(fā)布。的第二個(gè)版本是2009年10月的OpenCV2.0,主要更新包括C++接口,更容易、更安全的模式,新的函數(shù),對(duì)現(xiàn)有實(shí)現(xiàn)代碼優(yōu)化等。2012年8月,對(duì)的支持由一個(gè)非營(yíng)利組織提供,現(xiàn)在它也集成了對(duì)的支持。2014年8月,隨著的發(fā)布,這個(gè)強(qiáng)大的計(jì)算機(jī)視覺(jué)庫(kù)迎來(lái)了全新的紀(jì)元。2019年,發(fā)布4.0版本。
據(jù)相關(guān)統(tǒng)計(jì),一個(gè)人獲取的信息大約有 75%來(lái)自視覺(jué)。而圖像又是其中最重要的組成部分。在人工智能時(shí)代,機(jī)器視覺(jué)會(huì)在人機(jī)互動(dòng)、人臉識(shí)別、手勢(shì)識(shí)別等方面得到更廣泛的應(yīng)用。作為圖像處理的重要工具之一,它將會(huì)在這一領(lǐng)域發(fā)揮更加重要的作用。
2.1.2OpenCV配置
本文采用的是的配置方法,OpenCV作為開(kāi)源的軟件,直接到官網(wǎng)下載即可,目前官網(wǎng)更新到4.1.0版本,本系統(tǒng)因需要用到控件,故文中采用2.4.9版本。配置過(guò)程如下:
(1)安裝,打開(kāi)資源包,解壓到相應(yīng)文件夾。
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖2-1 OpenCV資源包解壓
(2)配置環(huán)境變量,將環(huán)境變量添加到路徑:
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖2-2 配置環(huán)境變量

(3)工程包含(include)目錄的配置
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖2-3 配置工程包含(include)目錄
(4)工程庫(kù)(lib)目錄配置
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖2-4 配置工程庫(kù)(lib)目錄
(5)鏈接庫(kù)配置
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖2-5鏈接庫(kù)配置
(6)加入動(dòng)態(tài)鏈接庫(kù)
將文件夾下所有dll文件復(fù)制粘貼到
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖2-6 動(dòng)態(tài)鏈接庫(kù)
如圖所示,呈現(xiàn)出的模塊構(gòu)成,其具體可以歸結(jié)為部分,即模塊、模塊、模塊以及模塊(包含了相應(yīng)的基本形式的數(shù)據(jù)結(jié)構(gòu)以及相關(guān)函數(shù))。
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖2-7 OpenCV模塊
2.2MFC
2.2.1MFC簡(jiǎn)介
是微軟基礎(chǔ)類庫(kù)的簡(jiǎn)稱,是微軟公司實(shí)現(xiàn)的一個(gè)c++類庫(kù),其具體涵蓋了眾多的句柄封裝類以及大量的的內(nèi)建控件以及相應(yīng)的組件的封裝類。 MFC除了是一個(gè)類庫(kù)以外,還是一個(gè)框架,MFC作為一個(gè)通用框架,不具備最好的針對(duì)性,同時(shí)也就喪失了部分靈活性和效率。但的具體封裝形式相對(duì)較淺,故其相應(yīng)的效率損失相對(duì)較少。
利用MFC AppWizard創(chuàng)建Test工程之后將自動(dòng)生成5個(gè)類:CAboutDlg(“關(guān)于”對(duì)話框類)、CMainFrame(基礎(chǔ)框架類)、CTestApp(應(yīng)用程序類)、CTestDoc(文檔類)、CTestView(視圖類)。
2.2.2創(chuàng)建一個(gè)MFC
文件->新建->項(xiàng)目->MFC應(yīng)用程序,其余項(xiàng)默認(rèn),點(diǎn)擊創(chuàng)建。本文命名為“MFCGesture”。
點(diǎn)擊“解決方案資源管理器”,可以看到CAboutDlg、CMFCGusetureApp(和CMFCGusetureDlg。其中CAboutDlg是應(yīng)用程序的“關(guān)于”對(duì)話框類,CMFCGusetureApp是由CDialogEx派生的類,CMFCGusetureDlg是主對(duì)話框類,本系統(tǒng)程序運(yùn)行后顯示的主界面即為主對(duì)話框。
在“資源視圖”中可以看到工程MFCGuesture的資源樹(shù)。點(diǎn)擊展開(kāi)Dialog項(xiàng),出現(xiàn)兩個(gè)ID分別為:IDD_ABOUTBOX(“關(guān)于”對(duì)話框的模板)和IDD_MFCGuesture_DIALOG(主對(duì)話框的模板)的對(duì)話框模板。ID是資源的唯一標(biāo)識(shí),本質(zhì)上是一個(gè)無(wú)符號(hào)整數(shù),一般ID代表的整數(shù)值由系統(tǒng)定義。
在這之后,可以對(duì)系統(tǒng)自動(dòng)生成的主對(duì)話框模板進(jìn)行編輯、添加控件和函數(shù)等操作,或者創(chuàng)建新的對(duì)話框模板和所對(duì)應(yīng)的對(duì)話框類再進(jìn)行編輯等操作,最終實(shí)現(xiàn)圖形界面。

3系統(tǒng)相關(guān)技術(shù)及算法介紹

3.1系統(tǒng)相關(guān)技術(shù)
3.1.1圖像采集技術(shù)
對(duì)于計(jì)算機(jī)而言,攝像頭扮演著眼睛的角色,是環(huán)境圖像采集的工具?,F(xiàn)有多數(shù)手勢(shì)識(shí)別系統(tǒng)中,圖像采集可以是從指定文件夾中讀入的視頻和計(jì)算機(jī)本地?cái)z像頭實(shí)時(shí)視頻流,本文開(kāi)發(fā)的手勢(shì)識(shí)別系統(tǒng)是基于本地?cái)z像頭。為實(shí)現(xiàn)動(dòng)態(tài)手勢(shì)識(shí)別功能,首先要將攝像頭采集的視頻轉(zhuǎn)換為單幀圖像,這些圖像存儲(chǔ)到Mat中,然后進(jìn)行圖像處理。本文采用OpenCV開(kāi)源函數(shù)庫(kù)打開(kāi)本地?cái)z像頭進(jìn)行圖像采集。
3.1.2圖像預(yù)處理技術(shù)
預(yù)處理是計(jì)算機(jī)圖像處理過(guò)程重要的一步。在圖像采集時(shí)會(huì)存在許多干擾因素,導(dǎo)致采集到的圖像會(huì)存在不同程度的噪聲。圖像噪聲包括外部噪聲和內(nèi)部噪聲。由系統(tǒng)外部電磁波干擾等因素引起的噪聲稱為外部噪聲。由光、電的基本性質(zhì)引起的噪聲稱為內(nèi)部噪聲。圖像后續(xù)處理受噪聲直接影響,所以在圖像使用前,需經(jīng)過(guò)降噪、量化、壓縮等處理,減少圖像噪聲,提高圖像質(zhì)量。OpenCV包含線性濾波(方框?yàn)V波、均值濾波、高斯濾波)、非線性濾波(中值濾波、雙邊濾波)、形態(tài)學(xué)濾波。經(jīng)測(cè)試,本文采用中值濾波及膨脹濾波。
3.1.3膚色檢測(cè)與分割技術(shù)
膚色檢測(cè)與分割手勢(shì)輪廓檢測(cè)的關(guān)鍵一步。在這一處理過(guò)程中將采集圖像中的手勢(shì)與背景分離,消除背景對(duì)手勢(shì)的影響,為下一步手勢(shì)識(shí)別過(guò)程提供單純的手勢(shì)圖像,這一操作將影響識(shí)別準(zhǔn)確率的高低。膚色易因光照強(qiáng)度和不同人之間差異,以及某些攝像頭的自動(dòng)對(duì)光功能的影響。為此,需要一種快捷的手段根據(jù)現(xiàn)場(chǎng)情況進(jìn)行調(diào)整。本文采用將顏色空間從RGB色彩空間轉(zhuǎn)換到亮度與色度分離的某個(gè)顏色空間,然后放棄亮度分量。在雙色差或色調(diào)飽和度平面上,不同人的膚色區(qū)別較小,膚色的不同更多在亮度上而不是色度上。膚色分割后得到的是二值化圖像,皮膚部分為白色,其余部分為黑色。在完成圖像的預(yù)處理之后, 將圖像的RGB空間轉(zhuǎn)換成YCrCb空間。 YCbCr顏色空間是一種常用的膚色檢測(cè)的色彩模型,其中Y代表亮度,Cb代表光源中的藍(lán)色分量,Cr代表光源中的紅色分量。
3.1.4特征提取
一旦有效獲取相應(yīng)的單獨(dú)目標(biāo)手勢(shì)以后,接下來(lái)就需要對(duì)其完成切實(shí)有效的描述。也就是說(shuō)針對(duì)于相應(yīng)的關(guān)鍵特性完成相對(duì)具有代表性的提取,除此之外,還要將其進(jìn)行一定的數(shù)值化處理,建立起相應(yīng)特征向量,在一定程度上將手勢(shì)識(shí)別完成對(duì)應(yīng)的數(shù)字化建模,便于后期進(jìn)行切實(shí)有效的手勢(shì)識(shí)別。
關(guān)于靜態(tài)形式的手勢(shì),僅需要針對(duì)某一特定時(shí)間點(diǎn)完成相應(yīng)的描述,不難分析出,此狀態(tài)下的手勢(shì)特征值不會(huì)受限于相應(yīng)的手勢(shì)所處的地域環(huán)境與位置,幾乎完全憑借其相應(yīng)的姿態(tài)來(lái)決定。具體可以概括為,不管手勢(shì)如何變更方位,只要保持其姿態(tài)不發(fā)生任何變化,與之相對(duì)應(yīng)的特征向量便會(huì)保持相對(duì)一致。
針對(duì)于動(dòng)態(tài)手勢(shì)識(shí)別就不那么簡(jiǎn)單了,從動(dòng)態(tài)的字眼就可以看出其同時(shí)兼具時(shí)、空二元耦合特性,在此過(guò)程中必須將這兩方面全部考慮進(jìn)去才能確保所提取的動(dòng)態(tài)手勢(shì)切實(shí)有效??梢赃@樣理解,一方面要如同于靜態(tài)手勢(shì)逐一時(shí)間點(diǎn)進(jìn)行有效識(shí)別,與此同時(shí)還要對(duì)其相應(yīng)的運(yùn)動(dòng)軌跡完成有效的識(shí)別工作,并將二者有效融合,即可完成所謂的動(dòng)態(tài)手勢(shì)識(shí)別工作。
3.2系統(tǒng)相關(guān)算法
當(dāng)前形式下針對(duì)于圖像特征提取已經(jīng)開(kāi)發(fā)出了各式各樣的算法,其中也存在一定量的散發(fā)針對(duì)于相應(yīng)的幾何變換呈現(xiàn)出相對(duì)較為良好的適應(yīng)性,但是在手勢(shì)識(shí)別過(guò)程當(dāng)中還要有效處理好光照變化問(wèn)題,對(duì)此前的算法還要進(jìn)一步的完善,在一定程度上可以說(shuō)是相對(duì)較為繁瑣且艱巨的過(guò)程。
考慮到這些原因,該手勢(shì)識(shí)別系統(tǒng)是基于手勢(shì)檢測(cè)技術(shù),恰巧基本可以實(shí)現(xiàn)相應(yīng)的收拾特征獲取任務(wù),在一定程度上能夠相對(duì)較好的有效解決光照變化所引申出的一系列問(wèn)題。故可有效憑借的方式切實(shí)有效完成相應(yīng)收拾特征的獲取工作,確定手勢(shì)位置。然后對(duì)此區(qū)域進(jìn)行圖像采集及識(shí)別。
完成相應(yīng)的手勢(shì)特征獲取以后,確保實(shí)現(xiàn)相對(duì)較為切實(shí)有效的手勢(shì)識(shí)別,還需進(jìn)一步針對(duì)于相應(yīng)的分類器進(jìn)行不斷的模擬與調(diào)試,本項(xiàng)研究具體采取的是為,即支持向量機(jī)來(lái)作為分類器。
3.2.1HOG特征
具體所指方向梯度直方圖,其在一系列的視覺(jué)檢測(cè)以及相應(yīng)的圖像處理方面已經(jīng)得到了相對(duì)較為廣泛的應(yīng)用,在此過(guò)程當(dāng)中可以實(shí)現(xiàn)相應(yīng)物體的檢測(cè)以及所對(duì)應(yīng)的特征描述。其具體的運(yùn)作形式可以歸結(jié)為有效憑借圖形局部區(qū)域所對(duì)應(yīng)的梯度方向直方圖來(lái)實(shí)現(xiàn)相應(yīng)的特征搭建。尤其是在針對(duì)于行人進(jìn)行相關(guān)檢測(cè)當(dāng)中,并與進(jìn)行有效組合在一定程度上已經(jīng)成功應(yīng)用的眾多領(lǐng)域當(dāng)中。即針對(duì)于一副圖像,相應(yīng)的梯度幾乎全部集中于其邊緣的位置。相應(yīng)的目標(biāo)的形態(tài)可有效憑借梯度或者相應(yīng)的邊緣方向進(jìn)行切實(shí)有效的描述。
存在的優(yōu)勢(shì)具體可以歸結(jié)為:在一定程度上具備一定的幾何以及光學(xué)不變特性;微量的動(dòng)作幾乎不會(huì)對(duì)相應(yīng)的檢測(cè)效果造成任何形式的干擾,可以理解為允許手部肢體不那么僵持。
針對(duì)于直方圖所呈現(xiàn)出的更大區(qū)域:完成相應(yīng)的歸一化,可以將其整體性能有效提升。如圖3-3所示,呈現(xiàn)出具體形式的生成流程。
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖3-1 關(guān)于生成流程

其具體的生成流程可以歸結(jié)為以下幾方面:
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

(1)規(guī)范化以及相應(yīng)的顏色空間
所謂光照的程度會(huì)對(duì)相應(yīng)的具體圖像色值造成一定的影響,確保將其所呈現(xiàn)出的干擾程度有效壓低,要做的第一步就是針對(duì)于圖像進(jìn)行相應(yīng)的歸一化處理。在相應(yīng)的紋理強(qiáng)度當(dāng)中,所占比重相對(duì)較大的部分要屬表面曝光,故此類壓縮處理方式能使圖像對(duì)這類變化具有不變性特征,相應(yīng)的局部陰影以及所對(duì)應(yīng)的光強(qiáng)改變均能得到切實(shí)有效的下降。由于在此過(guò)程當(dāng)中相應(yīng)的顏色信息功效不是很強(qiáng)烈,一般采取的方式是進(jìn)行相應(yīng)的灰度處理;

在這里將相應(yīng)取為,從而切實(shí)保證高光區(qū)呈現(xiàn)出相對(duì)較低的對(duì)比度,反之陰影區(qū)相應(yīng)的對(duì)比度則有效提升。該項(xiàng)壓縮處理方式在一定程度上確保局部陰影以及相應(yīng)的光照改變呈現(xiàn)出切實(shí)有效的下降趨勢(shì)。試驗(yàn)結(jié)果可知,引入這項(xiàng)步驟呈現(xiàn)出效果幾乎不夠顯著,進(jìn)而將其忽略。
(2)關(guān)于圖像梯度的相關(guān)求解
憑借一維形式的微分算子即對(duì)最初的圖像進(jìn)行相應(yīng)的卷積求解,結(jié)果顯示相應(yīng)的方向梯度分別呈現(xiàn)在橫縱坐標(biāo)當(dāng)中,隨后完成相應(yīng)梯度方向值的有效求解;進(jìn)行相應(yīng)的倒數(shù)運(yùn)算在一定程度上不單能可有效獲取其輪廓,還可以有效將光照的干擾有效壓低。基于表示圖像某一通道中(x,y)處的顏色值,其(x,y)處的水平方向梯度記為Gx(x,y),垂直方向梯度記為Gy(x,y),計(jì)算式如下:

則(x,y) 處的梯度幅值G(x,y) 和梯度方向θ(x,y)計(jì)算公式如下:

求解的具體方式可以歸結(jié)為:分別基于以及對(duì)應(yīng)的梯度算子對(duì)最初狀態(tài)的圖像完成相應(yīng)的卷積求解,即可有效得到相應(yīng)水平以及垂直方向上所對(duì)應(yīng)的梯度分量,進(jìn)而可以求解出任意像素點(diǎn)所對(duì)應(yīng)的梯度方向與數(shù)值。
(3)針對(duì)于任意細(xì)胞單元進(jìn)行相應(yīng)的梯度方向直方圖的建立
這步的功效在于有效產(chǎn)出相應(yīng)的編碼供所對(duì)應(yīng)的局部圖像區(qū)域運(yùn)用,與此同時(shí)還能確保圖像內(nèi)部的人體姿態(tài)以及相應(yīng)的外形具備一定相對(duì)較弱的敏感性。
該單元當(dāng)中的任意像素點(diǎn)均能夠針對(duì)于方向形式的直方圖進(jìn)行所謂的投票。其具體憑借加權(quán)的形式,也就是說(shuō)任何的票均夾雜這一定的權(quán)值,其相應(yīng)的大小是基于相應(yīng)的梯度幅度進(jìn)行求解的??梢杂行{借其自身或者一系列的函數(shù)關(guān)系實(shí)現(xiàn)相應(yīng)權(quán)值的表示,基于相關(guān)測(cè)試結(jié)果顯示:在一定程度上憑借幅值的方式進(jìn)行表示權(quán)值所得到的效果最為良好,除此之外,一系列關(guān)于幅值的函數(shù)關(guān)系,譬如其平方、立方等形式也可以進(jìn)行相應(yīng)的權(quán)值表示。相應(yīng)的單元的形狀也呈現(xiàn)出多樣化的趨勢(shì),具體可以歸結(jié)為:星、矩形等。相應(yīng)的直方圖通道具體均布呈現(xiàn)在以及區(qū)間內(nèi)。
針對(duì)于相應(yīng)的人體進(jìn)行檢測(cè)時(shí),其中單元格大小呈現(xiàn)出以及像素的時(shí)候所對(duì)應(yīng)的檢測(cè)效果相對(duì)最為良好。倘若相應(yīng)的單元格大小呈現(xiàn)出以及個(gè)像素時(shí),造成的差異也不是很明顯。因此將相應(yīng)的圖像進(jìn)行像素單元化處理,也就是說(shuō)任意的尺寸必須確保像素?,F(xiàn)擬憑借進(jìn)行相應(yīng)的梯度信息統(tǒng)計(jì)工作。其具體步驟可以歸結(jié)為:首先針對(duì)于相應(yīng)的梯度方向進(jìn)行區(qū)間層面的有效劃分,也就是說(shuō)進(jìn)一步完成度的塊等分,在此過(guò)程中任意直方圖塊均呈現(xiàn)出。如圖所示:倘若其相對(duì)于梯度方向呈現(xiàn)出的形式,即可將其歸納到相應(yīng)的第一塊,倘若其相對(duì)于梯度方向呈現(xiàn)出的形式,便將其歸納到相應(yīng)的第二塊,除此之外,相應(yīng)的直方圖第個(gè)執(zhí)行累加的運(yùn)算,逐次類推。完成全部形式的加權(quán)投影,即可得到與之對(duì)應(yīng)的。
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖3-2 cell的梯度方向直方圖
(4)把細(xì)胞單元組合成大的塊(block),塊內(nèi)歸一化梯度直方圖(將細(xì)胞單元組合成大的區(qū)間)
通常情況下,相應(yīng)的梯度強(qiáng)度在一定程度上會(huì)隨局部光照以及相應(yīng)的對(duì)比度改變呈現(xiàn)出相對(duì)較為劇烈的改變,因此必須進(jìn)行切實(shí)有效的歸一化處理。歸一化能夠進(jìn)一步地對(duì)光照、陰影和邊緣進(jìn)行壓縮。
本文采取把任意進(jìn)行相應(yīng)連通區(qū)間的組合,即。也就是說(shuō),將一個(gè)內(nèi)全部形式的的特征向量進(jìn)行有效串接從而獲取到此所對(duì)應(yīng)的特征。這部分區(qū)間存在一定的重疊性,也就是說(shuō):任意的特征會(huì)基于相對(duì)差異的形式呈現(xiàn)在最終的特征向量當(dāng)中。
如圖所示,呈現(xiàn)出以及的關(guān)系形式。
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖3-3 關(guān)于以及相應(yīng)的重疊關(guān)系
3.2.2SVM
支持向量機(jī)(Support Vector Machine, SVM)是由機(jī)器學(xué)習(xí)領(lǐng)域的最大間隔分類算法發(fā)展而來(lái)的,是一類按監(jiān)督學(xué)習(xí)(supervised learning)方式對(duì)數(shù)據(jù)進(jìn)行二元分類(binary classification)的廣義線性分類器(generalized linear classifier),針對(duì)于降低最小化實(shí)驗(yàn)誤差以及相應(yīng)的最大化幾何邊緣呈現(xiàn)出相對(duì)較為良好的效果,故可以將其歸結(jié)為最大邊緣分類器。其本質(zhì)在于在相對(duì)更高維度的空間內(nèi)部進(jìn)行相應(yīng)的超平面搭建,所謂的決策邊界是對(duì)學(xué)習(xí)樣本求解的最大邊距超平面(maximum-margin hyperplane),確保其對(duì)相應(yīng)進(jìn)行分類的數(shù)據(jù)呈現(xiàn)出相對(duì)較大的間隔。相應(yīng)的誤差與間隔之間也就是所謂的負(fù)相關(guān)形式。經(jīng)過(guò)不斷發(fā)展,SVM己經(jīng)成為了機(jī)器學(xué)習(xí)領(lǐng)域的標(biāo)準(zhǔn)工具之一。
我們以二維平面加以分析。如圖所示,圖中呈現(xiàn)的紅方以及藍(lán)圓均為即將進(jìn)行分類的相關(guān)對(duì)象,兩條藍(lán)線即為相應(yīng)的超平面,不難分析出,任意點(diǎn)與之間的間距要高于,也就是說(shuō)即能進(jìn)行相對(duì)較為良好的區(qū)分,憑借對(duì)的有效調(diào)節(jié)直至實(shí)現(xiàn)任意點(diǎn)間距達(dá)到最大化,此刻呈現(xiàn)出最近形式的點(diǎn)即為所謂的支持向量。
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖3-4 相應(yīng)的最大間隔分類
3.2.3核函數(shù)
針對(duì)在低維空間呈現(xiàn)出一定的線性不可分的相關(guān)特性,如圖所示,可有效憑借高維度映射的方式,逐步實(shí)現(xiàn)線性可分形式的切實(shí)有效轉(zhuǎn)化。

采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖3-5 關(guān)于線性轉(zhuǎn)化過(guò)程
3.2.4膚色模型
膚色特征區(qū)別于其他特征,對(duì)于彩色圖像,膚色是圖像中相對(duì)聚集和穩(wěn)定的區(qū)域,不會(huì)基于人的各類現(xiàn)象的產(chǎn)出而發(fā)展改變,呈現(xiàn)出相對(duì)較高的魯棒性,與相應(yīng)的背景色彩呈現(xiàn)出顯著的差異。通過(guò)大量的實(shí)驗(yàn)研究表明,不同人種的人其皮膚的色調(diào)是比較一致的,不同之處具體呈現(xiàn)在灰度。故一般情況下基于相對(duì)較為常見(jiàn)的相關(guān)膚色模型針對(duì)于人臉特征進(jìn)行有效概括。由于膚色在存在差異的色彩空間中,具有不同的表現(xiàn)形式。本項(xiàng)研究基于當(dāng)中的橢圓模型進(jìn)行相應(yīng)膚色分布的具體描述。
所謂的皮膚模型可以歸結(jié)為:等。通過(guò)對(duì)相關(guān)學(xué)者所做的關(guān)于皮膚信息統(tǒng)計(jì)方面的文獻(xiàn)進(jìn)行切實(shí)有效分析可知,倘若實(shí)現(xiàn)相應(yīng)的皮膚信息映射到,則在相應(yīng)的二維空間中呈現(xiàn)出類橢圓形式的分布狀況。一旦可以得到相應(yīng)的橢圓,在有效憑借接下來(lái)獲取到的坐標(biāo)進(jìn)行相應(yīng)的區(qū)域位置判別,也就是在橢圓內(nèi)部還是外部,倘若落在其內(nèi)部的話,即可將其判別為相應(yīng)的皮膚,否則即為所謂的像素點(diǎn)。
確保相應(yīng)的亮度不對(duì)所謂的膚色聚類造成一定的干擾,在當(dāng)中針對(duì)于相應(yīng)色度執(zhí)行一系列的非線性變換,完成光影相對(duì)較高的區(qū)域剔除,也就是所謂關(guān)于的極值,在進(jìn)行一系列非線性變換當(dāng)中,憑借有效代表相應(yīng)的中軸線,相應(yīng)膚色區(qū)域的具體寬度可憑借進(jìn)行有效表示。
也就是將其全部轉(zhuǎn)化到當(dāng)中,再依次進(jìn)行關(guān)于平面的有效投影,故通過(guò)相應(yīng)采樣得到的相關(guān)點(diǎn)集,依次進(jìn)行相應(yīng)的投影以及相應(yīng)的變換。
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖3-6 關(guān)于橢圓模型的相關(guān)坐標(biāo)

3.2.5RGB色彩空間模型
RGB 色彩空間是人們最常用到的顏色模型。于年選取了紅,綠,藍(lán)這幾種單色作為相應(yīng)的基本色,也就是所謂的色彩空間。在一定程度上可以基于三基色實(shí)現(xiàn)任何色彩的體現(xiàn)與表示,這是當(dāng)今時(shí)代下最為常用的色彩表示方式。也可以有效憑借三基色進(jìn)行相應(yīng)光量的有效表示,其中紅色(波長(zhǎng)=700.0nm),綠色(波長(zhǎng)=546.1nm),藍(lán)色(波長(zhǎng)=435.8nm)組成的坐標(biāo)系為 RGB 色系坐標(biāo)系。圖像的顏色一般都用 RGB 坐標(biāo)系來(lái)表示。
在針對(duì)于手勢(shì)識(shí)別相關(guān)研究過(guò)程當(dāng)中,一般情況下攝像頭所采集到的各種形式圖像都是來(lái)源于相應(yīng)的色彩空間,需要注意的是不能直接對(duì)其進(jìn)行相應(yīng)的膚色分割。這是因?yàn)槠淙g存在相對(duì)較為突出的相關(guān)性,倘若進(jìn)行任意分量保持相對(duì)獨(dú)立的形式進(jìn)行處理,可以說(shuō)要比登天還難,在此過(guò)程中其對(duì)光照要求相當(dāng)嚴(yán)格,其所帶來(lái)的干擾也尤為突出,故在進(jìn)行目標(biāo)手勢(shì)膚色分割的過(guò)程當(dāng)中,幾乎沒(méi)有采取的現(xiàn)象。
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖3-7 關(guān)于色彩空間相關(guān)坐標(biāo)系
在 RGB 模型中,手勢(shì)表現(xiàn)出來(lái)的顏色受到關(guān)照的影響,但對(duì)同一點(diǎn)來(lái)說(shuō),在不同的亮度條件下其對(duì)應(yīng)的值是成比例的:

可以歸結(jié)為相應(yīng)的光照幾乎不會(huì)影響同一點(diǎn)的色彩情況,僅僅局限于亮度存在差異。 RGB 顏色空間可以直接通過(guò)線性變換,轉(zhuǎn)化為灰度圖像:

3.2.6YCbCr色彩空間模型
具體可以歸結(jié)為由進(jìn)行有效變換所得到的。其中代表相應(yīng)的亮度,、Cr 分別代表光源中的紅色分量與藍(lán)色分量。通過(guò)非線性分段而得到的的亮度以及色度所對(duì)應(yīng)的采樣比率分別為,在一定程度上基本能夠滿足于肉眼對(duì)色度變化的敏感程度明顯低于亮度變化的性質(zhì),與此同時(shí)相關(guān)色彩的求解相對(duì)較為簡(jiǎn)便、相應(yīng)的亮度以及色度分量可有效進(jìn)行分離、具備相對(duì)較為良好的聚類性等特征被認(rèn)為是很出色的膚色空間模型。經(jīng)過(guò)對(duì)文獻(xiàn)的調(diào)研,在人們的大量實(shí)驗(yàn)后,通過(guò)統(tǒng)計(jì)的方法來(lái)確定膚色的參數(shù),人手膚色在YCbCr空間中的范圍Cb∈(105,127),Cr∈(137,162),當(dāng)像素點(diǎn)屬于此范圍時(shí),我們就認(rèn)為它是皮膚像素點(diǎn)。
其轉(zhuǎn)換公式為:

相關(guān)實(shí)驗(yàn)結(jié)果顯示,基于相關(guān)模型,以及分量呈現(xiàn)出一定的相關(guān)性,但需要注意的是與之間沒(méi)有所謂的相關(guān)性,當(dāng)亮度存在差異的形勢(shì)下以及均能呈現(xiàn)出相對(duì)較為出色色聚類效果。而且基于到空間的轉(zhuǎn)化基本可以稱之為線性變換,從而可以忽視的干擾,從而有效降低冗余通道的數(shù)量。這就實(shí)現(xiàn)了相應(yīng)的維度降低操作。如圖3-8所示,呈現(xiàn)出膚色關(guān)于平面相應(yīng)的投影。
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖3-8關(guān)于膚色在平面上相應(yīng)的投影
經(jīng)查閱文獻(xiàn)及實(shí)驗(yàn),本文首先將采集到圖像轉(zhuǎn)換到Y(jié)CrCb空間,再對(duì)其進(jìn)行手勢(shì)分割以得到想要的目標(biāo)手勢(shì)。相比于RGB和HSV,YCrCb空間計(jì)算量遠(yuǎn)遠(yuǎn)小于前兩種,同時(shí)對(duì)人體膚色的聚類效果最佳,受光線變化干擾也最小。接下來(lái)的一章將進(jìn)一步介紹基于膚色聚類分割的具體呈現(xiàn)形式,此處不再贅述。
3.2.7中值濾波
膚色分割之后,我們還需對(duì)圖像進(jìn)行一定的平滑度處理。在一定程度上又可歸結(jié)為模糊,通常情況下憑借其進(jìn)行有效降噪,其本質(zhì)在于針對(duì)于相應(yīng)的圖像進(jìn)行平滑化,從而有效降低其內(nèi)部的噪點(diǎn)存在。在本文所涉及的手勢(shì)識(shí)別當(dāng)中,所謂的圖像平滑處理的最根本原因在于盡可能最大限度降低一系列的冗余信息,便于后續(xù)的手勢(shì)輪廓分割以及相關(guān)特征的有效獲取,與此同時(shí)致使相應(yīng)的計(jì)算量有效下降。中值、雙邊以及相應(yīng)的高斯濾波是相對(duì)較為常見(jiàn)的幾種平滑濾波方式。
中值濾波可以歸結(jié)為相對(duì)較為典型的非線性技術(shù),其具體的原理是有效憑借像素點(diǎn)灰度中值進(jìn)行有效近似等價(jià)替代,其功效在于有效剔除相應(yīng)的造成,與此同時(shí)還能切實(shí)有效保證一系列邊緣細(xì)節(jié)不會(huì)被破壞。
基于實(shí)驗(yàn)進(jìn)行分析,相應(yīng)的中值濾波對(duì)去除圖片噪聲特別理想。相比于其他平滑方法,其在一定程度上能夠有效克服一系列相對(duì)較為常見(jiàn)的線性濾波器,譬如最小均方、方框、均值濾波等造成的一系列細(xì)節(jié)模糊問(wèn)題,與此同時(shí)能夠有效降低脈沖干擾以及相應(yīng)的掃描噪聲,還能切實(shí)有效保證一系列邊緣細(xì)節(jié)不會(huì)被破壞。除此之外,相應(yīng)的算法相對(duì)較為便捷實(shí)用。故本文所涉到的手勢(shì)識(shí)別系統(tǒng)有效憑借中值濾波的方式完成相應(yīng)的噪音剔除。

其中f(x,y)、g(x,y)分別表示中值濾波處理前、后的圖像,W是模板,通常為33或者22,本文采用3*3。
3.2.8膨脹濾波
形態(tài)學(xué)(morphology)是生物學(xué)的一個(gè)分支,圖像處理中的形態(tài)學(xué)具體可以歸結(jié)為數(shù)學(xué)形態(tài)學(xué),其實(shí)質(zhì)在于格論以及相應(yīng)的拓?fù)鋵W(xué)層面的圖像分析。
簡(jiǎn)而言之,所謂的形態(tài)學(xué)操可以歸結(jié)為基于相應(yīng)形狀的圖像處理。在一定程度上為相應(yīng)的圖像形態(tài)學(xué)變換營(yíng)造了相對(duì)較為快捷的函數(shù)以及開(kāi)發(fā)環(huán)境。最基本的形式可以歸結(jié)為兩類,即膨脹以及腐蝕。本文采用膨脹進(jìn)行濾波。
膨脹(dilate)又稱為作圖像加粗,也可以稱之為局部最大峰值的求解?;跀?shù)學(xué)視角出發(fā),所謂的膨脹即為將圖像(與核進(jìn)行卷積計(jì)算。
核的形狀以及大小幾乎不受任何限制,它具備一定的單獨(dú)形式進(jìn)行定義的相關(guān)參考點(diǎn),也就是所謂的錨點(diǎn)。通常情況下,核具體表現(xiàn)為相對(duì)較小其中心部位存在一定的參考點(diǎn)的實(shí)心圓或者正方形。可以將其當(dāng)做相應(yīng)的模板甚至是掩碼。相應(yīng)的膨脹操作在一定程度上能夠針對(duì)于噪音以及陰影等干擾所進(jìn)行分割的各個(gè)部分完成相應(yīng)切實(shí)有效的融合。
如圖所示,有效憑借膨脹可以進(jìn)行局部最大峰值的求解。核與圖形發(fā)生卷積,即進(jìn)行核覆蓋區(qū)域所對(duì)應(yīng)的的像素點(diǎn)的最峰值的求解,并將其賦給相應(yīng)的參考像素,便可將相應(yīng)的高亮區(qū)域逐步擴(kuò)大。(p188)
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖3-9 膨脹濾波
膨脹的數(shù)學(xué)表達(dá)式如下

4系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

憑借著計(jì)算機(jī)以及圖像處理技術(shù)發(fā)展勢(shì)頭迅猛提升,相應(yīng)的計(jì)算機(jī)視覺(jué)等方面也在迅速發(fā)展,手勢(shì)識(shí)別作為人機(jī)交互的一種方式,也迎來(lái)了新的發(fā)展機(jī)遇。通過(guò)前期調(diào)研發(fā)現(xiàn),手勢(shì)識(shí)別技術(shù)已應(yīng)用在多個(gè)領(lǐng)域,如日常生活視頻直播或者拍照過(guò)程中,結(jié)合用戶的手勢(shì)(如點(diǎn)贊、比心),實(shí)時(shí)顯示相應(yīng)的特效,豐富交互體驗(yàn)。智能駕駛過(guò)程中將手勢(shì)識(shí)別應(yīng)用到駕駛輔助系統(tǒng),使用手勢(shì)控制車內(nèi)的各種功能,一定程度上解放雙眼,將更多的注意力放在道路上,提升駕車安全性。同時(shí)還包括百度AI開(kāi)放平臺(tái)提供的在線手勢(shì)識(shí)別服務(wù)等。這些均反映著手勢(shì)識(shí)別技術(shù)的火熱。
本文設(shè)計(jì)的手勢(shì)識(shí)別系統(tǒng)可以歸結(jié)為順序結(jié)構(gòu),相應(yīng)的系統(tǒng)流程如下圖4-1所示

采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖4-1 手勢(shì)識(shí)別流程圖

下面對(duì)系統(tǒng)中三個(gè)重要模塊進(jìn)行介紹:
(1)圖像采集模塊
基于本地形式的攝像頭,完成相應(yīng)的視頻圖像的切實(shí)有效采集,呈現(xiàn)出空間視頻流的形式進(jìn)而為手勢(shì)識(shí)別輸入奠定一定的基礎(chǔ),并將采集到個(gè)各項(xiàng)數(shù)據(jù)有效儲(chǔ)存到當(dāng)中,為接下來(lái)的輸入做好充分準(zhǔn)備。
(2)圖像預(yù)處理模塊
憑借圖片的有效縮放,進(jìn)而將后期的相關(guān)計(jì)算量有效壓低,在此過(guò)程當(dāng)中有效剔除相應(yīng)的圖片噪音,為接下來(lái)的相應(yīng)處理提供相對(duì)較為便捷的條件。這部分具體涵蓋了灰度變換、空間轉(zhuǎn)化以及相應(yīng)的平滑處理等。
(3)匹配識(shí)別模塊
該模塊是手勢(shì)識(shí)別系統(tǒng)需要實(shí)現(xiàn)的目標(biāo)功能,也是本系統(tǒng)最重要的模塊。在對(duì)圖像進(jìn)行一系列的處理后,有效獲取到相應(yīng)手勢(shì)圖像具體形式的特征值,接下來(lái)與事先設(shè)定好的模板特征值完成切實(shí)有效的對(duì)比以及歸類,進(jìn)而有效尋找出所對(duì)應(yīng)的手勢(shì)信息,譬如手型所代表的數(shù)字。然而在動(dòng)態(tài)識(shí)別當(dāng)中,系統(tǒng)內(nèi)部會(huì)進(jìn)行實(shí)時(shí)的信息采集,并完成相應(yīng)的處理工作。
4.1系統(tǒng)整體設(shè)計(jì)
根據(jù)前期的需求分析和調(diào)研,本文設(shè)計(jì)的整體系統(tǒng)結(jié)構(gòu)如下圖所示:

采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖4-2 手勢(shì)識(shí)別程序流程圖
4.1.1手勢(shì)訓(xùn)練模塊
在開(kāi)始訓(xùn)練手勢(shì)之前,需要用戶打開(kāi)電腦自帶的攝像頭提供視頻流。
void CMFCGuestureDlg::OnBnClickedOpencap()//打開(kāi)攝像頭
{
m_Cap.open(0);
if (!m_Cap.isOpened())
{
MessageBox(“攝像頭打開(kāi)失敗”);
return;
}
但是MFC的picture control控件中的圖像格式與OpenCV的圖像格式不盡相同,因此需要將OpenCV得到的視頻流通過(guò)CvvImage開(kāi)源圖像處理庫(kù)進(jìn)行轉(zhuǎn)變處理。處理完以后攝像頭所得到的圖像就會(huì)被顯示在控件中。
void CMFCGuestureDlg::regniseHand(string path_img)
{
imagesRegnise = imread(path_img.c_str());//imagelist[0].c_str()
Mat incp = imagesRegnise.clone();
srcCvvImg.CopyOf(&(IplImage)imagesRegnise); //繪制圖像到控件
srcCvvImg.DrawToHDC(m_HDCImg, &m_RectImg);
resize(incp, incp, Size(HogWIDTH, HogHEIGHT));

hand = handPreprocess(incp);
if (1.0*countNonZero(hand) / (incp.cols*incp.rows) > 0.23)
{
	int regResult = mySvmClassifier->svmPredict(incp);
	CString str;
	str.Format("%d", regResult);
	SetDlgItemText(IDC_EDIT2, str);
	sprintf_s(buffer, "%d", regResult);
	putText(imagesRegnise, buffer, Point(incp.cols / 2, incp.rows / 2), FONT_HERSHEY_SIMPLEX, 1.5, Scalar(0, 0, 255), 2);

	srcCvvImg.CopyOf(&(IplImage)imagesRegnise);		//繪制圖像到控件
	srcCvvImg.DrawToHDC(m_HDCImg, &m_RectImg);
	srcCvvImg.CopyOf(&(IplImage)hand);		//繪制圖像到控件
	srcCvvImg.DrawToHDC(m_HDCImg2, &m_RectImg2);
}
else
{
	MessageBox("沒(méi)有檢測(cè)到手勢(shì)");
}

}
在本系統(tǒng)中,為降低識(shí)別失敗率及程序復(fù)雜度,我直接定義并設(shè)置了檢測(cè)區(qū)域的位置。
int WIDTH = m_src.cols;
int HEIGHT = m_src.rows;
capRt = cv::Rect(1 * WIDTH / 3 - 1, 1 * HEIGHT / 3 - 1, WIDTH / 2, HEIGHT / 2);
采集手勢(shì)如圖所示
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖4-3 手勢(shì)采集
void CMFCGuestureDlg::OnBnClickedReg()//注冊(cè)手勢(shì)類別
{
CString str;
GetDlgItem(IDC_EDIT1)->GetWindowText(str);
regingInt = atoi(str);
regBool = false;
sprintf_s(buffer, “./Data/%d”, regingInt);
if (_access(buffer, 0)==0)
{
sprintf_s(buffer, “手勢(shì)%d已注冊(cè),如需重新注冊(cè)請(qǐng)先刪除對(duì)應(yīng)類別文件夾”, regingInt);
MessageBox(buffer);
regingInt = -1;
return;
}
CreateDirectory(buffer, NULL);

regBool = true;
regNum = 0;

}

圖像采集完畢后,存入指定文件夾下。如例子中注冊(cè)手勢(shì)1,則存入D:\2019畢設(shè)\vs13program\handGuesture\MFCGuesture\Data\1。保存如圖所示
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖4-4 手勢(shì)采集保存形式
本系統(tǒng)手勢(shì)預(yù)處理將計(jì)算機(jī)攝像頭采集到的的RGB色彩空間轉(zhuǎn)換為YCrCb空間,再利用橢圓皮膚模型進(jìn)行皮膚檢測(cè)與分離。
Mat CMFCGuestureDlg::handPreprocess(Mat& src)
{

 ycrcb_image;
Mat output_mask = Mat::zeros(Size(src.cols,src.rows), CV_8UC1);

 
 
	for (int j = 0; j < src. 
	 
	 
	   //如果該落在皮膚模型橢圓區(qū)域內(nèi),該點(diǎn)就是皮膚像素點(diǎn)
		output_mask.at<uchar>(j, i) = 255;
	}

dilate(output_mask, output_mask, element);//膨脹,參數(shù)1:輸入圖片,參數(shù)2:輸出圖片,參數(shù)3:卷積核
medianBlur(output_mask, output_mask, 3);//中值濾波,
morphologyEx(output_mask, output_mask, MORPH_CLOSE, element2);//形態(tài)學(xué)運(yùn)算函數(shù)

return output_mask;

}

輸出如圖所示
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖4-5 手勢(shì)預(yù)處理
采集并處理完圖像后,進(jìn)行手勢(shì)模型的訓(xùn)練
void CMFCGuestureDlg::OnBnClickedButton3()//訓(xùn)練模型
{
char* path_ = “./Data/”;
readDir(path_, imagelist, labelName);
mySvmClassifier = new svmGuesture(imagelist.size(), HogWIDTH, HogHEIGHT); //新建的手勢(shì)識(shí)別的類svmGuesture,這個(gè)類在另外的文件
if (_access(“./model.xml”,0)==0)
{
mySvmClassifier->svm.load(“./model.xml”);
return;
}

int flag = mySvmClassifier->loadData(imagelist);
if (flag==-1)
{
	MessageBox("not Found image files");
}
flag = mySvmClassifier->svmTrain();
if (flag == -1)
{
	MessageBox("train model error");
}
MessageBox("training model done");

}
4.1.2手勢(shì)測(cè)試模塊
系統(tǒng)必須先通過(guò)手勢(shì)檢測(cè)模塊來(lái)畫(huà)出手勢(shì)輪廓與皮膚區(qū)域。此系統(tǒng)中的手勢(shì)檢測(cè)功能就是通過(guò)OpenCV手勢(shì)識(shí)別庫(kù),在特定區(qū)域提取手勢(shì)特征。
本系統(tǒng)手勢(shì)識(shí)別模塊包括了動(dòng)態(tài)識(shí)別和靜態(tài)識(shí)別。具體方法將在第五章敘述。
啟動(dòng)手勢(shì)識(shí)別功能代碼如下:
void CMFCGuestureDlg::OnBnClickedButton2()//手勢(shì)識(shí)別
{
if (_access(“./model.xml”,0)!=0)
{
MessageBox(“請(qǐng)先訓(xùn)練模型”);
return;
}

startRegnise = true;

}

5系統(tǒng)測(cè)試與分析

在系統(tǒng)運(yùn)行和測(cè)試階段,通過(guò)對(duì)系統(tǒng)功能逐個(gè)進(jìn)行測(cè)試,驗(yàn)證系統(tǒng)是否達(dá)到了預(yù)期的設(shè)計(jì)要求。
5.1系統(tǒng)測(cè)試環(huán)境
在本文的測(cè)試中,系統(tǒng)的運(yùn)行環(huán)境為英特爾 Core i7-8750H @ 2.20GHz 六核處理器和16GB內(nèi)存配置的電腦,操作系統(tǒng)為win10,開(kāi)發(fā)環(huán)境采用Visual Studio 2013,開(kāi)發(fā)語(yǔ)言為C++。
5.2系統(tǒng)界面測(cè)試
5.2.1手勢(shì)注冊(cè)功能測(cè)試
系統(tǒng)界面如圖5-1所示
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖5-1 手勢(shì)識(shí)別系統(tǒng)界面
考慮需要一只手注冊(cè),一只手操作,我將注冊(cè)區(qū)域調(diào)整到畫(huà)面左下方。以注冊(cè)手勢(shì)0為例。
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖5-2 注冊(cè)手勢(shì)“0”
void CMFCGuestureDlg::OnTimer(UINT_PTR nIDEvent) //時(shí)間響應(yīng)函數(shù)
{
m_Cap >> m_src;
rectangle(m_src, capRt, Scalar(255, 0, 0), 2);
srcCvvImg.CopyOf(&(IplImage)m_src); //繪制圖像到控件
srcCvvImg.DrawToHDC(m_HDCImg, &m_RectImg);
frameCounter++;

if (regBool || startRegnise)
	hand = handPreprocess(m_src(capRt));		// 皮膚檢測(cè)判斷是否為手勢(shì)

if (regBool && regNum<50 && regingInt>=0)
{
	//Mat hand = handPreprocess(m_src(capRt));
	if (regingInt == 1)thresh_ = 0.24; else thresh_ = 0.3;
	if (frameCounter % 3 == 0 && 1.0*countNonZero(hand) / (capRt.width*capRt.height) > thresh_)
	{
		sprintf_s(buffer, "./Data/%d/%d_%d.jpg", regingInt, frameCounter, regNum);
		Mat saveImg = m_src(capRt);
		//cvtColor(saveImg, saveImg, CV_RGB2GRAY);
		imwrite(buffer, saveImg/*hand*/);
		regNum++;
	}
	srcCvvImg.CopyOf(&(IplImage)hand);		//繪制圖像到控件
	srcCvvImg.DrawToHDC(m_HDCImg2, &m_RectImg2);
}
if (regBool && regNum == 50 )
{
	sprintf_s(buffer, "手勢(shì)%d注冊(cè)完成", regingInt);
	regBool = false;
	regNum = 0;
	MessageBox(buffer);
}

if (startRegnise)
{
	Mat saveImg = m_src(capRt);//handPreprocess(saveImg)

	if (1.0*countNonZero(hand) / (capRt.width*capRt.height) > 0.3)
	{
		resize(saveImg, saveImg, Size(HogWIDTH, HogHEIGHT));
		cvtColor(saveImg, saveImg, CV_RGB2GRAY);

		int regResult = mySvmClassifier->svmPredict(saveImg);
		CString str;
		str.Format("%d", regResult);
		SetDlgItemText(IDC_EDIT2, str);
		sprintf_s(buffer, "%d", regResult);
		putText(m_src, buffer, Point(capRt.x, capRt.y), FONT_HERSHEY_SIMPLEX, 1.5, Scalar(0, 0, 255), 2);

		srcCvvImg.CopyOf(&(IplImage)m_src);		//繪制圖像到控件
		srcCvvImg.DrawToHDC(m_HDCImg, &m_RectImg);
		srcCvvImg.CopyOf(&(IplImage)hand);		//繪制圖像到控件
		srcCvvImg.DrawToHDC(m_HDCImg2, &m_RectImg2);
	}

}

5.2.2手勢(shì)識(shí)別(動(dòng)態(tài)手勢(shì))測(cè)試
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖5-3 手勢(shì)“0”動(dòng)態(tài)識(shí)別
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖5-4 手勢(shì)“1”動(dòng)態(tài)識(shí)別
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖5-5 手勢(shì)“2”動(dòng)態(tài)識(shí)別
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖5-6 手勢(shì)“3”動(dòng)態(tài)識(shí)別
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖5-7 手勢(shì)“4”動(dòng)態(tài)識(shí)別
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖5-8 手勢(shì)“5”動(dòng)態(tài)識(shí)別
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖5-9 手勢(shì)“6”動(dòng)態(tài)識(shí)別
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖5-10 手勢(shì)“7”動(dòng)態(tài)識(shí)別
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖5-11 手勢(shì)“8”動(dòng)態(tài)識(shí)別
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖5-12 手勢(shì)“9”動(dòng)態(tài)識(shí)別
由上圖可以看出,在光線條件合適的情況下,背景與膚色對(duì)比度明顯,系統(tǒng)可以準(zhǔn)確識(shí)別出0-9共10個(gè)手勢(shì),并實(shí)時(shí)將識(shí)別結(jié)果顯示在界面上。
5.2.3圖片識(shí)別(靜態(tài)手勢(shì))測(cè)試
點(diǎn)擊圖片識(shí)別按鈕,打開(kāi)靜態(tài)手勢(shì)存儲(chǔ)的文件夾,識(shí)別圖片手勢(shì)。
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖5-13 手勢(shì)“1”靜態(tài)識(shí)別
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖5-14 手勢(shì)“2”靜態(tài)識(shí)別
void CMFCGuestureDlg::OnBnClickedButton4()//圖片識(shí)別按鈕
{
KillTimer(1);
startRegnise = false;
regBool = false;
CString str;
BROWSEINFO bi;
TCHAR name[MAX_PATH];
name[0] = ‘d’;
ZeroMemory(&bi, sizeof(BROWSEINFO));
bi.hwndOwner = GetSafeHwnd();
bi.pszDisplayName = name;
bi.lpszTitle = _T(“Select folder”);
bi.ulFlags = 0x80;
LPITEMIDLIST idl = SHBrowseForFolder(&bi);
if (idl == NULL)
return;
SHGetPathFromIDList(idl, str.GetBuffer(MAX_PATH));
str.ReleaseBuffer();
m_Path = str;
if (str.GetAt(str.GetLength() - 1) != ‘\’)
m_Path += “\”;
UpdateData(FALSE);

m_ImageDir = (LPSTR)(LPCSTR)m_Path;
imagelist.clear();
labelName.clear();
readDir(m_ImageDir, imagelist, labelName);
NumImg = imagelist.size();
if (NumImg<=0)
{
	MessageBox("文件夾下沒(méi)有圖片");
	return;
}
regniseHand(imagelist[0]);

}
5.3測(cè)試問(wèn)題
測(cè)試過(guò)程中也發(fā)現(xiàn)了一些問(wèn)題,具體如下:
5.3.1手勢(shì)識(shí)別(動(dòng)態(tài)手勢(shì))問(wèn)題
如圖所示:
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖5-15 5-16 動(dòng)態(tài)手勢(shì)識(shí)別光線問(wèn)題
由于光照條件變化和手掌與攝像頭距離等原因,在手勢(shì)注冊(cè)時(shí),膚色分割變化較大,直接影響從視頻流中采集的圖像質(zhì)量,并影響手勢(shì)訓(xùn)練結(jié)果,最終導(dǎo)致手勢(shì)識(shí)別效率降低。
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

5-17 手勢(shì)角度變換造成識(shí)別錯(cuò)誤
從測(cè)試中發(fā)現(xiàn),由于采集手勢(shì)樣本數(shù)量有限,當(dāng)攝像頭采集區(qū)域手勢(shì)角度發(fā)生變化時(shí),系統(tǒng)無(wú)法或錯(cuò)誤識(shí)別動(dòng)態(tài)手勢(shì)。

采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

圖5-18 5-19 身體其他部位膚色對(duì)識(shí)別的影響
另外由于人體其他部位膚色與手部膚色差別不大,當(dāng)有身體其他部位如臉或手臂進(jìn)入圖像采集區(qū)時(shí),同樣會(huì)被膚色分割。在手勢(shì)采集時(shí)會(huì)影響模型訓(xùn)練效果,而在手勢(shì)識(shí)別時(shí),則會(huì)導(dǎo)致錯(cuò)誤或無(wú)法識(shí)別。
5.3.2圖片識(shí)別(靜態(tài)手勢(shì))問(wèn)題
采用opencv完成一種動(dòng)作的手勢(shì)識(shí)別,比如ok動(dòng)作、點(diǎn)贊動(dòng)作等,動(dòng)作可自選,識(shí)別出來(lái),java,java

5-20 異側(cè)手無(wú)法識(shí)別
從測(cè)試結(jié)果中我們可以看出,靜態(tài)手勢(shì)在圖像處理方面不如動(dòng)態(tài)手勢(shì),主要表現(xiàn)在圖像平滑處理不好。同時(shí)遇到與動(dòng)態(tài)測(cè)試中相同的問(wèn)題,當(dāng)旋轉(zhuǎn)圖片角度測(cè)試,或者導(dǎo)入另一只手進(jìn)行測(cè)試時(shí),系統(tǒng)無(wú)法識(shí)別該手勢(shì)類型。
5.4測(cè)試結(jié)論
經(jīng)過(guò)上述的測(cè)試,表明該系統(tǒng)可以基本實(shí)現(xiàn)設(shè)計(jì)需求中的各項(xiàng)功能,在光線和背景穩(wěn)定的情況下能夠保證這些功能的正確執(zhí)行,本系統(tǒng)的算法基于原有算法進(jìn)行部分了改進(jìn),達(dá)到預(yù)期設(shè)想。其中手勢(shì)檢測(cè)可以很好地檢測(cè)動(dòng)態(tài)正面手勢(shì),攝像頭采集的視頻中的手勢(shì)都可以正常進(jìn)行預(yù)處理,但當(dāng)外界條件變化或因手部移動(dòng)造成光線、位置等因素造成的干擾,影響了圖像的采集,從而造成后續(xù)識(shí)別率降低。且由于邊緣濾波算法研究不夠全面和充分,因此靜態(tài)手勢(shì)識(shí)別效果不夠好。通過(guò)系統(tǒng)整體運(yùn)行測(cè)試,說(shuō)明該系統(tǒng)可以實(shí)現(xiàn)一定程度上的動(dòng)態(tài)、靜態(tài)手勢(shì)識(shí)別功能。
6總結(jié)和展望
隨著時(shí)代的不斷發(fā)展伴隨著科學(xué)技術(shù)的日新月異,相應(yīng)的手勢(shì)識(shí)別在人機(jī)交互的過(guò)程當(dāng)中呈現(xiàn)出相對(duì)較為便捷、高效等特點(diǎn),成為當(dāng)前研究和應(yīng)用的熱點(diǎn)。而新一代的人機(jī)交互必然會(huì)呈現(xiàn)出相對(duì)較為人性化、智能化以及自由化的趨勢(shì)。
6.1本系統(tǒng)優(yōu)點(diǎn)總結(jié)
本文以Visual Studio 2013+OpenCV2.4.9作為開(kāi)發(fā)平臺(tái),開(kāi)發(fā)出基于圖片以及本地?cái)z像頭采集手勢(shì)并進(jìn)行切實(shí)有效識(shí)別的系統(tǒng),同時(shí)利用圖像處理及模式識(shí)別的理論知識(shí),我對(duì)手勢(shì)識(shí)別相關(guān)領(lǐng)域有了更深入的了解。
本文首先了闡述了手勢(shì)識(shí)別的基本原理。對(duì)輸入圖像充分做好相應(yīng)的預(yù)處理,其次針對(duì)于手勢(shì)圖像的各方面特征,基于相應(yīng)的皮膚模型的橢圓模型法對(duì)皮膚特征進(jìn)行提取。為了使分割效果更佳,在膚色模型區(qū)域的算法中,在查閱資料后選取形式的顏色空間,與此同時(shí)考慮到相應(yīng)的亮度變換比相對(duì)較大,一旦呈現(xiàn)過(guò)亮或者過(guò)暗區(qū)域的現(xiàn)象產(chǎn)出,在一定程度上會(huì)導(dǎo)致中呈現(xiàn)膚色溢出的現(xiàn)象。有效憑借完成相應(yīng)類橢圓模型的搭建。相應(yīng)的皮膚色彩呈現(xiàn)出一定的聚類特性,基于該聚類特性可有效求解出各點(diǎn)的相似度,并進(jìn)行相應(yīng)的歸一化處理,即呈現(xiàn)在區(qū)間內(nèi)。去除膚色區(qū)域中的非手勢(shì)區(qū)域,從而可以較好的分割出目標(biāo)部分。本項(xiàng)研究具體的貢獻(xiàn)在于:
1.針對(duì)于的手勢(shì)模板,提出了相應(yīng)的動(dòng)態(tài)識(shí)別算法進(jìn)行切實(shí)有效識(shí)別。
2.本文對(duì)手勢(shì)的特點(diǎn)進(jìn)行了切實(shí)有效的分析,具體涵蓋了靜態(tài)以及動(dòng)態(tài)手勢(shì)相關(guān)提取與識(shí)別,并且基于特征以及相應(yīng)的算法進(jìn)行了切實(shí)有效的探索。
3.整體而言,系統(tǒng)運(yùn)行情況良好,符合預(yù)期。
6.2本論文不足總結(jié)

針對(duì)于本文所開(kāi)發(fā)的手勢(shì)識(shí)別系統(tǒng)進(jìn)行了一系列驗(yàn)證性實(shí)驗(yàn)以后,將相應(yīng)的不足之處有效歸結(jié)為以下幾點(diǎn):
1.雖然幀速的相關(guān)識(shí)別相對(duì)較快很快,但在精準(zhǔn)度方面還有待進(jìn)一步完善;
2.手勢(shì)采集區(qū)域固定,可通過(guò)更換算法實(shí)現(xiàn)手勢(shì)區(qū)域自由定位;
3.圖像預(yù)處理算法仍需改進(jìn),尤其是圖像平滑處理;
4.對(duì)旋轉(zhuǎn)或者不同位置的手勢(shì),系統(tǒng)無(wú)法快速、準(zhǔn)確地進(jìn)行識(shí)別;
5.基于調(diào)試中相應(yīng)的參數(shù),使其相應(yīng)的特征提取更加切實(shí)有效。
6.算法需要手動(dòng)設(shè)置參數(shù)值,無(wú)法自適應(yīng)外部環(huán)境的變化;
7.給程序構(gòu)造更加友好的用戶界面;
8.當(dāng)前能夠有效識(shí)別手勢(shì)形式相對(duì)較少,未來(lái)可進(jìn)行相關(guān)算法的完善以及模板的擴(kuò)充。
6.3未來(lái)工作展望
針對(duì)于手勢(shì)識(shí)別未來(lái)的研究工作從以下方面著手進(jìn)行:
1.完善相關(guān)識(shí)別算法,確保相應(yīng)的識(shí)別精度有效提升,同時(shí)保證相對(duì)較高的流暢性;
2.在光線、位置以及相應(yīng)的環(huán)境方面的適應(yīng)程度還有待進(jìn)一步完善;
3.著手考慮手勢(shì)旋轉(zhuǎn)等因素,確保得以實(shí)現(xiàn)全方位的手勢(shì)識(shí)別納;
4.擴(kuò)展現(xiàn)有的模板容量,保證手勢(shì)識(shí)別呈現(xiàn)多樣化的趨勢(shì);
5.考慮與啞語(yǔ)進(jìn)行有效結(jié)合;
6.逐步引入類似于神經(jīng)網(wǎng)絡(luò)形式的相關(guān)算法,確保相應(yīng)的識(shí)別精度有效提升。
7.進(jìn)行相關(guān)參數(shù)的優(yōu)化,使其智能化程度有效提升。

參考文獻(xiàn)

[1]袁博,查晨東. 手勢(shì)識(shí)別技術(shù)發(fā)展現(xiàn)狀與展望[J],科學(xué)技術(shù)創(chuàng)新,2018,(32).
[2]李越. OpenCV應(yīng)用現(xiàn)狀綜述[J]. 工業(yè)控制計(jì)算機(jī),2017,30(7): 123-126.
[3]肖茜,楊平,徐立波. 一種基于MEMS慣性傳感器的手勢(shì)識(shí)別方法[J],傳感技術(shù)學(xué)報(bào),2013,(05).
[4]秦劉念. 醫(yī)院計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展與醫(yī)院計(jì)算機(jī)應(yīng)用的重要性[J],電腦迷,2018,10(10).
[5]東述樾,趙娜. 關(guān)于醫(yī)院計(jì)算機(jī)網(wǎng)絡(luò)安全管理工作的維護(hù)策略分析[J],世界最新醫(yī)學(xué)信息文摘,2018,18(74):198-199.
[6]童欣. 一種基于OpenCV的手勢(shì)輪廓識(shí)別與指尖定位跟蹤方法[J], 福建電腦,2018,(12):96-98 .
[7]陸海虹. 基于OpenCV的手勢(shì)識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J],電子設(shè)計(jì)工程, 2015,23(5): 1649-1652.
[8]黃季冬. 動(dòng)態(tài)手勢(shì)識(shí)別技術(shù)研究與實(shí)現(xiàn)[D]. 武漢:華中科技大學(xué),2012.
[9]賀航. 基于OpenCV的手勢(shì)識(shí)別的設(shè)計(jì)改進(jìn)與實(shí)現(xiàn)[D]. 廣州:華南理工大學(xué),2018.
[10]毛星云,冷雪飛. OpenCV3編程入門(mén)[M]. 北京:電子工業(yè)出版社, 2018.
[11]葛立,莊照波,邱林,袁玉榮,趙信義,楊穎鵬. OpenCV 在手勢(shì)識(shí)別中的應(yīng)用. 南方農(nóng)機(jī)[J], 2017,(23):126-127.
[12]陳甜甜,姚璜,左明章,田元,楊夢(mèng)婷. 基于深度信息的動(dòng)態(tài)手勢(shì)識(shí)別綜述. 計(jì)算機(jī)科學(xué)[J],2018,45(12):42-52,.
[13]劉培軍,馬明棟,王得玉. 基于 OpenCV 圖像處理系統(tǒng)的開(kāi)發(fā)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)技術(shù)與發(fā)展, 2018,(3): 1-7.
[14]王曉鵬. 基于OpenCV的圖像處理濾波算法研究[J]. 現(xiàn)代工業(yè)經(jīng)濟(jì)和信息化,2018,8 (6): 61-62 .
[15]謝鳳英.數(shù)字圖像處理及應(yīng)用[J].電子工業(yè)出版社,2014.
[16]Zhang Binjue,Zhao Liaoyin,Wang Yixuan.Fingeritip detection and gesture recognition based on kinectdepth data[J]. IEEE Trasactions on Computer Science and Technology,2014,3(1): 9-14.
[17]Adams W,Belotti P,Shen R. Convex hull characterization of lexicographic orderings[J].Writing,2013,23(6): 719-726.
[18]Stephen Prata. C++ Prime Plus[M]. Addison-Wesley Professional. 2017.
[19]H Ym, X Yang. Fast-moving target tracking based on mean shift and frame-difference methods [J]. Journal of Systems Engineering and Electronics, 2012,22(4): 587-592.

致謝

隨著畢業(yè)論文完成,我的本科生涯也進(jìn)入尾聲。在這短暫的四年學(xué)習(xí)生活中,由衷的感謝北京建筑大學(xué)為我提供了一個(gè)良好的學(xué)習(xí)環(huán)境與鍛煉的平臺(tái),在這里我學(xué)會(huì)了如何踏實(shí)做人,認(rèn)真做事。
本次畢業(yè)設(shè)計(jì)從選題、開(kāi)題報(bào)告、中期報(bào)告和文獻(xiàn)翻譯都是在張德老師耐心指導(dǎo)下完成。對(duì)于學(xué)生提出的要求,老師有求必應(yīng),不厭其煩地在知識(shí)點(diǎn)講解、設(shè)計(jì)思路并在論文修改上面提供幫助。老師在時(shí)間和精力上付出了太多太多,慶幸自己遇到這么一位治學(xué)嚴(yán)謹(jǐn),對(duì)學(xué)生熱心的好老師,在理論知識(shí)的學(xué)習(xí)和方法的掌握上給予了我全面而嚴(yán)格的指導(dǎo),謹(jǐn)向張老師表示崇高的敬意和衷心的感謝!
在人的一生中,最寶貴的就是在你關(guān)鍵時(shí)期有良師或益友伴自己同行,幫助自己不斷取得進(jìn)步。在此,還要感謝教授課專業(yè)課老師們,您們是課上專業(yè)負(fù)責(zé)傳授知識(shí)的老師,是課下和藹可親的長(zhǎng)輩,是您們孜孜不倦的教誨讓我的專業(yè)素質(zhì)獲得提升,思維得到發(fā)散,能力得到提高。在平常的課程實(shí)踐當(dāng)中,您們教會(huì)了我自主學(xué)習(xí)的能力,讓我短時(shí)間內(nèi)自學(xué)新的知識(shí)。同時(shí)也感謝輔導(dǎo)員老師對(duì)我在學(xué)習(xí)、工作和生活上的支持,今天能夠順利畢業(yè)離不開(kāi)各位老師的默默付出。經(jīng)過(guò)一定時(shí)間的適應(yīng),在本次畢業(yè)設(shè)計(jì)當(dāng)中,我在編程的過(guò)程中也在學(xué)習(xí)新的知識(shí),使我的系統(tǒng)越來(lái)越完善,也讓我以后的學(xué)習(xí)有更加堅(jiān)實(shí)的基礎(chǔ),沒(méi)有老師們的諄諄教誨,我的論文就無(wú)法完成。借此機(jī)會(huì)也向我的父母表示感謝,感謝他們對(duì)我的照顧和支持。
最后感謝在百忙之中參與論文評(píng)閱和提出寶貴意見(jiàn)的各位答辯組老師,您的意見(jiàn)將是我成長(zhǎng)的不竭動(dòng)力。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-767779.html

到了這里,關(guān)于基于OpenCV的手勢(shì)識(shí)別系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于OpenCV的手勢(shì)1~5識(shí)別系統(tǒng)(源碼&環(huán)境部署)

    基于OpenCV的手勢(shì)1~5識(shí)別系統(tǒng)(源碼&環(huán)境部署)

    項(xiàng)目參考AAAI Association for the Advancement of Artificial Intelligence 研究背景與意義: 隨著計(jì)算機(jī)視覺(jué)技術(shù)的快速發(fā)展,手勢(shì)識(shí)別系統(tǒng)在人機(jī)交互、虛擬現(xiàn)實(shí)、智能監(jiān)控等領(lǐng)域得到了廣泛應(yīng)用。手勢(shì)識(shí)別系統(tǒng)可以通過(guò)分析人體的手勢(shì)動(dòng)作,實(shí)現(xiàn)與計(jì)算機(jī)的自然交互,提高用戶體驗(yàn)和操

    2024年02月04日
    瀏覽(23)
  • 基于Python+OpenCV的手勢(shì)識(shí)別系統(tǒng):智能家居和智能小車的燈光控制

    基于Python+OpenCV的手勢(shì)識(shí)別系統(tǒng):智能家居和智能小車的燈光控制

    基于python+opencv的手勢(shì)識(shí)別系統(tǒng),可控制燈的亮度,智能家居,智能小車。 基于python+opencv的手勢(shì)識(shí)別系統(tǒng)軟件。 內(nèi)含svm模型,和膚色識(shí)別,銳化處理。 基于 win10+Python3.7的環(huán)境,利用Python的OpenCV、Sklearn和PyQt5等庫(kù)搭建了一個(gè)較為完整的手勢(shì)識(shí)別系統(tǒng),用于識(shí)別日常生活中1-1

    2024年04月15日
    瀏覽(100)
  • 基于opencv的手勢(shì)識(shí)別

    基于opencv的手勢(shì)識(shí)別

    大家好,我是一名本科生,我的主要學(xué)習(xí)方向是計(jì)算機(jī)視覺(jué)以及人工智能。按照目前的學(xué)習(xí)進(jìn)度來(lái)說(shuō),我就是一小白,在這里寫(xiě)下自己編寫(xiě)的程序,與大家分享,記錄一下自己的成長(zhǎng)。 思路分析 獲取圖片,在圖片中找到手,然后進(jìn)行一系列的閉運(yùn)算,降噪平滑處理,輪廓查

    2024年02月03日
    瀏覽(33)
  • 基于OpenCV的簡(jiǎn)易實(shí)時(shí)手勢(shì)識(shí)別(含代碼)

    基于OpenCV的簡(jiǎn)易實(shí)時(shí)手勢(shì)識(shí)別(含代碼)

    這是我大一寒假時(shí)寫(xiě)著玩的,非常簡(jiǎn)陋。基于凸包檢測(cè),所以實(shí)際上是計(jì)算指尖數(shù)量判斷1~5的手勢(shì)。又為1 ~3手勢(shì)賦了控制鼠標(biāo)操作的功能(但不能移動(dòng)鼠標(biāo),而且因?yàn)槭謩?shì)識(shí)別不太準(zhǔn)確所以這個(gè)功能實(shí)現(xiàn)得很廢/doge)。(才疏學(xué)淺,希望有生之年能寫(xiě)個(gè)更好的 版本信息:Vi

    2024年02月03日
    瀏覽(22)
  • 基于opencv-mediapipe的手勢(shì)識(shí)別

    基于opencv-mediapipe的手勢(shì)識(shí)別

    上一篇文章介紹了基于opencv的手勢(shì)識(shí)別,如果大家運(yùn)行了我的代碼,會(huì)發(fā)現(xiàn)代碼中找出手部輪廓的效果不是很理想。當(dāng)時(shí)我在網(wǎng)上找尋解決的辦法,剛好找到了mediapip庫(kù),然后我就利用opencv和mediapipe這兩個(gè)庫(kù)重新進(jìn)行了手勢(shì)識(shí)別的代碼編寫(xiě)。效果還不錯(cuò),寫(xiě)篇文章記錄一下。

    2024年02月09日
    瀏覽(16)
  • 畢設(shè)項(xiàng)目分享 基于機(jī)器視覺(jué)opencv的手勢(shì)檢測(cè) 手勢(shì)識(shí)別 算法 - 深度學(xué)習(xí) 卷積神經(jīng)網(wǎng)絡(luò) opencv python

    畢設(shè)項(xiàng)目分享 基于機(jī)器視覺(jué)opencv的手勢(shì)檢測(cè) 手勢(shì)識(shí)別 算法 - 深度學(xué)習(xí) 卷積神經(jīng)網(wǎng)絡(luò) opencv python

    今天學(xué)長(zhǎng)向大家介紹一個(gè)機(jī)器視覺(jué)項(xiàng)目 基于機(jī)器視覺(jué)opencv的手勢(shì)檢測(cè) 手勢(shì)識(shí)別 算法 普通機(jī)器視覺(jué)手勢(shì)檢測(cè)的基本流程如下: 其中輪廓的提取,多邊形擬合曲線的求法,凸包集和凹陷集的求法都是采用opencv中自帶的函數(shù)。手勢(shì)數(shù)字的識(shí)別是利用凸包點(diǎn)以及凹陷點(diǎn)和手部中心

    2024年02月03日
    瀏覽(116)
  • 基于python+opencv+mediapipe實(shí)現(xiàn)手勢(shì)識(shí)別詳細(xì)講解

    基于python+opencv+mediapipe實(shí)現(xiàn)手勢(shì)識(shí)別詳細(xì)講解

    目錄 運(yùn)行環(huán)境: 一、opencv 二、meidapipe配置 三、實(shí)現(xiàn)手部的識(shí)別并標(biāo)注 1、參數(shù)分析 1.multi_hand_landmarks? 2.multi_hand_world_landmarks 3.multi_handedness 2.繪制信息點(diǎn)和連線 python3.9.7? opencv-python4.6.0.66? mediapipe0.8.11 運(yùn)行之前先要安裝opencv-python、opencv-contrib-python、mediapipe 項(xiàng)目可能對(duì)版本的

    2024年01月25日
    瀏覽(30)
  • 軟件工程畢設(shè) 基于機(jī)器視覺(jué)opencv的手勢(shì)檢測(cè) 手勢(shì)識(shí)別 算法 - 深度學(xué)習(xí) 卷積神經(jīng)網(wǎng)絡(luò) opencv python

    軟件工程畢設(shè) 基于機(jī)器視覺(jué)opencv的手勢(shì)檢測(cè) 手勢(shì)識(shí)別 算法 - 深度學(xué)習(xí) 卷積神經(jīng)網(wǎng)絡(luò) opencv python

    今天學(xué)長(zhǎng)向大家介紹一個(gè)機(jī)器視覺(jué)項(xiàng)目 基于機(jī)器視覺(jué)opencv的手勢(shì)檢測(cè) 手勢(shì)識(shí)別 算法 普通機(jī)器視覺(jué)手勢(shì)檢測(cè)的基本流程如下: 其中輪廓的提取,多邊形擬合曲線的求法,凸包集和凹陷集的求法都是采用opencv中自帶的函數(shù)。手勢(shì)數(shù)字的識(shí)別是利用凸包點(diǎn)以及凹陷點(diǎn)和手部中心

    2024年01月17日
    瀏覽(118)
  • 計(jì)算機(jī)競(jìng)賽 題目:基于機(jī)器視覺(jué)opencv的手勢(shì)檢測(cè) 手勢(shì)識(shí)別 算法 - 深度學(xué)習(xí) 卷積神經(jīng)網(wǎng)絡(luò) opencv python

    計(jì)算機(jī)競(jìng)賽 題目:基于機(jī)器視覺(jué)opencv的手勢(shì)檢測(cè) 手勢(shì)識(shí)別 算法 - 深度學(xué)習(xí) 卷積神經(jīng)網(wǎng)絡(luò) opencv python

    ?? 優(yōu)質(zhì)競(jìng)賽項(xiàng)目系列,今天要分享的是 基于機(jī)器視覺(jué)opencv的手勢(shì)檢測(cè) 手勢(shì)識(shí)別 算法 該項(xiàng)目較為新穎,適合作為競(jìng)賽課題方向,學(xué)長(zhǎng)非常推薦! ?? 更多資料, 項(xiàng)目分享: https://gitee.com/dancheng-senior/postgraduate 普通機(jī)器視覺(jué)手勢(shì)檢測(cè)的基本流程如下: 其中輪廓的提取,多邊形

    2024年02月07日
    瀏覽(96)
  • 基于opencv和python的人臉識(shí)別簽到系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    基于opencv和python的人臉識(shí)別簽到系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    收藏和點(diǎn)贊,您的關(guān)注是我創(chuàng)作的動(dòng)力 ??人臉識(shí)別廣泛的應(yīng)用于各個(gè)領(lǐng)域。一般來(lái)說(shuō),人臉具有人類基因、指紋等獨(dú)特的生物學(xué)特性,因此可以作為生物特征識(shí)別,從而方便、快速、準(zhǔn)確地識(shí)別被攝體,可見(jiàn)人臉識(shí)別是一種有效的身份識(shí)別工具。該技術(shù)可以應(yīng)用于任何需要

    2024年02月04日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包