湯 辰,萬(wàn) 衡
(上海應(yīng)用技術(shù)學(xué)院,上海 201418)
在生物特征識(shí)別技術(shù)中:人臉識(shí)別、虹膜識(shí)別、掌紋識(shí)別、聲音識(shí)別等有著廣闊的應(yīng)用前景,以上技術(shù)都是利用計(jì)算機(jī)技術(shù)與人類生物特征的關(guān)聯(lián)研究,因此備受矚目[1]。其中人體骨骼信息的提取可以應(yīng)用于個(gè)人隱私保護(hù)、信息安全、金融服務(wù)和刑偵鑒定等領(lǐng)域[2]。而對(duì)于服務(wù)機(jī)器人這個(gè)朝陽(yáng)行業(yè)來(lái)講,該技術(shù)更是必不可缺[3]。目前微軟利用Kinect的紅外景深攝像頭采集人體骨骼信息,即使全身包裹衣服,依然可以獲取骨骼點(diǎn),該技術(shù)可以提取人的20個(gè)關(guān)節(jié)點(diǎn)信息[4],依次測(cè)算出骨骼尺寸及比例,機(jī)器人可以根據(jù)該特征信息確認(rèn)人物身份以及需要跟蹤的人物位置,但實(shí)驗(yàn)發(fā)現(xiàn)當(dāng)出現(xiàn)在攝像頭視野范圍內(nèi)的人物較少時(shí),骨骼檢測(cè)相對(duì)穩(wěn)定,相反則容易出現(xiàn)混亂。
針對(duì)以上出現(xiàn)的問(wèn)題,本文采用激光掃描儀來(lái)掃描人腿信息進(jìn)行輔助修正,它所獲取的是全離散的矢量距離點(diǎn)構(gòu)成的“點(diǎn)云”數(shù)據(jù),它掃描所獲得的每個(gè)像素都包含一個(gè)角度值和距離值[5]。因此使用激光掃描儀的輔助手段進(jìn)行數(shù)據(jù)分析有很大的優(yōu)勢(shì),尤其是在結(jié)合了視頻圖像數(shù)據(jù)和激光數(shù)據(jù)時(shí)體現(xiàn)出了它的優(yōu)越性。
人體的骨骼信息是通過(guò)處理Kinect的深度數(shù)據(jù)獲得的[6],在景深數(shù)據(jù)的基礎(chǔ)之上提取人體骨骼信息的過(guò)程就是骨骼追蹤。本文采用Kinect SDK的骨骼追蹤技術(shù)來(lái)獲取骨骼數(shù)據(jù),其最多可以提供兩名用戶的詳細(xì)骨骼信息[7]。首先,Kinect的CMOS紅外傳感器會(huì)以30 frame/s的速度來(lái)掃描周邊的環(huán)境,探測(cè)到紅外光反射來(lái)計(jì)算視野范圍內(nèi)每一個(gè)像素點(diǎn)的深度值,并且生成景深圖像流,即獲得了深度數(shù)據(jù)。然后,CMOS紅外傳感器在視野范圍內(nèi)的深度圖像中尋找可能是人體的物體,最后根據(jù)產(chǎn)生的X,Y,Z數(shù)據(jù)來(lái)確定人體骨骼點(diǎn),區(qū)分哪部分是頭、手、及身體[8]。
基于Kinect SDK的骨骼追蹤流程如圖1所示。
圖1 骨骼識(shí)別流程
(1)初始化 初始化Kinect設(shè)備以及NITE環(huán)境,攝像頭仰角設(shè)置。
(2)打開(kāi)攝像頭 打開(kāi)RGB流以及深度數(shù)據(jù)流的畫(huà)面[9]。
(3)數(shù)據(jù)轉(zhuǎn)換 將深度數(shù)據(jù)類型轉(zhuǎn)換成Opencv中的IplImage圖像類型。
(4)創(chuàng)建User跟蹤器 創(chuàng)建并讀取User Frame信息,并且從中獲取User的信息。
(5)骨骼獲取跟蹤 根據(jù)所獲取的User信息完成對(duì)人體骨骼的檢測(cè)。其骨骼空間的坐標(biāo)系(X,Y,Z)表示為:skeleton.Joint.position.X,skeleton.Joint.po?sition.Y,skeleton.Joint.position.Z,將骨骼空間的3D坐標(biāo)轉(zhuǎn)換成屏幕形式的2D坐標(biāo),根據(jù)此坐標(biāo)求出兩點(diǎn)之間的距離以及兩點(diǎn)之間的水平距離。并采用連線的方式將骨架畫(huà)出來(lái)。
(6)退出程序 關(guān)閉Kinect數(shù)據(jù)流、跟蹤器、NITE環(huán)境以及釋放Frame信息。
在骨骼的檢測(cè)識(shí)別中,可以根據(jù)人體骨骼對(duì)人進(jìn)行編號(hào)區(qū)分。其中有很多信息可以作為人物身份標(biāo)定,比如有:身高、肩寬、腿長(zhǎng)以及臂長(zhǎng)等。根據(jù)上節(jié)中所說(shuō)的骨骼空間坐標(biāo)的表達(dá),可得肩寬L、身高H以及身高肩寬比S為:
按照骨骼比例中的某一種情況S進(jìn)行分類,其實(shí)際效果如圖2所示;在某些情況下也會(huì)出現(xiàn)圖3情況的誤檢測(cè)。
如圖2中,假設(shè)機(jī)器人所要跟隨的是右邊人物的骨架信息,試驗(yàn)發(fā)現(xiàn),在多人干擾的情況下,右邊人物的骨架信息有時(shí)會(huì)跳轉(zhuǎn)到干擾人身上,這種情況極大地錯(cuò)誤引導(dǎo)了機(jī)器人的動(dòng)作,針對(duì)該情況以及誤檢測(cè)的情況,本文采用激光掃描的方法來(lái)糾正。
圖2 骨骼人物區(qū)分
圖3 將柱子也檢測(cè)成為了人體骨骼所導(dǎo)致的誤檢測(cè)
人腿有一個(gè)顯著的特征就是呈圓弧狀[9],如圖4所示,因此本文針對(duì)此特征,利用激光掃描儀獲取一連串離散的點(diǎn),將其進(jìn)行聚類分析,識(shí)別出人腿的聚類信息,計(jì)算出人腿的中心點(diǎn),從而確定目標(biāo)人物的位置。
圖4 激光掃描人腿數(shù)據(jù)點(diǎn)
Tk[n]表示人腿信息點(diǎn)的集合,其中n表示激光掃描人腿的點(diǎn)數(shù)。其識(shí)別人腿的原理如下:
(1)激光掃描人腿的首尾點(diǎn)的直線長(zhǎng)度L1和連線這些點(diǎn)的總長(zhǎng)度L2為:
通常情況下人無(wú)論是在行走或者站立其兩腿之間的距離一般不超過(guò)60 cm,也就是滿足以上條件并且L<0.6 m時(shí),則符合雙腿的條件,若存在3個(gè)或者3個(gè)以上的點(diǎn)兩兩之間相互滿足以上的條件,則認(rèn)為是無(wú)效的點(diǎn),繼續(xù)掃描。如圖5所示。箭頭的起點(diǎn)為激光的位置,兩個(gè)標(biāo)為白色的數(shù)據(jù)點(diǎn)則判定為人,白色區(qū)域兩邊的凸點(diǎn)即為人腿。
圖5 激光掃描數(shù)據(jù)點(diǎn)
實(shí)驗(yàn)中采用的激光為L(zhǎng)MS111系列,該傳感器已經(jīng)達(dá)到了0.1°的分辨率,500 Hz的掃描頻率以及0.5 ms~2 ms的響應(yīng)時(shí)間,并且其不受光照強(qiáng)度變化的影響,掃描角度為70°,20 m的檢測(cè)距離,針對(duì)10%反射率的黑色物體依然可以達(dá)到18 m。實(shí)驗(yàn)中將該設(shè)備安裝在機(jī)器人地盤(pán)的上端,采用以太網(wǎng)與主機(jī)進(jìn)行通信。
通常骨骼點(diǎn)所檢測(cè)到的Skeleton.Joint.Position.Z與激光掃描人腿的距離信息Z存在一定的閾值關(guān)系,如圖6所示。它是本文的服務(wù)機(jī)器人試驗(yàn)平臺(tái),激光與Kinect不在一個(gè)垂直面上,該閾值P可取30 cm,當(dāng)他們的差值小于P值時(shí),則該骨骼點(diǎn)是沒(méi)有問(wèn)題的,若出現(xiàn)骨骼誤檢測(cè)時(shí),通常P值的大小會(huì)反應(yīng)出該情況,此時(shí)取人腿中心點(diǎn)T(xo,yo)。人與機(jī)器人之間的距離會(huì)始終保持1.5 m左右,也就是所測(cè)骨骼點(diǎn)以及激光數(shù)據(jù)點(diǎn)與機(jī)器人的徑直距離需要保持在1.5 m左右,人快則機(jī)器人快,人慢則機(jī)器人慢,當(dāng)他們之間的距離小于1 m時(shí),機(jī)器人停止運(yùn)動(dòng),因此骨骼點(diǎn)距離或者激光掃描點(diǎn)距離大于2 m左右時(shí),即在正常檢測(cè)情況下,不可能出現(xiàn)徑直距離超過(guò)2 m的,否則為錯(cuò)誤點(diǎn),此時(shí)應(yīng)取小于該距離的點(diǎn)進(jìn)行跟蹤。其中目標(biāo)人物的位置與機(jī)器人的輪子速度關(guān)系如下:
其中ω為3個(gè)輪子的角速度,θ為世界坐標(biāo)系中X軸到機(jī)器人中X軸的角度,逆時(shí)針為正,X,Z則是機(jī)器人相對(duì)目標(biāo)人物X軸方向和徑直的距離,z>0表示向前移動(dòng),x>0表示向右移動(dòng)。選擇了5個(gè)人來(lái)參加本次實(shí)驗(yàn),當(dāng)中有一個(gè)目標(biāo)人物,其他4人均為干擾背景,其測(cè)試結(jié)果如表1所示。
圖6 服務(wù)機(jī)器人
表1 實(shí)驗(yàn)數(shù)據(jù)
本文提出了針對(duì)骨骼誤檢測(cè)進(jìn)行了研究,利用人腿圓弧狀的特征,使用激光掃描人腿信息獲取人的位置及目標(biāo)人物的距離,在一定程度上糾正了骨骼誤檢測(cè)的問(wèn)題。該方法在服務(wù)機(jī)器人平臺(tái)進(jìn)行試驗(yàn),試驗(yàn)結(jié)果驗(yàn)證了本文方法的有效性,為日后對(duì)服務(wù)機(jī)器人的研究奠定了基礎(chǔ)。
[1]馬虹.基于WiFi的云機(jī)器人設(shè)計(jì)研究[J].電子器件,2014,37(2):368-374.
[2]李恒.基于Kinect骨骼跟蹤功能的骨骼識(shí)別系統(tǒng)研究[D].
[3]王一凡,顏建美,陳東升.基于RFID和視覺(jué)的工業(yè)機(jī)器人系統(tǒng)應(yīng)用與實(shí)現(xiàn)[J].電子器件,2013,36(6):872-875.
[4]韓文錫,張維忠,趙志剛.基于深度圖像的人體骨骼點(diǎn)的跟蹤矯正方法[J].青島大學(xué)學(xué)報(bào),2014,27(1):83-86.
[5]趙艷梅,張愛(ài)武,王貴賓.基于激光掃描儀的人腿信息數(shù)據(jù)獲取與處理[J].資源環(huán)境與工程,2007,21(3):309-311.
[6]Human_Interface_Guideline_v1.7[M/OL].1-56.
[7]顧容,何益明,金麗燕.基于Kinect骨骼跟蹤技術(shù)的智能教學(xué)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2013,6(30):276-280.
[8]樊景超,周國(guó)民.基于Kinect骨骼跟蹤技術(shù)的手勢(shì)識(shí)別研究[J].安徽農(nóng)業(yè)科學(xué),2014,42(11):3444-3446.
[9]張穎超,段京易,胡凱,等.基于自然環(huán)境辨識(shí)的移動(dòng)機(jī)器人位姿快速檢測(cè)[J].電子器件,2014,37(5):876-881.
[10]王燦,孔斌,韋虎.基于激光雷達(dá)機(jī)器人的目標(biāo)人跟蹤方法研究[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(7):164-168.
湯 辰(1988-),男,漢,江蘇揚(yáng)州,上海應(yīng)用技術(shù)學(xué)院,碩士,主要從事圖像處理的研究,13681872133@163.com;
萬(wàn) 衡(1963-),男,漢,上海,上海應(yīng)用技術(shù)學(xué)院,副教授,主要從事電力電子與電氣傳動(dòng)的研究,6450387@qq.com。