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