国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于kinect骨骼追蹤技術(shù)的機(jī)器人運(yùn)動(dòng)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)?

2017-12-18 06:21李茜宋夢(mèng)文豪
關(guān)鍵詞:手勢(shì)骨骼小車

李茜 宋夢(mèng) 文豪

(陜西科技大學(xué)電氣與信息工程學(xué)院 西安 710021)

基于kinect骨骼追蹤技術(shù)的機(jī)器人運(yùn)動(dòng)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)?

李茜 宋夢(mèng) 文豪

(陜西科技大學(xué)電氣與信息工程學(xué)院 西安 710021)

為了實(shí)現(xiàn)自然人機(jī)交互,提高用戶體驗(yàn),嘗試引入微軟公司的一款體感周邊外設(shè)Kinect設(shè)備,利用Kinect傳感器獲取的人體骨骼追蹤識(shí)別點(diǎn),結(jié)合Opencv圖像處理算法,畫出左右手六種手勢(shì)狀態(tài),然后利用通過Windows Socket網(wǎng)絡(luò)編程的TCP/IP協(xié)議把相應(yīng)的運(yùn)動(dòng)指令傳輸給機(jī)器人,實(shí)現(xiàn)與系統(tǒng)的交互控制,結(jié)果表明,通過此方式能較好地實(shí)現(xiàn)人機(jī)交互。

手勢(shì)狀態(tài)識(shí)別;Kinect;網(wǎng)絡(luò)通訊

1 引言

隨著計(jì)算機(jī)技術(shù)的發(fā)展和廣泛應(yīng)用,人機(jī)交互已經(jīng)成為當(dāng)今重大科學(xué)技術(shù)之一[1]。人機(jī)交互技術(shù)的研究?jī)?nèi)容主要有表情識(shí)別、聲音識(shí)別和手勢(shì)識(shí)別等。手勢(shì)作為一種自然直觀的人機(jī)交互模式,具有直觀、自然和信息量豐富等眾多優(yōu)點(diǎn)。目前,手勢(shì)識(shí)別主要應(yīng)用于機(jī)器人控制[2~3]、虛擬鼠標(biāo)、體感游戲[4]、PC控制[5]等方面。

為此,筆者利用Kinect傳感器的骨骼跟蹤技術(shù),利用opencv圖像處理技術(shù),捕獲用戶手勢(shì)狀態(tài)作為控制指令輸出,控制機(jī)器人相應(yīng)的運(yùn)動(dòng),實(shí)現(xiàn)了較好的人機(jī)交互。

2 Kinect簡(jiǎn)介

2.1 Kinect設(shè)備

2010年,Kinect是微軟推出的最新的基于體感交互的人機(jī)交互設(shè)備。Kinect最初作為Xbox360游戲機(jī)的外接設(shè)備發(fā)布,利用即時(shí)動(dòng)態(tài)追蹤、影像識(shí)別、麥克風(fēng)輸入、語(yǔ)音識(shí)別等功能讓玩家擺脫傳統(tǒng)游戲手柄的束縛,通過自己的肢體動(dòng)作來(lái)控制游戲。

2012年,微軟并沒有將這一先進(jìn)的技術(shù)局限在游戲行業(yè),而是緊接著將Kinect技術(shù)推廣到Windows平臺(tái),開發(fā)了Kinect for Windows,旨在鼓勵(lì)眾多開發(fā)者設(shè)計(jì)基于Kinect體感交互技術(shù)的應(yīng)用,從而在各個(gè)行業(yè)領(lǐng)域里改變?nèi)藗児ぷ?、生活和娛樂的方式?/p>

2014年,微軟發(fā)布第二代Kinect for Windows,從硬件上對(duì)第一代做了很大改進(jìn)。

圖1 kinect設(shè)備

·三只眼睛:彩色攝像頭、深度(紅外)攝像頭、紅外線投影機(jī)

·彩色攝像頭:用于拍攝視角范圍內(nèi)的彩色視頻圖像。

·紅外投影機(jī):主動(dòng)投射近紅外光譜,照射到粗糙物體、或是穿透毛玻璃后,光譜發(fā)生扭曲,會(huì)形成隨機(jī)的反射斑點(diǎn)(稱為散斑),進(jìn)而能被紅外攝像頭讀取。

·深度(紅外)攝像頭:分析紅外光譜,創(chuàng)建可視范圍內(nèi)的人體、物體的深度圖像。

·四只耳朵:四元線性麥克風(fēng)陣列。

聲音從4個(gè)麥克風(fēng)采集,內(nèi)置數(shù)字信號(hào)處理器DSP等組件,同時(shí)過濾背景噪聲,可定位聲源方向。

