李成勇, 譚寒鐘, 王 莎, 胡晶晶
(重慶工程學院 電子信息學院,重慶 400056)
近年來,隨著科技的不斷進步,無人控制技術逐步成熟,無人控制的智能小車自動行駛成為人們關注的熱點[1]。隨著人工智能和自動化技術的迅速發展,各種高科技以及前沿技術廣泛應用于智能小車領域,使智能小車越來越多樣化[2]。無人駕駛汽車將物聯網、人工智能等頂尖新科技與傳統汽車技術相結合,汽車行業正在進行全新的改革,現在還處于嘗試階段,并沒有建立規范化、標準化、完整的理論知識體系,因此自動駕駛技術探索之路還在進行中。自動駕駛技術是將相關車載傳感器、控制器、執行器等結合,旨在讓人解放雙手,享受生活。從技術方面來講,自動駕駛汽車可以分為兩大發展方向:(1)駕駛輔助系統;(2)無人駕駛系統。其中,無人駕駛系統是主要研究方向,安全輔助駕駛是智能交通的重要研究方向。近20多年來,安全輔助駕駛是無人駕駛系統的研究創新方向之一,它主要由控制器、傳感器、顯示器、攝像頭等元器件制造而成。在模擬情景下,小車行駛在路上,攝像頭根據路況實時采集、更新行駛過程中車體與車道標識線的距離,通過一系列處理后將信息傳遞給單片機、傳感器,若此時行駛路徑發生偏移,便能在0.5 s的時間內由控制器發出警報,提前警示駕駛員,為駕駛員預留更多的反應時間與空間。安全輔助駕駛的研究方向多基于視覺攝像頭,但是無論從國外研究現狀還是國內研究技術水平來看,通過視覺方式實現車道偏移預警功能,在很大程度上受當地氣候環境影響和光照突變的影響。
本文設計一種采用OpenMV作為主控的基于機器視覺的循跡避障智能小車系統,能夠從標記的指定位置出發,迅速找尋規定場內隨機點亮的信號表示燈。該系統能夠自動循跡,找尋規定場內隨機點亮的信號燈,遇到障礙物時可自動避障。
實現智能小車的速度控制算法有兩種,分別為PID(比例-積分-微分控制器)控制算法與比例控制算法[3]。其中比例算法實現較為簡單,算法中的比例系數容易求解及操作,設計過程簡單明了。在本系統的設計應用中,信號表示燈的個數不定,位置布局不固定,比較靈活,并且隨機點亮信號燈容易導致比例算法中的比例系數很難調整,易造成智能小車擺動幅度大,平衡性差,造成智能小車翻車的概率大幅增加。PID算法可以明顯改善上述缺點,使用積分與微分控制器的調節,使其離散值保持在一定區間內。因此,比例系數設置更為容易[4]。
本設計中的速度控制采用PID算法,可以實現智能小車有效靈活地加、減速。
智能小車在行駛過程中可能會不定期地遇見障礙物,通過設計障礙物識別算法辨別障礙物,可使智能小車曲線行駛避開障礙物。在局部特征點檢測快速發展階段,人們對于特征的認識也越來越深入,近幾年許多學者提出的特征點檢測算法及其改進算法也愈來愈多,在眾多的算法中涌現出眾多佼佼者。在本系統中,利用FAST(Features from Accelerated Segment Test)算法[5-6]在灰度圖下對障礙物進行特征提取,然后進行障礙物識別。FAST算法在某像素與其周圍領域內足夠多的像素點相差較大,則該像素可能是角點,通過不斷地比較進行特征點檢測。同時,在障礙物識別中加入模板匹配(NCC算法)[7-10],進一步提高識別障礙物的精確度,雙重算法的使用能夠達到高精度、高效率識別的目的。
實現障礙物測距的方法較多,有單目視覺障礙物測距[11]、激光雷達障礙物測距[12]、激光測距[13]等方法。其中激光雷達障礙物測距方式價格較高,智能小車載重增大,對于本系統來說不實用,而激光測距方式發出的光線會對OpenMV識別造成偏差,智能小車在行駛過程中受到影響。單目視覺測距算法可以很好地彌補上述方法的不足,單目測距根據圖像攝取模塊焦距、圖像攝取模塊離地面高度以及障礙物底部在相平面上的位置,通過光學相似三角計算獲得障礙物距離,可以很好地完成本系統的實驗要求,在智能小車負重未增加的情況下,小車行駛效率進一步提高。
在本系統中實現信號燈識別采用顏色追蹤算法,該算法可以準確識別到點亮的信號燈。顏色追蹤算法信息全面,對全幅圖像、所有的顏色均會進行搜索,搜索目標顏色的精確度會進一步提高。其中由查找X、Y上最小寬度的像素方式,同時設置面積閾值,如果色塊面積小于閾值設定值則會被過濾掉,大于等于設定的面積閾值則會保留。所以,通過設置點亮時的顏色閾值與面積閾值則可對其追蹤。
智能小車行駛過程中,本系統中的速度控制可由PID算法對電機進行控制。PID控制系統原理圖如圖1所示。

