潘崢嶸,張玉陽,朱 翔
(蘭州理工大學(xué) 電氣工程與信息工程學(xué)院,蘭州730050)
NAO機(jī)器人自主目標(biāo)跟蹤算法研究
潘崢嶸,張玉陽,朱 翔
(蘭州理工大學(xué) 電氣工程與信息工程學(xué)院,蘭州730050)
針對(duì)目前應(yīng)用最廣的新型仿人形NAO機(jī)器人,如何應(yīng)用于動(dòng)態(tài)背景條件下并對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行自主檢測(cè)跟蹤,對(duì)此該文采用了一種基于三幀差分法和Camshift算法相結(jié)合的目標(biāo)跟蹤方法。首先通過SURF算法對(duì)相鄰兩幀圖像背景進(jìn)行匹配,變換到靜態(tài)背景條件下,再通過三幀差分法檢測(cè)運(yùn)動(dòng)目標(biāo);之后將目標(biāo)運(yùn)動(dòng)信息融合到Camshift算法顏色概率分布直方圖的計(jì)算中,實(shí)現(xiàn)目標(biāo)自動(dòng)識(shí)別跟蹤并排除與目標(biāo)顏色相似的背景干擾。試驗(yàn)表明,NAO機(jī)器人能夠?qū)\(yùn)動(dòng)目標(biāo)進(jìn)行自主跟蹤。
NAO機(jī)器人;動(dòng)態(tài)背景;SURF算法;Camshift算法;目標(biāo)跟蹤
讓機(jī)器具有自動(dòng)感知能力是人類多年以來的夢(mèng)想。自信號(hào)處理理論和計(jì)算機(jī)技術(shù)出現(xiàn)以來,人們就開始嘗試采用攝像機(jī)獲取環(huán)境的視頻信息,并使用計(jì)算機(jī)對(duì)其進(jìn)行處理,從而形成一門新興的學(xué)科——機(jī)器視覺[1]。
機(jī)器視覺是機(jī)器人通過攝像機(jī)采集周圍環(huán)境信息,通過對(duì)信息的處理,來進(jìn)行下一步的決策,最終完成任務(wù)。采集的信息包括目標(biāo)的顏色、大小、位置等。在實(shí)際情況中,機(jī)器視覺會(huì)受到各種因素的干擾,例如目標(biāo)形狀、大小的變化,以及背景中光照條件的變化,還有目標(biāo)被遮擋等問題[2]。因此,如何選擇合適的圖像處理方式,削弱外界變化給機(jī)器視覺帶來的影響,是目前要解決的問題。另外,機(jī)器人要完成識(shí)別和跟蹤任務(wù)所采用的檢測(cè)跟蹤算法需要滿足實(shí)時(shí)性的要求,而機(jī)器人硬件改進(jìn)的空間比較小,因此,對(duì)于機(jī)器人視覺處理算法的設(shè)計(jì)需要不斷改進(jìn)[3]。
NAO機(jī)器人是一款由Aldebaran Robotics公司開發(fā)的機(jī)器人,是仿人機(jī)器人科研、競(jìng)賽領(lǐng)域內(nèi)使用最廣泛的機(jī)器人之一[4]。NAO的視覺系統(tǒng)攝取的圖像是獲取周圍環(huán)境信息最主要的方式,采集到的圖像中包括目標(biāo)顏色、位置等,都是NAO進(jìn)行決策時(shí)必不可少的。如圖1所示,NAO機(jī)器人擁有2個(gè)攝像頭,分布在機(jī)器人的頭部,攝像頭視角隨著機(jī)器人的運(yùn)動(dòng)以及頭部的扭動(dòng)而變化。攝像頭輸出格式為 YUV422,分辨率為 640×480,幀率為 30 幀/s,焦距類型為固定焦距,焦距范圍為30 cm至無限大。
圖1 NAO機(jī)器人視覺系統(tǒng)Fig.1 NAO robot vision system
目前針對(duì)靜態(tài)背景下的目標(biāo)檢測(cè)技術(shù)相對(duì)成熟,主要算法有背景差法、光流法、幀差法等。但是NAO機(jī)器人在跟蹤特定目標(biāo)時(shí)是不斷運(yùn)動(dòng)的,因此目標(biāo)背景也是在不斷變化的,幀差法和Camshift算法無法適用于動(dòng)態(tài)背景條件[5-7]。為了解決這一問題,需要對(duì)動(dòng)態(tài)背景進(jìn)行匹配,轉(zhuǎn)化為靜態(tài)背景條件再對(duì)目標(biāo)進(jìn)行跟蹤,因此采用了SURF算法和仿射變換。動(dòng)態(tài)背景匹配分為4個(gè)步驟:
步驟1提取特征點(diǎn)
SURF算法采用近似的Hessian矩陣行列式的局部最大值來定位特征點(diǎn)的位置[8]。假設(shè)圖像I(x,y)在點(diǎn)(x,y)處尺度為 σ 的 Hessian 矩陣 H(x,y;σ)為
為了將模版與圖像的卷積轉(zhuǎn)化成盒子濾波運(yùn)算,需要對(duì)高斯二階微分算子進(jìn)行近似和簡(jiǎn)化。使用Dxx,Dxy,Dyy表示模版與圖像卷積的簡(jiǎn)化結(jié)果,最終得到Hessian矩陣的最簡(jiǎn)化公式為
式中:Dxx,Dxy,Dyy可由積分圖得到。當(dāng)Hessian 行列式的局部值最大時(shí),即為特征點(diǎn)。
步驟2構(gòu)建特征描述符
提取2幅圖像的特征點(diǎn)后,還需要對(duì)其建立特征描述,以便于確定2幅圖像中每個(gè)點(diǎn)的位置關(guān)系。
步驟3快速特征匹配
SURF算法采用的是最近領(lǐng)域匹配方法。首先計(jì)算待匹配圖像上特征點(diǎn)的特征向量到參考圖像上所有特征點(diǎn)特征向量的歐氏距離,獲得一個(gè)距離集合,然后通過對(duì)距離集合進(jìn)行比較得到最小歐氏距離d1和次最小歐式距離d2,即:
步驟4仿射變換
仿射變換代表的是2幅圖像之間的一種映射關(guān)系。圖像的仿射變換通常使用2×3的矩陣來表示。
即:
因此,由式(8)可以看出只要3對(duì)匹配點(diǎn)對(duì)就可以求得M。
在將動(dòng)態(tài)背景轉(zhuǎn)換為靜態(tài)背景后就可以使用三幀差分法和Camshift算法對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行檢測(cè)與跟蹤[9-10]。
Camshift算法是對(duì)Meanshift算法的改進(jìn),能夠自動(dòng)調(diào)節(jié)搜索窗口的大小來跟蹤視頻中尺寸變化的目標(biāo),但是這是一種半自動(dòng)跟蹤算法,需要手動(dòng)標(biāo)定跟蹤目標(biāo)[11-13]。Camshift算法只是依據(jù)目標(biāo)的色彩信息來進(jìn)行跟蹤,當(dāng)目標(biāo)與背景顏色接近時(shí),會(huì)導(dǎo)致跟蹤目標(biāo)丟失[14]。
針對(duì)以上Camshift算法出現(xiàn)的問題,本文采用了將三幀差分法與Camshift算法相結(jié)合的方法。在幀差法檢測(cè)出的運(yùn)動(dòng)區(qū)域內(nèi)對(duì)目標(biāo)采用Camshift算法跟蹤,能夠?qū)崿F(xiàn)自動(dòng)跟蹤運(yùn)動(dòng)目標(biāo),能夠排除背景中與目標(biāo)顏色相似的干擾因素[15]。目標(biāo)跟蹤實(shí)現(xiàn)步驟為
步驟1取第n-1幀、第n幀、第n+1幀圖片;
步驟2第n-1幀和第n幀做灰度差得到圖片diff_1,第n幀和第n+1幀做灰度差得到圖片diff_2;
步驟3對(duì)圖片diff_1和diff_2進(jìn)行二值化,之后對(duì)得到的二值圖進(jìn)行腐蝕和膨脹處理;
步驟4對(duì)處理后的二值圖進(jìn)行“與”操作,得到運(yùn)動(dòng)目標(biāo);
步驟5運(yùn)行Camshift算法,將幀差法得到的運(yùn)動(dòng)目標(biāo)信息加入到顏色分布直方圖的計(jì)算中。
本試驗(yàn)是在 Aldebaran-SDK-VC90、CMake 2.6、VisualStudio2008、OpenCV2.4.13、Python2.6、Windows 10(x86)環(huán)境下進(jìn)行的。本文視頻取自NAO機(jī)器人攝像頭拍攝的視頻圖像,圖像大小為320×240,幀率為30幀/s,跟蹤目標(biāo)為綠顏色的棒球。
試驗(yàn)?zāi)康氖鞘筃AO機(jī)器人在目標(biāo)跟蹤時(shí)能夠適應(yīng)動(dòng)態(tài)背景環(huán)境,能夠?qū)\(yùn)動(dòng)的小球進(jìn)行自主跟蹤。試驗(yàn)內(nèi)容包括兩部分:第一部分是背景匹配之后的幀間差分法和傳統(tǒng)的幀間差分法的對(duì)比;第二部分是融合了幀差分法信息的Camshift算法和傳統(tǒng)Camshift算法的對(duì)比。
幀間差分法在靜態(tài)背景環(huán)境下能夠很好地檢測(cè)出運(yùn)動(dòng)目標(biāo),但在動(dòng)態(tài)背景環(huán)境下進(jìn)行直接差分會(huì)產(chǎn)生背景輪廓,對(duì)前景目標(biāo)的提取產(chǎn)生干擾。
SURF算法特征點(diǎn)匹配結(jié)果如圖2所示,在視頻流中選取連續(xù)的三幀圖片 image1、image2和image3,以 image2 為參考圖像,圖 2(a)為圖 image1和圖image2的特征點(diǎn)匹配結(jié)果,圖2(b)為圖image2和圖image3的特征點(diǎn)匹配結(jié)果。
圖2 動(dòng)態(tài)背景匹配結(jié)果Fig.2 Dynamic background match results
表2為通過特征點(diǎn)匹配分別得到的3組匹配點(diǎn)對(duì),通過式(6),我們可以求得第一幀和第二幀仿射變換矩陣M1,第二幀和第三幀仿射變換矩陣M2。通過下面結(jié)果可以看出變換矩陣M1和M2相等,是因?yàn)镹AO機(jī)器人在搜索目標(biāo)時(shí)攝像頭在進(jìn)行勻速運(yùn)動(dòng),導(dǎo)致相鄰2幀圖像背景之間的位移相同。
表2 SURF特征點(diǎn)匹配點(diǎn)對(duì)Tab.2 SURF feature point match point pairs
通過上文的仿射矩陣對(duì)image1和image3進(jìn)行仿射變換,最終得到仿射變換的圖像如圖3所示,其中圖 3(a)為 image1 的校正結(jié)果,圖 3(b)為image3的校正結(jié)果。
在動(dòng)態(tài)背景的目標(biāo)跟蹤中,對(duì)背景的匹配是非常重要的,在圖4中,分別用了直接幀間差分法和本文的幀間差分方法對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行檢測(cè)。圖4(c)使用的直接差分方法,圖 4(a)和圖 4(b)是直接從視頻流中截取的相鄰的2張圖片,沒有經(jīng)過仿射變換。從圖4(c)可以看出除了運(yùn)動(dòng)目標(biāo)的輪廓外,還具有明顯的背景輪廓,這種情況對(duì)于后期的前景目標(biāo)提取具有很大的干擾,而圖 4(d)和圖 4(e)是經(jīng)過了仿射變換,對(duì)背景進(jìn)行了匹配,通過幀間差分后得到圖 4(f),從圖 4(f)可以看出在檢測(cè)到運(yùn)動(dòng)目標(biāo)輪廓的同時(shí)背景干擾也比較小。由此可以看出,動(dòng)態(tài)背景下的運(yùn)動(dòng)目標(biāo)識(shí)別直接幀間差分會(huì)產(chǎn)生大量的干擾,而背景匹配后再進(jìn)行幀間差分可以很好地解決這個(gè)問題。
圖3 Image1和image2校正結(jié)果Fig.3 Image1 and image2 correction results
圖4 直接幀差法和背景匹配后的幀差法對(duì)比Fig.4 Comparison of frame difference method and background matching after direct frame difference method
進(jìn)行動(dòng)態(tài)背景匹配后的三幀差分法處理結(jié)果如圖5所示,圖5(a)是image1和image2差分結(jié)果,圖 5(b)是 image2 和 image3 差分結(jié)果。在圖 5(b)和圖5(d)中邊緣具有明顯的空白區(qū)域,這是因?yàn)閷?duì)image1和image3做仿射變換后產(chǎn)生的無圖像區(qū)域,再用幀差法后會(huì)產(chǎn)生白色空洞。為了解決這個(gè)問題,將中間幀做為模版,對(duì)第一幀和第三幀做仿射變換,這樣產(chǎn)生的空白區(qū)域在2幅圖的不同位置,通過對(duì)差分結(jié)果做“與”運(yùn)算,就可以得到運(yùn)動(dòng)目標(biāo)信息。
圖5 三幀差分法處理結(jié)果Fig.5 Three-frame difference method to deal with the results
啟動(dòng)NAO機(jī)器人后,頭部的舵機(jī)帶動(dòng)攝像頭進(jìn)行360°運(yùn)動(dòng)目標(biāo)掃描,在用幀差法檢測(cè)到運(yùn)動(dòng)的小球后,將運(yùn)動(dòng)區(qū)域信息傳遞給Camshift算法,啟動(dòng)Camshift算法對(duì)小球進(jìn)行跟蹤,實(shí)現(xiàn)對(duì)運(yùn)動(dòng)目標(biāo)的自主檢測(cè)跟蹤[16]。
在該試驗(yàn)中將本文算法和傳統(tǒng)的Camshift算法做了對(duì)比,圖 6 中的(a)、(b)是傳統(tǒng) Camshift算法目標(biāo)跟蹤截取的圖片,(c)、(d)是本文算法截取的圖片,從對(duì)比中可以看出,小球在經(jīng)過顏色相近區(qū)域時(shí)檢測(cè)目標(biāo)會(huì)放大到背景顏色區(qū)域,甚至?xí)G失目標(biāo)。本文算法中,Camshift算法在融合了幀差法檢測(cè)出的目標(biāo)區(qū)域后能夠很好的對(duì)目標(biāo)進(jìn)行跟蹤,能夠在一定程度上排除相同背景顏色的干擾。
圖6 傳統(tǒng)Camshift算法和本文算法對(duì)比Fig.6 Comparison of traditional Camshift algorithm and algorithm
NAO機(jī)器人目標(biāo)跟蹤結(jié)果在上位機(jī)的顯示如圖7所示,其中圖7(a)為小球的顏色直方圖模型,圖7(b)和(c)為機(jī)器人在目標(biāo)檢測(cè)過程中隨機(jī)截取的2幀圖片。
圖7 NAO機(jī)器人目標(biāo)跟蹤Fig.7 NAO robot target tracking
本文采用了一種三幀差分法和Camshift算法相結(jié)合的運(yùn)動(dòng)目標(biāo)檢測(cè)方法,同時(shí)加入了基于SURF算法的圖像匹配,使該方法能夠在動(dòng)態(tài)背景環(huán)境下檢測(cè)出運(yùn)動(dòng)的目標(biāo)。試驗(yàn)表明NAO機(jī)器人檢測(cè)、識(shí)別和跟蹤整個(gè)過程的反應(yīng)時(shí)間縮短,能夠適應(yīng)動(dòng)態(tài)背景環(huán)境,能夠在一定程度上解決目標(biāo)形變和遮擋的問題,在簡(jiǎn)單背景下能夠得到良好的跟蹤效果。
[1] Sage K,Young S.Security applications of computer vision[J].IEEE Aerospace and Electronic SystemsMagazine,1999,14(4):19-29.
[2] 焦建彬,葉齊祥,韓振軍,等.視覺目標(biāo)檢測(cè)與跟蹤[M].北京:科學(xué)出版社,2016:111-138.
[3] 宗鵬程.基于NAO機(jī)器人的視覺目標(biāo)檢測(cè)與跟蹤[D].北京:華北電力大學(xué),2015.
[4] Simon X.Yang.Fast-moving target tracking based on mean shift and frame-difference methods[J].Journal of Systems Engineering and Electronics,2011(4):587-592.
[5] 朱明,高文,郝志成.機(jī)載光電平臺(tái)的目標(biāo)跟蹤技術(shù)[M].北京:科學(xué)出版社,2016:74-95.
[6] 楊杰,穆平安,戴曙光.一種改進(jìn)Camshift算法的研究[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(2):167-170.
[7] 譚艷,王宇俊.一種結(jié)合背景差分的改進(jìn)CamShift目標(biāo)跟蹤方法[J].西南師范大學(xué)學(xué)報(bào):自然科學(xué)版,2016,41(9):120-125.
[8] 陳杏源,鄭烈心,裴海龍.基于Camshift和SURF的目標(biāo)跟蹤系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2016,37(4):902-906.
[9] Q Zhong,J Zhao,C Tong.Motion planning of humanoid robot based on embedded vision[J].Review of Computer Engineer Studies,2015(2):35-38.
[10]Patrick Benavidez,Mo Jamshidi.Mobile robot navigation and target tracking system[C]\Proc.of the 2011 6th International Conference on System of Systems Engineering,201:299-304.
[11]Tomas Vojir,Jana Noskova,Jiri Matas.Robust scaleadaptive mean-shift for tracking[J].Pattern Recognition Letters,2014(49):250-258.
[12]Afef Salhi,Ameni Yengui Jammoussi.Object tracking system using camshift,meanshift and kalman filter[J].World Academy of Science,Engineering and Technology,2012(64):674-679.
[13]Milan Sonka,Vaclav Hlavac,Roger Boyle.Image Processing,Analysis,and Machine Vision[M].Cengage Learning,2014:1-8.
[14]Ning,L Zhang,D Zhang.Robust mean-shift tracking with corrected background-weighted histogram[J].IET Computer Vision,2012(6):62-69.
[15]X.An,J.Kim,Y.Han.Optimal colour-based mean shift algorithm for tracking objects[J].IET Computer Vision,2014(6):235-244.
Research on Autonomous Target Tracking Algorithm for NAO Robot Computer Engineering and Applications
PAN Zheng-rong,ZHANG Yu-yang,ZHU Xiang
(College of Electrical and Information Engineering,Lanzhou University of Technology,Lanzhou 730050,China)
According to a new type of humanoid NAO robot,how to apply it to the dynamic background conditions and track the moving target,a target tracking method based on the three-frame difference method and Camshift algorithm was proposed.Firstly,the SURF algorithm was used to transform the moving background to a static background,and then the moving target was detected by the three-frame difference method.Then,the target motion information was fused into the Camshift algorithm to calculate the color probability distribution histogram.It can automatically identify the moving target and eliminate the same color of background interference.Experiments show that the NAO robot can track moving targets autonomously.
NAO robot;dynamic background;speed-up robust features(SURF)algorithm;Camshift algorithm;target tracking
TP751.1
A
1001-9944(2017)08-0012-05
10.19557/j.cnki.1001-9944.2017.08.004
2017-03-17;
2017-05-19
潘崢嶸(1964—),男,學(xué)士,教授,研究方向?yàn)橛?jì)算機(jī)控制、智能檢測(cè)與控制;張玉陽(1989—),男,碩士研究生,研究方向?yàn)閳D像處理。