馮 萍,陳澤宇
(長(zhǎng)春大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 長(zhǎng)春 130022)
機(jī)器人點(diǎn)球大賽是由軟銀組織的面向本科生、研究生的開放比賽。NAO 機(jī)器人作為 robocup 標(biāo)準(zhǔn)平臺(tái)組的比賽機(jī)器人,被廣泛使用于各大學(xué)間的機(jī)器人足球比賽。在比賽中,參賽者需使用設(shè)定好的程序,使NAO機(jī)器人自主完成在模擬足球場(chǎng)地上的點(diǎn)球射門;主要考察參賽者對(duì)NAO機(jī)器人的控制技術(shù)以及對(duì)足球的精準(zhǔn)識(shí)別和進(jìn)攻策略。傳統(tǒng)的NAO機(jī)器人點(diǎn)球比賽普遍存在著足球識(shí)別不準(zhǔn)確、決策速度慢且無(wú)法進(jìn)行微調(diào)操作、機(jī)器人與草坪摩擦過大導(dǎo)致的摔倒問題等。文章就以上幾點(diǎn)進(jìn)行分析及解決。
NAO機(jī)器人的視覺模塊通過對(duì)攝像機(jī)拍攝的彩色圖像處理來獲取環(huán)境的相關(guān)數(shù)據(jù)信息,進(jìn)而判斷機(jī)器人與球的相對(duì)位置,為機(jī)器人移動(dòng)提供決策依據(jù)。NAO機(jī)器人有著極高的自由度,如圖1所示,通過對(duì)機(jī)器人關(guān)節(jié)的相對(duì)角度的控制以及官方提供的API接口來實(shí)現(xiàn)對(duì)其移動(dòng)控制。
圖1 NAO機(jī)器人的相關(guān)關(guān)節(jié)
NAO機(jī)器人的兩個(gè)攝像頭一個(gè)位于額頭上,負(fù)責(zé)機(jī)器人水平方向的視野;另一個(gè)位于嘴部,負(fù)責(zé)機(jī)器人腳下近處的觀察,分辨率皆為640*480。由于系統(tǒng)原因,兩個(gè)攝像頭不可同時(shí)開啟,但可做到隨時(shí)切換。主要使用下攝像頭來進(jìn)行圖像的捕獲。
在最常用的RGB的色彩空間中,色彩均由R(紅)、G(綠)、B(藍(lán))3種基礎(chǔ)顏色組合變換而來。但在攝像機(jī)實(shí)際拍照時(shí),會(huì)有不同場(chǎng)景不同光照的情況,使用RGB顏色空間會(huì)產(chǎn)生一定程度上的誤差。相關(guān)結(jié)果表明,在不同環(huán)境(光源種類、光照強(qiáng)度等)下,對(duì)相同顏色的物體,測(cè)得的RGB值很分散而且波段非常寬。因此很難選取到合理的RGB值,識(shí)別的泛化性很差。故在比賽中選取RGB色彩空間進(jìn)行識(shí)別可能會(huì)出現(xiàn)因環(huán)境引起的漏識(shí)別、錯(cuò)識(shí)別。為增強(qiáng)識(shí)別的泛化性以及準(zhǔn)確率,選用HSV作為圖像處理的色彩空間。在對(duì)圖像進(jìn)行處理前使用OpenCV下的cvtColor()方法將RGB空間轉(zhuǎn)化為HSV空間。
2.2.1 掩膜操作進(jìn)行足球顏色閾值的選擇
在點(diǎn)球比賽中,足球的成功識(shí)別是贏得比賽的基礎(chǔ)。而足球識(shí)別中的足球由黑白兩色組成,一直都是識(shí)別的難點(diǎn)。部分選手選擇使用NAO的紅外裝置對(duì)球進(jìn)行定位,解決了對(duì)足球顏色識(shí)別的難題,但定位準(zhǔn)確率較低。我們采用OpenCV中的掩膜操作,并通過TrackBar來分別找出足球中白色部分、黑色部分對(duì)應(yīng)的閾值解決了這個(gè)問題,識(shí)別效果如圖2、 圖3所示。
HSVH(min)H(max)S(min)S(max)V(min)V(max)白048425599255黑01790255092
圖2 對(duì)足球中的黑色進(jìn)行掩膜 圖3 對(duì)足球中的白色進(jìn)行掩膜
2.2.2 足球顏色的組合
在完成了對(duì)足球上黑白兩色的篩選后,將這兩張?zhí)崛☆伾膱D片拼接,使用cv2下的inRange方法分別得到對(duì)應(yīng)白色與黑色的灰度圖,然后利用cv2.add完成兩張圖片的拼接,目標(biāo)區(qū)域?yàn)?55(白色),無(wú)關(guān)區(qū)域?yàn)?(黑色),效果如圖4、圖5、圖6所示。
圖4 白色部分inRange后的二值圖 圖5 黑色部分inRange后的二值圖 圖6 圖片拼接后的結(jié)果圖
要使NAO機(jī)器人識(shí)別足球,不僅要識(shí)別足球的顏色,同時(shí)也要識(shí)別足球的形狀,在找到足球的顏色閾值的基礎(chǔ)上,對(duì)符合顏色閾值的圖像進(jìn)行形狀檢測(cè)。應(yīng)用高斯濾波,腐蝕膨脹技術(shù)進(jìn)行平滑去噪,最后采用霍夫變化檢測(cè)圓形。
在完成掩膜操作后,仍存在小部分干擾圖像識(shí)別的噪聲,為防止其影響圖像識(shí)別的準(zhǔn)確率,采用高斯濾波減少噪聲的干擾。
(1)
式中,δ為在程序中指定的sigmaX,f(x)則為各個(gè)點(diǎn)經(jīng)過處理后的權(quán)重,指定δ為1.5,經(jīng)過處理后得到圖7所示效果。
在高斯濾波后,仍存在部分干擾噪聲,使用腐蝕操作進(jìn)一步去除圖形中存在的椒鹽噪聲點(diǎn),并使用膨脹操作強(qiáng)化局部最大值較大的區(qū)域。經(jīng)過處理后得到圖8所示效果。
圖7 高斯濾波后的圖像
圖8 經(jīng)過腐蝕膨脹后處理的圖像
在霍夫變換方法中,首先使用Canny方法對(duì)圖片中的圓形進(jìn)行篩選,然后經(jīng)過霍夫變換,將圓內(nèi)的點(diǎn)轉(zhuǎn)換到霍夫空間。轉(zhuǎn)換方程如下:
x=x0+rcosθ;y=y0+rsinθ,
(2)
式中,x0,y0為圓的圓心坐標(biāo),r為圓的半徑,且對(duì)于圓來說,θ的范圍為0°~360°。
在此方法中,圓內(nèi)的每一點(diǎn)都有成為“圓心”的可能,故需將圓內(nèi)每一點(diǎn)都映射到由x0,y0,r組成的三維空間中,由于霍夫線變換需要更多的計(jì)算消耗,所以采用霍夫梯度法來對(duì)圓進(jìn)行檢測(cè)。
霍夫梯度法通過遍歷圓內(nèi)的每一個(gè)點(diǎn),并計(jì)算其模向量,即垂直于該點(diǎn)并且經(jīng)過該點(diǎn)的切線的垂直線上,這些圓上的模向量的交點(diǎn)就是圓心。根據(jù)某一點(diǎn)上模向量焦點(diǎn)的多少,來判斷這點(diǎn)是否為圓心。
綜上所述,對(duì)于足球識(shí)別的具體實(shí)現(xiàn)過程如圖9所示。
圖9 足球識(shí)別算法流程圖
(1)通過攝像頭獲取圖像信息;
(2)變換色彩空間,由RGB轉(zhuǎn)換為HSV空間;
(3)二值化圖像:根據(jù)預(yù)設(shè)好的白、黑閾值參數(shù),對(duì)圖片分別進(jìn)行inRange(),然后進(jìn)行拼接,得到二值圖;
(4)對(duì)二值圖進(jìn)行高斯模糊,使用OpenCV中的GaussianBlur()函數(shù),并使用erode、dilate對(duì)圖像進(jìn)行進(jìn)一步的處理;
(5)足球檢測(cè):通過霍夫圓檢測(cè)來篩選視野里是否出現(xiàn)足球;
(6)是否檢測(cè)到足球?是到(7),否到(1);
(7)返回足球在圖片中的相對(duì)位置。
在點(diǎn)球比賽中,進(jìn)攻方與球的距離相距1 m,由于上攝像頭像素較低、視野范圍較大,對(duì)足球的定位以及識(shí)別都存在諸多不利(足球相對(duì)較小,占用系統(tǒng)計(jì)算資源等),所以選用視野范圍相對(duì)小的下攝像頭,先調(diào)用NAOqi中的angleInterpolationWithSpeed()方法對(duì)機(jī)器人的頭部headYaw進(jìn)行角度調(diào)整,使機(jī)器人在行走的過程中處于低頭的狀態(tài),下攝像頭的視野范圍可以監(jiān)控到NAO腳步附近的各種情況。由于比賽場(chǎng)地為8 mm的標(biāo)準(zhǔn)草坪,使用moveTo()方法進(jìn)行行走會(huì)導(dǎo)致機(jī)器人不穩(wěn),在機(jī)器人腳上纏繞報(bào)紙,減少了與草坪的摩擦,使機(jī)器人可以正常地行走。
由于點(diǎn)球位置與球門相距1.5 m,需要設(shè)計(jì)一個(gè)有力的踢球動(dòng)作。使用Choregraphe中的時(shí)間線儲(chǔ)存一套合適的動(dòng)作,然后傳輸?shù)綑C(jī)器人內(nèi)。如圖10所示。
圖10 Choregraphe中編寫的踢球動(dòng)作
在程序中創(chuàng)建一個(gè)ALBehaviorManger代理,然后在成功識(shí)別足球且根據(jù)策略需要踢球時(shí),通過代理啟動(dòng)這條時(shí)間線,完成踢球動(dòng)作。使用多線程的方式,將ALBehaviorManger封裝其中,并編寫啟動(dòng)函數(shù)為其啟動(dòng)。
當(dāng)攝像機(jī)回傳的畫面中出現(xiàn)足球時(shí),根據(jù)足球在圖像中的相對(duì)位置,對(duì)乙方機(jī)器人以及守門員的位置進(jìn)行微調(diào),尋找合適的角度進(jìn)行踢球。具體流程如圖11所示。
圖11 程序的具體流程圖
針對(duì)機(jī)器人點(diǎn)球比賽中目標(biāo)識(shí)別困難、草地摩擦力過大等問題,分別采用掩膜+圖像拼接和物理降低摩擦力的方法得以優(yōu)化,并提出了一套包含移動(dòng)控制,點(diǎn)球決策的完整的點(diǎn)球體系。由視覺模塊獲取數(shù)據(jù),應(yīng)用策略來控制球不同位置下機(jī)器人的移動(dòng)行為,并通過ALBehaviorManager模塊來調(diào)用Choregraphe中的時(shí)間線來實(shí)現(xiàn)踢球,使點(diǎn)球比賽更具準(zhǔn)確性。經(jīng)實(shí)驗(yàn)測(cè)試,在正常的燈光照射下,機(jī)器人可以正確識(shí)別球,完成射門的準(zhǔn)確率在97%以上。且通過此程序參加本地區(qū)的點(diǎn)球比賽并以優(yōu)越的性能取得了一等獎(jiǎng)。