羅 麗, 邢傳璽, 高 飛, 龍朝旭, 王致誠
(云南民族大學 電氣信息工程學院,云南 昆明 650500)
傳統的智能汽車常常利用中線尋跡法[1~4]結合中值濾波算法[5]、邊緣增強法[6]對圖像進行處理從而識別道路軌跡。中線尋跡法僅適用于線性(charge coupled device,CCD)能看到兩條黑線的情況,即直道,在彎道中并不適用;中值濾波法需要進行大量的數據比較,算法執行時間較長,無法滿足圖像實時處理要求易造成細節的丟失[7];邊緣增強法不能很好地解決邊緣增強后灰度值溢出的問題,易引起圖像失真。
本文針對上述算法的不足進行了改進,采用單行黑線提取算法。單行黑線提取算法是指對圖像進行二值化處理,即將圖像上點的灰度值置為0或255,所有灰度大于或等于閾值的像素判定為黑色;否則,像素點為白色。二值化算法有較強的抗干擾能力和較快的運算速度。與傳統二值化處理方法采用一個靜態閾值(大小介于20~35之間)不同,智能汽車在行駛過程中因受光線等外部環境影響,行駛過程中的閾值需不斷變換,故本文采用動態閾值法,作為二值化處理算法的依據和主要參數。采用動態閾值的單行黑線提取算法得到的黑線提取效果不僅可靠,而且實時性好。既避免了灰度值溢出問題又能使智能汽車簡單快速地尋找軌跡且適應各種彎道或直道的情況,實現智能避障。在失去黑線目標后可記憶從左側或右側超出視野,從而控制舵機轉向使智能汽車重回正常道路。當黑線已經達到能夠可靠提取時,利用其算法可對相應的彎、直道進行判斷,對速度和轉向舵機控制算法進行研究。
道路圖像采集采用體積小、重量輕、使用簡單、易于固定、接口簡單[8]的TSL1401線性傳感器,輸出模擬信號,能在較遠的距離采集道路圖像。采集流程為在由微控制器單元(micro controller unit,MCU)下的可編程邏輯器件(complex programmable logic device,CPLD)生成的驅動時序的作用下[9],線性CCD圖像傳感器采集道路的圖像信號,完成光電轉換,并將轉換后的信號送入 模/數轉換器(analog to digital converter,A/D),經過采樣轉化為數字化信號。算法過程為從左區域向中間區域讀取當次圖像的灰度值,讀取時間短,當讀取逐漸靠近圖像的中間區域時,讀取時間延長,使像素點成像更穩定,從而真實反映道路信息[10]。
由于黑色邊沿與白色道路之間的色差較大,因此,在圖像數據中反映的即為灰度值是否大于閾值的現象,而閾值的大小通過實驗確定。算法的主要過程為:
1)從最左端的第一個有效數據點開始依次向右進行;
2)line為原點,判斷與line+3的差是否大于閾值,如果是,則將line+3記為i;
3)從i開始判斷在接下來的從i+3到該行最末一個點之間的差值是否大于閾值,若大于,則將line+i/2+2的坐標賦值給黑線中心位置。
線性CCD采集圖像由128個點構成,每個點的灰度值用一個字節表示。智能汽車在道路上行駛主要依靠道路邊沿的黑線識別路徑,因此,必須準確找到道路的黑白邊界。由于反光、污垢、陰影等因素的影響,黑色灰度值不全為255,白色灰度值不全為0。算法首先將灰度圖像二值化,將小于某一閾值的設為0,大于某一閾值的設為255。采用動態閾值算法。計算出動態閾值
(1)
式中T1為初始閾值大小;g為一行128個像素點的最大值;r為一行128個像素點的最小值
(2)

(3)

(4)
式中T2為最終閾值。
算法具體步驟如下:
1)找出一組數據128個像素點的最大值和最小值。
2)判斷最大值和最小值的偏差是否大于全黑時的偏差,如果是,繼續;否則,采用上一次的閾值。全黑時的偏差指全黑情況下的最大值與最小值的偏差,由實驗驗證可得丟線情況下的閾值不正確,使用上一次的閾值T_old。
3)為全局閾值T選擇一個初始估計值:T=(max+min)/2。
4)二值化處理圖像,并產生兩組數組:sum_h為灰度值大于T的所有像素組成,sum_l由所有小于等于T的所有像素組成。
5)對sum_h和sum_l的像素分別計算平均弧度值max_ave和min_ave。
6)產生最終的閾值T_last,再給T_old賦值:T_old=T_last,T_last=(max_ave+min_ave)/2。
為驗證算法實現圖像二值化的效果及智能車對不同類型的道路做出判斷能力,采用CCD仿真、道路仿真和系統測試3種驗證方法進行檢驗。
通過線性CCD上位機軟件查看采集的路況信息,檢驗算法能否提取到可靠的黑線。圖1(a)為利用常規算法后的圖像。圖1(b)為利用單行黑線提取算法后的圖像,其中突出的部分為白色區域,凹槽的部分為黑色區域。

