• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于kinect骨骼系統(tǒng)的手勢識別研究

    2014-04-29 00:00:00方華劉詩雄田敬北
    計算機光盤軟件與應用 2014年2期

    摘 要:針對使用計算機視覺技術進行手勢識別易受環(huán)境影響的問題,提出了一種基于kinect的骨骼系統(tǒng)的手勢識別方案。采用Kinect進行深度數(shù)據采集,建立深度圖像,提取人體輪廓,利用骨骼系統(tǒng)確定腕部坐標及灰度值后,提出根據腕部坐標采用最近鄰法則和閾值法提取手勢區(qū)域,可有效去除非手勢目標,對平滑后的手勢輪廓用不變矩對4種手勢進行了識別。實驗結果表明,該方法能有效的識別靜態(tài)手勢,且在不同光照和復雜背景的條件下,具有很強的健壯性。

    關鍵詞:Kinect;深度;骨骼系統(tǒng);不變矩

    中圖分類號:TP391.41

    一直以來,手勢作為通用的肢體語言,在信息交流中扮演著重要的角色。人機交流中使用手勢,可以使交互直觀化、自然化。在手勢識別的早期階段,人們常利用光電傳感器等設備采集手部數(shù)據來進行手勢提取,成本高,約束條件多,不便利。隨著計算機技術和數(shù)字圖像處理技術的發(fā)展,基于計算機視覺的捕捉技術逐步變成手勢識別的主流[1]。在基于計算機視覺的手勢識別系統(tǒng)中,通過攝像機組件對采集人的手部動作,與傳統(tǒng)技術相比,更加便宜、便利。但是傳統(tǒng)的手勢識別算法通常使用膚色模型來實現(xiàn)手勢識別,易受照度變化、復雜背景、硬件特性的影響,識別準確性不高[2],針對這種情況,本文以Kinect攝像頭獲取的深度圖像數(shù)據為基礎,提出基于腕部坐標的手勢識別算法,按照Hu矩匹配原則可對4種手勢進行有效識別,在不同光照條件和復雜背景下均可達到較高的識別準確率,算法魯棒性強,可使基于機器視覺的人機交互的更加可靠和流暢。

    Kinect是一款性價比較高的圖像采集裝置,其由紅外發(fā)射器、紅外CMOS和彩色CMOS以及其他部件構成,使用結構光技術主動獲取深度信息,可以釆集80x60、320x240、640x480像素三種分辨率、16位的深度幀數(shù)據[3],其幀速最高可達30幀/秒,深度值的精度約為3-30毫米。內嵌圖像處理器芯片PS1080 Soc,不需要花費大量的硬件資源進行運算,可以以較低的配置達到實時性的手勢數(shù)據采集要求。

    Kinect設備的配置和訪問是通過Kinect SDK實現(xiàn)的。Kinect SDK由Kinect驅動、攝像頭棧、USBAudio棧和NUI API四個部分組成。NUI API是其重要核心組件,它提供了本文所使用的深度幀數(shù)據流信息和骨骼關節(jié)點信息的訪問接口。

    1 手勢識別軟件結構

    基于Kinect的骨骼系統(tǒng)來進行手勢識別的軟件結構如圖1所示。首先利用Kinect攝像頭記錄人體手勢,經Kinect內部處理獲得目標場景的深度幀數(shù)據,將其轉換為灰度圖像,然后提取人體輪廓,通過骨骼系統(tǒng)采集的腕部數(shù)據輔助閾值分割獲得手勢圖像,再進行圖像平滑等處理,最后進行特征提取達到手勢識別的最終目的,實現(xiàn)了非接觸式的手勢識別[4]。

    圖1 基于Kinect的手勢識別系統(tǒng)結構

    2 深度值的空間變換

    Kinect的紅外攝像頭在獲取目標圖像,對采集的圖像進行一系列內部處理后,產生16位的深度幀數(shù)據供開發(fā)者使用。在供用戶使用的16位深度幀數(shù)據中,系統(tǒng)使用了其中的高13位數(shù)據來表示像素點的深度值,最低3位為用戶索引占用,因此使用Kinect SDK提供給用戶的深度幀數(shù)據時須先對其進行移位處理(原始的深度幀數(shù)據右移3位),以獲得深度空間各點的深度值,將其映射到灰度空間后可顯示深度圖像。

    假設gmax和dm分別表示灰度空間和深度空間的最大值,di表示深度空間第i點的深度值,g(i)表示該點的相應灰度值,由于當物體離深度攝像頭太近時攝像頭會對距離誤判造成di<0,從而導致g(i)>gmax,本文提出用gk進行修正,得到如下深度空間到灰度空間的轉換公式:

    g(i)=f(di)=gmax-gmax×di/dm+gk (1)

    圖2 RGB圖像與深度圖像

    圖2中,左圖為現(xiàn)實場景的RGB圖像,右圖為場景相應的深度圖像。對比兩圖可知:深度圖像中像素點灰度值不是表示物體相應顏色而是代表目標物與Kinect攝像頭的距離,且數(shù)值大小可以反映目標物距離攝像頭的遠近程度,目標距攝像頭越近,顏色值愈趨于白色。

    3 人體輪廓提取

    由式(1)可知,不同物體深度值相等時會有相同灰度值,這會對手形提取造成干擾。本文利用Kinect提供的用戶索引實現(xiàn)人體輪廓與周圍物體分離,以消除大多數(shù)物體對手勢區(qū)域提取的影響。

    Kinect對人體輪廓識別,是先在傳感器的附近區(qū)域掃描,根據人體的結構特征獲得疑似人體區(qū)域[5],接著使用邊緣檢測、閥值處理、目標特征點分類等方法,將人體從拍攝圖像中剝離出來,最后加上用戶索引,組成深度幀數(shù)據供開發(fā)者使用。已知深度幀數(shù)據后3位是用戶索引,取值范圍為0到6。數(shù)值為0時表示此像素點不屬于人體,在此用PlayerIndexBitmask變量獲得用戶索引數(shù)據,將人體輪廓從場景中分離出來。

    設由深度幀數(shù)據獲得灰度圖像尺寸為w×h,設灰度圖像第i點的坐標為(xi,yi)則i=w×yi+xi,由公式(2)可獲得人體輪廓,如圖3所示。

    (2)

    g(i)和dp(i)分別為該點的灰度值和深度幀數(shù)據值。

    圖3 人體輪廓圖

    4 基于骨骼系統(tǒng)的手勢識別

    4.1 根據骨骼系統(tǒng)獲取腕部坐標

    由于手腕點與深度攝像頭的距離并不固定,僅根據深度圖像難以對其精確的定位,在此使用骨骼追蹤系統(tǒng)對它進行捕捉。

    Kinect骨骼追蹤系統(tǒng)對景深圖像進行技術處理,使用矩陣變換,機器學習等方式來確定骨骼點的坐標[6]。SDK提供的骨骼跟蹤引擎可以給每位用戶提供全身共20個關節(jié)點在骨骼空間坐標系的位置信息,可追蹤的關節(jié)點圖4所示:

    圖4 骨骼關節(jié)點示意圖

    在通常情況下,骨骼系統(tǒng)可以對視野內的6個人體進行捕捉,但只會選擇其中兩個用戶進行全身骨骼數(shù)據追蹤,并且選擇過程有著很大的隨機性。本文通過SDK提供SkeletonPoint類型的Position對象獲取人體骨骼中間點坐標(xM,yM,zM),在比較多個人體zM的值后,選取zM值最小的(即離攝像頭最近的)人體作為用戶,再利用Joint對象對其左腕和右腕的空間位置進行捕捉。

    由于Kinect捕獲到的左腕坐標(xL,yL,zL)和右腕坐標(xR,yR,zR)是骨骼空間數(shù)據,只有轉換到深度空間里,才能真正確定手腕在深度圖像中的位置。針對這種情況,微軟的SDK提供了Map Skeleton Point To Depth方法來輔助開發(fā)者對骨骼關節(jié)點數(shù)據進行兩個空間之間的轉換,轉換后的腕部坐標位置分別為(xiL,yiL)和(xiR,yiR)。

    4.2 手勢區(qū)域分割

    本文使用圖像處理中的閾值法[7]進行手勢區(qū)域分割。根據骨骼系統(tǒng)獲取的左右手腕點在深度圖像中的坐標位置(xiL,yiL)和(xiR,yiR)可以得到相應的深度值dL和dR,通過公式(1)求出手腕點的灰度值GL和GR,得出如下手勢輪廓提取公式:

    (3)

    式中g(i)為圖像第i點的灰度值,G為左手腕灰度值GL或右手腕灰度值GR,d1、d2為裕量值,根據實驗結果分別取3和5,gmin和gmax為整幅圖像灰度最小值和最大值,一般分別取0和255。

    使用公式(3)對深度圖像所有像素點進行處理后得到手勢圖像如圖5a所示。

    a 圖像分割后的手勢圖像

    b 圖像去除非手勢目標前后的手勢圖像

    c 邊界平滑與邊緣提取后的手勢輪廓

    圖5 手勢圖像

    4.3 基于腕部坐標最鄰近法則的手勢輪廓提取

    實驗中發(fā)現(xiàn),直接按公式(3)進行圖像分割時,當手腕關節(jié)點和身體某部位深度值相等時,手勢圖像中易出現(xiàn)其他輪廓,如圖5b左圖所示,這會對后期的特征提取造成干擾。在此提出使用基于腕部坐標的最鄰近法則,對程序進行優(yōu)化,以提高識別的準確度。即把腕部點正下方8cm處作為長方形下底邊的中點,在深度圖像中做長為W,高為H的長方形,計算出長方形區(qū)域在深度圖像中的范圍,并將此范圍內的所有的像素點按公式(3)提取出來作為手勢區(qū)域,而把正方形范圍外的灰度值置gmin,以去除非手勢目標,在確定長方形的范圍時需根據人體腕部坐標將其轉換成像素位置,轉換方法如下:

    假設已標定的kinect深度攝像頭相當于理想情況下的針孔模型,則深度圖像坐標系上像素位置為(xi,yi)點與其在以深度攝像頭光心為原點建立的攝像頭坐標系下的對應點(x,y,z)之間關系為:

    (4)

    (4)中d為(xi,yi)點的深度值,K為深度攝像頭內部參數(shù),由s,u0,v0,fx,fy決定。其中,s=0為傾斜因子,u0=161和v0=122為圖像中心坐標,fx=fy=295為焦距[8]。本文根據GB/T12624-2006對11碼掌圍和長度的規(guī)定,根據實驗效果,取長方形長W=25cm,高H=35cm。以右手為例,采用基于腕坐標最鄰近法則提取的手勢輪廓如圖5b的右圖所示。

    由于閾值處理后獲得的二值圖像其邊緣存在大量毛刺,本文中采用形態(tài)學操作的閉運算進行圖像平滑。圖像處理技術中的閉運算是個先膨脹,再腐蝕的過程。它能在填充物體內細小空洞、連接鄰近物體、平滑其邊界,同時不會明顯改變輪廓面積[9]。試驗結果表明,所選取結構元素的膨脹次數(shù)和腐蝕次數(shù)都為1次時,可以達到良好的去毛刺效果。去毛刺后再使用emgucv進行邊緣提取,圖5c左圖為邊界平滑后的手勢圖像,右圖為提取的手勢輪廓。

    4.4 模板匹配與手勢識別

    本文設定了4個用于識別的右手手勢模板,如圖6所示,對于其大小沒有嚴格的量化標準。由于左右手互為鏡像,因此可以根據對稱性獲取相應的左手手勢模板。用emgucv對模板進行邊緣提取后,提取手勢輪廓的Hu矩進行手勢識別。

    Hu矩指的是利用二階矩和三階規(guī)范化中心矩非線性組合而成的七個典型的不變矩{hu1,hu2,hu3,hu4,hu5,hu6,hu7},具有旋轉,縮放和平移不變性,前三個低階矩反應了圖像邊緣的低頻信息,后四個高階矩體現(xiàn)了目標邊緣的高頻信息[10]。所得Hu矩如表1所示。

    手勢1 手勢2 手勢3 手勢4

    圖6 右手手勢模板

    表1 手勢模板的hu矩

    手勢

    不變距手勢1手勢2手勢3手勢4

    hu19.14E-31.33E-21.08E-25.51E-3

    hu25.34E-68.76E-53.90E-52.47E-6

    hu34.93E-86.79E-85.78E-87.13E-11

    hu46.82E-115.86E-109.13E-101.24E-8

    hu5-1.24E-19-2.30E-19-3.68E-181.11E-17

    hu68.19E-153.74E-12-5.50E-121.93E-11

    hu71.58E-203.69E-185.51E-183.42E-18

    為了防止7個不變矩變化范圍過大,同時考慮到數(shù)據出現(xiàn)負值的情況,對數(shù)據采用取絕對值再取對數(shù)的方法,實際使用的不變矩為[11]:

    hui=lg∣hui∣ (5)

    (5)中hui表示第i個不變矩,i=1,2,…,7。

    相似性有多種度量方式,在本文中,使用距離度量d(α,β)對Hu矩進行匹配,d(α,β)的公式如下[12]:

    (6)

    式中,huκi表示第i個不變矩,i=1,2,…,7

    κ=α,β。

    5 實驗結果與分析

    本文實驗數(shù)據來自Kinect攝像頭采集的320x240像素、30f/s手部深度圖像。圖像采集過程中讓手心正對攝像頭、前臂朝上、手掌與攝像頭平面平行或傾斜一個很小的角度,在Kinect官方規(guī)定的最佳偵測范圍采集不同距離、位置以及旋轉角度的手部形態(tài)圖像,如圖7所示。

    圖7 捕捉的手部圖像

    在光強為17 lux的條件下,每個手勢采集150幅圖像,手勢識別結果如表2所示:

    表2 手勢識別結果

    手勢1手勢2手勢3手勢4

    總數(shù)150150150150

    識別為手勢114912710

    識別為手勢2113200

    識別為手勢3031429

    識別為手勢4010128

    準確率99.3%88%94.6%85.3%

    漏檢數(shù)0213

    漏檢率0%1.3%0.67%2%

    實驗結果表明,手勢在平移、比例變換和在長方形范圍內旋轉的條件下,識別率可以達到85%以上。在實驗中,手勢1取得了較高的識別度,主要是因為該手勢的輪廓相對其他幾種手勢比較簡單集中。而手勢4由于五指的輪廓較為復雜,增加了手勢識別難度,導致了識別率相對降低。從總體上看,靜態(tài)手勢最終識別效果還是讓人滿意的。

    為了驗證手勢識別方案在不同光照強度下的健壯性,在不同光照強度、相同距離的條件下,每個手勢做了100次實驗,表3給出了不同照度下各個手勢的識別率。

    表3 不同光照下識別準確率

    光強

    手勢105 lux40 lux3 lux

    手勢1準確率100%100%100%

    手勢2準確率95%93%97%

    手勢3準確率91%96%97%

    手勢4準確率87%93%94%

    圖8是不同復雜場景下手勢區(qū)域提取的對比。

    圖8 復雜場景下手勢提取效果

    由表3可知,4種手勢在相同距離,不同光照下識別的準確率達到87%以上,室內的光強弱程度對手勢識別的影響并不明顯。圖8表明在復雜的背景下手勢識別系統(tǒng)依舊能準確的對手勢區(qū)域進行提取。因此,本文所采用的手勢識別方案有很強的健壯性。

    6 結束語

    本文使用Kinect提供的骨骼系統(tǒng)和深度圖像進行手勢識別,提出根據腕部坐標用最鄰近法則提取手勢區(qū)域,解決了照度變化和復雜背景下手勢區(qū)域分割的難題,避免了膚色區(qū)域重合對手勢提取的影響,實驗表明對簡單手勢有著較快、較高的識別率,且有較強的健壯性。但本文采用的模版匹配算法還存在一定的局限性,對復雜手勢識別的準確率有待進一步提高,可考慮采用SVM等算法獲得更好的復雜手勢的識別效果。

    參考文獻:

    [1]曾芬芳,王建華,別小川.基于神經網絡的手勢識別[J].機器人,1999,1(01):40-4.

    [2]關然,徐向民.基于計算機視覺的手勢檢測識別技術[J].計算機應用與軟件,2013(30):155-164.

    [3]Jing T,Jin Z.Scanning 3D full human bodies using Kinects[J].Visualization and Computer Graphics,2012,18(04):643-50.

    [4]黃季冬.動態(tài)手勢識別技術研究與實現(xiàn)[D].武漢:華中科技大學,2012.

    [5]Shotton,Real-Time J.Human pose recognition in parts from single depth images[C].Colorado Springs:IEEE Computer Society,2011,1298-9.

    [6]Jarrett Webb.Beginning Kinect Programming with the Microsoft Kinect SDK[M].Berkeley:Apress,2012.

    [7]韓思奇,王蕾.圖像分割的閾值法綜述[J].系統(tǒng)工程與電子技術,2002,24(06):91-4.

    [8]陳曉明.基于Kinect深度信息的實時三維重建和濾波算法研究[D].上海:上海交通大學,2012.

    [9]劉軍華,雷超陽.基于灰度形態(tài)學的車牌定位算法[J].交通科學與工程,2012,28(04):65-71.

    [10]盧阿娟,陳普春.基于顏色聚類和Hu不變矩的道路交通標志檢測[J].物聯(lián)網技術,2013(05):43-6.

    [11]王華瑩.基于機器視覺的車輛檢測和車距測量方法研究[D].大連:大連理工大學,2011.

    [12]程小鵬.基于特征提取的手勢識別技術研究[D].武漢:武漢理工大學,2012.

    作者簡介:方華(1965-),女,副教授,博士研究生,主要研究方向:自動控制技術和機器視覺;劉詩雄(1985-),男,碩士,碩士研究生,主要研究方向:機器視覺;田敬北(1975-),男,壯族,講師,主要研究方向:機器視覺。

    作者單位:廣西科技大學工程訓練中心,廣西柳州 545000;廣西科技大學電子與信息工程學院,廣西柳州 545000

    平泉县| 商都县| 深州市| 宝坻区| 四会市| 长垣县| 定安县| 普兰县| 易门县| 托里县| 云南省| 盐津县| 留坝县| 丹凤县| 永宁县| 景宁| 额敏县| 朝阳区| 石柱| 鄯善县| 东丽区| 镇巴县| 乌拉特中旗| 延川县| 连州市| 集安市| 青海省| 高州市| 铁岭市| 灵武市| 鄂尔多斯市| 吐鲁番市| 大邑县| 西畴县| 安徽省| 应城市| 张家口市| 廉江市| 中西区| 建瓯市| 汉源县|