圖1 PID控制系統原理圖Fig.1 Schematic diagram of PID control system
在該算法中,r(t)為輸入,y(t)為實測值,e(t)為偏差信號,其中關系如式(1)所示:
e(t)=r(t)-y(t)
.
(1)
輸出為一種線性組合規律,該規律由偏差信號的比例、積分、微分決定,具體由式(2)表示:
(2)
式中:Kp是比例系數;Ti是比例積分常數;Td是微分時間常數。
本系統中障礙物識別算法的核心算法為FAST算法和模板匹配算法(NCC算法)。其中,FAST算法速度快,在攝入的圖像以像素p為中心半徑為r,同時檢測其像素點數。設置p點為候選點,同時定義閾值,這些像素點與像素p比較,若絕對值均小于閾值,則p點不是特征點;若超過閾值則進行下一步考察。以此類推計算出超過閾值的像素點個數,若至少有半數像素點超過設置閾值,則是特征點;否則,直接過濾。
對圖像進行非極大值抑制,計算特征點處的FAST得分值(score值,也即s值),判斷以特征點p為中心的一個鄰域內,如果有多個特征點,判斷每個特征點的s值,若p是鄰域所有特征點中響應值最大的則保留;否則抑制。
如果鄰域內只有一個特征點,保留并對其得分進行計算,計算公式如式(3)所示:

(3)
式中,V表示所得到的分數,t表示閾值。
NCC算法是一種歸一化相關匹配法,是基于圖像灰度信息的匹配方法。
NCC算法計算原理公式如式(4)所示。

(4)

可根據積分圖像提前計算出任意窗口大小和與平方和,式(4)中uf表示帶檢測圖像,ur表示參考模板圖像的窗口均值。在積分圖像建立起窗口下的待檢測圖像與模板圖像的和平方,以及交叉乘積5個積分圖索引后就完成了預計生成。通過索引表查詢計算結果,NCC就實現了線性時間的復雜度計算。
小車在運行過程中,障礙物測距可通過單目視覺測距算法測量。單目視覺測距算法原理圖如圖2所示。

圖2 單目視覺測距原理框圖Fig.2 Schematic diagram of monocular visual distance measurement
單目測距算法中,Hm、Rm為障礙物真實值,Apix、Bpix為攝像頭中的圖像,其關系可推演得出。在左邊的攝像頭里的幾何關系可得出式(5)與式(6):
(5)
(6)
由公式(5)和(6)可推理出公式(7):
(7)
原理框圖中真實環境中的集合關系,可得出式(8):
(8)
將公式(8)代入公式(7),可得出結論公式(9):
(9)
小車在追蹤點亮的信號表示燈,采用顏色追蹤算法。點亮的信號燈與未點亮的信號燈在顏色上存在差異,本系統通過該點不同而設計顏色追蹤算法。
顏色追蹤算法搜集信息全面,精度高,在施行過程中出錯的概率大幅降低。該算法利用機器視覺中需要識別的顏色進行追蹤,在RGB下對點亮的信號燈進行閾值設定,設定需要追蹤物體的顏色后,則該顏色在此種環境狀態下能夠在設定的閾值范圍內識別。不僅如此,還通過設計面積閾值,對顏色面積進行判斷識別,其中由查找X、Y上最小寬度的像素方式,同時設置面積閾值,如果色塊面積小于閾值設定值則會被過濾掉,大于等于設定的面積閾值則會保留,這樣可排除外界因素干擾。當兩者同時識別后驅動小車對目標進行追蹤。
首先通過OpenMV攝像頭系統進行圖像采集,然后將圖像信息數據送傳至擁有STM32F427的OpenMV系統進行顏色追蹤、模板匹配、測距、特征點檢測等處理,然后驅動智能小車的電機。循跡避障智能小車系統框圖如圖3所示。

圖3 循跡避障智能小車系統框圖Fig.3 Block diagram of tracking obstacle avoidance intelligent vehicle system
OpenMV攝像頭可以實現物體在動態特征下無接觸遠距離測量,是光測量的一種有效應用。OpenMV攝像頭電路結構如圖4所示。

