999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OpenCV的一種手勢識別方法

2015-07-02 13:17:11代麗男韓格欣薄純娟
物聯(lián)網(wǎng)技術(shù) 2015年6期
關(guān)鍵詞:模式識別

代麗男 韓格欣 薄純娟

摘 要:手勢識別已發(fā)展成為計(jì)算機(jī)人機(jī)交互的一個重要組成部分,穩(wěn)定、高效的識別系統(tǒng)可將人機(jī)交互體驗(yàn)提升到一個新的高度。簡要分析了OpenCV計(jì)算機(jī)視覺庫,提出了一種可行的手勢識別方法,實(shí)現(xiàn)了該算法并驗(yàn)證了其穩(wěn)定性和效率。

關(guān)鍵詞:OpenCV;手勢識別;模式識別;圖像處理

中圖分類號:TP368 文獻(xiàn)標(biāo)識碼:B 文章編號:2095-1302(2015)06-00-03

0 引 言

隨著科技的日益進(jìn)步,傳統(tǒng)的、基于鍵盤鼠標(biāo)的人機(jī)交互方式略顯單調(diào)。各國的研究者們探索著一個又一個新的人機(jī)交互方式,而在這些方式中,基于圖像理解的方式已經(jīng)取得了很大的進(jìn)展。我們的生活離不開肢體動作,而圖像方式是計(jì)算機(jī)能夠理解人類動作最直接的方式。圖像處理的研究內(nèi)容非常廣泛,配合統(tǒng)計(jì)、模式識別等學(xué)科知識的應(yīng)用,我們已經(jīng)能夠識別并理解常用的人類肢體動作。

在肢體動作中,手勢動作又是其中的重點(diǎn)。如今很多新的交互方式都建立在手勢識別理解的基礎(chǔ)上,例如:Microsoft的kinect系統(tǒng),primesense的生物識別系統(tǒng)等。很多公司已經(jīng)將其應(yīng)用到了醫(yī)療、教育教學(xué)、失語者手勢理解等領(lǐng)域。因此,研究手勢識別理解將會是未來計(jì)算機(jī)領(lǐng)域的一大熱點(diǎn)。

運(yùn)動識別系統(tǒng)的進(jìn)步伴隨著數(shù)字圖像處理領(lǐng)域的進(jìn)步,各國學(xué)者相繼開發(fā)出了大量優(yōu)秀的計(jì)算機(jī)視覺和圖像處理軟件包。大多數(shù)軟件包基于計(jì)算速度的考慮采用C/C++ 編寫[1]。雖然這些軟件包對計(jì)算機(jī)圖像處理和計(jì)算機(jī)視覺的研究提供了很大地便利,但也存在著不足之處[2]:

(1)現(xiàn)行的多數(shù)圖像處理平臺沒有提供高級數(shù)學(xué)函數(shù);

(2)Matlab 的運(yùn)行速度需要提高并且對宿主機(jī)器的配置要求較高;

(3)絕大多數(shù)圖像處理庫不支持嵌入式程序開發(fā)。

開源計(jì)算機(jī)視覺庫OpenCV(Open Source Computer Vision Library)的出現(xiàn)極大地彌補(bǔ)了這些不足,給開發(fā)者提供了強(qiáng)大的綜合開發(fā)平臺。

1 OpenCV簡介

OpenCV(Open Source Computer Vision Library)誕生于Intel 研究中心,是一個開放源代碼的、高質(zhì)量的計(jì)算機(jī)視覺庫。它輕量且高效,采用C/C++ 語言編寫,可以運(yùn)行在Linux/Windows/Mac等操作系統(tǒng)上。OpenCV 還提供了Python、Ruby、Matlab及其他語言的接口[3]。OpenCV中包含了大量經(jīng)典的計(jì)算機(jī)視覺處理函數(shù),這些函數(shù)涵蓋了機(jī)器視覺領(lǐng)域的大多數(shù)應(yīng)用。OpenCV提供的視覺處理算法非常豐富,利用其開源特性,只要開發(fā)者處理得當(dāng),不需要添加新的外部支持也可以支持完整的編譯鏈接生成執(zhí)行程序。

OpenCV 現(xiàn)行版本為2.4.11.0,已放出了3.0.0的Beta版本?,F(xiàn)行版本的OpenCV分為18個模塊,其中常用的有8個模塊:

(1)Core:定義基本的數(shù)據(jù)結(jié)構(gòu),包括矩陣和被其他模塊使用的公共函數(shù);

(2)Imgproc:包含線性和非線性圖像過濾器、幾何圖形變化、色彩空間變化等功能;

(3)Video:包含運(yùn)動分析、背景剪切和對象追蹤等功能;

(4)Calib3d:包含多視角集合算法、3D重建等功能;

(5)Features2d:包含特征匹配等功能;

(6)Objdetect:包含預(yù)定義對象距離探測等功能;

(7)Highui:包含一個簡單易用的高層級接口,用以抽象不同操作系統(tǒng)對視頻提取和圖像操作的功能;

(8)GPU:包含GPU加速相關(guān)的算法,這些算法可以被其他模塊使用以加速程序的運(yùn)轉(zhuǎn)。

2 手勢識別簡介

根據(jù)計(jì)算機(jī)系統(tǒng)檢測手勢姿態(tài)的傳感器的不同,我們可以將手勢識別理解系統(tǒng)分為兩類:一是利用數(shù)據(jù)手套獲相關(guān)技術(shù);二是利用計(jì)算機(jī)視覺捕獲和處理圖像流。利用數(shù)據(jù)手套捕獲技術(shù)實(shí)現(xiàn)的手勢識別系統(tǒng)使用不方便,用戶需要學(xué)習(xí)的內(nèi)容多且使用場景受到限制,而且成本較高[4]。而基于計(jì)算機(jī)視覺的手勢識別系統(tǒng)則具有使用場景廣闊、使用習(xí)慣符合人體本能、傳感器成本低、普及率高等優(yōu)勢。

基于圖像的手勢識別系統(tǒng)一般可分為手勢姿態(tài)圖像采集、手勢姿態(tài)圖像分割、手勢姿態(tài)特征提取及手勢姿態(tài)識別四個步驟[5]。

在大量手勢識別系統(tǒng)的實(shí)際開發(fā)過程中,都牽扯到使用膚色過濾系統(tǒng)來分割獲取手勢的binary圖像。手勢姿態(tài)的binary圖像的獲取關(guān)系到后期手勢姿態(tài)理解的穩(wěn)定性和準(zhǔn)確性,但是人體的手部顏色受到個體差異、光源顏色以及光照角度的影響,其中任何一個因素變化都將造成陰影、遮蔽等不良影響[6]。手勢識別的方法主要有4種,具體見表1。

表1 手勢識別方法靜態(tài)識別[7] 動態(tài)識別[8]

模板匹配法(TM) 動態(tài)時間規(guī)整法(DTW)

神經(jīng)網(wǎng)絡(luò)法(NN) 隱馬爾可夫模型法(HMM)

本文首先使用YCrCb膚色分割算法在使用者在線模式下提取使用者手勢姿態(tài)30組,利用30組手勢姿態(tài)的均值測量出使用者手部的色彩平均值;然后提取環(huán)境光照的平均值、極大值和極小值,利用環(huán)境關(guān)照的取值和手部均值做運(yùn)算,特定區(qū)域內(nèi)找點(diǎn)最少的環(huán)境光照值和手部均值,最后利用這兩個值進(jìn)行手勢姿態(tài)圖像binary處理。將得到的binary圖像進(jìn)行特征化處理,得到手部特征點(diǎn),通過對特征點(diǎn)的運(yùn)算,得到最終的手勢姿態(tài)理解。

3 手勢姿態(tài)的binary處理

手勢姿態(tài)的binary處理核心代碼如下:

主函數(shù):

frame = cvQueryFrame(capture);

//讀取一幀圖像

//cvShowImage( “Main_cam” , frame);

if( !frame ) break;

assert( 0 ==

binary_image_process( frame , mask , high_threshold1 , high_threshold2 , high_threshold3 , &is_get_binary )

);

cvShowImage( “Binary_cam” , mask );

//binary_image_process函數(shù),使用環(huán)境光和膚色在線測量均值得到的三個閾值:threshold1,threshold2,threshold3,分別對應(yīng)YCrCb顏色空間的Y,CR,CB通道:

IplImage* ycrcb = cvCreateImage( cvGetSize(frame) , 8 , 3 );

