程鴻芳 錢峰 李敏
(蕪湖職業(yè)技術(shù)學(xué)院,安徽蕪湖 241000)
“飛思卡爾”杯全國(guó)大學(xué)生智能車大賽是由摩托羅拉旗下飛思卡爾公司贊助、由高等學(xué)校自動(dòng)化專業(yè)教學(xué)指導(dǎo)委員會(huì)負(fù)責(zé)主辦的全國(guó)性的賽事。按照首屆全國(guó)大學(xué)生“飛思卡爾”智能車大賽規(guī)則要求,根據(jù)賽道特點(diǎn),主要有3種尋線設(shè)計(jì)方案:光電傳感器方案、攝像頭方案和電磁方案。2011年第六屆比賽中要求賽道是由白色底板和黑色的指引虛線組成,綜合考慮3種方案的特點(diǎn),本文采用的是攝像頭方案。
在攝像頭方案的前提下,在實(shí)時(shí)的圖像數(shù)據(jù)獲取的基礎(chǔ)上對(duì)圖像信息進(jìn)行數(shù)據(jù)處理,從而提取賽道中心的黑色指引虛線,以此來(lái)作為舵機(jī)和驅(qū)動(dòng)電機(jī)的控制依據(jù)。以往的賽道中的黑色指引線是實(shí)線,而第六屆比賽賽道是黑色的指引虛線,中間存在斷點(diǎn)。針對(duì)這種賽道,本文采用的方法是在改進(jìn)的邊緣檢測(cè)算法和左邊跟蹤檢測(cè)法的基礎(chǔ)上,將虛線跑道補(bǔ)實(shí),從而完成智能車的賽道信息采集。由邊緣檢測(cè)算法和左邊跟蹤檢測(cè)法得出的各行黑線的中心值center(i),縱坐標(biāo)記為i;當(dāng)檢測(cè)遇到虛線時(shí),將上一行實(shí)線的中心值center(j)彌補(bǔ)本次的中心值,橫坐標(biāo)記為center(j),這樣虛線兩邊與實(shí)線交界點(diǎn)的坐標(biāo)記為 (center(j1),j1)和 (center(j2),j2),求出這兩點(diǎn)構(gòu)成直線的斜率k和直線方程,即可算出虛線行的橫坐標(biāo),來(lái)補(bǔ)足虛線。
本文采用的數(shù)字?jǐn)z像頭的型號(hào)為OV7620,將攝像頭固定在車體的中間,前瞻性約1 m。要想采集的圖像準(zhǔn)確,必須要了解攝像頭的時(shí)序,攝像頭的時(shí)序圖如圖1所示。
圖1 OV7620時(shí)序圖
在圖像采集方面,因?yàn)閱纹瑱C(jī)XS128的內(nèi)存和數(shù)據(jù)處理能力,使得只能對(duì)整幅賽道圖像的一部分進(jìn)行采集。目前常用的采集方法有2種:一是采取固定的隔行數(shù)進(jìn)行隔行采集;二是采取遠(yuǎn)近隔行采集。本文采取遠(yuǎn)近隔行采集,因?yàn)閿z像頭在采集過(guò)程中會(huì)產(chǎn)生畸變以及光線的影響,距離越遠(yuǎn),圖像畸變的越厲害,那么就把采集到的賽道圖像分成幾部分處理。本文將圖像分4段采集,以遠(yuǎn)處的圖像小近處圖像大的特點(diǎn)使用遠(yuǎn)密進(jìn)疏的原則,前20行每隔2行采1次,20到60行中每隔3行采1次,60到140行中每隔4行采1次,剩下的每隔5行采1次。這樣能更真實(shí)的展現(xiàn)圖像。
圖像的邊緣包含用于識(shí)別的有用信息,圖像的其他特征都是由邊緣和區(qū)域這些基本特征推導(dǎo)出來(lái)的[1]。文獻(xiàn)[2]將邊緣定義為場(chǎng)景某一區(qū)域的不連貫,文獻(xiàn)[3]則根據(jù)外形將邊緣分為:線、階梯、尖頂。圖像中的物體與物體,或者物體與背景之間的交界可以視為邊緣,圖像的灰度及顏色急劇變化的地方也可以看作是邊緣。在圖像中有顏色的變化必定會(huì)有灰度的變化,故對(duì)于邊緣的檢測(cè)焦點(diǎn)集中在灰度上就可以[4]。常規(guī)算法將圖像進(jìn)行二值化處理,在本文中直接使用攝像頭獲取的灰度值,減少了二值化的過(guò)程。實(shí)際操作中,我們認(rèn)定閾值在20~50之間為黑點(diǎn),閾值在180~220之間為白點(diǎn)。具體操作:從第一行的第一列開始進(jìn)行處理,用第一行的第i個(gè)點(diǎn)的灰度值減去第i+1個(gè)點(diǎn)的灰度值,當(dāng)它們的差在[20,50]時(shí),說(shuō)明已找到黑點(diǎn),即找到了黑線的起始點(diǎn),然后記下該點(diǎn)的位置,并把該點(diǎn)標(biāo)記為左邊界left,然后繼續(xù)進(jìn)行判斷,當(dāng)出現(xiàn)差值在[180,220]時(shí),說(shuō)明已找到了黑線的結(jié)束點(diǎn),記下該點(diǎn)的坐標(biāo)值,并標(biāo)記為右邊界right。如果前2個(gè)點(diǎn)大于閾值且后2個(gè)點(diǎn)小于閾值,即為無(wú)效行。分別求出每行的左右黑點(diǎn)位置,并標(biāo)記為left和right,然后各行的中心值為,最后賦給數(shù)組center(i)。
左邊跟蹤檢測(cè)法是一種改進(jìn)的邊緣檢測(cè)算法。其思路是:先根據(jù)邊緣檢測(cè)算法找到第一行的黑線中心坐標(biāo),對(duì)于下面的行處理,根據(jù)圖像的連續(xù)性,下一行的黑線中心就是在上一行的黑線中心附近進(jìn)行搜索[5]。具體操作:找出離攝像頭最近的第一行采用邊緣檢測(cè)找出中心值center;從第二行開始以前行的中心值為基準(zhǔn)點(diǎn),設(shè)定步變量,值為20。從基準(zhǔn)點(diǎn)開始向左邊以20以內(nèi)的范圍進(jìn)行查找,如果符合條件,將符合條件的縱坐標(biāo)作為中心值。如不符合條件,就以基準(zhǔn)點(diǎn)開始向右邊以20以內(nèi)的有效范圍內(nèi)進(jìn)行查找。如果符合條件,將符合條件的縱坐標(biāo)作為中心值。如不符合條件,則為無(wú)效行。
黑色指引虛線的提取算法在邊緣檢測(cè)算法和左邊跟蹤檢測(cè)法的基礎(chǔ)上,將虛線補(bǔ)成實(shí)線,然后提取黑色實(shí)線。xs128(飛思卡爾的芯片)片內(nèi)的ran是8 K,為減少ran的使用效率,應(yīng)盡量減小圖像矩陣。本文中使用64*84的圖像矩陣。具體操作:
步驟1:從離攝像頭開始選取12行,采用邊緣檢測(cè)法,檢測(cè)提取出黑線中心值center[i];
步驟2:當(dāng)遇到虛線時(shí),暫時(shí)先用上一次采用的黑線中心值彌補(bǔ)這一次的中心值,記下此虛線區(qū)的行號(hào)范圍;
步驟3:剩下的40行采用左邊跟蹤檢測(cè)法,以范圍型的檢測(cè)提取黑線中心值center[i];
步驟4:同步驟2;
步驟5:采用中值濾波,將中心值進(jìn)行中值濾波,使圖像更圓滑;
步驟6:進(jìn)行虛線處理,將虛線的上下2點(diǎn)連成直線,2 點(diǎn)的坐標(biāo)分別為 (x1,y1),(x2,y2),該直線的斜率,根據(jù)公式y(tǒng)=kx+b,求出所有點(diǎn)的列號(hào)。將所有點(diǎn)根據(jù)坐標(biāo)值,進(jìn)行相連,將虛線轉(zhuǎn)變成直線。
步驟7:返回步驟1。
(1)在實(shí)驗(yàn)過(guò)程中,賽道原圖如圖2所示,攝像頭采集長(zhǎng)度約為1 m的路徑,如圖3所示。
圖2 賽道原圖
圖3 賽道采樣圖
(2)對(duì)虛線賽道進(jìn)行提取操作,如圖4所示。
圖4 賽道提取圖
(3)對(duì)虛線的處理操作,將虛線的上下2點(diǎn)A、B連成直線,A點(diǎn)的坐標(biāo)為(x1,y1),B點(diǎn)的坐標(biāo)為(x2,y2),直線AB的斜率,根據(jù)公式y(tǒng)AB=kABx+b,求出所有點(diǎn)的列號(hào)。將所有點(diǎn)根據(jù)坐標(biāo)值,進(jìn)行相連,將虛線轉(zhuǎn)變成直線,如圖5所示,補(bǔ)齊的賽道如圖6所示。
圖5 坐標(biāo)圖
圖6 賽道圖
本文提出的算法是在改進(jìn)的邊緣檢測(cè)算法和左邊跟蹤檢測(cè)法的基礎(chǔ)上,利用直線斜率和直線方程,將虛線跑道補(bǔ)實(shí),來(lái)完成智能車信息采集的。在系統(tǒng)設(shè)計(jì)完成后,經(jīng)過(guò)多次的調(diào)試運(yùn)行,智能車系統(tǒng)在遵守比賽規(guī)則正確尋跡的前提下,平均速度達(dá)到2 m/s,彎道速度可達(dá)1.8 m/s,而在直道上,智能車的速度可以達(dá)到2.2 m/s。實(shí)際測(cè)試表明,該方法能夠?qū)崿F(xiàn)路徑識(shí)別的正確性和快速性,可在黑白(或色差較大)賽道上獲得良好的自主尋跡效果。
[1]朱振偉,劉廣瑞,劉巧紅.一階邊緣檢測(cè)算法的研究[J].現(xiàn)代電子技術(shù),2009,24(11):88-90.
[2]吳晴,吳振華,鄭榜貴.形態(tài)學(xué)在道路圖像邊界檢測(cè)中的應(yīng)用[J].控制工程,2010,17(1):80-86.
[3]許寰,魯五一,趙治平.攝像頭路徑識(shí)別和小車控制策略[J].計(jì)算機(jī)工程與科學(xué),2009,31(5):110-115.
[4]艾寧,瞿少成,劉冬,等.基于CCD攝像頭的智能車路徑識(shí)別及跟蹤研究[J].電子測(cè)量技術(shù),2009,32(8):77-80.
[5]朱廣,周程亮.CCD圖像傳感器在路徑識(shí)別系統(tǒng)中的應(yīng)用[J].工業(yè)控制計(jì)算機(jī),2009,22(3):50-51.
[6]梁業(yè)宗,李波,趙磊.基于路徑識(shí)別算法的智能車控制系統(tǒng)的設(shè)計(jì)[J].自動(dòng)化技術(shù)與應(yīng)用,2009,28(1):121-123.
[7]韓毅,楊天.基于紅外傳感器的智能尋跡賽車的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(11):2687-2690.
[8]陳東,向巍.基于光電管的智能車模設(shè)計(jì)[J].機(jī)床與液壓,2007,35(7):51-54.
[9]吳斌華,黃衛(wèi)華,程磊,等.基于路徑識(shí)別的智能車系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2007(3):80-83.
[10]程釗,萬(wàn)齊齊,唐旋來(lái),等.智能車道路識(shí)別及控制研究[J].伺服控制,2007(11):49-51.