圖1 CCD采集的路況信息
表1為上位機軟件顯示的采用算法前、后的實驗數據。
其中,“*”為出現頻率最多的灰度值,而非對最大灰度值與最小灰度值求和取平均。

表1 采用算法前后的灰度值
對比圖1的兩個圖像,并分析表1的數據可知:利用單行黑線提取算法能使線性CCD采集的路況信息中黑色區域與白色區域分界明顯,由于提取的白色區域較黑色區域多,因此,平均灰度值為8。與靜態閾值法相比,動態閾值算法提取到的數據受外界環境因素的影響小,從而驗證了動態閾值算法的真實可靠性。
分別利用常規和單行黑線提取2種算法對智能汽車的道路軌跡進行仿真,圖2給出了2種算法處理效果及原始圖像的對比。

圖2 不同算法處理圖像效果
從圖2可看出:利用單行黑線提取算法二值化處理的圖像較利用常規算法處理的圖像更加清晰,幾乎達到了黑色灰度值255,白色灰度值為0的要求。單行黑線提取算法處理后的圖像能使智能汽車在彎道和直道中行駛時不受路沿外黑色噪點、反光、陰影等因素的影響,驗證了算法不僅具有較強的抗干擾性而且降低了智能汽車對道路類型的誤判概率。
將智能汽車置于模擬道路上進行測試,如圖3所示。在行駛中,智能汽車始終保持在道路中間且不會跑出道路,遇到障礙物時能及早作出判斷,實現了智能避障。

圖3 智能汽車行駛情況
測試結果表明:通過顯示屏可以觀測到線性CCD所采集到的各種道路圖像,智能汽車在行駛中能準確地識別彎直道以及復雜的十字交叉道路,從而可以看出,利用的單行黑線提取算法能使智可汽車具有良好的識別和檢測能力以及智能避障和運行可靠的特點。
采用線性CCD采集道路信息,對不同的道路反饋不同的信號進行快速處理,通過對線性CCD道路軌跡識別算法的研究,利用單行黑線提取算法對采集的圖像進行二值化動態閾值處理,不僅提高了識別率,而且增強了抗干擾能力。經過測試,系統可使智能汽車在自主避障的前提下對S彎、Ω彎和十字等復雜路況迅速做出判斷,實現了穩定、可靠、快速地行駛。
[1] 徐文兵,夏永峰,王春香.無人駕駛電動汽車電源管理系統的抗電磁干擾設計[J].電測與儀表,2008(3):39-42.
[2] 徐海貴,王春香,楊汝清,等.磁傳感系統在室外移動機器人導航中的研究[J].機器人,2007,29(1):61-66.
[3] 楊慶文.基于線性CCD的智能汽車路徑識別方法[J].中國科技信息,2015(2):96-97.
[4] 楊 寧,石冰飛,朱 平,等.基于CCD的自動尋跡小車的軟件設計[J].自動化與儀表,2012(4):52-55.
[5] 蔡建新,王仁煌,楊 磊.一種新的快速中值濾波算法[J].計算機時代,2008(16):58-59.
[6] 劉 斌,劉振凱.基于圖像內容的邊緣增強算法[J].計算機工程與應用,2002(6):82-83,89.
[7] 廖偉權,劉海剛,項華珍,等.線性CCD圖像處理與識別算法[J].微型機與應用,2015,34(8):53-54.
[8] 白晉龍.基于線性CCD的智能汽車路徑提取與尋跡[J].電子測量技術,2016,39(3):127-130.
[9] 趙萬欣,陳思屹.基于TSL1401線性CCD的智能巡線小車[J].工業控制計算機,2014,27(2):121-122.
[10] 楊健賢,劉海剛,區逴凡,等.基于線性CCD的路徑識別算法研究[J].工業控制計算機,2015,28(7):64-66.