亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于Kinect的手勢識(shí)別系統(tǒng)

        2015-07-18 14:47:46劉嘯宇韓格欣王瑞代麗男
        物聯(lián)網(wǎng)技術(shù) 2015年5期
        關(guān)鍵詞:手勢識(shí)別特征提取

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

        摘 要:手勢識(shí)別系統(tǒng)有著廣闊的應(yīng)用前景,一套穩(wěn)定、高效的手勢識(shí)別算法可以為其后的機(jī)器學(xué)習(xí)提供良好基礎(chǔ)。簡要分析了計(jì)算機(jī)圖像處理結(jié)合Kinect在手勢識(shí)別領(lǐng)域的應(yīng)用,并提出了一種結(jié)合Kinect深度信息的可行的手勢識(shí)別方法,最后通過實(shí)驗(yàn)驗(yàn)證了該算法的穩(wěn)定性和效率。

        關(guān)鍵詞:Kinect;手勢識(shí)別;特征提取;計(jì)算機(jī)圖像處理

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

        0 引 言

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

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

        幸運(yùn)的是,在2009年6月1日E3 2009大會(huì)上首次公布的Kinect設(shè)備為這種要求提供了更進(jìn)一步的保障。利用Kinect提供的深度信息,結(jié)合在計(jì)算機(jī)圖像處理和機(jī)器學(xué)習(xí)領(lǐng)域早已頗有建樹的開源計(jì)算機(jī)圖形處理庫OPENCV,開發(fā)者可以將制約圖像處理的環(huán)境光因素降到最低,從而開發(fā)出穩(wěn)定可靠的手勢識(shí)別系統(tǒng)。

        1 Kinect簡介

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

        圖1 Kinect圖示

        2 計(jì)算機(jī)圖像處理中的手勢識(shí)別

        基于計(jì)算機(jī)圖像處理的手勢識(shí)別系統(tǒng)大體上分為:手勢采集、手勢分割、手勢提取及手勢理解四個(gè)步驟[3]。手勢識(shí)別的方法見表1。

        表1 手勢識(shí)別靜態(tài)識(shí)別[4] 動(dòng)態(tài)識(shí)別[5]

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

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

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

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

        3 Kinect在手勢識(shí)別中的應(yīng)用

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

        圖2 SDK人體骨骼識(shí)別

        在人體手部部位,創(chuàng)建一個(gè)包絡(luò)矩形,這個(gè)矩形稱為環(huán)境矩形。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色彩空間的膚色分割算法在使用者在線模式下,將位于環(huán)境矩形內(nèi)的使用者手部圖像提取20組,利用20組內(nèi)的中心點(diǎn)顏色均值與環(huán)境矩形內(nèi)所有點(diǎn)的關(guān)系計(jì)算出使用者手部圖像的顏色閾值。然后利用二分法依次改變閾值,尋找出環(huán)境矩形區(qū)域內(nèi)噪點(diǎn)最少的手部圖像值,最后利用這個(gè)值進(jìn)行手勢姿態(tài)圖像二值化處理。將得到的二值化圖像進(jìn)行特征化處理,得到手部特征點(diǎn)。通過對特征點(diǎn)的運(yùn)算,得到最終手勢姿態(tài)理解結(jié)果。

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

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

        #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

        在此特征區(qū)域內(nèi),圍繞中心點(diǎn)繪制出環(huán)境矩形,然后調(diào)用OPENCV庫進(jìn)行手勢姿態(tài)運(yùn)算:

        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空間的顏色分量。

        結(jié)合環(huán)境矩形處理后提取的手勢識(shí)別二值化圖形如圖3、圖4所示。

        圖3 手勢識(shí)別二值化圖形 圖4 手勢識(shí)別二值化圖形

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

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

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

        //計(jì)算整個(gè)手的中心點(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)的圖像如圖5 、 圖6所示。

        圖5 手勢特征點(diǎn)

        圖6 同一算法多人多手識(shí)別

        6 結(jié) 語

        Kinect的出現(xiàn)為開發(fā)者們提供了強(qiáng)有力的工具,不僅僅是從硬件上,更是從平臺(tái)層面增加了很多高級別圖像處理能力,開發(fā)者們可以利于微軟官方SDK開發(fā)出大量基于圖像的應(yīng)用。結(jié)合Kinect自身具備的聲音識(shí)別技術(shù)、利用現(xiàn)行的OpenCV開源視覺庫,開發(fā)者們不僅能夠?yàn)镻C機(jī)開發(fā)應(yīng)用,更可以為嵌入式視頻系統(tǒng)、機(jī)器人等領(lǐng)域的專業(yè)需求提供一系列解決方案。

        參考文獻(xiàn)

        [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的數(shù)字手勢識(shí)別算法[J]. 計(jì)算機(jī)應(yīng)用, 2013, 33(S2):193-196.

        [4]郭興偉,葛元,王林泉.基于形狀特征的字母手勢的分類及識(shí)別算法[J].計(jì)算機(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.

        猜你喜歡
        手勢識(shí)別特征提取
        特征提取和最小二乘支持向量機(jī)的水下目標(biāo)識(shí)別
        基于Gazebo仿真環(huán)境的ORB特征提取與比對的研究
        電子制作(2019年15期)2019-08-27 01:12:00
        基于Daubechies(dbN)的飛行器音頻特征提取
        電子制作(2018年19期)2018-11-14 02:37:08
        Bagging RCSP腦電特征提取算法
        基于手勢識(shí)別的工業(yè)機(jī)器人操作控制方法
        基于紅外的非接觸式手勢識(shí)別系統(tǒng)設(shè)計(jì)
        基于嵌入式的智能手表設(shè)計(jì)
        復(fù)雜背景下的手勢識(shí)別方法
        基于SIFT算法的手勢控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
        一種靜態(tài)手勢數(shù)字識(shí)別的實(shí)現(xiàn)及應(yīng)用
        久久精品亚洲成在人线av乱码| 9lporm自拍视频区| 欧韩视频一区二区无码| 日日躁欧美老妇| 国产精品黄页免费高清在线观看| 日本黑人亚洲一区二区| 在线麻豆精东9制片厂av影现网| 日韩人妻无码精品久久| 91视频免费国产成人| 国产一区二区三区色区| 国产人妖在线观看一区二区三区| 色欲色香天天天综合vvv| 国产精品99精品无码视亚| 四虎国产精品永久在线无码| 一本久道久久综合五月丁香| 亚洲无码中文字幕日韩无码| 玩弄丝袜美腿超短裙校花| 亚洲视频高清一区二区| 中文字幕亚洲乱码熟女在线 | 亚洲av高清一区二区在线观看| 亚洲人成无码区在线观看| 精品人妻少妇一区二区三区不卡 | 中文字幕亚洲无线码在一区| 女人的天堂av免费看| 91在线视频视频在线| 成人国产激情自拍视频| 国产亚洲成av人片在线观看| 精品亚洲一区二区三区在线观看| 午夜短视频日韩免费| 久久久诱惑一区二区三区| 91久久大香伊蕉在人线国产| 久久国产劲爆∧v内射-百度| 亚洲最大av资源站无码av网址| 亚洲AV无码国产成人久久强迫| 亚洲高清一区二区三区在线观看| 久久99免费精品国产| 久久精品国产亚洲av性瑜伽| 丰满少妇被粗大的猛烈进出视频| 99热视热频这里只有精品| 中文字幕日本女优在线观看| 日本不卡的一区二区三区中文字幕|