季 聰,王思明,漢鵬武
(蘭州交通大學自動化與電氣工程學院,甘肅蘭州730070)
智能車輛又被稱為輪式移動機器人,是一個集環境感知、規劃決策、自主駕駛控制等多種功能于一體的智能體[1]。道路感知與識別的方法有多種,包括雷達、紅外、激光、超聲波、磁導航以及機器視覺等方法[2]。在實際駕駛過程中,駕駛員通過視覺獲得外部的環境信息。利用視覺的路徑識別方法,具備采集速率快,圖像信息含量豐富的優點,是智能車輛進行路徑識別的一種有效方法[3-4]。
針對復雜的路徑采集信息,本文設計了基于MK60N512VLQ100(K60)單片機為核心的智能車路徑識別系統。路徑信息使用OV7620攝像頭采集[5],圖像的數據處理在uc/os-Ⅱ操作系統下使用自適應動態閾值圖像處理算法,通過bluetooth無線通信技術進行在線調試,設計并開發了穩定性好、處理速度快的智能車路徑識別系統。
智能車輛設計主要分為硬件設計和軟件設計。硬件設計主要包括機械調整和硬件電路。硬件電路主要包括核心控制器、電源管理、圖像采集、電機驅動、舵機驅動和人機交互等模塊[6]。圖1為智能車系統結構圖。

圖1 系統結構圖
本系統采用OV7620圖像傳感器,OV7620內置10位雙通道A/D轉換器,輸出8位圖像數據,因此直接將攝像頭的圖像灰度信息輸出連接至K60的GPIO端口。同時分別采用了穩壓模塊給系統各部分供電,如圖2所示。

圖2 電源模塊
電機驅動電路采用的是BTS7960,由于BTS7960屬于大功率驅動芯片,為了防止回流而擊穿單片機引腳,在單片機和驅動芯片之間進行了隔離,并采用了bluetooth實現上位機和下位機的通信。
系統軟件設計采用嵌入式實時操作系統uc/os-Ⅱ開發技術。通過修改OS_CPU.H,OS_CPU_C.C和OS_CPU_A.ASM這3個與處理器相關的文件,進行整個系統之間任務的調度,以滿足系統的多任務實時性需求。
按照系統的功能要求,應用程序的設計分為以下幾個并行任務[7],具體的應用程序流程圖如圖3所示。

圖3 應用程序流程圖
K60首先捕捉OV7620VSYN中斷,進入場中斷,然后捕捉HERF,進入行中斷,讀取GPIO端口圖像灰度數據存入圖像數據數組。
攝像頭采用俯視角度采集路徑信息,由于其視野角度比較小,因此所拍攝的畫面會呈倒梯形(攝像頭采集視圖如圖4所示)。

圖4 攝像頭采集視圖
2.2.1 圖像分割
圖像分割算法大概可以分為邊緣檢測分割和閾值分割兩類[8]。
圖像邊緣是指圖像中周圍像素灰度有階躍變化或屋頂變化的像素點,而邊緣檢測的主要依據是圖像一階導數和二階導數[9],但是進行圖像邊緣檢測的前提是首先要對圖像進行濾波,過程復雜,大量浪費單片機的CPU。
閾值分割是基于區域的圖像分割方法,適用于物體與背景區域具有強烈對比的圖像,而且計算簡單。閾值分割算法的關鍵在于閾值的確定,由于智能車輛識別路徑過程中,受時間和空間變化影響較大,必須采用動態閾值分割算法。
2.2.2 動態閾值算法
動態閾值分割算法主要有實驗法、灰度值方圖法、迭代選擇閾值法、最小均方誤差法、最大類間方差法等[10]。
由于本系統測試實驗中的路徑信息只有黑白信息,比較單一,在采用根據直方圖谷底確定閾值的測試中,由于外界光線影響,有嚴重的噪聲,基于此采用了一種動態閾值檢測方法,該方法設計步驟如下:
1)讀取當前圖像的灰度值,并存入數組Buffer[row][column];
2)遍歷尋找數組中的最大和最小灰度值Tmax和Tmin,確定閾值初值T0,公式為

3)根據閾值將圖像分割成前景和背景兩部分,求出兩部分的平均灰度值TA和TB,公式為

4)求出新閾值,公式為

經過動態閾值檢測后,對圖像進行二值化后的圖像如圖5b所示。

