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

一種基于Kinect的手勢識別系統

2015-07-18 14:47:46劉嘯宇韓格欣王瑞代麗男
物聯網技術 2015年5期
關鍵詞:特征提取

劉嘯宇++韓格欣++王瑞++代麗男++薄純娟

摘 要:手勢識別系統有著廣闊的應用前景,一套穩定、高效的手勢識別算法可以為其后的機器學習提供良好基礎。簡要分析了計算機圖像處理結合Kinect在手勢識別領域的應用,并提出了一種結合Kinect深度信息的可行的手勢識別方法,最后通過實驗驗證了該算法的穩定性和效率。

關鍵詞:Kinect;手勢識別;特征提取;計算機圖像處理

中圖分類號:TP368 文獻標識碼:A 文章編號:2095-1302(2015)05-00-03

0 引 言

人機交互方式多年來都停留在以鍵盤和鼠標為中心的傳統方式上,然而,隨著科技進步,特別是傳感器技術和芯片制造技術的進步,工程師們正在不停的探索新的人機交互體驗。已知的人機交互體驗包括聲音交互、腦電波交互、人體肢體姿態交互、手勢交互等。這其中,基于計算機圖像處理技術的手勢識別已經擁有了廣闊的應用。

手勢識別技術可以利用在醫療領用,用于孤獨癥兒童的治療;可以應用在溝通領域,用于聾啞患者的手語交流;也可以應用在游戲領域,創造新的游戲人機交互體驗。但是,現行的手勢識別系統之所以不夠普及,很大一部分在于識別算法的穩定性和快速性得不到保證。這是因為使用計算機圖像處理手段的手勢識別系統受到計算機圖像處理能力的極大制約。圖像處理,特別是實時圖像處理,在實際操作中會受到光照、遮蔽、陰影等因素的制約,每一種因素的變化都會對最終的識別結果造成影響。因此,如何得到穩定且置信度高的手勢識別結果就成了各國計算機圖像處理工程師的重要攻克方向。

幸運的是,在2009年6月1日E3 2009大會上首次公布的Kinect設備為這種要求提供了更進一步的保障。利用Kinect提供的深度信息,結合在計算機圖像處理和機器學習領域早已頗有建樹的開源計算機圖形處理庫OPENCV,開發者可以將制約圖像處理的環境光因素降到最低,從而開發出穩定可靠的手勢識別系統。

1 Kinect簡介

Kinect 是微軟為Xbox研發的一款體感周邊外設產品。Kinect一經提出就因其革命性的超前構想和顛覆性的人體姿態操作方式[1]受到了眾多玩家和開發者的追捧。Kinect精確的空間定位性能結合先進的計算機視覺處理算法,可以為人機交互領域提供廣闊的發展空間。如圖1所示,Kinect通過高分辨率深度信息,能夠分辨空間物體細小的變動;支持錄制1080p高清視頻,在不失去保真度的情況下可支持6人同時操作;Kinect套件自帶骨骼追蹤SDK,可以實時跟蹤 6 個完整骨骼和每套骨骼的 25 個關節。更重要的是,紅外線傳感器給Kinect賦予了黑暗中識別動作的能力,這大大降低了對用戶操作環境的要求,使人們可以在沒有照明的情況下使用Kinect,大大解放了對用戶和開發者對場地的要求,從而讓機器學習變得更簡單[2]。

圖1 Kinect圖示

2 計算機圖像處理中的手勢識別

基于計算機圖像處理的手勢識別系統大體上分為:手勢采集、手勢分割、手勢提取及手勢理解四個步驟[3]。手勢識別的方法見表1。

表1 手勢識別靜態識別[4] 動態識別[5]

模板匹配法(TM) 動態時間規整法(DTW)

神經網絡法(NN) 隱馬爾可夫模型法(HMM)

在大量手勢識別系統的實際開發過程中,開發者都面臨著一個基本的問題:使用不同算法過濾系統來獲取手勢的二值化圖像。常用的獲取方法是基于膚色來過濾手勢輪廓。

