手勢識別系統(tǒng)設(shè)計與開發(fā)分析研究 計算機專業(yè)_第1頁
手勢識別系統(tǒng)設(shè)計與開發(fā)分析研究 計算機專業(yè)_第2頁
手勢識別系統(tǒng)設(shè)計與開發(fā)分析研究 計算機專業(yè)_第3頁
手勢識別系統(tǒng)設(shè)計與開發(fā)分析研究 計算機專業(yè)_第4頁
手勢識別系統(tǒng)設(shè)計與開發(fā)分析研究 計算機專業(yè)_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

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

ABSTRACTWiththerapiddevelopmentofcomputertechnologyandinformationprocessingtechnology,intelligentelectronicequipmenthasgraduallyenteredintodailyproductionandlife.Atthesametime,peoplehaveputforwardnewrequirementsfortheconvenienceofelectronicequipmentoperationprocess,whichalsopromotesthedevelopmentofcomputerimageprocessingtechnology.Theemergingpatternrecognitiontechnologyinrecentyearsprovidesanewresearchdirectionanddevelopmentplatformfortheconvenienceofoperation,amongwhichthecommandoperationofelectronicproductsthroughgesturerecognitionhasgraduallybecomeanewkeytechnology.Atpresent,gesturerecognitiontechnologyhasbeengraduallyappliedinAR,automobileassisteddrivingandotheraspects.Meanwhile,theapplicationofgesturerecognitiontechnologyinhuman-computerinteractioncanalsoimprovethesenseofexperience.Therefore,theresearchanddevelopmentofgesturerecognitionsystemhascertainacademicsignificanceandeconomicvalue.Thetechnologyinvolvesstaticimagerecognitionandanalysis,videoimageprocessingandcomputervision.Thispaperintroducesthebackgroundandsignificanceofdevelopinggesturerecognitionsystem,andanalyzesthenecessarystepsandalgorithmsinvolvedintheprocess.ThissystemusesOpenCVopensourcecomputervisionlibraryforgesturerecognitionbasedonC++environment.Inthissystem,gesturesarerecordedbycomputerlocalmonocularcamera,andthedynamicandstaticgesturesarerecognizedrespectively,andtheresultsofdifferentgesturesaredisplayedinrealtime.Ingeneral,itcanbedividedintofourmodules:imageacquisition,imagepreprocessing,featureextractionandrecognition,includingnonlinearmedianfiltering,morphologicalexpansionfiltering,HOGfeatureandSVMclassification.Atpresent,thesystemhasbeendeveloped,andtheexperimentalresultscanbasicallyrealizegesturerecognitionanddisplaytheresults.Keywords:Imageprocessing;Gesturerecognition;OpenCV;Computervision目錄20071_WPSOffice_Level11緒論 11554_WPSOffice_Level21.1課題背景及意義 126684_WPSOffice_Level21.2手勢識別的發(fā)展現(xiàn)狀 121359_WPSOffice_Level21.3本文主要內(nèi)容 25420_WPSOffice_Level21.4本文結(jié)構(gòu)安排 223717_WPSOffice_Level12系統(tǒng)開發(fā)平臺 323584_WPSOffice_Level22.1OpenCV 310287_WPSOffice_Level32.1.1OpenCV簡介 316369_WPSOffice_Level32.1.2OpenCV配置 412938_WPSOffice_Level22.2MFC 825613_WPSOffice_Level32.2.1MFC簡介 820175_WPSOffice_Level32.2.2創(chuàng)建一個MFC 832541_WPSOffice_Level13系統(tǒng)相關(guān)技術(shù)及算法介紹 84386_WPSOffice_Level23.1系統(tǒng)相關(guān)技術(shù) 821555_WPSOffice_Level33.1.1圖像采集技術(shù) 814799_WPSOffice_Level33.1.2圖像預(yù)處理技術(shù) 928164_WPSOffice_Level33.1.3膚色檢測與分割技術(shù) 93583_WPSOffice_Level33.1.4特征提取 929997_WPSOffice_Level23.2系統(tǒng)相關(guān)算法 1013168_WPSOffice_Level33.2.1HOG特征 10429_WPSOffice_Level33.2.2SVM 143736_WPSOffice_Level33.2.3核函數(shù) 152274_WPSOffice_Level33.2.4膚色模型 1524335_WPSOffice_Level33.2.5RGB色彩空間模型 1621720_WPSOffice_Level33.2.6YCbCr色彩空間模型 1729761_WPSOffice_Level33.2.7中值濾波 195802_WPSOffice_Level33.2.8膨脹濾波 1925778_WPSOffice_Level14系統(tǒng)設(shè)計與實現(xiàn) 215661_WPSOffice_Level24.1系統(tǒng)整體設(shè)計 228390_WPSOffice_Level34.1.1手勢訓練模塊 2313474_WPSOffice_Level34.1.2手勢測試模塊 2717079_WPSOffice_Level15系統(tǒng)測試與分析 2819437_WPSOffice_Level25.1系統(tǒng)測試環(huán)境 289375_WPSOffice_Level25.2系統(tǒng)界面測試 2820861_WPSOffice_Level35.2.1手勢注冊功能測試 2810808_WPSOffice_Level35.2.2手勢識別(動態(tài)手勢)測試 3113684_WPSOffice_Level35.2.3圖片識別(靜態(tài)手勢)測試 3431015_WPSOffice_Level25.3測試問題 3619656_WPSOffice_Level35.3.1手勢識別(動態(tài)手勢)問題 3618661_WPSOffice_Level35.3.2圖片識別(靜態(tài)手勢)問題 3813825_WPSOffice_Level25.4測試結(jié)論 3914082_WPSOffice_Level16總結(jié)和展望 3921742_WPSOffice_Level26.1本系統(tǒng)優(yōu)點總結(jié) 3927278_WPSOffice_Level26.2本論文不足總結(jié) 409460_WPSOffice_Level26.3未來工作展望 4026531_WPSOffice_Level1參考文獻 4224291_WPSOffice_Level1致謝 43緒論課題背景及意義隨著計算機技術(shù)的進步和技術(shù)革新以及智能化時代的要求,人們不斷探尋開發(fā)新的、更加便捷的人機交互方式。其中,基于計算機視覺的手勢識別技術(shù)已成為研究熱點之一。手勢的檢測和識別技術(shù)作為一種有著自然性、簡潔性和直接性的一種新型的交互方式,是這些交互技術(shù)當中倍受重視的研究和應(yīng)用的技術(shù)。近幾年來,已經(jīng)有相當一部分的應(yīng)用采用了這種手勢識別的方式作為跟機器交互的手段。本文討論一種采用基于單目攝像機的特定顏色模型的背景分離方法和基于關(guān)鍵信息的手勢提取方法,用VisualStudioC++和OpenCV進行開發(fā),實現(xiàn)在單攝像機下的手勢識別交互系統(tǒng)。手勢識別的發(fā)展現(xiàn)狀手勢識別在計算機科學中是指通過數(shù)學算法來識別人類\t"/item/%E6%89%8B%E5%8A%BF%E8%AF%86%E5%88%AB/_blank"手勢。為了獲得更好的人機交互體驗,計算機需要正確地理解人類手勢的含義,并根據(jù)預(yù)定義的手勢指令進行相關(guān)操作。手勢識別技術(shù)通常包括圖像采集技術(shù)、圖像預(yù)處理技術(shù)、特征提取技術(shù)和識別分類技術(shù)幾個方面。目前手勢識別主要有兩個研究方向,一是基于計算機視覺,二是基于可穿戴設(shè)備。本文是基于計算機視覺開發(fā)的的手勢識別系統(tǒng)。無論是靜態(tài)或動態(tài)手勢,其識別順序首先需進行圖像的獲取、手勢檢測和手勢分割,然后進行手勢識別。其關(guān)鍵件技術(shù)主要為圖像處理、手勢分析與分割、手勢識別三個過程。圖像處理是系統(tǒng)把通過計算機單目攝像頭采集的視頻流進行幀分離處理,從視頻流中分離出單一手勢圖像,并對圖像進行濾波、平滑等預(yù)處理操作,作為下一階段的輸入量。然后通過檢測算法檢測輸入量中是否含有人類手勢,如果檢測出手勢圖像,則進行膚色分割處理,將手勢與背景進行分離,得到手勢的平面模型,建立手勢形狀數(shù)據(jù)庫。手勢識別階段采用模板匹配法,將動態(tài)手勢看成由靜態(tài)手勢圖像所組成的序列,然后將待識別的手勢模板序列與已知的手勢模板序列進行比較,識別出手勢。本文是將部分手勢轉(zhuǎn)化成所對應(yīng)的信息。未來可以進一步將手勢直接轉(zhuǎn)化成語音,通過對話的方式將信息傳遞出去。方便聾啞人士與普通人的溝通。另外,汽車行業(yè)一如既往的對手勢識別保持熱情,汽車中的各種儀表可以直接通過手勢識別直接控制。而在穿戴設(shè)備領(lǐng)域,使用手勢識別技術(shù)以追蹤用戶包括睡姿、心率、體脂肪率、總肌肉量、體脂肪量和基礎(chǔ)代謝率在內(nèi)的一系列數(shù)據(jù),進而促進穿戴設(shè)備的發(fā)展。本文主要內(nèi)容本文所涉及到的一系列軟件開發(fā)有效憑借以及完成相應(yīng)試驗平臺的建立,使用OpenCV中的一些功能函數(shù)及控件對圖像和視頻流進行手勢檢測的研究。其中以HOG特征、局部二值模式(LBP)為提取的目標,通過手勢檢測橢圓模型算法,對圖片及視頻序列中的手勢進行,提取手勢輪廓。之后,通過對RGB、YCrCb等顏色空間模型的處理,而后通過非線性中值濾波,形態(tài)學膨脹等方式進行降噪濾波以達到皮膚分割的效果。最終通過MFC構(gòu)建了一個支持多手勢的視頻和圖像處理系統(tǒng),該系統(tǒng)可以對視頻和圖像中的多個手勢進行實時識別。本文的目的是在大量學習和理解傳統(tǒng)的算法之后,將其實現(xiàn)并優(yōu)化。在閱讀了大量的相關(guān)文獻和搜索了大量的資料后,設(shè)計并完成了一套相對方便簡潔的手勢識別系統(tǒng)。該系統(tǒng)實現(xiàn)了10個手勢的動態(tài)和靜態(tài)識別,能夠快速識別并顯示手勢所代表的信息。另外可隨時采集并訓練新的手勢模型。本文主要研究內(nèi)容本文整體結(jié)構(gòu)具體可以歸結(jié)為六個部分,其各個章節(jié)的布局如下所示:第一章緒論,針對于手勢識別相關(guān)研究背景及意義進行了相對較為切實有效的分析,介紹了手勢識別研究現(xiàn)狀和發(fā)展趨勢,簡要闡述了本文的主要內(nèi)容以及相應(yīng)章節(jié)的布局。第二章系統(tǒng)開發(fā)平臺,具體涵蓋了開發(fā)環(huán)境和實驗平臺的搭建,在手勢檢測、手勢識別算法研究的基礎(chǔ)上,借助OpenCV計算機視覺庫中的一些函數(shù)實現(xiàn)算法和MFC微軟基礎(chǔ)類庫以及VisualStudio2013開發(fā)環(huán)境來構(gòu)建交互界面。第三章系統(tǒng)相關(guān)技術(shù)及算法介紹,首先介紹了手勢識別相關(guān)基本原理,其次研究了Hog檢測算法的基本原理,同時介紹了相關(guān)概念如色彩和伽馬歸一化、計算圖像梯度等。而后闡述SVM分類原理。最后分析RGB、YCbCr等顏色空間模型及中值濾波算法、膨脹濾波算法的原理。第四章系統(tǒng)設(shè)計與實現(xiàn),首先介紹了手勢識別的主要流程和設(shè)計思路,然后介紹了對應(yīng)的模塊組成及具體功能描述,最后進行軟件的實現(xiàn)。第五章系統(tǒng)測試與分析,對本文所設(shè)計的系統(tǒng)進行測試,本章主要介紹對系統(tǒng)各功能的測試結(jié)果及針對不同測試結(jié)果的分析。第六章總結(jié)和展望,對本文所描述的研究工作進行總結(jié),并對目前需要進一步改進優(yōu)化的部分加以說明,同時簡單介紹改進之后期望達到的效果。系統(tǒng)開發(fā)平臺本文所開發(fā)的系統(tǒng)是基于所進行開發(fā)的,相應(yīng)的開發(fā)環(huán)境具體涉及到了,在此過程當中還應(yīng)用到了作為系統(tǒng)內(nèi)部相應(yīng)的界面庫,并且基于相對開源的針對于手勢檢測以及識別完成了相應(yīng)的開發(fā)。OpenCV關(guān)于的OpenCV概述所謂的具體可以歸結(jié)為開源形式的計算機視覺庫,相應(yīng)的組合命名可以概括為。在年就已經(jīng)建立起,如今由提供支持。它是一個跨平臺開源計算機視覺庫,可以運行在以為代表的多個操作系統(tǒng)上。包括C函數(shù)和少量類,同時提供了包含在內(nèi)等多種語言接口,在圖像處理和計算機視覺方面有很多通用算法。提供了機器學習庫。該機器學習庫側(cè)重于統(tǒng)計方面的模式識別和聚類。除了在視覺相關(guān)的任務(wù)中,還可以方便地應(yīng)用與其他的機器學習場合。版本于年發(fā)布。的第二個版本是2009年10月的OpenCV2.0,主要更新包括C++接口,更容易、更安全的模式,新的函數(shù),對現(xiàn)有實現(xiàn)代碼優(yōu)化等。2012年8月,對的支持由一個非營利組織提供,現(xiàn)在它也集成了對的支持。2014年8月,隨著的發(fā)布,這個強大的計算機視覺庫迎來了全新的紀元。2019年,發(fā)布4.0版本。據(jù)相關(guān)統(tǒng)計,一個人獲取的信息大約有75%來自視覺。而圖像又是其中最重要的組成部分。在人工智能時代,機器視覺會在人機互動、人臉識別、手勢識別等方面得到更廣泛的應(yīng)用。作為圖像處理的重要工具之一,它將會在這一領(lǐng)域發(fā)揮更加重要的作用。OpenCV配置本文采用的是的配置方法,OpenCV作為開源的軟件,直接到官網(wǎng)下載即可,目前官網(wǎng)更新到4.1.0版本,本系統(tǒng)因需要用到控件,故文中采用2.4.9版本。配置過程如下:安裝,打開資源包,解壓到相應(yīng)文件夾。圖2-1OpenCV資源包解壓配置環(huán)境變量,將環(huán)境變量添加到路徑:圖2-2配置環(huán)境變量工程包含(include)目錄的配置圖2-3配置工程包含(include)目錄工程庫(lib)目錄配置圖2-4配置工程庫(lib)目錄鏈接庫配置圖2-5鏈接庫配置加入動態(tài)鏈接庫將文件夾下所有dll文件復制粘貼到圖2-6動態(tài)鏈接庫如圖所示,呈現(xiàn)出的模塊構(gòu)成,其具體可以歸結(jié)為部分,即模塊、模塊、模塊以及模塊(包含了相應(yīng)的基本形式的數(shù)據(jù)結(jié)構(gòu)以及相關(guān)函數(shù))。圖2-7OpenCV模塊MFCMFC簡介是微軟基礎(chǔ)類庫的簡稱,是微軟公司實現(xiàn)的一個c++類庫,其具體涵蓋了眾多的句柄封裝類以及大量的的內(nèi)建控件以及相應(yīng)的組件的封裝類。MFC除了是一個類庫以外,還是一個框架,MFC作為一個通用框架,不具備最好的針對性,同時也就喪失了部分靈活性和效率。但的具體封裝形式相對較淺,故其相應(yīng)的效率損失相對較少。利用MFCAppWizard創(chuàng)建Test工程之后將自動生成5個類:CAboutDlg(“關(guān)于”對話框類)、CMainFrame(基礎(chǔ)框架類)、CTestApp(應(yīng)用程序類)、CTestDoc(文檔類)、CTestView(視圖類)。創(chuàng)建一個MFC文件->新建->項目->MFC應(yīng)用程序,其余項默認,點擊創(chuàng)建。本文命名為“MFCGesture”。點擊“解決方案資源管理器”,可以看到CAboutDlg、CMFCGusetureApp(和CMFCGusetureDlg。其中CAboutDlg是應(yīng)用程序的“關(guān)于”對話框類,CMFCGusetureApp是由CDialogEx派生的類,CMFCGusetureDlg是主對話框類,本系統(tǒng)程序運行后顯示的主界面即為主對話框。在“資源視圖”中可以看到工程MFCGuesture的資源樹。點擊展開Dialog項,出現(xiàn)兩個ID分別為:IDD_ABOUTBOX(“關(guān)于”對話框的模板)和IDD_MFCGuesture_DIALOG(主對話框的模板)的對話框模板。ID是資源的唯一標識,本質(zhì)上是一個無符號整數(shù),一般ID代表的整數(shù)值由系統(tǒng)定義。在這之后,可以對系統(tǒng)自動生成的主對話框模板進行編輯、添加控件和函數(shù)等操作,或者創(chuàng)建新的對話框模板和所對應(yīng)的對話框類再進行編輯等操作,最終實現(xiàn)圖形界面。系統(tǒng)相關(guān)技術(shù)及算法介紹系統(tǒng)相關(guān)技術(shù)圖像采集技術(shù)對于計算機而言,攝像頭扮演著眼睛的角色,是環(huán)境圖像采集的工具?,F(xiàn)有多數(shù)手勢識別系統(tǒng)中,圖像采集可以是從指定文件夾中讀入的視頻和計算機本地攝像頭實時視頻流,本文開發(fā)的手勢識別系統(tǒng)是基于本地攝像頭。為實現(xiàn)動態(tài)手勢識別功能,首先要將攝像頭采集的視頻轉(zhuǎn)換為單幀圖像,這些圖像存儲到Mat中,然后進行圖像處理。本文采用OpenCV開源函數(shù)庫打開本地攝像頭進行圖像采集。圖像預(yù)處理技術(shù)預(yù)處理是計算機圖像處理過程重要的一步。在圖像采集時會存在許多干擾因素,導致采集到的圖像會存在不同程度的噪聲。圖像噪聲包括外部噪聲和內(nèi)部噪聲。由系統(tǒng)外部電磁波干擾等因素引起的噪聲稱為外部噪聲。由光、電的基本性質(zhì)引起的噪聲稱為內(nèi)部噪聲。圖像后續(xù)處理受噪聲直接影響,所以在圖像使用前,需經(jīng)過降噪、量化、壓縮等處理,減少圖像噪聲,提高圖像質(zhì)量。OpenCV包含線性濾波(方框濾波、均值濾波、高斯濾波)、非線性濾波(中值濾波、雙邊濾波)、形態(tài)學濾波。經(jīng)測試,本文采用中值濾波及膨脹濾波。膚色檢測與分割技術(shù)膚色檢測與分割手勢輪廓檢測的關(guān)鍵一步。在這一處理過程中將采集圖像中的手勢與背景分離,消除背景對手勢的影響,為下一步手勢識別過程提供單純的手勢圖像,這一操作將影響識別準確率的高低。膚色易因光照強度和不同人之間差異,以及某些攝像頭的自動對光功能的影響。為此,需要一種快捷的手段根據(jù)現(xiàn)場情況進行調(diào)整。本文采用將顏色空間從RGB色彩空間轉(zhuǎn)換到亮度與色度分離的某個顏色空間,然后放棄亮度分量。在雙色差或色調(diào)飽和度平面上,不同人的膚色區(qū)別較小,膚色的不同更多在亮度上而不是色度上。膚色分割后得到的是二值化圖像,皮膚部分為白色,其余部分為黑色。在完成圖像的預(yù)處理之后,將圖像的RGB空間轉(zhuǎn)換成YCrCb空間。YCbCr顏色空間是一種常用的膚色檢測的色彩模型,其中Y代表亮度,Cb代表光源中的藍色分量,Cr代表光源中的紅色分量。特征提取一旦有效獲取相應(yīng)的單獨目標手勢以后,接下來就需要對其完成切實有效的描述。也就是說針對于相應(yīng)的關(guān)鍵特性完成相對具有代表性的提取,除此之外,還要將其進行一定的數(shù)值化處理,建立起相應(yīng)特征向量,在一定程度上將手勢識別完成對應(yīng)的數(shù)字化建模,便于后期進行切實有效的手勢識別。關(guān)于靜態(tài)形式的手勢,僅需要針對某一特定時間點完成相應(yīng)的描述,不難分析出,此狀態(tài)下的手勢特征值不會受限于相應(yīng)的手勢所處的地域環(huán)境與位置,幾乎完全憑借其相應(yīng)的姿態(tài)來決定。具體可以概括為,不管手勢如何變更方位,只要保持其姿態(tài)不發(fā)生任何變化,與之相對應(yīng)的特征向量便會保持相對一致。針對于動態(tài)手勢識別就不那么簡單了,從動態(tài)的字眼就可以看出其同時兼具時、空二元耦合特性,在此過程中必須將這兩方面全部考慮進去才能確保所提取的動態(tài)手勢切實有效??梢赃@樣理解,一方面要如同于靜態(tài)手勢逐一時間點進行有效識別,與此同時還要對其相應(yīng)的運動軌跡完成有效的識別工作,并將二者有效融合,即可完成所謂的動態(tài)手勢識別工作。系統(tǒng)相關(guān)算法當前形式下針對于圖像特征提取已經(jīng)開發(fā)出了各式各樣的算法,其中也存在一定量的散發(fā)針對于相應(yīng)的幾何變換呈現(xiàn)出相對較為良好的適應(yīng)性,但是在手勢識別過程當中還要有效處理好光照變化問題,對此前的算法還要進一步的完善,在一定程度上可以說是相對較為繁瑣且艱巨的過程。考慮到這些原因,該手勢識別系統(tǒng)是基于手勢檢測技術(shù),恰巧基本可以實現(xiàn)相應(yīng)的收拾特征獲取任務(wù),在一定程度上能夠相對較好的有效解決光照變化所引申出的一系列問題。故可有效憑借的方式切實有效完成相應(yīng)收拾特征的獲取工作,確定手勢位置。然后對此區(qū)域進行圖像采集及識別。完成相應(yīng)的手勢特征獲取以后,確保實現(xiàn)相對較為切實有效的手勢識別,還需進一步針對于相應(yīng)的分類器進行不斷的模擬與調(diào)試,本項研究具體采取的是為,即支持向量機來作為分類器。HOG特征具體所指方向梯度直方圖,其在一系列的視覺檢測以及相應(yīng)的圖像處理方面已經(jīng)得到了相對較為廣泛的應(yīng)用,在此過程當中可以實現(xiàn)相應(yīng)物體的檢測以及所對應(yīng)的特征描述。其具體的運作形式可以歸結(jié)為有效憑借圖形局部區(qū)域所對應(yīng)的梯度方向直方圖來實現(xiàn)相應(yīng)的特征搭建。尤其是在針對于行人進行相關(guān)檢測當中,并與進行有效組合在一定程度上已經(jīng)成功應(yīng)用的眾多領(lǐng)域當中。即針對于一副圖像,相應(yīng)的梯度幾乎全部集中于其邊緣的位置。相應(yīng)的目標的形態(tài)可有效憑借梯度或者相應(yīng)的邊緣方向進行切實有效的描述。存在的優(yōu)勢具體可以歸結(jié)為:在一定程度上具備一定的幾何以及光學不變特性;微量的動作幾乎不會對相應(yīng)的檢測效果造成任何形式的干擾,可以理解為允許手部肢體不那么僵持。針對于直方圖所呈現(xiàn)出的更大區(qū)域:完成相應(yīng)的歸一化,可以將其整體性能有效提升。如圖3-3所示,呈現(xiàn)出具體形式的生成流程。檢測窗口歸一化圖像計算梯度檢測窗口歸一化圖像計算梯度對于每個cell塊對梯度直方圖進行規(guī)定權(quán)重投影把所有block內(nèi)的直方圖向量一起組合成一個大的HOG特征向量對于每一個重疊的block塊內(nèi)的cell進行對比度歸一化圖3-1關(guān)于生成流程其具體的生成流程可以歸結(jié)為以下幾方面:規(guī)范化以及相應(yīng)的顏色空間所謂光照的程度會對相應(yīng)的具體圖像色值造成一定的影響,確保將其所呈現(xiàn)出的干擾程度有效壓低,要做的第一步就是針對于圖像進行相應(yīng)的歸一化處理。在相應(yīng)的紋理強度當中,所占比重相對較大的部分要屬表面曝光,故此類壓縮處理方式能使圖像對這類變化具有不變性特征,相應(yīng)的局部陰影以及所對應(yīng)的光強改變均能得到切實有效的下降。由于在此過程當中相應(yīng)的顏色信息功效不是很強烈,一般采取的方式是進行相應(yīng)的灰度處理;(3-(3-1)在這里將相應(yīng)取為,從而切實保證高光區(qū)呈現(xiàn)出相對較低的對比度,反之陰影區(qū)相應(yīng)的對比度則有效提升。該項壓縮處理方式在一定程度上確保局部陰影以及相應(yīng)的光照改變呈現(xiàn)出切實有效的下降趨勢。試驗結(jié)果可知,引入這項步驟呈現(xiàn)出效果幾乎不夠顯著,進而將其忽略。關(guān)于圖像梯度的相關(guān)求解憑借一維形式的微分算子即對最初的圖像進行相應(yīng)的卷積求解,結(jié)果顯示相應(yīng)的方向梯度分別呈現(xiàn)在橫縱坐標當中,隨后完成相應(yīng)梯度方向值的有效求解;進行相應(yīng)的倒數(shù)運算在一定程度上不單能可有效獲取其輪廓,還可以有效將光照的干擾有效壓低。基于表示圖像某一通道中(x,y)處的顏色值,其(x,y)處的水平方向梯度記為Gx(x,y),垂直方向梯度記為Gy(x,y),計算式如下:(3-(3-2)則(x,y)

處的梯度幅值G(x,y)

和梯度方向θ(x,y)計算公式如下:(3-(3-3)求解的具體方式可以歸結(jié)為:分別基于以及對應(yīng)的梯度算子對最初狀態(tài)的圖像完成相應(yīng)的卷積求解,即可有效得到相應(yīng)水平以及垂直方向上所對應(yīng)的梯度分量,進而可以求解出任意像素點所對應(yīng)的梯度方向與數(shù)值。針對于任意細胞單元進行相應(yīng)的梯度方向直方圖的建立這步的功效在于有效產(chǎn)出相應(yīng)的編碼供所對應(yīng)的局部圖像區(qū)域運用,與此同時還能確保圖像內(nèi)部的人體姿態(tài)以及相應(yīng)的外形具備一定相對較弱的敏感性。該單元當中的任意像素點均能夠針對于方向形式的直方圖進行所謂的投票。其具體憑借加權(quán)的形式,也就是說任何的票均夾雜這一定的權(quán)值,其相應(yīng)的大小是基于相應(yīng)的梯度幅度進行求解的。可以有效憑借其自身或者一系列的函數(shù)關(guān)系實現(xiàn)相應(yīng)權(quán)值的表示,基于相關(guān)測試結(jié)果顯示:在一定程度上憑借幅值的方式進行表示權(quán)值所得到的效果最為良好,除此之外,一系列關(guān)于幅值的函數(shù)關(guān)系,譬如其平方、立方等形式也可以進行相應(yīng)的權(quán)值表示。相應(yīng)的單元的形狀也呈現(xiàn)出多樣化的趨勢,具體可以歸結(jié)為:星、矩形等。相應(yīng)的直方圖通道具體均布呈現(xiàn)在以及區(qū)間內(nèi)。針對于相應(yīng)的人體進行檢測時,其中單元格大小呈現(xiàn)出以及像素的時候所對應(yīng)的檢測效果相對最為良好。倘若相應(yīng)的單元格大小呈現(xiàn)出以及個像素時,造成的差異也不是很明顯。因此將相應(yīng)的圖像進行像素單元化處理,也就是說任意的尺寸必須確保像素?,F(xiàn)擬憑借進行相應(yīng)的梯度信息統(tǒng)計工作。其具體步驟可以歸結(jié)為:首先針對于相應(yīng)的梯度方向進行區(qū)間層面的有效劃分,也就是說進一步完成度的塊等分,在此過程中任意直方圖塊均呈現(xiàn)出。如圖所示:倘若其相對于梯度方向呈現(xiàn)出的形式,即可將其歸納到相應(yīng)的第一塊,倘若其相對于梯度方向呈現(xiàn)出的形式,便將其歸納到相應(yīng)的第二塊,除此之外,相應(yīng)的直方圖第個執(zhí)行累加的運算,逐次類推。完成全部形式的加權(quán)投影,即可得到與之對應(yīng)的。圖3-2cell的梯度方向直方圖把細胞單元組合成大的塊(block),塊內(nèi)歸一化梯度直方圖(將細胞單元組合成大的區(qū)間)通常情況下,相應(yīng)的梯度強度在一定程度上會隨局部光照以及相應(yīng)的對比度改變呈現(xiàn)出相對較為劇烈的改變,因此必須進行切實有效的歸一化處理。歸一化能夠進一步地對光照、陰影和邊緣進行壓縮。本文采取把任意進行相應(yīng)連通區(qū)間的組合,即。也就是說,將一個內(nèi)全部形式的的特征向量進行有效串接從而獲取到此所對應(yīng)的特征。這部分區(qū)間存在一定的重疊性,也就是說:任意的特征會基于相對差異的形式呈現(xiàn)在最終的特征向量當中。如圖所示,呈現(xiàn)出以及的關(guān)系形式。圖3-3關(guān)于以及相應(yīng)的重疊關(guān)系SVM支持向量機(SupportVectorMachine,SVM)是由機器學習領(lǐng)域的最大間隔分類算法發(fā)展而來的,是一類按\t"/item/%E6%94%AF%E6%8C%81%E5%90%91%E9%87%8F%E6%9C%BA/_blank"監(jiān)督學習(supervisedlearning)方式對數(shù)據(jù)進行\(zhòng)t"/item/%E6%94%AF%E6%8C%81%E5%90%91%E9%87%8F%E6%9C%BA/_blank"二元分類(binaryclassification)的廣義線性分類器(generalizedlinearclassifier),針對于降低最小化實驗誤差以及相應(yīng)的最大化幾何邊緣呈現(xiàn)出相對較為良好的效果,故可以將其歸結(jié)為最大邊緣分類器。其本質(zhì)在于在相對更高維度的空間內(nèi)部進行相應(yīng)的超平面搭建,所謂的\t"/item/%E6%94%AF%E6%8C%81%E5%90%91%E9%87%8F%E6%9C%BA/_blank"決策邊界是對學習樣本求解的最大邊距超平面(maximum-marginhyperplane),確保其對相應(yīng)進行分類的數(shù)據(jù)呈現(xiàn)出相對較大的間隔。相應(yīng)的誤差與間隔之間也就是所謂的負相關(guān)形式。經(jīng)過不斷發(fā)展,SVM己經(jīng)成為了機器學習領(lǐng)域的標準工具之一。我們以二維平面加以分析。如圖所示,圖中呈現(xiàn)的紅方以及藍圓均為即將進行分類的相關(guān)對象,兩條藍線即為相應(yīng)的超平面,不難分析出,任意點與之間的間距要高于,也就是說即能進行相對較為良好的區(qū)分,憑借對的有效調(diào)節(jié)直至實現(xiàn)任意點間距達到最大化,此刻呈現(xiàn)出最近形式的點即為所謂的支持向量。圖3-4相應(yīng)的最大間隔分類核函數(shù)針對在低維空間呈現(xiàn)出一定的線性不可分的相關(guān)特性,如圖所示,可有效憑借高維度映射的方式,逐步實現(xiàn)線性可分形式的切實有效轉(zhuǎn)化。圖3-5關(guān)于線性轉(zhuǎn)化過程膚色模型膚色特征區(qū)別于其他特征,對于彩色圖像,膚色是圖像中相對聚集和穩(wěn)定的區(qū)域,不會基于人的各類現(xiàn)象的產(chǎn)出而發(fā)展改變,呈現(xiàn)出相對較高的魯棒性,與相應(yīng)的背景色彩呈現(xiàn)出顯著的差異。通過大量的實驗研究表明,不同人種的人其皮膚的色調(diào)是比較一致的,不同之處具體呈現(xiàn)在灰度。故一般情況下基于相對較為常見的相關(guān)膚色模型針對于人臉特征進行有效概括。由于膚色在存在差異的色彩空間中,具有不同的表現(xiàn)形式。本項研究基于當中的橢圓模型進行相應(yīng)膚色分布的具體描述。所謂的皮膚模型可以歸結(jié)為:等。通過對相關(guān)學者所做的關(guān)于皮膚信息統(tǒng)計方面的文獻進行切實有效分析可知,倘若實現(xiàn)相應(yīng)的皮膚信息映射到,則在相應(yīng)的二維空間中呈現(xiàn)出類橢圓形式的分布狀況。一旦可以得到相應(yīng)的橢圓,在有效憑借接下來獲取到的坐標進行相應(yīng)的區(qū)域位置判別,也就是在橢圓內(nèi)部還是外部,倘若落在其內(nèi)部的話,即可將其判別為相應(yīng)的皮膚,否則即為所謂的像素點。確保相應(yīng)的亮度不對所謂的膚色聚類造成一定的干擾,在當中針對于相應(yīng)色度執(zhí)行一系列的非線性變換,完成光影相對較高的區(qū)域剔除,也就是所謂關(guān)于的極值,在進行一系列非線性變換當中,憑借有效代表相應(yīng)的中軸線,相應(yīng)膚色區(qū)域的具體寬度可憑借進行有效表示。也就是將其全部轉(zhuǎn)化到當中,再依次進行關(guān)于平面的有效投影,故通過相應(yīng)采樣得到的相關(guān)點集,依次進行相應(yīng)的投影以及相應(yīng)的變換。圖3-6關(guān)于橢圓模型的相關(guān)坐標(3-4)(3-4)(3-5)(3-5)RGB色彩空間模型RGB色彩空間是人們最常用到的顏色模型。于年選取了紅,綠,藍這幾種單色作為相應(yīng)的基本色,也就是所謂的色彩空間。在一定程度上可以基于三基色實現(xiàn)任何色彩的體現(xiàn)與表示,這是當今時代下最為常用的色彩表示方式。也可以有效憑借三基色進行相應(yīng)光量的有效表示,其中紅色(波長=700.0nm),綠色(波長=546.1nm),藍色(波長=435.8nm)組成的坐標系為RGB色系坐標系。圖像的顏色一般都用RGB坐標系來表示。在針對于手勢識別相關(guān)研究過程當中,一般情況下攝像頭所采集到的各種形式圖像都是來源于相應(yīng)的色彩空間,需要注意的是不能直接對其進行相應(yīng)的膚色分割。這是因為其三基色之間存在相對較為突出的相關(guān)性,倘若進行任意分量保持相對獨立的形式進行處理,可以說要比登天還難,在此過程中其對光照要求相當嚴格,其所帶來的干擾也尤為突出,故在進行目標手勢膚色分割的過程當中,幾乎沒有采取的現(xiàn)象。圖3-7關(guān)于色彩空間相關(guān)坐標系在RGB模型中,手勢表現(xiàn)出來的顏色受到關(guān)照的影響,但對同一點來說,在不同的亮度條件下其對應(yīng)的值是成比例的:(3-6)(3-6)(3-7)可以歸結(jié)為相應(yīng)的光照幾乎不會影響同一點的色彩情況,僅僅局限于亮度存在差異(3-7)YCbCr色彩空間模型具體可以歸結(jié)為由進行有效變換所得到的。其中代表相應(yīng)的亮度,、Cr分別代表光源中的紅色分量與藍色分量。通過非線性分段而得到的的亮度以及色度所對應(yīng)的采樣比率分別為,在一定程度上基本能夠滿足于肉眼對色度變化的敏感程度明顯低于亮度變化的性質(zhì),與此同時相關(guān)色彩的求解相對較為簡便、相應(yīng)的亮度以及色度分量可有效進行分離、具備相對較為良好的聚類性等特征被認為是很出色的膚色空間模型。經(jīng)過對文獻的調(diào)研,在人們的大量實驗后,通過統(tǒng)計的方法來確定膚色的參數(shù),人手膚色在YCbCr空間中的范圍Cb∈(105,127),Cr∈(137,162),當像素點屬于此范圍時,我們就認為它是皮膚像素點。其轉(zhuǎn)換公式為:(3-8)(3-8)相關(guān)實驗結(jié)果顯示,基于相關(guān)模型,以及分量呈現(xiàn)出一定的相關(guān)性,但需要注意的是與之間沒有所謂的相關(guān)性,當亮度存在差異的形勢下以及均能呈現(xiàn)出相對較為出色色聚類效果。而且基于到空間的轉(zhuǎn)化基本可以稱之為線性變換,從而可以忽視的干擾,從而有效降低冗余通道的數(shù)量。這就實現(xiàn)了相應(yīng)的維度降低操作。如圖3-8所示,呈現(xiàn)出膚色關(guān)于平面相應(yīng)的投影。圖3-8關(guān)于膚色在平面上相應(yīng)的投影經(jīng)查閱文獻及實驗,本文首先將采集到圖像轉(zhuǎn)換到Y(jié)CrCb空間,再對其進行手勢分割以得到想要的目標手勢。相比于RGB和HSV,YCrCb空間計算量遠遠小于前兩種,同時對人體膚色的聚類效果最佳,受光線變化干擾也最小。接下來的一章將進一步介紹基于膚色聚類分割的具體呈現(xiàn)形式,此處不再贅述。中值濾波膚色分割之后,我們還需對圖像進行一定的平滑度處理。在一定程度上又可歸結(jié)為模糊,通常情況下憑借其進行有效降噪,其本質(zhì)在于針對于相應(yīng)的圖像進行平滑化,從而有效降低其內(nèi)部的噪點存在。在本文所涉及的手勢識別當中,所謂的圖像平滑處理的最根本原因在于盡可能最大限度降低一系列的冗余信息,便于后續(xù)的手勢輪廓分割以及相關(guān)特征的有效獲取,與此同時致使相應(yīng)的計算量有效下降。中值、雙邊以及相應(yīng)的高斯濾波是相對較為常見的幾種平滑濾波方式。中值濾波可以歸結(jié)為相對較為典型的非線性技術(shù),其具體的原理是有效憑借像素點灰度中值進行有效近似等價替代,其功效在于有效剔除相應(yīng)的造成,與此同時還能切實有效保證一系列邊緣細節(jié)不會被破壞?;趯嶒炦M行分析,相應(yīng)的中值濾波對去除圖片噪聲特別理想。相比于其他平滑方法,其在一定程度上能夠有效克服一系列相對較為常見的線性濾波器,譬如最小均方、方框、均值濾波等造成的一系列細節(jié)模糊問題,與此同時能夠有效降低脈沖干擾以及相應(yīng)的掃描噪聲,還能切實有效保證一系列邊緣細節(jié)不會被破壞。除此之外,相應(yīng)的算法相對較為便捷實用。故本文所涉到的手勢識別系統(tǒng)有效憑借中值濾波的方式完成相應(yīng)的噪音剔除。(3-9(3-9)其中f(x,y)、g(x,y)分別表示中值濾波處理前、后的圖像,W是模板,通常為3*3或者2*2,本文采用3*3。膨脹濾波形態(tài)學(morphology)是生物學的一個分支,圖像處理中的形態(tài)學具體可以歸結(jié)為數(shù)學形態(tài)學,其實質(zhì)在于格論以及相應(yīng)的拓撲學層面的圖像分析。簡而言之,所謂的形態(tài)學操可以歸結(jié)為基于相應(yīng)形狀的圖像處理。在一定程度上為相應(yīng)的圖像形態(tài)學變換營造了相對較為快捷的函數(shù)以及開發(fā)環(huán)境。最基本的形式可以歸結(jié)為兩類,即膨脹以及腐蝕。本文采用膨脹進行濾波。膨脹(dilate)又稱為作圖像加粗,也可以稱之為局部最大峰值的求解?;跀?shù)學視角出發(fā),所謂的膨脹即為將圖像(與核進行卷積計算。核的形狀以及大小幾乎不受任何限制,它具備一定的單獨形式進行定義的相關(guān)參考點,也就是所謂的錨點。通常情況下,核具體表現(xiàn)為相對較小其中心部位存在一定的參考點的實心圓或者正方形。可以將其當做相應(yīng)的模板甚至是掩碼。相應(yīng)的膨脹操作在一定程度上能夠針對于噪音以及陰影等干擾所進行分割的各個部分完成相應(yīng)切實有效的融合。如圖所示,有效憑借膨脹可以進行局部最大峰值的求解。核與圖形發(fā)生卷積,即進行核覆蓋區(qū)域所對應(yīng)的的像素點的最峰值的求解,并將其賦給相應(yīng)的參考像素,便可將相應(yīng)的高亮區(qū)域逐步擴大。(p188)圖3-9膨脹濾波膨脹的數(shù)學表達式如下(3-(3-10)系統(tǒng)設(shè)計與實現(xiàn)憑借著計算機以及圖像處理技術(shù)發(fā)展勢頭迅猛提升,相應(yīng)的計算機視覺等方面也在迅速發(fā)展,手勢識別作為人機交互的一種方式,也迎來了新的發(fā)展機遇。通過前期調(diào)研發(fā)現(xiàn),手勢識別技術(shù)已應(yīng)用在多個領(lǐng)域,如日常生活視頻直播或者拍照過程中,結(jié)合用戶的手勢(如點贊、比心),實時顯示相應(yīng)的特效,豐富交互體驗。智能駕駛過程中將手勢識別應(yīng)用到駕駛輔助系統(tǒng),使用手勢控制車內(nèi)的各種功能,一定程度上解放雙眼,將更多的注意力放在道路上,提升駕車安全性。同時還包括百度AI開放平臺提供的在線手勢識別服務(wù)等。這些均反映著手勢識別技術(shù)的火熱。開始打開攝像頭采集圖像圖像預(yù)處理結(jié)束膚色檢測圖像分割手勢識別開始打開攝像頭采集圖像圖像預(yù)處理結(jié)束膚色檢測圖像分割手勢識別特征提取圖4-1手勢識別流程圖下面對系統(tǒng)中三個重要模塊進行介紹:圖像采集模塊基于本地形式的攝像頭,完成相應(yīng)的視頻圖像的切實有效采集,呈現(xiàn)出空間視頻流的形式進而為手勢識別輸入奠定一定的基礎(chǔ),并將采集到個各項數(shù)據(jù)有效儲存到當中,為接下來的輸入做好充分準備。圖像預(yù)處理模塊憑借圖片的有效縮放,進而將后期的相關(guān)計算量有效壓低,在此過程當中有效剔除相應(yīng)的圖片噪音,為接下來的相應(yīng)處理提供相對較為便捷的條件。這部分具體涵蓋了灰度變換、空間轉(zhuǎn)化以及相應(yīng)的平滑處理等。匹配識別模塊該模塊是手勢識別系統(tǒng)需要實現(xiàn)的目標功能,也是本系統(tǒng)最重要的模塊。在對圖像進行一系列的處理后,有效獲取到相應(yīng)手勢圖像具體形式的特征值,接下來與事先設(shè)定好的模板特征值完成切實有效的對比以及歸類,進而有效尋找出所對應(yīng)的手勢信息,譬如手型所代表的數(shù)字。然而在動態(tài)識別當中,系統(tǒng)內(nèi)部會進行實時的信息采集,并完成相應(yīng)的處理工作。系統(tǒng)整體設(shè)計根據(jù)前期的需求分析和調(diào)研,本文設(shè)計的整體系統(tǒng)結(jié)構(gòu)如下圖所示:手勢樣本采集開始手勢訓練模塊手勢樣本采集開始手勢訓練模塊圖像預(yù)處理圖像預(yù)處理待識別手勢采集圖像預(yù)處理手勢分割手勢特征提取手勢分割待識別手勢采集圖像預(yù)處理手勢分割手勢特征提取手勢分割手勢測試模塊訓練手勢模板手勢特征提取訓練手勢模板手勢特征提取提取手勢模板提取手勢模板手勢判定手勢判定輸出結(jié)果輸出結(jié)果結(jié)束結(jié)束圖4-2手勢識別程序流程圖手勢訓練模塊在開始訓練手勢之前,需要用戶打開電腦自帶的攝像頭提供視頻流。voidCMFCGuestureDlg::OnBnClickedOpencap()//打開攝像頭{ m_Cap.open(0); if(!m_Cap.isOpened()) { MessageBox("攝像頭打開失敗"); return; }但是MFC的picturecontrol控件中的圖像格式與OpenCV的圖像格式不盡相同,因此需要將OpenCV得到的視頻流通過CvvImage開源圖像處理庫進行轉(zhuǎn)變處理。處理完以后攝像頭所得到的圖像就會被顯示在控件中。voidCMFCGuestureDlg::regniseHand(stringpath_img){ imagesRegnise=imread(path_img.c_str());//imagelist[0].c_str() Matincp=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) { intregResult=mySvmClassifier->svmPredict(incp); CStringstr; 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("沒有檢測到手勢"); }}在本系統(tǒng)中,為降低識別失敗率及程序復雜度,我直接定義并設(shè)置了檢測區(qū)域的位置。intWIDTH=m_src.cols; intHEIGHT=m_src.rows; capRt=cv::Rect(1*WIDTH/3-1,1*HEIGHT/3-1,WIDTH/2,HEIGHT/2);采集手勢如圖所示圖4-3手勢采集voidCMFCGuestureDlg::OnBnClickedReg()//注冊手勢類別{ CStringstr; GetDlgItem(IDC_EDIT1)->GetWindowText(str); regingInt=atoi(str); regBool=false; sprintf_s(buffer,"./Data/%d",regingInt); if(_access(buffer,0)==0) { sprintf_s(buffer,"手勢%d已注冊,如需重新注冊請先刪除對應(yīng)類別文件夾",regingInt); MessageBox(buffer); regingInt=-1; return; } CreateDirectory(buffer,NULL); regBool=true; regNum=0;}圖像采集完畢后,存入指定文件夾下。如例子中注冊手勢1,則存入D:\2019畢設(shè)\vs13program\handGuesture\MFCGuesture\Data\1。保存如圖所示圖4-4手勢采集保存形式本系統(tǒng)手勢預(yù)處理將計算機攝像頭采集到的的RGB色彩空間轉(zhuǎn)換為YCrCb空間,再利用橢圓皮膚模型進行皮膚檢測與分離。MatCMFCGuestureDlg::handPreprocess(Mat&src){ ycrcb_image; Matoutput_mask=Mat::zeros(Size(src.cols,src.rows),CV_8UC1); for(intj=0;j<src. //如果該落在皮膚模型橢圓區(qū)域內(nèi),該點就是皮膚像素點 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)學運算函數(shù) returnoutput_mask;}輸出如圖所示圖4-5手勢預(yù)處理采集并處理完圖像后,進行手勢模型的訓練voidCMFCGuestureDlg::OnBnClickedButton3()//訓練模型{ char*path_="./Data/"; readDir(path_,imagelist,labelName); mySvmClassifier=newsvmGuesture(imagelist.size(),HogWIDTH,HogHEIGHT); //新建的手勢識別的類svmGuesture,這個類在另外的文件 if(_access("./model.xml",0)==0) { mySvmClassifier->svm.load("./model.xml"); return; } intflag=mySvmClassifier->loadData(imagelist); if(flag==-1) { MessageBox("notFoundimagefiles"); } flag=mySvmClassifier->svmTrain(); if(flag==-1) { MessageBox("trainmodelerror"); } MessageBox("trainingmodeldone");}手勢測試模塊系統(tǒng)必須先通過手勢檢測模塊來畫出手勢輪廓與皮膚區(qū)域。此系統(tǒng)中的手勢檢測功能就是通過OpenCV手勢識別庫,在特定區(qū)域提取手勢特征。本系統(tǒng)手勢識別模塊包括了動態(tài)識別和靜態(tài)識別。具體方法將在第五章敘述。啟動手勢識別功能代碼如下:voidCMFCGuestureDlg::OnBnClickedButton2()//手勢識別{ if(_access("./model.xml",0)!=0) { MessageBox("請先訓練模型"); return; } startRegnise=true;}系統(tǒng)測試與分析在系統(tǒng)運行和測試階段,通過對系統(tǒng)功能逐個進行測試,驗證系統(tǒng)是否達到了預(yù)期的設(shè)計要求。系統(tǒng)測試環(huán)境在本文的測試中,系統(tǒng)的運行環(huán)境為英特爾Corei7-8750H@2.20GHz六核處理器和16GB內(nèi)存配置的電腦,操作系統(tǒng)為win10,開發(fā)環(huán)境采用VisualStudio2013,開發(fā)語言為C++。系統(tǒng)界面測試手勢注冊功能測試系統(tǒng)界面如圖5-1所示圖5-1手勢識別系統(tǒng)界面考慮需要一只手注冊,一只手操作,我將注冊區(qū)域調(diào)整到畫面左下方。以注冊手勢0為例。圖5-2注冊手勢“0”voidCMFCGuestureDlg::OnTimer(UINT_PTRnIDEvent) //時間響應(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)); //皮膚檢測判斷是否為手勢 if(regBool&®Num<50&®ingInt>=0) { //Mathand=handPreprocess(m_src(capRt)); if(regingInt==1)thresh_=0.24;elsethresh_=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); MatsaveImg=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&®Num==50) { sprintf_s(buffer,"手勢%d注冊完成",regingInt); regBool=false; regNum=0; MessageBox(buffer); } if(startRegnise) { MatsaveImg=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); intregResult=mySvmClassifier->svmPredict(saveImg); CStringstr; 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); } }手勢識別(動態(tài)手勢)測試圖5-3手勢“0”動態(tài)識別圖5-4手勢“1”動態(tài)識別圖5-5手勢“2”動態(tài)識別圖5-6手勢“3”動態(tài)識別圖5-7手勢“4”動態(tài)識別圖5-8手勢“5”動態(tài)識別圖5-9手勢“6”動態(tài)識別圖5-10手勢“7”動態(tài)識別圖5-11手勢“8”動態(tài)識別圖5-12手勢“9”動態(tài)識別由上圖可以看出,在光線條件合適的情況下,背景與膚色對比度明顯,系統(tǒng)可以準確識別出0-9共10個手勢,并實時將識別結(jié)果顯示在界面上。圖片識別(靜態(tài)手勢)測試點擊圖片識別按鈕,打開靜態(tài)手勢存儲的文件夾,識別圖片手勢。圖5-13手勢“1”靜態(tài)識別圖5-14手勢“2”靜態(tài)識別voidCMFCGuestureDlg::OnBnClickedButton4()//圖片識別按鈕{ KillTimer(1); startRegnise=false; regBool=false; CStringstr; BROWSEINFObi; TCHARname[MAX_PATH]; name[0]='d'; ZeroMemory(&bi,sizeof(BROWSEINFO)); bi.hwndOwner=GetSafeHwnd(); bi.pszDisplayName=name; bi.lpszTitle=_T("Selectfolder"); bi.ulFlags=0x80; LPITEMIDLISTidl=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("文件夾下沒有圖片"); return; } regniseHand(imagelist[0]);}測試問題測試過程中也發(fā)現(xiàn)了一些問題,具體如下:手勢識別(動態(tài)手勢)問題如圖所示:圖5-155-16動態(tài)手勢識別光線問題由于光照條件變化和手掌與攝像頭距離等原因,在手勢注冊時,膚色分割變化較大,直接影響從視頻流中采集的圖像質(zhì)量,并影響手勢訓練結(jié)果,最終導致手勢識別效率降低。5-17手勢角度變換造成識別錯誤從測試中發(fā)現(xiàn),由于采集手勢樣本數(shù)量有限,當攝像頭采集區(qū)域手勢角度發(fā)生變化時,系統(tǒng)無法或錯誤識別動態(tài)手勢。圖5-185-19身體其他部位膚色對識別的影響另外由于人體其他部位膚色與手部膚色差別不大,當有身體其他部位如臉或手臂進入圖像采集區(qū)時,同樣會被膚色分割。在手勢采集時會影響模型訓練效果,而在手勢識別時,則會導致錯誤或無法識別。圖片識別(靜態(tài)手勢)問題5-20異側(cè)手無法識別從測試結(jié)果中我們可以看出,靜態(tài)手勢在圖像處理方面不如動態(tài)手勢,主要表現(xiàn)在圖像平滑處理不好。同時遇到與動態(tài)測試中相同的問題,當旋轉(zhuǎn)圖片角度測試,或者導入另一只手進行測試時,系統(tǒng)無

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論