圖5 動態閾值分割前后對比
2.2.3 圖像去噪
本系統在路徑識別的過程中,采集到的圖像存在影響道路識別的噪聲,即含噪圖像[11]。如果圖像第i行、第j列為噪點,則對該點周圍8個點的像素值求和后取均值,公式為

式中:f(i,j)為圖像第i行j列重新賦予的像素值。圖6a中所示的紅色點為噪點,圖6b為經過圖像去噪后的圖像。

圖6 圖像去噪
本系統識別的路徑有直道、小S彎道、大S彎道、普通彎道、急彎、直入彎等。設攝像頭采集的每幀圖像為一個平面,擬合的路徑中心線(見圖7)在平面中最近點定義為道路首點,為start(xstart,ystart),最遠端定義為道路末點end(xend,yend),圖像的橫縱坐標分別為路徑中心線的行列值。

圖7 路徑中心線提取前后比較圖
xedge為圖像縱向跨度

yedge為圖像橫向跨度
建議制定統一的操作指南,規范資金統籌流程,行文統一各類資金統籌的指標口徑,資金的類別、范圍等,建立資金統籌的正面清單,明確各項資金是否納入統籌,確保縣級確定統籌項目;明確中央、省、縣專項資金統籌的項目、范圍、內容和相關要求;年度資金指標應當及早下達,資金實行按進度撥付,以便基層對照資金來源額度制定方案,落實項目,報備實施;建立規范化的資金統籌考評統計和檢查指標,讓各級各部門在資金檢查、審計、三方考評等方面口徑和要求統一,簡化設計,精簡內容;及時修改專項資金管理辦法,修改后的辦法與資金指標文件應明確資金使用方向、類別,上級在下達資金文件中明確資金統籌的項目及數額,消除縣級統籌資金的后顧之憂。

yc_edge為路徑中心線在圖像中的位置

ymax_edge為路徑中心線最大橫向跨度

ymax為路徑中心線在圖像平面中視野最遠點的縱坐標,ymin為路徑中心線在圖像平面中視野最近點的縱坐標。

式中:i為擬合中心線上點的橫坐標,column_x[i]為該點縱坐標,k[i]反應路徑中心線彎曲程度。根據上述公式建立特征空間如表1所示。

表1 特征空間的坐標劃分
通過上述特征空間,建立了道路樣本空間,可知:
1)直道,橫向跨度很小,縱向跨度很大;
2)普通彎道,縱向跨度不能小于50%圖像縱向跨度;
3)大S彎道,橫向跨度范圍比較廣;
4)入彎,前方道路中心線彎曲程度大,后方路徑中心線近似為直線,彎曲變化趨勢恒為正(負)或0;
5)出彎,前方路徑中心線近似為直線,并且后方路徑中心線彎曲程度大,彎曲變化趨勢恒為正(負)或0;
6)急彎(緊急路況),縱向跨度很小,不超過整個圖像跨度的30%。
在提取出路徑中心線識別路徑后,就可以根據當前信息實現速度和轉向的優化PID控制:直道快速通過、較小的S彎道適當減小比例系數、較大的S彎道適當增大比例系數等。
在小車的速度控制上,采取了增量式PID與bangbang控制結合的控制方法,將光電編碼器的反饋值和設定的期望值相比較,通過PWM輸出來對點擊實現速度的閉環控制。增量式PID控制算法如式(11)所示

式中:Δu(k)為第n次的輸出增量;e(k)為第k次的偏差。并且引入bang-bang控制,在速度加大的時候,PWM輸出為0;當速度較小的時候輸出全額PWM,可以使小車更快地響應加減速。
在進行舵機控制過程中,經過測試,在超頻情況下,每行圖像采集110個點,使視場長度足以覆蓋各種路徑,路徑經過精確識別,可以精確確定車身位置與路徑中心線的偏差。進行PID控制的調節策略是:積分項系數置零;微分項系數使用定值;比例系數Kp使用二次函數曲線,隨車身中心位置與舵機中心值的偏差呈二次函數關系,公式為

式中:Δ_error為車身中心位置與中心值的偏差。
使用VC6.0開發上位機進行在線調試并將在線調試穩定的系統在自制道路上進行實際測試。
使用VC6.0 MFC類庫做界面開發[11]。圖像處理界面如圖8所示。上位機采集的各種賽道信息如圖9所示。