圖4 OpenMV攝像頭電路結構Fig.4 Circuit structure of OpenMV camera
電源管理模塊選擇有3種方案:鋰電池、鎳鎘電池、鎳氫電池??刂葡到y各個部件都需要合適且比較穩定的電壓,電源電壓大小和能量要充足,才能保證系統在行駛時的穩定性。因此選擇12 V的鋰電池,電源管理圖如圖5所示。

圖5 電源管理圖Fig.5 Power management diagram
電機驅動模塊選擇12 V的ASLONG-JGB37微型直流減速電機。根據電池供電的不同,電機的轉速也不同,而該電機轉速可調。帶減速的電機加上了減速箱,降低了轉速,增強了扭力。
首先對系統進行初始化,攝像頭系統將會進行圖像采集,如果采集到圖像,攝像頭系統將采集到的圖像數據送傳至OpenMV進行處理。若檢測到點亮的信號表示燈,調整轉角,系統會對點亮后的信號表示燈進行顏色追蹤。若在追蹤過程中檢測到障礙物,系統將會對障礙物進行測距,同時調整轉角,驅動電機使小車曲線行駛,避免觸碰障礙物;若未檢測到障礙物,驅動小車前進,此時小車將會直線行駛。通過控制PWM口的信號輸出可以實現輪速的控制, 主程序流程如圖6所示。

圖6 主程序流程圖Fig.6 Flow chart of main program
當檢測到點亮的信號表示燈時,左右車輪高速轉動, 小車直行,完成滅燈任務;當檢測到障礙物坐標出現在圖像中的左邊時,智能小車左輪高速正轉, 右輪低速正轉, 實現右轉,避開障礙物,然后通過檢測點亮的信號表示燈繼續追蹤,完成滅燈任務; 當檢測到障礙物坐標出現在圖像中的右邊時,右輪高速正轉, 左輪低速正轉, 實現左轉,避開障礙物,然后通過檢測點亮的信號表示燈繼續追蹤,完成滅燈任務。如果未檢測到點亮的信號燈,智能小車通過右輪高速正轉, 左輪低速正轉, 實現差速控制左轉尋找場內隨機點亮的信號燈。
按照上述設計方案,完成的循跡避障智能小車控制系統模型,在規定時間內需要從指定位置出發,智能小車快速找尋規定場內的隨機點亮的信號表示燈,當智能小車進入到點亮的信號表示燈的規定范圍內時,信號燈會自動熄滅。此時,下一處的信號燈將會隨機點亮,智能小車再一次需要完成滅燈,每個燈被滅后可能再次被點亮。如此,在規定時間內完成滅燈任務,同時統計滅燈個數。循跡避障智能小車測試實驗過程如圖7所示。 循跡避障智能小車測試數據如表1所示。

圖7 循跡避障智能小車滅燈實驗圖Fig.7 Experiment diagram of tracking obstacle avoidance intelligent vehicle lamp extinction

表1 小車滅燈測試數據Tab.1 Test data of car lights out
根據不同距離 OpenMV攝像頭返回的數據,計算出當前信標燈對應小車的坐標值, OpenMV 攝像頭測試數據如表2所示。

表2 OpenMV攝像頭測試數據Tab.2 Test data of OpenMV camera
根據表1、表2測試數據,可以得出以下結論:在300 s時間內,平均滅燈個數超過50個,說明本系統具有可行性,小車能夠精確識別點亮的信號表示燈;通過 OpenMV攝像頭得到的左中右坐標值,誤差值在1 cm范圍內,說明系統可準確通過攝像頭數據識別障礙物并進行測距;小車能夠進行左中右坐標值位置測量,說明系統能夠在追蹤及滅掉點亮的信號燈過程中避開障礙物;小車在2,4,6 m位置處得到坐標值,說明系統能準確地驅動小車前進,完成滅燈。本系統達到設計要求。
本文提出的基于OpenMV智能“尋的”小車控制系統采用OpenMV攝像頭系統完成圖像數據的采集,通過將圖像數據送傳至OpenMV系統進行處理,完成對點亮的信號表示燈的追蹤,達到了避開障礙物的設計要求。該系統采用FAST特征點檢測、NCC模板匹配、PID控制、單目視覺測距等算法,處理速度更快,精度高,數據精確,負載輕,小車實驗測試數據差值小,幾乎可以忽略,系統穩定,達到設計的預期效果。