勞健濤,李智豪,蒲小年,胡靜宜,戚慧珊,唐小煜
(華南師范大學 物理與電信工程學院,廣東 廣州 510006)
在大中學生參加的一系列智能車競賽中,參賽作品都是基于某系列的單片機主控下搭建的智能車,能夠自主識別賽道信息,自主控制小車行駛,并以最短時間完成指定賽道行駛為優(yōu). 由于單片機的硬件資源有限,控制算法的運行時間往往決定了智能車行駛速度. 為此,本文就智能車在圖像畸變還原算法上提出使用于不同型號攝像頭的快速且有效的處理方法,對于提高智能車的整體運行速度及優(yōu)化圖像處理算法有幫助.
在智能車競賽中,最適合單片機處理以及智能車線路規(guī)劃的圖像無疑是垂直于賽道的正視圖圖像. 但在實際情況中,由于智能車的車體結(jié)構(gòu)以及攝像頭的安裝位置(圖1)等多方面的限制,攝像頭拍攝方向與地面存在一定的傾角. 傾角的存在必然會造成圖像的畸形失真(圖2),從而不利于智能車線路控制的準確性.
圖1 攝像頭在智能車上的安裝位置圖
圖2 在智能車視角下的圖像(手機拍攝)
通過智能車攝像頭采集的圖像存在畸變. 畸變可分成水平方向和垂直方向.
1)水平方向:賽道圖像在水平方向上的壓縮與其在垂直方向上距離有關(guān),距離越遠,壓縮程度越大. 同時,與中心軸距離的不同,壓縮程度也不同. 水平方向上的圖像畸變主要影響賽道特征的提取與智能車的橫向控制,尤其是在S型彎道、圓環(huán)等賽道元素下影響嚴重.
2)垂直方向:賽道圖像在垂直方向上的畸變與距離成非線性相關(guān),距離越遠的圖像,其在垂直方向上的壓縮越嚴重. 這主要影響了智能車的縱向控制,即會導致賽道元素與車體距離的判斷存在誤差,影響了智能車的速度控制以及舵機的打角時機.
由圖3~4對比可得,實際圖像為等距離的虛線段,而由智能車攝像頭采集的圖像可以看出,水平方向和垂直方向上的畸變壓縮都隨著距離的增大而加重.
圖3 智能車攝像頭區(qū)域下的正視
圖4 智能車實際拍攝圖像
文獻[1]中提及了2種畸變還原的模型,分別對應(yīng)水平方向上和垂直方向上的畸變情況. 同時,2種模型所需的參量多且各不相同,尤其是水平方向畸變模型所需的參量在實際情況較難獲得準確的值. 為此,提出通用性強、簡單有效的圖像畸變還原的方法.
圖像畸變還原的過程實際上是攝像頭坐標系與正視圖坐標系的映射過程[2],或者說是畸變圖像的像素點與正視圖圖像的對應(yīng)像素點的映射過程. 其二維數(shù)據(jù)的映射關(guān)系為[3]
(1)
其中,x和y對應(yīng)存在畸變的圖像的橫縱坐標,u和v對應(yīng)畸變還原后圖像的橫縱坐標,a,b,c,d,e和f為映射系數(shù). 由于是二維坐標系的映射,需要在原圖像上分別選取水平方向上及垂直方向上關(guān)于中心軸對稱的2個點,以及確定其在畸變還原后圖像上點的坐標. 將這8個點的坐標代入(1)式可得:
(2)
通過求解上述矩陣,很容易求得a~f這6個映射系數(shù).
由于梯形畸變校正后的圖像相對于原圖像有很多缺失的像素點,所以需要對梯形畸變[4]校正后的圖像進行插值處理. 本文所采用的插值方法為鄰域平均法,更新圖像像素點的灰度值后,通過設(shè)定閾值處理,即可還原出理想效果的圖像,是一種適合在智能車競賽中實現(xiàn)的插值方法[5].
其中S為包括中心點在內(nèi)的區(qū)域,M為區(qū)域內(nèi)的總點數(shù).
由于智能車賽道的連續(xù)性,對于垂直方向上缺失的像素點,只需取得相鄰非缺失行的平均值,即M的區(qū)域為上下非缺失2行連成的區(qū)域. 而對于水平方向上的缺失像素點,為提高圖像還原的準確性,M則取缺失像素點相鄰的8個點圍成的區(qū)域. 由于智能車賽道的連續(xù)性以及賽道寬度的一致性,在使用插值算法時一般由預提取的中線分別向左右兩邊進行處理. 同時,由于圖像底部的失真度最低,插值算法的使用可由最底部往上掃描,以提高圖像的還原度.
以全國大學生“恩智浦杯”智能汽車競賽為例,根據(jù)實際比賽的賽道寬度,僅需要用A4紙裁剪出1張正方形白紙. 由于距離越近的圖像部分,其畸變的程度越小,所以將正方形白紙的一邊對齊攝像頭拍攝圖像的最底部. 同時,白紙的中軸與攝像頭中軸保持一致. 選取競賽用途的鷹眼OV7725型號攝像頭進行拍攝采集像素點為80×60的圖像,可以得到圖5所示的圖像(圖像已經(jīng)經(jīng)過二值化處理),其4個角的坐標分別為(44,26),(44,50),(59,20),(59,57). 由于圖像的對稱性以及正方形的等邊特性,以底邊沒有發(fā)生畸變壓縮,很容易確定正方形4個角在正視圖坐標系上的坐標,分別對應(yīng)為(22,20),(22,57),(59,20),(59,57). 將8個坐標點代入(2)式,解得映射系數(shù)a,b,c,d,e,f,g和h分別為-2.617 9,-2.273 6, 134.141 5, 0,-7.806 6,306.132 1, 0,-0.061 3. 通過(1)式將原采集到的圖像(圖5)進行映射,可以得到圖6所示的圖像. 對圖6所示的圖像使用針對缺失行的插值算法,可以得到如圖7所示圖像,其中藍色區(qū)域為補充行. 對圖7進一步使用鄰域平均法進行插值,可以得到最終還原出來的圖像,還原效果如圖8所示.
圖5 攝像頭采集到的圖像
圖6 初步畸變還原后的圖像
圖7 缺失行的插值處理后的圖像
圖8 最終還原后的圖像
提出了適合在智能車競賽上使用的圖像畸變還原的方法,其實現(xiàn)原理簡單,還原效果理想,減少程序的處理時間,更有利于智能車路線規(guī)劃與舵機控制的處理. 在硬件資源有限的單片機處理下,該方法可以滿足參賽選手的需要,也適合作為賽前培訓或圖像處理實驗的思維擴展.
參考文獻:
[1] 陳思,常征. 基于視覺的智能車圖像畸變校正算法研究[J]. 計算機與網(wǎng)絡(luò),2016,42(3/4):88-89.
[2] 甄紅濤,齊曉慧,白勇博. 智能車攝像頭圖像畸變矯正的研究[J]. 信息技術(shù),2016,35(1):52-55.
[3] 姚琴芳. Matlab語言在物理實驗數(shù)據(jù)處理中的應(yīng)用[J]. 大學物理實驗,2011,24(6):52-54.
[4] 徐友春,王榮本. 智能車輛視野及其圖像變形矯正的研究[J]. 公路交通科技,2000,17(5):76-80.
[5] 彭宏,趙鵬博. 邊緣檢測中的改進型均值濾波算法[J]. 計算機工程,2017,43(10):172-178.