李丹美,王 凱
(東華大學 信息科學與技術學院,上海 201620)
隨著近年來智能科技的飛速發展,多數領域也開始涉及到智能技術。玩具行業便是其中之一。近年來,玩具行業開始逐漸生產一種大型的有軌玩具車投放到大型的商場、游樂場中供孩子們娛樂。目前,玩具行業生產的帶有賽道的玩具賽車主要還是基于軌道的,通過跑道上面的軌道來控制玩具車的行駛。更智能化的玩具賽車是基于賽道的。這種玩具賽車主要通過攝像頭獲取道路圖像信息,然后通過對道路圖像的處理來提供控制賽車行駛的數據。
由于玩具賽車上面攝像頭固定的位置所限,所采集到的圖像存在梯形失真,不能直接被用來做控制數據,所以需要對采集到的圖像進行處理,得到相對來說更準確的賽道數據信息,然后再傳給智能玩具賽車的控制模塊,保證能夠準確地控制玩具賽車的行駛。
本文的研究主要是對智能玩具賽車采集到的賽道畸變圖像做校正處理。由于采用的是二值攝像頭,所以直接從二值圖像開始進行處理,通過對圖像進行邊緣檢測以及輪廓提取來確定校正取點,以此來校正失真圖像。最后通過對校正過程的改進使得校正算法更適合本次圖像的梯形校正,以達到更好的處理效果。
圖像的畸變主要是指在生成可視圖像時由于各種原因導致圖像成像時扭曲變形、旋轉、伸展等各種失真,與原圖像相比位置、形狀等畸變。主要的畸變類型有:桶形失真、枕形失真、梯形失真、魚眼失真等[1],各種失真模型如圖1所示,虛線構成的方塊為原不失真圖像,實線構成的多邊形為畸變后的圖像。

圖1 幾種圖像畸變幾何模型
根據采集到的十字道路的圖像可以判斷出,本次研究的課題中,攝像頭采集到的圖像主要產生畸變類型屬于梯形畸變。
攝像頭安裝的位置近似于機器人的最高點,由于攝像頭要采集機器人前面的即將駛入的道路信息,所以攝像頭安裝后攝像鏡頭為向前下方傾斜的情況(如圖2所示),此時拍攝效果類似于人眼獲取前面道路信息的效果,會呈現出近寬遠窄的情況,因此獲取的圖像信息會產生梯形畸變,使得本為同等寬度的賽道,最后采集到的效果為近寬遠窄的情況。圖3所示分別為十字入口、彎道入口時采集到的賽道圖像。

圖2 攝像頭采集圖像時的高度和距離模型

圖3 攝像頭拍攝到的失真圖像
由于采集到的圖像發生了畸變,因此對圖像的視覺感受便是賽道發生了扭曲,這樣提取的中心線與實際情況下的中心線會發生不同程度的偏差,非常不利于玩具賽車的行駛。因此,這種產生畸變的圖像,一方面會使得判斷直道、彎道、環道時容易出現失誤,另一方面通過中心線進行行駛控制時會對速度和方向產生較大的干擾。所以,對機器人采集到的畸變圖像進行圖像校正處理是一個急需解決的問題。
對于圖像的失真校正,就是將畸變的圖像還原出垂直看向賽道的情況。校正過程主要分為預處理和畸變校正兩部分。處理框圖如圖4所示。

圖4 圖像矯正流程圖
在對圖像進行畸變校正之前需要先對采集到的圖像進行預處理操作。預處理的作用是優化采集到的圖像,減少后期主要操作時無用信息帶來的干擾,增加處理結果的準確性。預處理主要包括邊緣檢測、形態學運算、輪廓提取等幾個步驟。邊緣檢測主要用來檢測出賽道的邊界線,然后通過形態學的膨脹腐蝕運算來優化邊界線,減少邊界線檢測時的噪聲影響,最后再通過輪廓提取來提取出賽道的邊界線。
本次研究所用的邊緣檢測算子主要有Sobel算子和Prewitt算子[2-4]。這兩種算子的3×3模板如圖5所示。算法定義如下式:
(1)
其中,G為圖像的梯度,gx和gy分別為該點水平方向和垂直方向上的圖像灰度值。公式(2)和(3)分別為Sobel模板和Prewitt模板下的gx和gy,其中z項為灰度。
(2)
(3)