手勢姿態二值化圖像的獲取關系到后期手勢姿態理解的穩定性和準確性,但是人體的手部顏色受到個體差異、光源顏色以及光照角度的影響,其中任何一個因素變化都將造成陰影、遮蔽等不良影響[6]。Kinect的出現彌補了這個缺陷。利用Kinect的深度和紅外信息,使得Kinect的開發者可以在不考慮光照的情況下通過深度分辨出位于攝像頭前方的手勢姿態,而被遮蔽的手勢則可以輕易的被系統識別出來過濾掉,防止影響最終結果。

3 Kinect在手勢識別中的應用

本文首先使用Kinect官方SDK中的人體骨骼識別功能識別出人體骨骼模型,如圖2所示。

圖2 SDK人體骨骼識別

在人體手部部位,創建一個包絡矩形,這個矩形稱為環境矩形。Kinect初始化代碼如下:

private void BodyReader_FrameArrivedEvent(object sender, BodyFrameArrivedEventArgs e)

{

bool t_BodyFrameProcessed = false;

using (BodyFrame bodyFrame = e.FrameReference.AcquireFrame())

{

if (bodyFrame != null)

{

if (this.bodies == null)

{

this.bodies = new

Body[bodyFrame.BodyCount];

}

/* The first time

GetAndRefreshBodyData is called, Kinect will allocate each Body in the array.

As long as those body objects are not disposed and not set to null in the array,

those body objects will be re-used. */

bodyFrame.GetAndRefreshBodyData(this.bodies);

t_BodyFrameProcessed = true;

}

}

if (t_BodyFrameProcessed)

{

……

}

}

然后,使用YCrCb色彩空間的膚色分割算法在使用者在線模式下,將位于環境矩形內的使用者手部圖像提取20組,利用20組內的中心點顏色均值與環境矩形內所有點的關系計算出使用者手部圖像的顏色閾值。然后利用二分法依次改變閾值,尋找出環境矩形區域內噪點最少的手部圖像值,最后利用這個值進行手勢姿態圖像二值化處理。將得到的二值化圖像進行特征化處理,得到手部特征點。通過對特征點的運算,得到最終手勢姿態理解結果。

4 手勢視頻流的二值化處理

使用Kinect進行手勢視頻流的二值化處理核心代碼如下。獲取最近人體部位識別區域(在線檢測為手部):

#region Map the CameraJointPoints to DepthJointPoints and find the min-depth joint

IReadOnlyDictionary CameraJointPoints = body.Joints;

// convert the joint points to depth (display) space

Dictionary DepthJointPoints = new Dictionary();

// This is our AIM point

JointType MinDepthJointType = JointType.Head;

foreach (JointType jointType in CameraJointPoints.Keys)

{

// sometimes the depth(Z) of an inferred joint may show as negative

// clamp down to 0.1f to prevent coordinatemapper from returning (-Infinity, -Infinity)

CameraSpacePoint position = CameraJointPoints[jointType].Position;

if (position.Z < 0)

{

position.Z = 0.1f;

}

if (position.Z < CameraJointPoints[MinDepthJointType].Position.Z)

{

MinDepthJointType = jointType;

}

DepthJointPoints[jointType] = this.kinectSensor.CoordinateMapper.MapCameraPointToDepthSpace(position);

}

#endregion

在此特征區域內,圍繞中心點繪制出環境矩形,然后調用OPENCV庫進行手勢姿態運算:

frame = cvQueryFrame( capture );//讀取一幀圖像

if( !frame ) break;

assert( 0 ==

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

);

cvShowImage( “Binary_cam” , mask );

其中,threshold1、threshold2、threshold3均為閾值在YCrCb空間的顏色分量。

結合環境矩形處理后提取的手勢識別二值化圖形如圖3、圖4所示。

圖3 手勢識別二值化圖形 圖4 手勢識別二值化圖形

可見,此方法提取的二值化圖像清晰準確、輕量速度快、穩定性高。

5 手勢姿態特征的識別與理解

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

//計算整個手的中心點

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 );

}

最終,得到的含有全部手勢特征點的圖像如圖5 、 圖6所示。

圖5 手勢特征點

圖6 同一算法多人多手識別

6 結 語

Kinect的出現為開發者們提供了強有力的工具,不僅僅是從硬件上,更是從平臺層面增加了很多高級別圖像處理能力,開發者們可以利于微軟官方SDK開發出大量基于圖像的應用。結合Kinect自身具備的聲音識別技術、利用現行的OpenCV開源視覺庫,開發者們不僅能夠為PC機開發應用,更可以為嵌入式視頻系統、機器人等領域的專業需求提供一系列解決方案。

