羅 麗, 邢傳璽, 高 飛, 龍朝旭, 王致誠
(云南民族大學(xué) 電氣信息工程學(xué)院,云南 昆明 650500)
傳統(tǒng)的智能汽車常常利用中線尋跡法[1~4]結(jié)合中值濾波算法[5]、邊緣增強(qiáng)法[6]對圖像進(jìn)行處理從而識別道路軌跡。中線尋跡法僅適用于線性(charge coupled device,CCD)能看到兩條黑線的情況,即直道,在彎道中并不適用;中值濾波法需要進(jìn)行大量的數(shù)據(jù)比較,算法執(zhí)行時間較長,無法滿足圖像實時處理要求易造成細(xì)節(jié)的丟失[7];邊緣增強(qiáng)法不能很好地解決邊緣增強(qiáng)后灰度值溢出的問題,易引起圖像失真。
本文針對上述算法的不足進(jìn)行了改進(jìn),采用單行黑線提取算法。單行黑線提取算法是指對圖像進(jìn)行二值化處理,即將圖像上點(diǎn)的灰度值置為0或255,所有灰度大于或等于閾值的像素判定為黑色;否則,像素點(diǎn)為白色。二值化算法有較強(qiáng)的抗干擾能力和較快的運(yùn)算速度。與傳統(tǒng)二值化處理方法采用一個靜態(tài)閾值(大小介于20~35之間)不同,智能汽車在行駛過程中因受光線等外部環(huán)境影響,行駛過程中的閾值需不斷變換,故本文采用動態(tài)閾值法,作為二值化處理算法的依據(jù)和主要參數(shù)。采用動態(tài)閾值的單行黑線提取算法得到的黑線提取效果不僅可靠,而且實時性好。既避免了灰度值溢出問題又能使智能汽車簡單快速地尋找軌跡且適應(yīng)各種彎道或直道的情況,實現(xiàn)智能避障。在失去黑線目標(biāo)后可記憶從左側(cè)或右側(cè)超出視野,從而控制舵機(jī)轉(zhuǎn)向使智能汽車重回正常道路。當(dāng)黑線已經(jīng)達(dá)到能夠可靠提取時,利用其算法可對相應(yīng)的彎、直道進(jìn)行判斷,對速度和轉(zhuǎn)向舵機(jī)控制算法進(jìn)行研究。
道路圖像采集采用體積小、重量輕、使用簡單、易于固定、接口簡單[8]的TSL1401線性傳感器,輸出模擬信號,能在較遠(yuǎn)的距離采集道路圖像。采集流程為在由微控制器單元(micro controller unit,MCU)下的可編程邏輯器件(complex programmable logic device,CPLD)生成的驅(qū)動時序的作用下[9],線性CCD圖像傳感器采集道路的圖像信號,完成光電轉(zhuǎn)換,并將轉(zhuǎn)換后的信號送入 模/數(shù)轉(zhuǎn)換器(analog to digital converter,A/D),經(jīng)過采樣轉(zhuǎn)化為數(shù)字化信號。算法過程為從左區(qū)域向中間區(qū)域讀取當(dāng)次圖像的灰度值,讀取時間短,當(dāng)讀取逐漸靠近圖像的中間區(qū)域時,讀取時間延長,使像素點(diǎn)成像更穩(wěn)定,從而真實反映道路信息[10]。
由于黑色邊沿與白色道路之間的色差較大,因此,在圖像數(shù)據(jù)中反映的即為灰度值是否大于閾值的現(xiàn)象,而閾值的大小通過實驗確定。算法的主要過程為:
1)從最左端的第一個有效數(shù)據(jù)點(diǎn)開始依次向右進(jìn)行;
2)line為原點(diǎn),判斷與line+3的差是否大于閾值,如果是,則將line+3記為i;
3)從i開始判斷在接下來的從i+3到該行最末一個點(diǎn)之間的差值是否大于閾值,若大于,則將line+i/2+2的坐標(biāo)賦值給黑線中心位置。
線性CCD采集圖像由128個點(diǎn)構(gòu)成,每個點(diǎn)的灰度值用一個字節(jié)表示。智能汽車在道路上行駛主要依靠道路邊沿的黑線識別路徑,因此,必須準(zhǔn)確找到道路的黑白邊界。由于反光、污垢、陰影等因素的影響,黑色灰度值不全為255,白色灰度值不全為0。算法首先將灰度圖像二值化,將小于某一閾值的設(shè)為0,大于某一閾值的設(shè)為255。采用動態(tài)閾值算法。計算出動態(tài)閾值
(1)
式中T1為初始閾值大??;g為一行128個像素點(diǎn)的最大值;r為一行128個像素點(diǎn)的最小值
(2)
(3)
(4)
式中T2為最終閾值。
算法具體步驟如下:
1)找出一組數(shù)據(jù)128個像素點(diǎn)的最大值和最小值。
2)判斷最大值和最小值的偏差是否大于全黑時的偏差,如果是,繼續(xù);否則,采用上一次的閾值。全黑時的偏差指全黑情況下的最大值與最小值的偏差,由實驗驗證可得丟線情況下的閾值不正確,使用上一次的閾值T_old。
3)為全局閾值T選擇一個初始估計值:T=(max+min)/2。
4)二值化處理圖像,并產(chǎn)生兩組數(shù)組:sum_h為灰度值大于T的所有像素組成,sum_l由所有小于等于T的所有像素組成。
5)對sum_h和sum_l的像素分別計算平均弧度值max_ave和min_ave。
6)產(chǎn)生最終的閾值T_last,再給T_old賦值:T_old=T_last,T_last=(max_ave+min_ave)/2。
為驗證算法實現(xiàn)圖像二值化的效果及智能車對不同類型的道路做出判斷能力,采用CCD仿真、道路仿真和系統(tǒng)測試3種驗證方法進(jìn)行檢驗。
通過線性CCD上位機(jī)軟件查看采集的路況信息,檢驗算法能否提取到可靠的黑線。圖1(a)為利用常規(guī)算法后的圖像。圖1(b)為利用單行黑線提取算法后的圖像,其中突出的部分為白色區(qū)域,凹槽的部分為黑色區(qū)域。
圖1 CCD采集的路況信息
表1為上位機(jī)軟件顯示的采用算法前、后的實驗數(shù)據(jù)。
其中,“*”為出現(xiàn)頻率最多的灰度值,而非對最大灰度值與最小灰度值求和取平均。
表1 采用算法前后的灰度值
對比圖1的兩個圖像,并分析表1的數(shù)據(jù)可知:利用單行黑線提取算法能使線性CCD采集的路況信息中黑色區(qū)域與白色區(qū)域分界明顯,由于提取的白色區(qū)域較黑色區(qū)域多,因此,平均灰度值為8。與靜態(tài)閾值法相比,動態(tài)閾值算法提取到的數(shù)據(jù)受外界環(huán)境因素的影響小,從而驗證了動態(tài)閾值算法的真實可靠性。
分別利用常規(guī)和單行黑線提取2種算法對智能汽車的道路軌跡進(jìn)行仿真,圖2給出了2種算法處理效果及原始圖像的對比。
圖2 不同算法處理圖像效果
從圖2可看出:利用單行黑線提取算法二值化處理的圖像較利用常規(guī)算法處理的圖像更加清晰,幾乎達(dá)到了黑色灰度值255,白色灰度值為0的要求。單行黑線提取算法處理后的圖像能使智能汽車在彎道和直道中行駛時不受路沿外黑色噪點(diǎn)、反光、陰影等因素的影響,驗證了算法不僅具有較強(qiáng)的抗干擾性而且降低了智能汽車對道路類型的誤判概率。
將智能汽車置于模擬道路上進(jìn)行測試,如圖3所示。在行駛中,智能汽車始終保持在道路中間且不會跑出道路,遇到障礙物時能及早作出判斷,實現(xiàn)了智能避障。
圖3 智能汽車行駛情況
測試結(jié)果表明:通過顯示屏可以觀測到線性CCD所采集到的各種道路圖像,智能汽車在行駛中能準(zhǔn)確地識別彎直道以及復(fù)雜的十字交叉道路,從而可以看出,利用的單行黑線提取算法能使智可汽車具有良好的識別和檢測能力以及智能避障和運(yùn)行可靠的特點(diǎn)。
采用線性CCD采集道路信息,對不同的道路反饋不同的信號進(jìn)行快速處理,通過對線性CCD道路軌跡識別算法的研究,利用單行黑線提取算法對采集的圖像進(jìn)行二值化動態(tài)閾值處理,不僅提高了識別率,而且增強(qiáng)了抗干擾能力。經(jīng)過測試,系統(tǒng)可使智能汽車在自主避障的前提下對S彎、Ω彎和十字等復(fù)雜路況迅速做出判斷,實現(xiàn)了穩(wěn)定、可靠、快速地行駛。
[1] 徐文兵,夏永峰,王春香.無人駕駛電動汽車電源管理系統(tǒng)的抗電磁干擾設(shè)計[J].電測與儀表,2008(3):39-42.
[2] 徐海貴,王春香,楊汝清,等.磁傳感系統(tǒng)在室外移動機(jī)器人導(dǎo)航中的研究[J].機(jī)器人,2007,29(1):61-66.
[3] 楊慶文.基于線性CCD的智能汽車路徑識別方法[J].中國科技信息,2015(2):96-97.
[4] 楊 寧,石冰飛,朱 平,等.基于CCD的自動尋跡小車的軟件設(shè)計[J].自動化與儀表,2012(4):52-55.
[5] 蔡建新,王仁煌,楊 磊.一種新的快速中值濾波算法[J].計算機(jī)時代,2008(16):58-59.
[6] 劉 斌,劉振凱.基于圖像內(nèi)容的邊緣增強(qiáng)算法[J].計算機(jī)工程與應(yīng)用,2002(6):82-83,89.
[7] 廖偉權(quán),劉海剛,項華珍,等.線性CCD圖像處理與識別算法[J].微型機(jī)與應(yīng)用,2015,34(8):53-54.
[8] 白晉龍.基于線性CCD的智能汽車路徑提取與尋跡[J].電子測量技術(shù),2016,39(3):127-130.
[9] 趙萬欣,陳思屹.基于TSL1401線性CCD的智能巡線小車[J].工業(yè)控制計算機(jī),2014,27(2):121-122.
[10] 楊健賢,劉海剛,區(qū)逴凡,等.基于線性CCD的路徑識別算法研究[J].工業(yè)控制計算機(jī),2015,28(7):64-66.