從圖8可以看出,圖中上半部分左邊為原始圖像,右邊為二值化后的數據,下半部分左邊為處理后的圖像,右邊為二值化后的數據,從圖中的圖像和數據都能明顯地看出處理后的圖像和數據中幾乎沒有噪聲點,該結果為設計控制律提供很大的方便。通過對圖9中的各種圖像進行分析、歸類,可以很好地設定控制律中的參數以滿足各種控制策略的需求。
根據系統所提取的路徑信息,設計有效的速度控制策略保證智能車在行駛中達到最大的速度。圖10為PID實際調節圖,藍色線為速度設定曲線,白色線為實際速度曲線。從圖中可以看出,算法響應時間較快,當系統遇到外界干擾時,具備快速的調節能力,并在實際測試中取得了較好的效果。

圖10 PID調節仿真圖(截圖)
為驗證算法的有效性,制作了長75 m、寬45 cm包含不同類型路徑的道路。實驗中,以偏離道路中心線誤差和沖出賽道次數為衡量標準,V為測試的平均速度,ΔS為誤差(車身相對于賽道中心線的偏差,in表示沿內弧行進,out表示沿外弧行進),N為沖出道路有效范圍次數(測試20圈)。優化行駛路徑的測試數據如表2所示。

表2 測試數據
由表2可以看出,小車在2.5 m以下時,小車沿優化路徑行駛,極少沖出跑道,這是因為小車在行駛的過程中已經精確地識別出路徑信息,提前做出了路徑選擇,當小車的速度達到2.9 m以上時,沖出跑道的次數明顯增加,這是因為由于小車速度的增加,在行駛的過程中出現了側滑,一方面是車模機械結構的限制,另一方面是車模在高速的行駛過程中采集到的圖像出現模糊的情況,使得路徑識別出現誤差,目前的處理方法是沿用上一次的路徑采集結果,這需要在以后的研究中做進一步探討。由此可以說明精確的路徑識別結果為控制策略的選擇提供了極大的方便,使系統的控制性能有了明顯的提高。
實際測試的結果表明了自適應動態閾值圖像處理算法在智能車路徑識別中具有明顯的優勢,通過該算法對圖像進行有效的處理,加以合理的路徑優化方法與控制策略,增加了智能車對路徑的跟隨性能,使系統具有很強的魯棒性。
本設計結合第七屆全國大學生“飛思卡爾”杯智能汽車競賽,采用OV7620攝像頭采集道路信息,通過對采集圖像進行分析處理來確定智能車路徑。針對競賽題目中的各種路徑的圖像,對其進行了分析和比較,給出了一種路徑識別優化的方法,將該方法與智能控制方法相結合,使小車穩定、高速地在未知的賽道上行駛。實際測試結果表明,本文給出的方法能夠使智能小車有效地識別多種類型路徑,且系統運行穩定。
[1]張秀彬,應俊豪.汽車智能化技術原理[M].上海:上海交通大學出版社,2011.
[2]陳偉.基于雙目視覺的智能車輛道路識別與路徑規劃研究[D].西安:西安理工大學,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微控制器的高速智能尋跡車設計與實現[J].江蘇科技大學學報:自然科學版,2012,26(1):75-80.
[5]宋海吒,唐立軍,謝新輝.基于FPGA和OV7620的圖像采集及VGA顯示[J].電視技術,2011,35(5):45-47.
[6]劉杰,武麗,趙永利.基于車載視覺導航的智能車控制系統研究[J].傳感器與微系統,2011,30(5):34-36.
[7]鄭建立,黃麗佳,葛鵬飛,等.基于CCD的智能車尋跡方法[J].東華大學學報:自然科學版,2008,34(6):728-731.
[8]張云洲,師恩義,吳成東,等.基于CCD的智能車導航系統研究[J].東北大學學報:自然科學版,2009,30(2):162-165.
[9]朱紅高.圖像邊緣檢測技術研究現狀[J].制造業自動化,2010,32(1):45-47.
[10]張錚,王艷平,薛桂香.數字圖像處理與機器視覺:VISUAL C++與MATLAB實現[M].北京:人民郵電出版社,2010:361-362.
[11]齊威,韋鵬,許明龍.第七屆全國大學生“飛思卡爾”杯智能汽車競賽神州1號技術報告[EB/OL].[2012-11-20].http://wenku.baidu.com/view/90b919818762caaedd33d43c.html.