季 聰,王思明,漢鵬武
(蘭州交通大學(xué)自動化與電氣工程學(xué)院,甘肅蘭州730070)
智能車輛又被稱為輪式移動機(jī)器人,是一個集環(huán)境感知、規(guī)劃決策、自主駕駛控制等多種功能于一體的智能體[1]。道路感知與識別的方法有多種,包括雷達(dá)、紅外、激光、超聲波、磁導(dǎo)航以及機(jī)器視覺等方法[2]。在實際駕駛過程中,駕駛員通過視覺獲得外部的環(huán)境信息。利用視覺的路徑識別方法,具備采集速率快,圖像信息含量豐富的優(yōu)點,是智能車輛進(jìn)行路徑識別的一種有效方法[3-4]。
針對復(fù)雜的路徑采集信息,本文設(shè)計了基于MK60N512VLQ100(K60)單片機(jī)為核心的智能車路徑識別系統(tǒng)。路徑信息使用OV7620攝像頭采集[5],圖像的數(shù)據(jù)處理在uc/os-Ⅱ操作系統(tǒng)下使用自適應(yīng)動態(tài)閾值圖像處理算法,通過bluetooth無線通信技術(shù)進(jìn)行在線調(diào)試,設(shè)計并開發(fā)了穩(wěn)定性好、處理速度快的智能車路徑識別系統(tǒng)。
智能車輛設(shè)計主要分為硬件設(shè)計和軟件設(shè)計。硬件設(shè)計主要包括機(jī)械調(diào)整和硬件電路。硬件電路主要包括核心控制器、電源管理、圖像采集、電機(jī)驅(qū)動、舵機(jī)驅(qū)動和人機(jī)交互等模塊[6]。圖1為智能車系統(tǒng)結(jié)構(gòu)圖。
圖1 系統(tǒng)結(jié)構(gòu)圖
本系統(tǒng)采用OV7620圖像傳感器,OV7620內(nèi)置10位雙通道A/D轉(zhuǎn)換器,輸出8位圖像數(shù)據(jù),因此直接將攝像頭的圖像灰度信息輸出連接至K60的GPIO端口。同時分別采用了穩(wěn)壓模塊給系統(tǒng)各部分供電,如圖2所示。
圖2 電源模塊
電機(jī)驅(qū)動電路采用的是BTS7960,由于BTS7960屬于大功率驅(qū)動芯片,為了防止回流而擊穿單片機(jī)引腳,在單片機(jī)和驅(qū)動芯片之間進(jìn)行了隔離,并采用了bluetooth實現(xiàn)上位機(jī)和下位機(jī)的通信。
系統(tǒng)軟件設(shè)計采用嵌入式實時操作系統(tǒng)uc/os-Ⅱ開發(fā)技術(shù)。通過修改OS_CPU.H,OS_CPU_C.C和OS_CPU_A.ASM這3個與處理器相關(guān)的文件,進(jìn)行整個系統(tǒng)之間任務(wù)的調(diào)度,以滿足系統(tǒng)的多任務(wù)實時性需求。
按照系統(tǒng)的功能要求,應(yīng)用程序的設(shè)計分為以下幾個并行任務(wù)[7],具體的應(yīng)用程序流程圖如圖3所示。
圖3 應(yīng)用程序流程圖
K60首先捕捉OV7620VSYN中斷,進(jìn)入場中斷,然后捕捉HERF,進(jìn)入行中斷,讀取GPIO端口圖像灰度數(shù)據(jù)存入圖像數(shù)據(jù)數(shù)組。
攝像頭采用俯視角度采集路徑信息,由于其視野角度比較小,因此所拍攝的畫面會呈倒梯形(攝像頭采集視圖如圖4所示)。
圖4 攝像頭采集視圖
2.2.1 圖像分割
圖像分割算法大概可以分為邊緣檢測分割和閾值分割兩類[8]。
圖像邊緣是指圖像中周圍像素灰度有階躍變化或屋頂變化的像素點,而邊緣檢測的主要依據(jù)是圖像一階導(dǎo)數(shù)和二階導(dǎo)數(shù)[9],但是進(jìn)行圖像邊緣檢測的前提是首先要對圖像進(jìn)行濾波,過程復(fù)雜,大量浪費單片機(jī)的CPU。
閾值分割是基于區(qū)域的圖像分割方法,適用于物體與背景區(qū)域具有強(qiáng)烈對比的圖像,而且計算簡單。閾值分割算法的關(guān)鍵在于閾值的確定,由于智能車輛識別路徑過程中,受時間和空間變化影響較大,必須采用動態(tài)閾值分割算法。
2.2.2 動態(tài)閾值算法
動態(tài)閾值分割算法主要有實驗法、灰度值方圖法、迭代選擇閾值法、最小均方誤差法、最大類間方差法等[10]。
由于本系統(tǒng)測試實驗中的路徑信息只有黑白信息,比較單一,在采用根據(jù)直方圖谷底確定閾值的測試中,由于外界光線影響,有嚴(yán)重的噪聲,基于此采用了一種動態(tài)閾值檢測方法,該方法設(shè)計步驟如下:
1)讀取當(dāng)前圖像的灰度值,并存入數(shù)組Buffer[row][column];
2)遍歷尋找數(shù)組中的最大和最小灰度值Tmax和Tmin,確定閾值初值T0,公式為
3)根據(jù)閾值將圖像分割成前景和背景兩部分,求出兩部分的平均灰度值TA和TB,公式為
4)求出新閾值,公式為
經(jīng)過動態(tài)閾值檢測后,對圖像進(jìn)行二值化后的圖像如圖5b所示。
圖5 動態(tài)閾值分割前后對比
2.2.3 圖像去噪
本系統(tǒng)在路徑識別的過程中,采集到的圖像存在影響道路識別的噪聲,即含噪圖像[11]。如果圖像第i行、第j列為噪點,則對該點周圍8個點的像素值求和后取均值,公式為
式中:f(i,j)為圖像第i行j列重新賦予的像素值。圖6a中所示的紅色點為噪點,圖6b為經(jīng)過圖像去噪后的圖像。
圖6 圖像去噪
本系統(tǒng)識別的路徑有直道、小S彎道、大S彎道、普通彎道、急彎、直入彎等。設(shè)攝像頭采集的每幀圖像為一個平面,擬合的路徑中心線(見圖7)在平面中最近點定義為道路首點,為start(xstart,ystart),最遠(yuǎn)端定義為道路末點end(xend,yend),圖像的橫縱坐標(biāo)分別為路徑中心線的行列值。
圖7 路徑中心線提取前后比較圖
xedge為圖像縱向跨度
yedge為圖像橫向跨度
建議制定統(tǒng)一的操作指南,規(guī)范資金統(tǒng)籌流程,行文統(tǒng)一各類資金統(tǒng)籌的指標(biāo)口徑,資金的類別、范圍等,建立資金統(tǒng)籌的正面清單,明確各項資金是否納入統(tǒng)籌,確??h級確定統(tǒng)籌項目;明確中央、省、縣專項資金統(tǒng)籌的項目、范圍、內(nèi)容和相關(guān)要求;年度資金指標(biāo)應(yīng)當(dāng)及早下達(dá),資金實行按進(jìn)度撥付,以便基層對照資金來源額度制定方案,落實項目,報備實施;建立規(guī)范化的資金統(tǒng)籌考評統(tǒng)計和檢查指標(biāo),讓各級各部門在資金檢查、審計、三方考評等方面口徑和要求統(tǒng)一,簡化設(shè)計,精簡內(nèi)容;及時修改專項資金管理辦法,修改后的辦法與資金指標(biāo)文件應(yīng)明確資金使用方向、類別,上級在下達(dá)資金文件中明確資金統(tǒng)籌的項目及數(shù)額,消除縣級統(tǒng)籌資金的后顧之憂。
yc_edge為路徑中心線在圖像中的位置
ymax_edge為路徑中心線最大橫向跨度
ymax為路徑中心線在圖像平面中視野最遠(yuǎn)點的縱坐標(biāo),ymin為路徑中心線在圖像平面中視野最近點的縱坐標(biāo)。
式中:i為擬合中心線上點的橫坐標(biāo),column_x[i]為該點縱坐標(biāo),k[i]反應(yīng)路徑中心線彎曲程度。根據(jù)上述公式建立特征空間如表1所示。
表1 特征空間的坐標(biāo)劃分
通過上述特征空間,建立了道路樣本空間,可知:
1)直道,橫向跨度很小,縱向跨度很大;
2)普通彎道,縱向跨度不能小于50%圖像縱向跨度;
3)大S彎道,橫向跨度范圍比較廣;
4)入彎,前方道路中心線彎曲程度大,后方路徑中心線近似為直線,彎曲變化趨勢恒為正(負(fù))或0;
5)出彎,前方路徑中心線近似為直線,并且后方路徑中心線彎曲程度大,彎曲變化趨勢恒為正(負(fù))或0;
6)急彎(緊急路況),縱向跨度很小,不超過整個圖像跨度的30%。
在提取出路徑中心線識別路徑后,就可以根據(jù)當(dāng)前信息實現(xiàn)速度和轉(zhuǎn)向的優(yōu)化PID控制:直道快速通過、較小的S彎道適當(dāng)減小比例系數(shù)、較大的S彎道適當(dāng)增大比例系數(shù)等。
在小車的速度控制上,采取了增量式PID與bangbang控制結(jié)合的控制方法,將光電編碼器的反饋值和設(shè)定的期望值相比較,通過PWM輸出來對點擊實現(xiàn)速度的閉環(huán)控制。增量式PID控制算法如式(11)所示
式中:Δu(k)為第n次的輸出增量;e(k)為第k次的偏差。并且引入bang-bang控制,在速度加大的時候,PWM輸出為0;當(dāng)速度較小的時候輸出全額PWM,可以使小車更快地響應(yīng)加減速。
在進(jìn)行舵機(jī)控制過程中,經(jīng)過測試,在超頻情況下,每行圖像采集110個點,使視場長度足以覆蓋各種路徑,路徑經(jīng)過精確識別,可以精確確定車身位置與路徑中心線的偏差。進(jìn)行PID控制的調(diào)節(jié)策略是:積分項系數(shù)置零;微分項系數(shù)使用定值;比例系數(shù)Kp使用二次函數(shù)曲線,隨車身中心位置與舵機(jī)中心值的偏差呈二次函數(shù)關(guān)系,公式為
式中:Δ_error為車身中心位置與中心值的偏差。
使用VC6.0開發(fā)上位機(jī)進(jìn)行在線調(diào)試并將在線調(diào)試穩(wěn)定的系統(tǒng)在自制道路上進(jìn)行實際測試。
使用VC6.0 MFC類庫做界面開發(fā)[11]。圖像處理界面如圖8所示。上位機(jī)采集的各種賽道信息如圖9所示。
從圖8可以看出,圖中上半部分左邊為原始圖像,右邊為二值化后的數(shù)據(jù),下半部分左邊為處理后的圖像,右邊為二值化后的數(shù)據(jù),從圖中的圖像和數(shù)據(jù)都能明顯地看出處理后的圖像和數(shù)據(jù)中幾乎沒有噪聲點,該結(jié)果為設(shè)計控制律提供很大的方便。通過對圖9中的各種圖像進(jìn)行分析、歸類,可以很好地設(shè)定控制律中的參數(shù)以滿足各種控制策略的需求。
根據(jù)系統(tǒng)所提取的路徑信息,設(shè)計有效的速度控制策略保證智能車在行駛中達(dá)到最大的速度。圖10為PID實際調(diào)節(jié)圖,藍(lán)色線為速度設(shè)定曲線,白色線為實際速度曲線。從圖中可以看出,算法響應(yīng)時間較快,當(dāng)系統(tǒng)遇到外界干擾時,具備快速的調(diào)節(jié)能力,并在實際測試中取得了較好的效果。
圖10 PID調(diào)節(jié)仿真圖(截圖)
為驗證算法的有效性,制作了長75 m、寬45 cm包含不同類型路徑的道路。實驗中,以偏離道路中心線誤差和沖出賽道次數(shù)為衡量標(biāo)準(zhǔn),V為測試的平均速度,ΔS為誤差(車身相對于賽道中心線的偏差,in表示沿內(nèi)弧行進(jìn),out表示沿外弧行進(jìn)),N為沖出道路有效范圍次數(shù)(測試20圈)。優(yōu)化行駛路徑的測試數(shù)據(jù)如表2所示。
表2 測試數(shù)據(jù)
由表2可以看出,小車在2.5 m以下時,小車沿優(yōu)化路徑行駛,極少沖出跑道,這是因為小車在行駛的過程中已經(jīng)精確地識別出路徑信息,提前做出了路徑選擇,當(dāng)小車的速度達(dá)到2.9 m以上時,沖出跑道的次數(shù)明顯增加,這是因為由于小車速度的增加,在行駛的過程中出現(xiàn)了側(cè)滑,一方面是車模機(jī)械結(jié)構(gòu)的限制,另一方面是車模在高速的行駛過程中采集到的圖像出現(xiàn)模糊的情況,使得路徑識別出現(xiàn)誤差,目前的處理方法是沿用上一次的路徑采集結(jié)果,這需要在以后的研究中做進(jìn)一步探討。由此可以說明精確的路徑識別結(jié)果為控制策略的選擇提供了極大的方便,使系統(tǒng)的控制性能有了明顯的提高。
實際測試的結(jié)果表明了自適應(yīng)動態(tài)閾值圖像處理算法在智能車路徑識別中具有明顯的優(yōu)勢,通過該算法對圖像進(jìn)行有效的處理,加以合理的路徑優(yōu)化方法與控制策略,增加了智能車對路徑的跟隨性能,使系統(tǒng)具有很強(qiáng)的魯棒性。
本設(shè)計結(jié)合第七屆全國大學(xué)生“飛思卡爾”杯智能汽車競賽,采用OV7620攝像頭采集道路信息,通過對采集圖像進(jìn)行分析處理來確定智能車路徑。針對競賽題目中的各種路徑的圖像,對其進(jìn)行了分析和比較,給出了一種路徑識別優(yōu)化的方法,將該方法與智能控制方法相結(jié)合,使小車穩(wěn)定、高速地在未知的賽道上行駛。實際測試結(jié)果表明,本文給出的方法能夠使智能小車有效地識別多種類型路徑,且系統(tǒng)運(yùn)行穩(wěn)定。
[1]張秀彬,應(yīng)俊豪.汽車智能化技術(shù)原理[M].上海:上海交通大學(xué)出版社,2011.
[2]陳偉.基于雙目視覺的智能車輛道路識別與路徑規(guī)劃研究[D].西安:西安理工大學(xué),2009.
[3]DEMIRLI K,KHOSHNEJAD M.Autonomous parallel parking of a carlike mobile robot by a neuro-fuzzy sensor-based controller[J].Fuzzy Sets and System,2009,160(19):2876-2891.
[4]王琪,程飛,陳四杰,等.基于Freescale S12微控制器的高速智能尋跡車設(shè)計與實現(xiàn)[J].江蘇科技大學(xué)學(xué)報:自然科學(xué)版,2012,26(1):75-80.
[5]宋海吒,唐立軍,謝新輝.基于FPGA和OV7620的圖像采集及VGA顯示[J].電視技術(shù),2011,35(5):45-47.
[6]劉杰,武麗,趙永利.基于車載視覺導(dǎo)航的智能車控制系統(tǒng)研究[J].傳感器與微系統(tǒng),2011,30(5):34-36.
[7]鄭建立,黃麗佳,葛鵬飛,等.基于CCD的智能車尋跡方法[J].東華大學(xué)學(xué)報:自然科學(xué)版,2008,34(6):728-731.
[8]張云洲,師恩義,吳成東,等.基于CCD的智能車導(dǎo)航系統(tǒng)研究[J].東北大學(xué)學(xué)報:自然科學(xué)版,2009,30(2):162-165.
[9]朱紅高.圖像邊緣檢測技術(shù)研究現(xiàn)狀[J].制造業(yè)自動化,2010,32(1):45-47.
[10]張錚,王艷平,薛桂香.數(shù)字圖像處理與機(jī)器視覺:VISUAL C++與MATLAB實現(xiàn)[M].北京:人民郵電出版社,2010:361-362.
[11]齊威,韋鵬,許明龍.第七屆全國大學(xué)生“飛思卡爾”杯智能汽車競賽神州1號技術(shù)報告[EB/OL].[2012-11-20].http://wenku.baidu.com/view/90b919818762caaedd33d43c.html.