李丹美,王 凱
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620)
隨著近年來智能科技的飛速發(fā)展,多數(shù)領(lǐng)域也開始涉及到智能技術(shù)。玩具行業(yè)便是其中之一。近年來,玩具行業(yè)開始逐漸生產(chǎn)一種大型的有軌玩具車投放到大型的商場、游樂場中供孩子們娛樂。目前,玩具行業(yè)生產(chǎn)的帶有賽道的玩具賽車主要還是基于軌道的,通過跑道上面的軌道來控制玩具車的行駛。更智能化的玩具賽車是基于賽道的。這種玩具賽車主要通過攝像頭獲取道路圖像信息,然后通過對道路圖像的處理來提供控制賽車行駛的數(shù)據(jù)。
由于玩具賽車上面攝像頭固定的位置所限,所采集到的圖像存在梯形失真,不能直接被用來做控制數(shù)據(jù),所以需要對采集到的圖像進(jìn)行處理,得到相對來說更準(zhǔn)確的賽道數(shù)據(jù)信息,然后再傳給智能玩具賽車的控制模塊,保證能夠準(zhǔn)確地控制玩具賽車的行駛。
本文的研究主要是對智能玩具賽車采集到的賽道畸變圖像做校正處理。由于采用的是二值攝像頭,所以直接從二值圖像開始進(jìn)行處理,通過對圖像進(jìn)行邊緣檢測以及輪廓提取來確定校正取點(diǎn),以此來校正失真圖像。最后通過對校正過程的改進(jìn)使得校正算法更適合本次圖像的梯形校正,以達(dá)到更好的處理效果。
圖像的畸變主要是指在生成可視圖像時由于各種原因?qū)е聢D像成像時扭曲變形、旋轉(zhuǎn)、伸展等各種失真,與原圖像相比位置、形狀等畸變。主要的畸變類型有:桶形失真、枕形失真、梯形失真、魚眼失真等[1],各種失真模型如圖1所示,虛線構(gòu)成的方塊為原不失真圖像,實(shí)線構(gòu)成的多邊形為畸變后的圖像。
圖1 幾種圖像畸變幾何模型
根據(jù)采集到的十字道路的圖像可以判斷出,本次研究的課題中,攝像頭采集到的圖像主要產(chǎn)生畸變類型屬于梯形畸變。
攝像頭安裝的位置近似于機(jī)器人的最高點(diǎn),由于攝像頭要采集機(jī)器人前面的即將駛?cè)氲牡缆沸畔?,所以攝像頭安裝后攝像鏡頭為向前下方傾斜的情況(如圖2所示),此時拍攝效果類似于人眼獲取前面道路信息的效果,會呈現(xiàn)出近寬遠(yuǎn)窄的情況,因此獲取的圖像信息會產(chǎn)生梯形畸變,使得本為同等寬度的賽道,最后采集到的效果為近寬遠(yuǎn)窄的情況。圖3所示分別為十字入口、彎道入口時采集到的賽道圖像。
圖2 攝像頭采集圖像時的高度和距離模型
圖3 攝像頭拍攝到的失真圖像
由于采集到的圖像發(fā)生了畸變,因此對圖像的視覺感受便是賽道發(fā)生了扭曲,這樣提取的中心線與實(shí)際情況下的中心線會發(fā)生不同程度的偏差,非常不利于玩具賽車的行駛。因此,這種產(chǎn)生畸變的圖像,一方面會使得判斷直道、彎道、環(huán)道時容易出現(xiàn)失誤,另一方面通過中心線進(jìn)行行駛控制時會對速度和方向產(chǎn)生較大的干擾。所以,對機(jī)器人采集到的畸變圖像進(jìn)行圖像校正處理是一個急需解決的問題。
對于圖像的失真校正,就是將畸變的圖像還原出垂直看向賽道的情況。校正過程主要分為預(yù)處理和畸變校正兩部分。處理框圖如圖4所示。
圖4 圖像矯正流程圖
在對圖像進(jìn)行畸變校正之前需要先對采集到的圖像進(jìn)行預(yù)處理操作。預(yù)處理的作用是優(yōu)化采集到的圖像,減少后期主要操作時無用信息帶來的干擾,增加處理結(jié)果的準(zhǔn)確性。預(yù)處理主要包括邊緣檢測、形態(tài)學(xué)運(yùn)算、輪廓提取等幾個步驟。邊緣檢測主要用來檢測出賽道的邊界線,然后通過形態(tài)學(xué)的膨脹腐蝕運(yùn)算來優(yōu)化邊界線,減少邊界線檢測時的噪聲影響,最后再通過輪廓提取來提取出賽道的邊界線。
本次研究所用的邊緣檢測算子主要有Sobel算子和Prewitt算子[2-4]。這兩種算子的3×3模板如圖5所示。算法定義如下式:
(1)
其中,G為圖像的梯度,gx和gy分別為該點(diǎn)水平方向和垂直方向上的圖像灰度值。公式(2)和(3)分別為Sobel模板和Prewitt模板下的gx和gy,其中z項(xiàng)為灰度。
(2)
(3)
圖5 邊緣檢測兩種算子的3×3模板
本次研究的課題中輪廓提取所用的方法為Radon變換。Radon變換具有一定的抗干擾能力,同時也易于實(shí)現(xiàn)。Radon變換定義如下:
(4)
(5)
其中原函數(shù)f(x,y)為圖像在(x,y)處的灰度。Radon變換就是將待處理的圖像從二維坐標(biāo)轉(zhuǎn)換成ρ-θ空間,即為直線在ρ-θ空間的水平投影。從幾何意義上可以理解為二維函數(shù)f(x,y)在θ方向上(沿x坐標(biāo)軸逆時針成θ角)距離原點(diǎn)x′的長度在x軸的水平投影值[5]。通過檢測Radon變換矩陣中的峰值便可以確定圖像的邊緣輪廓,輪廓圖像如圖6所示。
圖6 兩種不同的算子處理之后提取的輪廓圖像
經(jīng)分析對比,在邊緣檢測的時候由兩種算子分別處理之后再提取的輪廓結(jié)果差別不大,但是仔細(xì)對比之后發(fā)現(xiàn),針對本次圖片使用sobel算子處理之后得出的效果相對更好一點(diǎn)。
2.2.1畸變校正
畸變的存在不利于對圖像的辨認(rèn)、分析和判斷。由于采集到的圖像存在的畸變較大,特別是彎道和環(huán)道圖像,若不進(jìn)行校正處理將會對后面的處理帶來較大的誤差。因此為了提高圖像處理后輸出數(shù)據(jù)的準(zhǔn)確性,在圖像處理之前首先需要對圖像進(jìn)行校正處理,而校正的準(zhǔn)確度也將會直接影響到處理之后數(shù)據(jù)的準(zhǔn)確性。
(6)
(7)
校正結(jié)果如圖7所示。
圖7 校正后圖像
2.2.2校正改進(jìn)
由于校正出來的圖像結(jié)果還存在有失真情況,特別是彎道的處理結(jié)果不太成功,經(jīng)過多次仿真實(shí)驗(yàn),歸其原因?yàn)樵瓐D像為二值圖像,灰度值非0即1,輪廓在原圖像上不能正常顯示,所以在進(jìn)行取點(diǎn)時隨機(jī)性過大,分別會造成不同程度的失真。
因此本次研究同時對以上方法進(jìn)行了改進(jìn)。在對圖像取點(diǎn)時將不再對整合的原圖像進(jìn)行取點(diǎn),而是直接針對提取的輪廓圖像進(jìn)行取點(diǎn),然后進(jìn)行輪廓圖像的校正,之后再進(jìn)行插值及填充補(bǔ)償。
改進(jìn)之后的算法基本步驟為:
(1)對采集到的圖像進(jìn)行邊緣檢測及輪廓提??;
(2)針對提取的輪廓圖像進(jìn)行圖像校正及鄰域插值,保證校正后的輪廓的連續(xù)性;
(3)對校正后的輪廓圖像使用圖像填充技術(shù)進(jìn)行填充補(bǔ)償,還原圖像的連通性,保證道路信息的完整。這里使用的填充算法的基本思想為:滿足待填充的邊界約束條件(式(8))的閉合區(qū)域內(nèi)的點(diǎn)可以構(gòu)成一個可行域點(diǎn)集T,T內(nèi)的點(diǎn)包含了圖案上的點(diǎn)和待填充的點(diǎn)?;诩s束條件,可以將填充區(qū)域轉(zhuǎn)化為可行區(qū)域,而可行區(qū)域的填充則是一個定向搜索問題,這樣在填充的同時也解決了效率問題[7]。
(8)
其中fi(x)=0是閉合圖形的第i端曲線方程。
得到的校正后的賽道圖像如圖8所示。
圖8 改進(jìn)后的校正圖像
本次實(shí)驗(yàn)研究主要采用MATLAB編程處理。從上面的圖像校正結(jié)果可以對比分析出改進(jìn)方法的優(yōu)點(diǎn)主要有:(1)由于只有輪廓的灰度為白色,所以取點(diǎn)時比較準(zhǔn)確;(2)對于十字賽道的處理,在處理之后不僅校正了直道部分,通向兩邊的賽道在校正的同時也保證了不失真;(3)對于彎道的處理,通過準(zhǔn)確取點(diǎn),也有效地改善了校正的結(jié)果。通過良好的校正結(jié)果,對之后要研究的中心線提取、路徑識別等問題也做了充分的準(zhǔn)備。
本次研究中有待改進(jìn)之處為:由于條件限制,采集賽道信息的設(shè)備不夠齊全,所以采集到的賽道圖像過于單一,校正方法具有一定的針對性。因此接下來要解決的便是針對更多種類的賽道圖像進(jìn)行研究,將本文中的方法升級到能夠適應(yīng)多種賽道情況,提高其有效性。