孔旭影
(北京信息職業(yè)技術(shù)學(xué)院,北京,100018)
筆者的課題研究總目標(biāo)是實(shí)現(xiàn)基于視覺的類人型足球機(jī)器人,按照預(yù)定目標(biāo)進(jìn)行自主決策,并贏取RoboCup機(jī)器人大賽獎項(xiàng)。這包括實(shí)現(xiàn)類人型足球機(jī)器人能夠進(jìn)行快速自定位,并較快速地辨識足球和球門,能夠進(jìn)行自主決策、智能規(guī)劃且將足球射進(jìn)球門,其中一個(gè)子目標(biāo)就是實(shí)現(xiàn)基于視覺的機(jī)器人快速自定位。
北京信息職業(yè)技術(shù)學(xué)院自2009年開始研究類人型足球機(jī)器人,并參加RoboCup機(jī)器人中國公開賽;2010年開發(fā)了機(jī)器人視頻圖像處理器和類人型足球機(jī)器人視覺定位系統(tǒng)軟件,并在國際組織SICE協(xié)會年會上發(fā)表了“Research and Practice about Positioning Algorithms of Humanoid Robot in RoboCup Soccer Stadium”論文;2011年開始展開對類人型足球機(jī)器人自主決策、智能規(guī)劃的全面研究,并對類人型足球機(jī)器人視覺定位系統(tǒng)進(jìn)行了全面改進(jìn)。
基于視覺機(jī)器人的定位技術(shù)目前主要采用的是視覺測距技術(shù)和圖像特征點(diǎn)提取策略,另外還運(yùn)用了不變矩算法等。
視覺測距是實(shí)現(xiàn)足球機(jī)器人定位的一個(gè)基本方法,也是該機(jī)器人所有視覺行動的重要前提,要實(shí)現(xiàn)視覺測量就必須標(biāo)定攝像機(jī)的參數(shù)和參照物,通過小孔成像模型進(jìn)行測距。機(jī)器人視覺測距系統(tǒng)利用標(biāo)定結(jié)果,即攝像機(jī)的內(nèi)、外部參數(shù),通過三角測量原理,即機(jī)器人的兩個(gè)攝像機(jī)(雙目)的光心和對應(yīng)的兩幅圖像中的像點(diǎn)所成的射線相交于物點(diǎn),用最小二乘法解出物體的坐標(biāo),對物體的位姿進(jìn)行測量,從而實(shí)現(xiàn)實(shí)時(shí)定位。單目機(jī)器人也用小孔成像模型,計(jì)算量會小很多,因此計(jì)算速度比較快。由于小孔成像模型的誤差、測量系統(tǒng)的誤差且圖像存在畸變,系統(tǒng)會不可避免地出現(xiàn)誤差,誤差率約11%。[1]
機(jī)器人可以根據(jù)球門形狀和顏色以及標(biāo)志桿的形狀和顏色來判斷對方球門、己方球門、左側(cè)邊線、右側(cè)邊線。顏色與形狀均是事先預(yù)知的圖像特征點(diǎn),通過RGB色彩通道,識別藍(lán)色球門或黃色球門,識別左側(cè)標(biāo)志桿或右側(cè)標(biāo)志桿;通過R、B通道灰化圖像并采用聚類的方法,比對近點(diǎn)、中點(diǎn)、遠(yuǎn)點(diǎn)的目標(biāo)成像像素,判斷距離目標(biāo)的遠(yuǎn)近,從而定位機(jī)器人。這種方法的誤差率也不能保證在10%以下。[2]
不變矩因其具有旋轉(zhuǎn)、平移、縮放等特性的不變特征而得名,不變矩特征主要表征了圖像區(qū)域的幾何特征,又稱為幾何矩或簡稱為矩。在圖像處理中,幾何不變矩可以作為一個(gè)重要的特征來表示物體,可以據(jù)此特征來對圖像進(jìn)行分類等操作。不變矩被用作刻畫空間物體的質(zhì)量分布,如果將圖像的灰度值看作是一個(gè)二維或三維的密度分布函數(shù),那么不變矩方法即可用于圖像分析領(lǐng)域并用作圖像特征的提取。
有兩種不變矩效果明顯,Hu不變矩組成的特征量(零階矩和一階矩)對圖片進(jìn)行識別,優(yōu)點(diǎn)是速度很快,缺點(diǎn)是識別率比較低。Zernike 不變矩相比 Hu 不變矩識別效果會好一些,但速度慢,它采用了高階矩。[3]
總之,不變矩的運(yùn)用提高了對球門、標(biāo)志桿的識別率。
邊緣線微分算法是筆者在國際組織SICE協(xié)會年會上發(fā)表的論文(“Research and Practice about Positioning Algorithms of Humanoid Robot in RoboCup Soccer Stadium”)中提出的。
邊緣線是指不同顏色對象的分界線。使用VC++中g(shù)etpixel(x,y)函數(shù),通過掃描和像素值比對可以找到一幅圖像中的邊緣線。邊緣線微分算法就是沿著邊緣線做微分運(yùn)算,求邊緣線的切線斜率,從而根據(jù)斜率值的變化情況判斷線形的方法。斜率值可以被表述為:
如果斜率值保持不變,這條邊緣線就是直線;如果斜率值連續(xù)、漸進(jìn)地變小或變大,它就是一條圓弧線。圓弧線的半徑r,可以通過三角形MNO(見圖1所示)計(jì)算。M、N是圓弧線上的切點(diǎn),MO、NO是過切點(diǎn)的垂線,交點(diǎn)是圓心O。O點(diǎn)的坐標(biāo)為O(x,y)。
圖1 圓弧半徑r
上式(1)是O點(diǎn)的x坐標(biāo),上式(2)是O點(diǎn)的y坐標(biāo)。O點(diǎn)的坐標(biāo)是解MO、NO兩條直線方程的結(jié)果。式中b、b'是兩條直線分別在y軸上的截距,△b= b-b',kM是過M點(diǎn)的切線斜率,kN是過N點(diǎn)的切線斜率。
獲得O點(diǎn)坐標(biāo)后,可以計(jì)算出圓弧半徑r,通過r值的變化范圍可與典型特征值進(jìn)行比對,再參考其他圖,從而判斷機(jī)器人所處的位置。如圖2所示。
圖2 機(jī)器人在不同位置拍到的球場圖像
實(shí)踐結(jié)果驗(yàn)證了對邊緣線微分算法在直線圖形識別方面應(yīng)用的正確性,也驗(yàn)證了對弧線形的判斷,算法能計(jì)算出區(qū)域分割法所定義的球場上各個(gè)區(qū)域的典型特征值,這些特征值可以作為機(jī)器人定位時(shí)進(jìn)行數(shù)據(jù)比對的標(biāo)準(zhǔn)。各區(qū)域的典型k值和r值為機(jī)器人自定位奠定了基礎(chǔ),也為機(jī)器人的路徑區(qū)域規(guī)劃奠定了基礎(chǔ)[4]。該方法對機(jī)器人迷失、場外色彩和圖形干擾問題已經(jīng)改進(jìn)了很多,但是圖像特征值提取過程的計(jì)算量不小,在提高機(jī)器人的自定位速度方面不明顯。
為了提高機(jī)器人自定位的速度和準(zhǔn)確性,筆者又嘗試了新的改進(jìn)方法。一方面對上述邊緣線微分算法進(jìn)行二階微分運(yùn)算,因?yàn)樵谇驁龅哪承┨囟▍^(qū)域所拍圖像的特征有出現(xiàn)橢圓、甚至接近正圓的情況。眾所周知,橢圓或圓的二階微分是常量,而且形狀不同時(shí)常量的值不同,這使得二階微分的特征值比對更加容易、準(zhǔn)確。另一方面,借鑒HU不變矩對圖形的識別效率,當(dāng)定位過程需要時(shí)可以作為一個(gè)補(bǔ)充。
改進(jìn)后,機(jī)器人定位算法實(shí)現(xiàn)的具體步驟如下:
1)機(jī)器人通過自帶攝像頭獲取圖像。
2)對圖像進(jìn)行處理,包括灰化、二值化、去噪,并確認(rèn)場內(nèi)圖像。
3)判斷邊緣線是否為直線,并計(jì)算直線斜率k;若為圓弧或橢圓,計(jì)算圓弧半徑r。當(dāng)邊緣線不清晰或出現(xiàn)k值無規(guī)則變化時(shí),啟用HU不變矩的計(jì)算方法。
4)如果r值的變化形成環(huán)連續(xù),進(jìn)行二階微分運(yùn)算。由于r值在一階微分程序中已經(jīng)進(jìn)行了運(yùn)算,這使得二階微分程序可以大大簡化,不增加太多運(yùn)算。
5)調(diào)用球場上各分區(qū)的典型特征值,將實(shí)時(shí)測出的數(shù)據(jù)與典型特征值進(jìn)行比對,判斷機(jī)器人所處的位置。
對于橢圓而言,二階微分的本質(zhì)是長軸和短軸的值為常量,當(dāng)長軸與短軸相等時(shí)為正圓。
在一階微分的程序中計(jì)算圓弧半徑r,如果r值的變化形成環(huán)連續(xù),即從某起點(diǎn)的某一個(gè)值Ro變化又回到Ro值,則這是一個(gè)橢圓。在這個(gè)變化過程中必然有一個(gè)最大值和一個(gè)最小值,當(dāng)這兩個(gè)值比較接近時(shí)判斷結(jié)果是近乎一個(gè)正圓。這樣,二階微分程序可以大大簡化,從而不用增加太多運(yùn)算就可以實(shí)現(xiàn)目標(biāo)。r值達(dá)到最大值時(shí),定義為RMAX,達(dá)到最小值時(shí),定義為RMIN。
最終的實(shí)現(xiàn)代碼結(jié)構(gòu)如下:
由于篇幅所限,這里不能展示更多代碼。CountR(RMAX,RMIN)的具體代碼行及運(yùn)算已經(jīng)簡化了許多,比預(yù)計(jì)的運(yùn)算量省略了橢圓軸長的計(jì)算和二階微分的實(shí)際運(yùn)算,但這對于特征值的比對已經(jīng)夠用,基本實(shí)現(xiàn)了改進(jìn)的目標(biāo)。在經(jīng)過模擬器的測試后,也通過了機(jī)器人的實(shí)際驗(yàn)證。
為了統(tǒng)計(jì)測試改進(jìn)算法的效果,便于圖像處理算法的調(diào)試,也為了減少機(jī)器人的磨損,筆者開發(fā)了稱為模擬器的圖像處理軟件實(shí)驗(yàn)平臺,這樣可以很容易地在PC上(不是機(jī)器人上)驗(yàn)證關(guān)于視覺系統(tǒng)的一些程序和測試改進(jìn)算法的效果。模擬器的UI如圖3所示。其中,左上角位置的圖像是已經(jīng)灰化的圖像,左下角是灰度分布圖,閾值很容易在這張圖上找到。[5]
圖3 模擬器UI
目前模擬器實(shí)現(xiàn)了以下功能:
將機(jī)器人拍攝的彩色圖像轉(zhuǎn)換為灰度圖像,并顯示灰度分布圖;顯示機(jī)器人拍攝的圖片;可將像素顏色信息用RGB、YUV和HSI空間中的值描述出來,并將其在圖像中的坐標(biāo)顯示出來;可基于原圖的R通道、G通道、B通道或亮度特征實(shí)現(xiàn)轉(zhuǎn)換;可以設(shè)置閾值;可將圖像轉(zhuǎn)換為二值圖(黑白圖);可通過打標(biāo)記的方法實(shí)現(xiàn)目標(biāo)聚類,以識別出圖像中的不同對象并消除噪聲;對識別出來的對象自動描出輪廓線;可計(jì)算包括面積、周長、中心坐標(biāo)和圓形目標(biāo)特征參數(shù);根據(jù)特征參數(shù)找出目標(biāo);保留出一些接口供進(jìn)一步算法實(shí)驗(yàn)使用。
表1是在模擬器上測到的數(shù)據(jù)和統(tǒng)計(jì)結(jié)果。
表1 : 測量記錄與統(tǒng)計(jì)表
其中,平均誤差率比原來的數(shù)據(jù)9.6提高了約12%,定位平均用時(shí)比原數(shù)據(jù)47.3s提高了約10%。
本項(xiàng)研究借鑒了色彩RGB通道識別技術(shù)以及不變矩識別圖形技術(shù),進(jìn)一步探索以前開發(fā)的邊緣線微分算法,不斷改進(jìn)系統(tǒng);另一方面,加強(qiáng)實(shí)踐,即在搭建的足球場使用類人型足球機(jī)器人反復(fù)驗(yàn)證、不斷實(shí)踐,再改進(jìn)系統(tǒng)、修正系數(shù),直到逼近目標(biāo)。為了減少機(jī)器人的磨損,筆者開發(fā)了模擬器,以便調(diào)試改進(jìn)的程序,在模擬器上運(yùn)行無誤后再進(jìn)行真實(shí)機(jī)器人驗(yàn)證。
本文闡述了基于視覺機(jī)器人的邊緣線微分算法與改進(jìn)措施,重點(diǎn)考慮了橢圓函數(shù)的二階微分為常量的因素。這一改進(jìn)結(jié)果經(jīng)過自創(chuàng)的模擬器測試,也通過了MOS07型機(jī)器人的實(shí)際驗(yàn)證(如圖4所示),最終實(shí)現(xiàn)了預(yù)期目標(biāo),提高了約10%的效率,機(jī)器人定位的準(zhǔn)確性也提高了約12%。
圖4 邊緣線微分改進(jìn)算法的實(shí)際驗(yàn)證
本文提出的算法仍有改進(jìn)的空間,定位效率仍有待提高。今后,一方面要研究探討多種方法,根據(jù)不同情況選用,如色彩通道與“不變矩”和“相對矩”理論的運(yùn)用;另一方面,要深入分析特征值的變化規(guī)律,進(jìn)一步簡化計(jì)算過程,優(yōu)化程序代碼。
[1]李永佳.基于視覺的機(jī)器人定位研究[D].浙江:浙江大學(xué),2011.
[2]任旭虎.圖像特征點(diǎn)提取技術(shù)研究[J].儀表技術(shù)和傳感器,2009(11):83-85.
[3]杜慶海.基于不變矩特征的圖像識別[J].信息技術(shù)與信息化,2008(6):96-98.
[4]孔旭影,張志斌,林志紅,等.Research and Practice about Positioning Algorithms of Humanoid Robot in the RoboCup Soccer Stadium[A]//Proceedings of SICE Annual Conference 2010 in Taiwan[C],Japen:SICE,2010:3546-3549.
[5]林志紅,孔旭影.機(jī)器人足球識別算法改進(jìn)與研究[J].機(jī)器人技術(shù)與應(yīng)用,2010(4):42-44。