cvCvtColor( frame , ycrcb , CV_BGR2YCrCb );

for(int i=0 ; i < ycrcb->height ; i++ ) //二值化

{

uchar *row = (uchar *)(ycrcb->imageData) + i * ycrcb->widthStep;

for(int j=0 ; j < ycrcb->width ; j++ )

{

uchar *p = row + 3*j ;

//if( *(p+1) > threshold2 && *(p+2) < threshold3 )//||

if( *(p) < threshold1 )

{

binary_image->imageData[ i * (binary_image->widthStep) + j ] = 255; // 白色

}

else

{

binary_image->imageData[ i * (binary_image->widthStep) + j ] = 0; // 黑色

}

}

}

IplConvKernel *element = cvCreateStructuringElementEx( 4 , 4 , 0 , 0 , CV_SHAPE_RECT );//創(chuàng)建用于腐蝕的核函數(shù)

cvErode( binary_image , binary_image , element , 1); // Erotion

cvDilate( binary_image , binary_image , NULL , 1); // Dilation

cvReleaseStructuringElement( &element );

cvReleaseImage( &ycrcb );

經(jīng)過提取的手勢識別binary圖形如圖1(a)~(e)所示。

可見此方法提取的binary圖像清晰準(zhǔn)確,具有利用價(jià)值,可以為后期的特征提取與識別創(chuàng)造有利條件。

(a) (b)

(c) (d)

(e)

圖1 手勢識別binary圖形

4 手勢姿態(tài)特征的識別與理解

首先,我們通過對最小包絡(luò)圓和手腕的計(jì)算得出手掌心的位置,然后利用每個點(diǎn)與相鄰點(diǎn)做向量外積計(jì)算是否為手指尖點(diǎn)和手縫點(diǎn),最后即可得出手勢姿態(tài)的全部特征點(diǎn)。

//計(jì)算整個輪廓的中心點(diǎn)

for( int i=0 ; i < real_contours_number ; i++ ){

contour_rectangle = cvMinAreaRect2( sort_contours[i] , 0 );

arm_center[i].x = cvRound( contour_rectangle.center.x );

arm_center[i].y = cvRound( contour_rectangle.center.y );

cvCircle( frame , arm_center[i] , 10 , CV_RGB(255,255,255) , -1 , 8 , 0 );

}

//取得凸包,畫出指縫

for( int i=0 ; i < real_contours_number ; i++ ){ get_convex_hull( i );

finger_tip( i );

hand( i );

cvClearSeq( hull ); //清空凸包序列

cvClearSeq( defect );

}

最終,得到的含有全部手勢特征點(diǎn)的圖像如圖2(a) 、圖2(b)所示。

(a) (b)

圖2 含有全部手勢特征點(diǎn)的圖像

5 結(jié) 語

新版本的OpenCV計(jì)算機(jī)視覺庫給我們提供了很強(qiáng)大的計(jì)算機(jī)視覺處理能力,利用其提供的高級別函數(shù)和矩陣運(yùn)算能力,開發(fā)者們可以開發(fā)出大量基于圖像的應(yīng)用。利用OpenCV強(qiáng)大的可移植能力,開發(fā)者可以使用相應(yīng)的移植工具將PC平臺上的成果轉(zhuǎn)化到移動端,這將會為開發(fā)者創(chuàng)造新的機(jī)會。

參考文獻(xiàn)

[1]喻擎蒼, 翁秀娟, 趙勻,等.交互式開放結(jié)構(gòu)計(jì)算機(jī)視覺平臺[J]. 計(jì)算機(jī)工程與應(yīng)用,2006,42(23):78-81.

[2]秦小文, 溫志芳, 喬維維. 基于OpenCV的圖像處理[J]. 電子測試, 2011(7):39-41.

[3]于仕琪, 劉瑞禎. 學(xué)習(xí)OpenCV( 中文版)[M]. 北京:清華大學(xué)出版社,2009.

[4] LEE C, XU Y. Online interactive learning of gestures for human /robot interfaces [C] Proceedings of the 1996 IEEE International Conference on Robotics and Automation. Washington,DC: IEEE Computer Society Press,1996,4: 2982-2987.

[5]趙健, 張冬泉. 基于OpenCV的數(shù)字手勢識別算法[J]. 計(jì)算機(jī)應(yīng)用, 2013, 33(z2):193-196.