Kinect可以同時(shí)獲取RGB和深度圖像數(shù)據(jù),支持實(shí)時(shí)的全身的骨骼追蹤,并可以識(shí)別一系列的動(dòng)作。圖1是它的外觀圖,左邊鏡頭為紅外線發(fā)射器,中間鏡頭是一般常見的RGB彩色攝像頭,右邊鏡頭是紅外線CMOS攝像頭所構(gòu)成的3D深度傳感器。

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

2.2 kinect核心技術(shù)

2.2.1 深度信息

深度(紅外)攝像頭:分析紅外光譜,創(chuàng)建可視范圍內(nèi)的人體、物體的深度圖像。Kinect紅外線發(fā)射器(Infrared Projector)發(fā)射出雷射光,通過紅外發(fā)射器鏡頭前的光柵(diffuser),均勻的投射到測(cè)量空間,測(cè)量空間的粗糙物體反射,形成隨機(jī)的散斑,再通過紅外攝影機(jī)(Infrared Camera)記錄空間的每個(gè)散斑,通過晶片的計(jì)算便的得到3D深度圖像。

在Kinect 2.0中,深度坐標(biāo)空間的范圍是(高*寬=424*512)。從深度信息Frame中提取數(shù)據(jù),主要就是把Frame中的數(shù)據(jù)轉(zhuǎn)存到一個(gè)數(shù)組中。

Kinect會(huì)對(duì)獲得的深度圖像進(jìn)行“像素級(jí)”評(píng)估。首先分析比較接近Kinect的區(qū)域,判斷最有可能是“人體”的目標(biāo),其次逐點(diǎn)掃描這些深度區(qū)域深度圖像的像素,來(lái)判斷32個(gè)不同的人體部位。

Kinect主要通過紅外發(fā)射器和3D深度傳感器獲取空間圖像信息。采用一種不同于傳統(tǒng)的TOF或者結(jié)構(gòu)光測(cè)量技術(shù)的光編碼(light coding)技術(shù)向空間投射激光散斑,這種散斑具有高度隨機(jī)性,也會(huì)隨著距離的不同而變換圖案,空間中任意兩處的散斑都會(huì)是不同的圖案。通過紅外接收裝置記錄下每個(gè)散斑,然后根據(jù)物體上的散斑圖案就可以推測(cè)出物體的實(shí)際深度[7]。

目標(biāo)物體的深度數(shù)據(jù)(又稱Z軸、范圍、距離)是Kinect的核心技術(shù),主要通過紅外攝像頭來(lái)實(shí)現(xiàn)。根據(jù)攝像頭的成像原理,紅外攝像頭大致可以分成兩種:一種是基于飛行時(shí)間(ToF)的原理,另一種是基于結(jié)構(gòu)光測(cè)量技術(shù)。ToF是Time of Flight的縮寫,從字面意思可以看出是計(jì)算飛行時(shí)間。首先讓設(shè)備向目標(biāo)物體發(fā)射一束脈沖光,然后在發(fā)射處接收目標(biāo)物體的反射光,由時(shí)間差計(jì)算出目標(biāo)物體的距離。光學(xué)測(cè)距是ToF目前較為可行、精確的技術(shù),但是對(duì)于Kinect這種消費(fèi)電子產(chǎn)品來(lái)說價(jià)格昂貴,不適用。Kinect使用特殊的Light Coding技術(shù)進(jìn)行深度數(shù)據(jù)的處理,屬于結(jié)構(gòu)光技術(shù)的范疇,Light Coding的光源稱為”激光散斑”,是激光在散射體表面的漫反射或通過毛玻璃片后形成的衍射斑點(diǎn);這種散斑具有高度的隨機(jī)性,不同的距離會(huì)有不同的圖案,也就是說任意兩個(gè)地方的散斑圖案都是不同的,相當(dāng)于對(duì)空間進(jìn)行了編碼。Kinect通過紅外線向物體所在的空間投射這種散斑,然后通過CMOS接收裝置記錄目標(biāo)物體表面的圖案就可以知道這個(gè)物體放在什么位置了。

Kinect 2.0可以同時(shí)追蹤六個(gè)人的骨架,因此每次我們需要先調(diào)用函數(shù),獲得六個(gè)骨架信息(如果沒有人,那么那個(gè)骨架類就是空指針)。

