王靜雯 張慧玲* 沈陽工學(xué)院機械與運載學(xué)院
機場和旅游景點的門票信息往往有著成人票和兒童票之分。而兒童票的規(guī)定則有未滿1.2m的兒童半價,未滿1m的兒童免票的分別。然而在機場和景點的人流量十分密集,使用人工的方式進行人體身高判別會費時費力。因此設(shè)計一套自動身高識別的測試方案具有十分重要的意義。
(1)測試范圍:0~3m
(2)身高測試精度:±10cm(0~2m)
(3) 身高測試人體數(shù)量:1人
(1)能夠快速的進行精度范圍內(nèi)的人體身高識別,提高系統(tǒng)的運行速度,能夠使系統(tǒng)在人流量大的情況下快速運行。在人體呈現(xiàn)不同姿勢時,都能夠精確的測量身高值。
(2)具有良好的穩(wěn)定性和自檢功能,能夠及時提醒用戶設(shè)備的目前情況。
基于kinect傳感器的快速測試共有三種方案使用kinect的人體骨骼信息來測量人體身高。其中第一種方案為頭骨趾骨測量方案,第二種為臂長等效測量方案,第三種為骨骼映射深度信息測量方案。
其中前兩中方案使用kinect API中關(guān)于骨骼的函數(shù)庫,而后者則不僅使用骨骼信息函數(shù),還使用了深度信息函數(shù),同時使用了骨骼坐標(biāo)與深度坐標(biāo)的映射函數(shù)。
方案一:頭骨趾骨測量
通過kinect提供的來自SkeletonStream的骨骼數(shù)據(jù),捕獲當(dāng)前用戶的頭骨和趾骨的骨骼信息。得到頭骨與趾骨的空間位置坐標(biāo)分別為(x1,y1,z1),(x2,y2,z2)。因為得到的坐標(biāo)信息在 kinect中已經(jīng)換算算成了以單位為m的坐標(biāo),所以只需要得到兩點的距離便可以求得人體的身高。
這樣得到D之后便可以通過軟件界面顯示人體當(dāng)前身高。
方案二:臂長測量
由于人體的頭骨趾骨的距離與實際人體身高的誤差十分大,所以使用間接的測量方案便可有效的避免骨頭與真實輪廓對應(yīng)不想符的問題。測試用戶在坐姿的過程中仍然可以進行身高的估計計算。使用戶在kinect前保持雙手平舉,測量用戶的臂長,利用臂長與身高的相似關(guān)系來進行身高的測量。
方案三:頭趾骨深度映射
本方案使用的是骨骼信息與深度信息的映射來解決精度問題的。首先kinect提供的數(shù)據(jù)包括彩色RGB信息,場景深度信息,以及進行運算處理過之后的人體骨骼信息。同時這三中信息一共包含四種坐標(biāo),分別為RGB坐標(biāo),深度信息的坐標(biāo),骨骼提取之后的場景坐標(biāo),以及在屏幕上顯示出這些信息的顯示坐標(biāo)。
于是利用kinect對這四種坐標(biāo)的準(zhǔn)確映射函數(shù),可以良好的進行人體骨骼坐標(biāo)與深度信息坐標(biāo)的映射。
在人體站直時,捕捉到用戶的頭骨和趾骨的骨骼坐標(biāo)點,并將這兩個點映射到深度信息的坐標(biāo)中,得到映射之后的兩個像素點,同時針對每一個像素點進行上下鄰域判定,當(dāng)鄰域點的深度信息突變時,便找到了人體的輪廓處,同時記錄下此時這個人體輪廓的最高點的像素坐標(biāo),得到了一個頭頂最高處的像素位置。
人體的實際高度表示便可以用公式來表示
即:D=(D1+D2)/D1*d
D——骨骼坐標(biāo)中的頭骨與趾骨的實際距離,單位為m
D1——骨骼坐標(biāo)映射到深度圖中的像素距離,單位為pix
D2——通過尋找頭骨鄰域得到人體高度增加的像素值,單位為pix
D——人體的實際高度,
由于測試系統(tǒng)中采用了kinect的骨骼技術(shù),解決了其他測量系統(tǒng)中無法消除的人體彎曲干擾,和實時性差的問題。與傳統(tǒng)的只能定性的測量人高的閾值進行的判斷相比,本系統(tǒng)的可調(diào)節(jié)行強,維護更新方便,硬件安裝簡單。測試速度和測試精度能夠達到良好的要求,可以完成預(yù)定的測試任務(wù)。
本文共設(shè)計了三種人體身高的測量方案。
第一種方案適合站立的人進行身高測量,但在測量結(jié)果得到之后需要加上9~11cm來保證人體的身高偏差不是很大。雖然代碼簡單,但是精度低。
第二種方案適合坐姿的人進行身高的測量,運用臂長身高的近似關(guān)系來進行身高的估算,這種方案與第一種有異曲同工的妙處,都是使用骨骼提取的距離關(guān)系來進行測量,相比與第一種方案,此方案的精確度有所提高但是并沒有本質(zhì)提升。
第三種方案是精確的人體身高測量方案,運用骨骼映射到深度圖形中的方法,在骨骼點附近進行鄰域判斷,尋找突變鄰域,得到用戶的頭頂最高點深度坐標(biāo)。然后利用最高點與趾骨的坐標(biāo)進行還原為原來用戶的真實身高。這種方法的計算量和編程步驟較為繁瑣,但是能夠精確的提取出用戶的身高信息。在精度上第三種方案最佳。