[6] SURAL S,QIAN G,PRAMANIK S.Segmentation and histogram generation using the HSV color space for image retrieval[C] of the 2002 International Conference on Image Processing.Piscataway: IEEE,2002: 589 - 592.

[7]郭興偉,葛元,王林泉.基于形狀特征的字母手勢的分類及識別算法[J].人工智能及識別技術(shù),2004,30( 18) : 130-132.

[8] LEE H-K,KIM J H. An HMM-based threshold model approach for gesture recognitio[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1999,21(10):961-973.

猜你喜歡
模式識別
紫地榆HPLC指紋圖譜建立及模式識別
中成藥(2018年2期)2018-05-09 07:19:52
2019 IEEE計(jì)算機(jī)視覺與模式識別會議
UPLC-MS/MS法結(jié)合模式識別同時測定芪參益氣滴丸中11種成分
中成藥(2017年10期)2017-11-16 00:50:05
淺談模式識別在圖像識別中的應(yīng)用
電子測試(2017年23期)2017-04-04 05:06:50
第四屆亞洲模式識別會議
基于可拓模式識別的孤島檢測研究
電測與儀表(2016年6期)2016-04-11 12:07:48
可拓模式識別算法中經(jīng)典域的確定方法
第3屆亞洲模式識別會議
基于LLE降維和BP_Adaboost分類器的GIS局部放電模式識別
電氣設(shè)備的故障診斷與模式識別
河南科技(2014年5期)2014-02-27 14:08:35
主站蜘蛛池模板: 久久人体视频| 久久毛片基地| 在线免费亚洲无码视频| 亚洲无线国产观看| 欧洲熟妇精品视频| 欧美中日韩在线| 九九久久99精品| 99久久精品国产麻豆婷婷| 呦系列视频一区二区三区| 毛片基地美国正在播放亚洲 | 国产成人高清精品免费软件| 精品91视频| 亚洲天堂精品视频| 国产欧美日本在线观看| 亚洲综合九九| 亚洲第一天堂无码专区| 欧美在线黄| 国产情侣一区| 伊人狠狠丁香婷婷综合色| 91小视频在线观看免费版高清| 69av免费视频| 欧美日本不卡| 国产日韩丝袜一二三区| 亚洲午夜福利精品无码| 无码一区中文字幕| 亚洲人成在线精品| 久久久久国色AV免费观看性色| 国产www网站| 国产手机在线ΑⅤ片无码观看| 亚洲无码视频一区二区三区| 国产日韩丝袜一二三区| 国产精鲁鲁网在线视频| 日韩天堂在线观看| 狠狠色香婷婷久久亚洲精品| 久久久久青草大香线综合精品| 久久国产成人精品国产成人亚洲| 人妻夜夜爽天天爽| 日韩无码视频播放| 欧美区日韩区| 免费一级成人毛片| 久久99国产综合精品1| 伊人成人在线视频| 麻豆国产在线观看一区二区 | 日韩精品一区二区三区大桥未久| 国产精品青青| 亚洲A∨无码精品午夜在线观看| 亚洲福利视频网址| 女人一级毛片| 久久香蕉国产线看观| 國產尤物AV尤物在線觀看| 日韩久久精品无码aV| 亚洲AV色香蕉一区二区| 午夜无码一区二区三区| 精品撒尿视频一区二区三区| 东京热av无码电影一区二区| 国产精品第一区| 日本www色视频| 高潮毛片免费观看| 午夜日本永久乱码免费播放片| 国产日韩精品一区在线不卡| 国产午夜看片| 亚洲欧美在线综合图区| 成年人国产网站| 国产午夜看片| 亚洲欧美成aⅴ人在线观看| 国产白浆在线观看| h视频在线观看网站| 国产www网站| 综合亚洲网| 日韩在线播放中文字幕| 欧美五月婷婷| 熟女成人国产精品视频| 国产精品漂亮美女在线观看| 国产探花在线视频| 蜜桃视频一区| 91久久偷偷做嫩草影院| 国产精品免费p区| 色婷婷成人网| 精品久久国产综合精麻豆| 啪啪啪亚洲无码| 色偷偷一区二区三区| 久久伊人久久亚洲综合|