圖5 邊緣檢測兩種算子的3×3模板
本次研究的課題中輪廓提取所用的方法為Radon變換。Radon變換具有一定的抗干擾能力,同時也易于實現。Radon變換定義如下:

(4)

(5)
其中原函數f(x,y)為圖像在(x,y)處的灰度。Radon變換就是將待處理的圖像從二維坐標轉換成ρ-θ空間,即為直線在ρ-θ空間的水平投影。從幾何意義上可以理解為二維函數f(x,y)在θ方向上(沿x坐標軸逆時針成θ角)距離原點x′的長度在x軸的水平投影值[5]。通過檢測Radon變換矩陣中的峰值便可以確定圖像的邊緣輪廓,輪廓圖像如圖6所示。

圖6 兩種不同的算子處理之后提取的輪廓圖像
經分析對比,在邊緣檢測的時候由兩種算子分別處理之后再提取的輪廓結果差別不大,但是仔細對比之后發現,針對本次圖片使用sobel算子處理之后得出的效果相對更好一點。
2.2.1畸變校正
畸變的存在不利于對圖像的辨認、分析和判斷。由于采集到的圖像存在的畸變較大,特別是彎道和環道圖像,若不進行校正處理將會對后面的處理帶來較大的誤差。因此為了提高圖像處理后輸出數據的準確性,在圖像處理之前首先需要對圖像進行校正處理,而校正的準確度也將會直接影響到處理之后數據的準確性。
(6)
(7)
校正結果如圖7所示。

圖7 校正后圖像
2.2.2校正改進
由于校正出來的圖像結果還存在有失真情況,特別是彎道的處理結果不太成功,經過多次仿真實驗,歸其原因為原圖像為二值圖像,灰度值非0即1,輪廓在原圖像上不能正常顯示,所以在進行取點時隨機性過大,分別會造成不同程度的失真。
因此本次研究同時對以上方法進行了改進。在對圖像取點時將不再對整合的原圖像進行取點,而是直接針對提取的輪廓圖像進行取點,然后進行輪廓圖像的校正,之后再進行插值及填充補償。
改進之后的算法基本步驟為:
(1)對采集到的圖像進行邊緣檢測及輪廓提取;
(2)針對提取的輪廓圖像進行圖像校正及鄰域插值,保證校正后的輪廓的連續性;
(3)對校正后的輪廓圖像使用圖像填充技術進行填充補償,還原圖像的連通性,保證道路信息的完整。這里使用的填充算法的基本思想為:滿足待填充的邊界約束條件(式(8))的閉合區域內的點可以構成一個可行域點集T,T內的點包含了圖案上的點和待填充的點。基于約束條件,可以將填充區域轉化為可行區域,而可行區域的填充則是一個定向搜索問題,這樣在填充的同時也解決了效率問題[7]。
(8)
其中fi(x)=0是閉合圖形的第i端曲線方程。
得到的校正后的賽道圖像如圖8所示。

圖8 改進后的校正圖像
本次實驗研究主要采用MATLAB編程處理。從上面的圖像校正結果可以對比分析出改進方法的優點主要有:(1)由于只有輪廓的灰度為白色,所以取點時比較準確;(2)對于十字賽道的處理,在處理之后不僅校正了直道部分,通向兩邊的賽道在校正的同時也保證了不失真;(3)對于彎道的處理,通過準確取點,也有效地改善了校正的結果。通過良好的校正結果,對之后要研究的中心線提取、路徑識別等問題也做了充分的準備。
本次研究中有待改進之處為:由于條件限制,采集賽道信息的設備不夠齊全,所以采集到的賽道圖像過于單一,校正方法具有一定的針對性。因此接下來要解決的便是針對更多種類的賽道圖像進行研究,將本文中的方法升級到能夠適應多種賽道情況,提高其有效性。