骨骼跟蹤技術(shù)在實(shí)現(xiàn)深度信息提取的基礎(chǔ)上,通過處理深度數(shù)據(jù)來(lái)計(jì)算各個(gè)關(guān)節(jié)點(diǎn)的位置信息,并用坐標(biāo)(x,y,z)表示。不同的開發(fā)平臺(tái)定位的關(guān)節(jié)點(diǎn)個(gè)數(shù)不同,對(duì)于研究使用微軟發(fā)布的Kinect SDK V2.0版本,可以獲取25個(gè)關(guān)節(jié)點(diǎn)的三維坐標(biāo),對(duì)于每個(gè)節(jié)點(diǎn)可以給出TRACKED、NOT_TRACKED和INFERRED三種狀態(tài),這25個(gè)點(diǎn)組成一幅人體骨架圖。用Kinect SDK可以對(duì)這25個(gè)骨骼點(diǎn)的3D坐標(biāo)進(jìn)行30幀/s的實(shí)時(shí)跟蹤,而且骨骼模型對(duì)于人體的體型和尺寸、人體的膚色、衣著顏色,復(fù)雜背景以及光照強(qiáng)度變化有較強(qiáng)的魯棒性。Kinect SDK每次最多可以捕捉到六個(gè)人,但是只能顯示二個(gè)人的手勢(shì)狀態(tài)信息。測(cè)量范圍:0.5~4.5m,每一個(gè)像素為16bit,該數(shù)據(jù)表示從深度(紅外)攝像頭到該物體的距離,單位mm。

圖2 手勢(shì)觀察者圖像

2.2.2 骨骼追蹤

骨骼數(shù)據(jù)是動(dòng)作識(shí)別的基礎(chǔ),也是Kinect最引人注目的地方。骨骼跟蹤是在實(shí)現(xiàn)深度信息提取的基礎(chǔ)上進(jìn)行的,首先把深度數(shù)據(jù)中出現(xiàn)的用戶與背景分割出來(lái),然后通過對(duì)深度數(shù)據(jù)進(jìn)行機(jī)器學(xué)習(xí),快速進(jìn)行人體部位分割,最后根據(jù)機(jī)器學(xué)習(xí)的結(jié)果,進(jìn)一步識(shí)別關(guān)節(jié)點(diǎn)的三維坐標(biāo)。最新版Kinect for Windows SDK v2.0能夠檢測(cè)到視野范圍內(nèi)6個(gè)人體的骨骼位置,還可以同時(shí)“骨骼跟蹤”兩個(gè)用戶,得到每個(gè)用戶25個(gè)關(guān)節(jié)點(diǎn)的位置,每個(gè)點(diǎn)的位置用三維坐標(biāo)(x,y,z)表示,這25個(gè)節(jié)點(diǎn)分別為:頭部(head)、雙肩中央(shoulder center)、脊柱中段(spine)、臀部中央(hip center)、左臀部(hip left)、右臀部(hip right)、左手(hand left)、右手(hand right)、左腕關(guān)節(jié)(wrist left)、右腕關(guān)節(jié)(wrist right)、左肘關(guān)節(jié)(elbow left)、右肘關(guān)節(jié)(elbow right)、左肩(shoulder left)、右肩(shoulder right)、左膝蓋(knee left)、右膝蓋(knee right)、左踝關(guān)節(jié)(ankle left)、右踝關(guān)節(jié)(ankle right)、左腳(foot left)和右腳(foot right),(spine shoulder),(hand tip left),(thumb left),(hand tip right),(thumb right)如圖3所示。用 Kinect SDK可以對(duì)這25個(gè)骨骼點(diǎn)的3D坐標(biāo)進(jìn)行30幀/s的實(shí)時(shí)跟蹤,而且骨骼模型對(duì)于人體的體型和尺寸、人體的膚色、衣著顏色,復(fù)雜背景以及光照強(qiáng)度變化有較強(qiáng)的魯棒性[7]。對(duì)于每個(gè)節(jié)點(diǎn)可以給出TRACKED,NOT TRACKED和INFERRED三種狀態(tài),這25個(gè)點(diǎn)用線連起來(lái)組成一幅人體骨架圖,如圖3所示。Kinect獲取的骨骼點(diǎn)越多,骨架圖就越形象。

圖3 人體骨骼圖形

2.2.3 人物二值圖

如果某個(gè)點(diǎn)被判斷為屬于人的一部分,就是黑色,否則(背景部分)就是白色。

2.2.4 手勢(shì)狀態(tài)

手勢(shì)狀態(tài)leftHandState和rightHandState都是HandState類,這個(gè)類有五種狀態(tài):open,closed,lasso,not tracked,unknown。其中前三種是特殊手勢(shì),后兩種大同小異,反正就是無(wú)法識(shí)別了。比較特殊的是lasso,這個(gè)手勢(shì)在官網(wǎng)有說明,具體形狀是:伸出剪刀手,然后把食指和中指合并在一起,就是lasso狀態(tài)了。事實(shí)上只用食指伸出來(lái)也可以被判斷為lasso,但是食指和中指一起用,追蹤效果更佳穩(wěn)定。

