《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應用 > 基于深度圖像的人體骨骼提取技術(shù)的研究
基于深度圖像的人體骨骼提取技術(shù)的研究
2015年微型機與應用第12期
關(guān) 沫,梁夢雪
(沈陽工業(yè)大學 信息科學與工程學院,,遼寧 沈陽 110870)
摘要: 利用Kinect設(shè)備獲取深度圖像,,通過前景提取得到深度圖像中的人體目標,使用距離變換(包括歐氏距離,、城市街區(qū)距離,、棋盤距離方法)和圖像細化算法(包括Hilditch細化算法和Zhang快速并行細化算法)研究并實現(xiàn)了人體骨骼的提取,通過實驗對各算法的運行效果進行了對比分析,。同時,,利用深度圖像具備深度信息這一特點解決了在骨骼提取中出現(xiàn)的人體自遮擋問題。在獲取的人體骨骼線基礎(chǔ)上根據(jù)人體測量比例定位人體各骨骼關(guān)節(jié)點,,最終通過實驗證明了該骨骼提取方法的有效性,。
Abstract:
Key words :

  摘  要: 利用Kinect設(shè)備獲取深度圖像,通過前景提取得到深度圖像中的人體目標,,使用距離變換(包括歐氏距離,、城市街區(qū)距離、棋盤距離方法)和圖像細化算法(包括Hilditch細化算法和Zhang快速并行細化算法)研究并實現(xiàn)了人體骨骼的提取,,通過實驗對各算法的運行效果進行了對比分析,。同時,利用深度圖像具備深度信息這一特點解決了在骨骼提取中出現(xiàn)的人體自遮擋問題,。在獲取的人體骨骼線基礎(chǔ)上根據(jù)人體測量比例定位人體各骨骼關(guān)節(jié)點,,最終通過實驗證明了該骨骼提取方法的有效性,。

  關(guān)鍵詞: Kinect;深度圖像,;細化算法,;骨骼提取

0 引言

  隨著人機交互技術(shù)的發(fā)展,人們對各種計算設(shè)備的控制不再局限于使用鍵盤,、鼠標,、遙控器、觸摸屏或各種傳感器,,還可以讓用戶直接與計算機進行“溝通”,,通過對人體動作的分析得到人體運動的參數(shù),解析出相應的控制指令使計算機完成相應的任務(wù),,實現(xiàn)非接觸式的人機交互,。人體骨骼提取是人體運動分析過程中捕獲人體動作的關(guān)鍵步驟,對分析人體的運動姿態(tài),,獲取人體運動參數(shù)有重要意義,。在人體運動過程中,經(jīng)常會出現(xiàn)人體自身遮擋的情況,,如何解決這一問題是獲取人體動作的難點,。本文使用Kinect設(shè)備獲取深度圖像,對人體的骨骼提取技術(shù)進行研究,,并利用深度圖像具有的深度信息來解決人體自身遮擋問題,。