參考文獻

[1] Reuben Fleming.Motion Capture Tutorials[OL].[2012-07-01]. http://www.reubenfleming.co.uk

[2] Microsoft. Introduce to kinect[DB/OL]. https://www.microsoft.com/en-us/kinectforwindows/

[3]趙健, 張冬泉. 基于OpenCV的數字手勢識別算法[J]. 計算機應用, 2013, 33(S2):193-196.

[4]郭興偉,葛元,王林泉.基于形狀特征的字母手勢的分類及識別算法[J].計算機工程,2004,30(18):130-132.

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

[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.

猜你喜歡
特征提取
特征提取和最小二乘支持向量機的水下目標識別
基于Gazebo仿真環境的ORB特征提取與比對的研究
電子制作(2019年15期)2019-08-27 01:12:00
基于Daubechies(dbN)的飛行器音頻特征提取
電子制作(2018年19期)2018-11-14 02:37:08
基于DNN的低資源語音識別特征提取技術
自動化學報(2017年7期)2017-04-18 13:41:09
Bagging RCSP腦電特征提取算法
一種基于LBP 特征提取和稀疏表示的肝病識別算法
基于DSP的直線特征提取算法
基于改進WLD的紋理特征提取方法
計算機工程(2015年4期)2015-07-05 08:28:02
淺析零件圖像的特征提取和識別方法
機電信息(2015年3期)2015-02-27 15:54:46
基于CATIA的橡皮囊成形零件的特征提取
主站蜘蛛池模板: 亚洲高清日韩heyzo| 亚洲婷婷六月| 色婷婷成人| 亚欧成人无码AV在线播放| 中文字幕日韩欧美| 亚洲成人一区在线| 欧美精品在线视频观看| 亚洲色图狠狠干| 99热这里只有免费国产精品 | 亚洲AⅤ波多系列中文字幕| 国产第一色| 午夜国产精品视频| 1级黄色毛片| 高清久久精品亚洲日韩Av| 91精品免费高清在线| 国产毛片不卡| 国产成人高清亚洲一区久久| 国产无人区一区二区三区| 亚洲第一国产综合| 在线观看国产精品第一区免费| 伊人精品视频免费在线| 天天摸天天操免费播放小视频| 最新日韩AV网址在线观看| a免费毛片在线播放| 99久久国产自偷自偷免费一区| 亚洲中文字幕国产av| 国产va在线| 国产一区二区三区在线观看视频| 人人91人人澡人人妻人人爽| 精品国产欧美精品v| 99视频精品全国免费品| 日韩人妻无码制服丝袜视频| 91av成人日本不卡三区| 久久国产乱子| 国产精品999在线| 69精品在线观看| 她的性爱视频| 手机在线免费不卡一区二| 亚洲AV无码一二区三区在线播放| 97青青青国产在线播放| 国产高清不卡视频| 国产激爽大片高清在线观看| 日韩123欧美字幕| 久久青草精品一区二区三区| 成年人国产视频| 国产乱论视频| 免费一级毛片完整版在线看| 国产成人一区| 91精品国产情侣高潮露脸| 国产91久久久久久| 免费一看一级毛片| 国产在线观看一区精品| 免费精品一区二区h| 夜精品a一区二区三区| 六月婷婷激情综合| 深夜福利视频一区二区| 中文字幕欧美日韩高清| 538国产视频| 亚洲精品无码久久毛片波多野吉| 福利在线不卡一区| AV老司机AV天堂| 99精品在线看| 国产精品欧美亚洲韩国日本不卡| 在线毛片免费| 免费观看成人久久网免费观看| 国产一级裸网站| 日韩精品视频久久| 久久午夜夜伦鲁鲁片不卡| 欧美.成人.综合在线| 国产精品hd在线播放| 欧美性久久久久| 伊人久久久久久久久久| 亚洲天堂视频在线免费观看| 高清视频一区| 国产精品xxx| 制服丝袜一区| 亚洲天堂在线免费| 午夜日本永久乱码免费播放片| 国内精品免费| 性视频一区| 欧美日韩成人| 亚洲资源站av无码网址|