3 機(jī)器人總體結(jié)構(gòu)和工作原理

本控制系統(tǒng)以Kinect體感傳感器作為圖像采集工具,結(jié)合機(jī)器人控制技術(shù),實(shí)現(xiàn)了人體動(dòng)作對(duì)機(jī)器人的控制,使機(jī)器人更加智能化。整個(gè)系統(tǒng)由上位機(jī)圖像采集輸出和下位機(jī)運(yùn)動(dòng)控制兩部分組成。

上位機(jī)系統(tǒng)由PC機(jī),kinect體感傳感器等組成[8]。上位機(jī)主要用于人體骨骼追蹤,并結(jié)合Opencv圖像處理算法,把對(duì)應(yīng)手勢(shì)狀態(tài)畫出到界面顯示出來(lái),并把相應(yīng)手勢(shì)狀態(tài)的對(duì)應(yīng)的運(yùn)動(dòng)命令通過Windows socket的TCP/IP協(xié)議發(fā)送給下位機(jī)。

下位機(jī)系統(tǒng)是由網(wǎng)口轉(zhuǎn)串口模塊、路由器、主控板,二個(gè)有刷電機(jī)組成,網(wǎng)口轉(zhuǎn)串口模塊接收到了上位機(jī)客戶端發(fā)來(lái)的運(yùn)動(dòng)命令后,發(fā)送給處理器,處理器處理后去控制機(jī)器人小車的相應(yīng)運(yùn)動(dòng)[9]。

機(jī)器人小車是由兩個(gè)左右有刷電機(jī)組成,Kinect傳感器把人體骨骼信息和對(duì)應(yīng)的手勢(shì)狀,態(tài)信息傳給電腦PC機(jī)顯示后,自己定義把左手開為為機(jī)器人小車向前運(yùn)行、左手合為機(jī)器人小車向后運(yùn)行,左手剪刀手為機(jī)器人小車停止運(yùn)動(dòng);右手開為機(jī)器人小車左轉(zhuǎn)、右手合為機(jī)器人小車右轉(zhuǎn)、右手剪刀手為機(jī)器人小車肩旋轉(zhuǎn)運(yùn)動(dòng)。然后基于Windows Socket套接字的TCP/IP通訊,其中服務(wù)器和客戶端在同一網(wǎng)段中把對(duì)應(yīng)的運(yùn)行指令傳給服務(wù)器端,服務(wù)器端通過與路由器連接的網(wǎng)口轉(zhuǎn)串口接收到客戶端的運(yùn)動(dòng)命令后通過串口傳給服務(wù)器端的控制器,從而控制左右有刷電機(jī)的運(yùn)動(dòng)[10]。

圖4 整體控制系統(tǒng)

4 六種手勢(shì)狀態(tài)

如圖6~10所示是左右手六種手勢(shì)狀態(tài)對(duì)應(yīng)機(jī)器人相應(yīng)的運(yùn)動(dòng)。

圖5 機(jī)器人小車前進(jìn)

圖6 機(jī)器人小車后退

圖7 機(jī)器人小車停止

圖8 機(jī)器人小車右轉(zhuǎn)

圖9 機(jī)器人小車左轉(zhuǎn)

圖10 機(jī)器人小車肩旋轉(zhuǎn)

5 軟件流程圖

首先明確通訊和Kinect各變量的定義,然后Kinect默認(rèn)初始化,讀取Kinect總端口成功后,讀取骨骼、深度圖信息和二值圖信息,把對(duì)應(yīng)讀取的信息畫到Opencv圖像庫(kù)的MAT中,畫出手勢(shì)狀態(tài)后,把手勢(shì)狀態(tài)對(duì)應(yīng)的運(yùn)動(dòng)命令通過TCP/IP通訊后輸出給客戶端,控制器機(jī)器人小車前進(jìn)、后退、停止。

圖11 軟件流程圖

6 結(jié)語(yǔ)

本文利用Kinect骨骼追蹤技術(shù),追蹤到人體25個(gè)骨骼信息,結(jié)合Opencv圖像處理技術(shù)把對(duì)應(yīng)的手勢(shì)狀態(tài)畫出來(lái)后,把三種手勢(shì)對(duì)應(yīng)運(yùn)動(dòng)命令通過Windows socket編程的TCP/IP傳輸給小車,去控制小車的前進(jìn)、后退、停止、左轉(zhuǎn)、右轉(zhuǎn)、肩旋轉(zhuǎn),創(chuàng)造性地實(shí)現(xiàn)了人機(jī)交互。