1 深度圖像的前景提取

  Kinect通過其紅外發(fā)射器向三維場景中發(fā)出連續(xù)的近紅外激光方式獲取深度圖像,當激光照射到粗糙物體時就會形成具有高度隨機性的衍射斑點,,稱為激光散斑,。激光散斑是一種具有三維縱深的編碼技術(shù)[1-2]。根據(jù)成像物體的不同距離會變換出不同圖案的激光散斑,,被激光散斑照射的空間內(nèi)會即時地對其進行標記,,之后紅外攝像頭接收空間內(nèi)的標記,并將相關(guān)的數(shù)據(jù)傳遞給Kinect的內(nèi)部圖像處理器芯片,,圖像處理器再分析接收到的散斑圖案在空間中的距離,,最后形成深度圖像。

  本文通過對深度圖像的深度值的判定把前景區(qū)域和背景區(qū)域進行區(qū)分,。在這里就會涉及關(guān)于閾值門限的設(shè)定內(nèi)容,,深度圖像前景提取中閾值的限定發(fā)揮著關(guān)鍵性的作用,閾值門限的取值取決于深度圖像中深度值最大的點,。深度圖像前景提取的公式如式(1)所示:

  1.png

  其中,fg(x,,y)是前景圖像中(x,,y)處的邏輯值,;d(x,y)表示深度圖像中(x,,y)處坐標的深度值,;0}{W0~`KSYY$6~X~(B8UJ7O.jpg代表閾值門限,在不同的場景下最大深度值不同,,導致閾值是一個可變的值,,閾值0}{W0~`KSYY$6~X~(B8UJ7O.jpg要根據(jù)最大深度值的參數(shù)進行選定。定義0}{W0~`KSYY$6~X~(B8UJ7O.jpg=(k×dmax),,其中用dmax表示最大深度值,,k的取值與檢測準確率有關(guān)聯(lián)。檢測準確率如式(2)所示:

  檢測準確率=α/β(2)

  其中,,α代表正確檢測到的目標數(shù),,β代表檢測到的目標總數(shù)。為達到相對最好的檢測效果,,使漏檢和誤檢都盡可能小,,從實驗可以得出當k取值為0.75時基本可以達到最佳效果[3]。前景提取的圖像如圖1所示,。

001.jpg

2 人體骨骼提取方法

  在上述工作中實現(xiàn)了深度圖像中人體目標前景提取,,但在人體運動過程中,經(jīng)常會出現(xiàn)人體自身遮擋的情況,,本文利用深度圖像中的深度值解決其他剪影的骨骼提取方法可能無法解決的遮擋問題,。為了實現(xiàn)更為準確的骨骼提取,對現(xiàn)有的一些骨骼提取方法進行了實驗研究,。

  2.1 距離變換算法

 ?。?)歐氏距離

  歐式距離是最常用的距離定義方式,即所在空間內(nèi)任意兩點的直線距離[3],。歐氏距離公式如式(3)所示,。

  3.png  其中,p,、q分別代表深度圖像的背景坐標點與前景坐標點的集合,。圖2是目標人體的前景提取后的圖像,其中(b)為歐氏距離變換后得到的圖像,。

002.jpg

 ?。?)城市街區(qū)距離和棋盤距離

  街區(qū)距離也稱為絕對值距離,即一個像素點從它的起點處移動到它的終點位置所需要的步數(shù),,并且要求像素點的移動限定在它的上下左右這幾個方向,,如式(4)所示。圖3為城市街區(qū)距離變換后獲取到的圖像,。

003.jpg

  D(p,,q)=|(px-qx)|+|(py+qy)|(4)

  棋盤距離的基本思想是像素點可以在沿著對角線的方向上進行移動,,在對角線方向上移動的距離稱為棋盤距離,如式(5)所示,。圖4為棋盤距離變換后得到的圖像,。

  D*(p,q)=max|(px-qx)|+|(py+qy)|(5)

  2.2 圖像細化算法

  圖像的細化操作是在保持圖像原有的形狀基礎(chǔ)上再除去圖像上的一部分點,,最后獲取到所需要的骨架圖[4],。本文采用Zhang快速并行細化算法與Hilditch算法進行對比研究,探索在人體骨骼提取上效果更佳的方法,。圖5是利用Hilditch細化算法得到的骨骼提取圖像,,圖6是利用Zhang細化算法得到的骨骼提取圖像。

004.jpg

  從上述方法成像效果看,,歐氏距離提取出的人體骨骼線比較連貫,,但位置上存在偏移,有較明顯的誤差,;使用城市街區(qū)和棋盤距離變換算法提取人體骨骼線有時會出現(xiàn)不連貫的現(xiàn)象,。從圖像細化算法的成像效果來看,Zhang快速并行細化算法提取的人體骨骼線更干凈,,圖像更清晰,、更穩(wěn)定,圖像比較流暢時基本沒有多余毛刺,。最終選定Zhang快速并行快速細化算法進行人體骨骼的提取,。

3 利用深度信息處理人體自遮擋問題

  如果人處于Kinect設(shè)備要求的可視范圍內(nèi),做一些產(chǎn)生遮擋的動作,,如手臂處于身體前面的位置,,就會在獲取的深度圖像中產(chǎn)生與身體部分不一樣的深度值,可以利用不同的深度數(shù)據(jù)來處理手臂遮擋的問題,。

  先確定人體區(qū)域部分,,然后根據(jù)深度值分布的情況在人體區(qū)域進行查找,把與身體區(qū)域深度值相差較大的部分看成是手遮擋在身體前面的情況,;而與身體區(qū)域深度值相差不大的部分,,則看成是身體部分。對前景區(qū)域的腐蝕會致使人的頭部,、腿部和手臂先被腐蝕掉,。

005.jpg

  為了處理手臂遮擋的問題,要將手臂與身體部分區(qū)分出來,,再分別提取骨架,,最后融合在一起。首先,需要確定身體區(qū)域內(nèi)部近似于矩形的部分,,如圖7(a)所示,,求出這一部分深度值的平均值,把此處的深度值記為h,。刪去與平均值相差3以上的深度值,就可以除去手臂遮擋在身體前面的區(qū)域部分,,便于求得身體區(qū)域的深度值,。其次,對剩下的深度值部分再求平均值,,這樣得出的平均值就是身體部分的平均深度值,,設(shè)定此處深度值為h*。將與深度值h與深度值h*相差4以內(nèi)深度值的部分設(shè)置為零,,最后留下的部分就是除去了身體矩形區(qū)域部分而得到的手臂部分,,如圖7(b)所示。最后對得到的手臂部分進行腐蝕操作,,如圖7(c)所示,,可以得到比較干凈的手臂部分的圖像,繼續(xù)進行細化處理可得到最后的手臂骨架部分,,如圖7(d)所示,。圖像變化的整個過程如圖7所示。

006.jpg

  將得到的手臂部分的骨骼圖與前面得到身體部分骨骼圖相融合就可以得到完整的骨骼圖,。如圖8所示,,圖8(a)為深度圖像前景提取后進行圖像處理得到的圖像;圖8(b)為(a)圖直接進行Zhang快速并行細化所得到骨骼線,;圖8(c)是將(b)圖人體骨骼圖像與圖7(d)圖手臂骨骼提取的圖像相組合,,最后得到人體骨骼提取后的圖像。

4 人體骨骼點的定位

  本文以NASA人體測量數(shù)據(jù)中人體比例方面的數(shù)據(jù)為基礎(chǔ),,實現(xiàn)人體骨骼關(guān)節(jié)點的定位,。考慮到人的大部分動作都是通過手臂來完成的,,所以著重研究人體上半身的骨骼點的標記,。

  通常將頭部細化后的頂點位置設(shè)定為頭部骨骼關(guān)節(jié)點位置,但這樣的定位方法較為粗略,,為提高頭部骨骼關(guān)節(jié)點定位準確度,,本文先檢測頭部區(qū)域位置,然后在此區(qū)域內(nèi)找到重心點位置,,把重心點設(shè)定為人頭骨骼關(guān)節(jié)點,。在人體手臂彎曲時提取到的手臂骨骼線是有弧度的,不能準確定位哪個點為肘部骨骼關(guān)節(jié)點,。本文通過深度圖像得到三維空間中兩點間的實際距離,,相應的方法最早在openkinect.org網(wǎng)站上由Stéphane Magnenat提出,,這里不再詳細說明。將手臂線上的點轉(zhuǎn)換為對應實際空間的坐標,,依據(jù)最大三角形算法找出一個點,,使得這個點滿足與肩部關(guān)節(jié)點和手部關(guān)節(jié)點,這3個點在實際三維空間中構(gòu)成的三角形面積最大[5],。最后能夠認定這個點為手臂中的轉(zhuǎn)折點,,即為肘部關(guān)節(jié)點。如果求出的面積都很類似,,并且值都非常小,,那么可以近似認為手臂是伸直狀態(tài),此時取肩部關(guān)節(jié)點與手部關(guān)節(jié)點連線的中點位置為肘部關(guān)節(jié)點,。如圖9所示,,弧線是人體骨骼提取圖中手臂骨骼線圖,連接A點和B點能夠與弧線上的點構(gòu)成三角形,,在多個可能的點中,,選取能夠構(gòu)成最大三角形的那個點所在的位置,將其確定為肘部關(guān)節(jié)點,。

007.jpg

5 實驗結(jié)果分析

  在實驗中采集了幾十組人體圖像,,重點分析研究兩種情況,一種是當手臂不與身體形成遮擋時,,人的雙手會自然在身體兩側(cè),。選取幾組處理過的深度圖像前景提取圖,先進行人體骨骼線的提取,,再定位出人體各部位的骨骼關(guān)節(jié)點,,如圖10所示。

008.jpg

009.jpg

  另一種是手臂與身體存在遮擋的情況,,圖11是一些有代表性的圖像,。每組第一張是深度圖像前景提取再進行圖像處理后的圖像;第二張為進行人體骨骼提取得到的人體骨骼線,;第三張為提取遮擋部分的骨骼線,;第四張為將第二張和第三張?zhí)崛〉墓趋谰€進行疊加,并標記出骨骼關(guān)節(jié)點位置的圖像,。

6 結(jié)論

  本文首先獲取深度圖像的前景部分,,對距離變換和圖像細化算法的骨骼提取方法進行了研究與實現(xiàn)。根據(jù)深度圖像所具備的深度信息解決人體運動中可能存在的自遮擋問題,。其次,,在實現(xiàn)骨骼提取的基礎(chǔ)上定位人體骨骼關(guān)節(jié)點,檢測人頭所在位置,并設(shè)定人頭重心點為頭部關(guān)節(jié)點位置,。根據(jù)最大三角形算法實現(xiàn)手臂的肘部關(guān)節(jié)點定位,,人體其他部位關(guān)節(jié)點參考人體比例結(jié)構(gòu)進行定位。最后通過實驗驗證了本文中人體骨骼提取方法的有效性,。

參考文獻

  [1] CHEN L,, WEI H, FERRYMAN J M. A survey of human motion analysis using depth imagery[J]. Pattern Recognition Letters,, 2013,, 34(15):1995-2006.

  [2] LEE S. Depth camera image processing and applications[C]. 19th IEEE International Conference on Linage Processing,IEEE,, 2012:545-548.

  [3] STEFAN G, ROBIN S. Anti-aliased euclidean distance transform[J]. Pattern Recognition Letters,,2011(32):252-257.

  [4] 包建軍,,樊菁.魯棒的二值圖像并行細化算法[J].計算機輔助工程,2006(4):43-46.

  [5] 李斌.單幅深度圖人體關(guān)節(jié)點定位[D].武漢:華中科技大學,,2012.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。