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

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

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

0 引言

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

1 深度圖像的前景提取

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

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

  1.png

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

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

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

001.jpg

2 人體骨骼提取方法

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

  2.1 距離變換算法

  (1)歐氏距離

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

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

002.jpg

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

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

003.jpg

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

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

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

  2.2 圖像細(xì)化算法

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

004.jpg

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

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

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

  先確定人體區(qū)域部分,然后根據(jù)深度值分布的情況在人體區(qū)域進(jìn)行查找,把與身體區(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)所示。最后對得到的手臂部分進(jìn)行腐蝕操作,如圖7(c)所示,可以得到比較干凈的手臂部分的圖像,繼續(xù)進(jìn)行細(xì)化處理可得到最后的手臂骨架部分,如圖7(d)所示。圖像變化的整個(gè)過程如圖7所示。

006.jpg

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

4 人體骨骼點(diǎn)的定位

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

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

007.jpg

5 實(shí)驗(yàn)結(jié)果分析

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

008.jpg

009.jpg

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

6 結(jié)論

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

參考文獻(xiàn)

  [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] 包建軍,樊菁.魯棒的二值圖像并行細(xì)化算法[J].計(jì)算機(jī)輔助工程,2006(4):43-46.

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


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