[1]馮志全,蔣彥.手勢(shì)識(shí)別研究綜述[J].濟(jì)南大學(xué)學(xué)報(bào)(自然科學(xué)版),2013,27(4):336-341.FENG Zhiquan,Jiang Yan.A survey of hand gesture recognition[J].Journal of University of Jinan(Science and Technology),2013,27(4):336-341.

[2]Luo R C,Wu Y C.Hand gesture recognition for human-robot Interaction for service robot.Multisensor Fusion and Integration for Intelligent Systems(MFI)[C]//IEEE Conference,2012:318-323.

[3]劉博,張奇志,周亞麗.類人足球機(jī)器人球識(shí)別方法的研究[J].北京信息科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,25(3):75-79.LIU Bo,ZHANG Qizhi,ZHOU Yali.Research on ball identification method of humanoid robot soccer[J].Journal of Beijing Information Science&Technology University(Nature Science Edition),2010,25(3):75-79.

[4]Guangsong L,Qiaoxin O,Jiehong L.An improved hu-moment algorithm in gesture recognition based on kinect sensor[J].Information Technology Journal,2013,12(14):2963-2968.

[5]Lai K,Konrad J,Ishwar P.A gesture-driven computer interface using Kinect.Image Analysis and Interpretation(SSIAI)[C]//IEEE Southwest Symposium on,IEEE,2012:185-188.

[7]余濤.kinect應(yīng)用開發(fā)實(shí)踐[M].北京:機(jī)械工業(yè)出版社,2013:200-202.YU Tao.Kinect Application Development and Practice[M].Beijing:China Machine Press,2013:200-202.

[8]Yang M H,Ahuja N.Recognizing hand gestures using motion trajectories[M].Face Detection and Gesture Recognition for Human-Computer Interaction.Springer US,2001:53-81.

[9]Lee H K,Kim J H.An HMM-based threshold model approach for gesture recognition[J].Pattern Analysis and Machine Intelligence,IEEE Transactions on,1999,21(10):961-973.

[10]Darrell T,Pentland A.Space-time gestures[C]//Computer Vision and Pattern Recognition,1993.Proceedings CVPR'93,1993 IEEE Computer Society Conference on.IEEE,1993:335-340.

Design and Implementation of the Robot Movement System Based on Skeleton Tracking Technology

LI QianSONG MengWEN Hao
(Shannxi University of Science&Technology,Xi'an 710021)

In order to achieve the natural human computer interaction,and improve the user experience,Microsoft's a motion-sensing peripheral device of peripheral equipment is introduced,using human body skeleton tracking device sensors to identify point,combining with opencv image processing algorithms,drawing three gestures state and then using TCP/IP protocol through Windows Socket network programming the corresponding commands to the robot motion,the interaction with the system control is realized,the results show that by this way the human-computer interaction can be better realized.

gestures state recognition,Kinect,Network communication

TP391

10.3969/j.issn.1672-9722.2017.11.022

Class Number TP391

2017年5月12日,

2017年6月17日

李茜,女,教授,碩士研究生導(dǎo)師,研究方向:工業(yè)自動(dòng)化和智能控制。宋夢(mèng),男,碩士研究生,研究方向:工業(yè)自動(dòng)化和人工智能。文豪,男,碩士研究生,研究方向:工業(yè)自動(dòng)化和人工智能。

猜你喜歡
手勢(shì)骨骼小車
做家務(wù)的女性骨骼更強(qiáng)壯
三減三健全民行動(dòng)——健康骨骼
快樂語(yǔ)文(2020年36期)2021-01-14
挑戰(zhàn)!神秘手勢(shì)
劉老師想開小車
兩輪自平衡小車的設(shè)計(jì)與實(shí)現(xiàn)
勝利的手勢(shì)
去修理廠
認(rèn)手勢(shì)說數(shù)字
骨骼是如何生長(zhǎng)的
芦溪县| 崇州市| 嫩江县| 海林市| 兰西县| 蓝田县| 寿光市| 都匀市| 南陵县| 大厂| 光泽县| 芦溪县| 新和县| 如东县| 长沙县| 临夏市| 绥芬河市| 舞阳县| 镇康县| 彰化市| 阜康市| 山东| 博湖县| 乡宁县| 讷河市| 巨鹿县| 大荔县| 石棉县| 石狮市| 体育| 革吉县| 松阳县| 蓬溪县| 中牟县| 东至县| 新化县| 嘉黎县| 安西县| 娱乐| 霍城县| 大厂|