李成勇, 譚寒鐘, 王 莎, 胡晶晶
(重慶工程學(xué)院 電子信息學(xué)院,重慶 400056)
近年來,隨著科技的不斷進(jìn)步,無人控制技術(shù)逐步成熟,無人控制的智能小車自動(dòng)行駛成為人們關(guān)注的熱點(diǎn)[1]。隨著人工智能和自動(dòng)化技術(shù)的迅速發(fā)展,各種高科技以及前沿技術(shù)廣泛應(yīng)用于智能小車領(lǐng)域,使智能小車越來越多樣化[2]。無人駕駛汽車將物聯(lián)網(wǎng)、人工智能等頂尖新科技與傳統(tǒng)汽車技術(shù)相結(jié)合,汽車行業(yè)正在進(jìn)行全新的改革,現(xiàn)在還處于嘗試階段,并沒有建立規(guī)范化、標(biāo)準(zhǔn)化、完整的理論知識(shí)體系,因此自動(dòng)駕駛技術(shù)探索之路還在進(jìn)行中。自動(dòng)駕駛技術(shù)是將相關(guān)車載傳感器、控制器、執(zhí)行器等結(jié)合,旨在讓人解放雙手,享受生活。從技術(shù)方面來講,自動(dòng)駕駛汽車可以分為兩大發(fā)展方向:(1)駕駛輔助系統(tǒng);(2)無人駕駛系統(tǒng)。其中,無人駕駛系統(tǒng)是主要研究方向,安全輔助駕駛是智能交通的重要研究方向。近20多年來,安全輔助駕駛是無人駕駛系統(tǒng)的研究創(chuàng)新方向之一,它主要由控制器、傳感器、顯示器、攝像頭等元器件制造而成。在模擬情景下,小車行駛在路上,攝像頭根據(jù)路況實(shí)時(shí)采集、更新行駛過程中車體與車道標(biāo)識(shí)線的距離,通過一系列處理后將信息傳遞給單片機(jī)、傳感器,若此時(shí)行駛路徑發(fā)生偏移,便能在0.5 s的時(shí)間內(nèi)由控制器發(fā)出警報(bào),提前警示駕駛員,為駕駛員預(yù)留更多的反應(yīng)時(shí)間與空間。安全輔助駕駛的研究方向多基于視覺攝像頭,但是無論從國(guó)外研究現(xiàn)狀還是國(guó)內(nèi)研究技術(shù)水平來看,通過視覺方式實(shí)現(xiàn)車道偏移預(yù)警功能,在很大程度上受當(dāng)?shù)貧夂颦h(huán)境影響和光照突變的影響。
本文設(shè)計(jì)一種采用OpenMV作為主控的基于機(jī)器視覺的循跡避障智能小車系統(tǒng),能夠從標(biāo)記的指定位置出發(fā),迅速找尋規(guī)定場(chǎng)內(nèi)隨機(jī)點(diǎn)亮的信號(hào)表示燈。該系統(tǒng)能夠自動(dòng)循跡,找尋規(guī)定場(chǎng)內(nèi)隨機(jī)點(diǎn)亮的信號(hào)燈,遇到障礙物時(shí)可自動(dòng)避障。
實(shí)現(xiàn)智能小車的速度控制算法有兩種,分別為PID(比例-積分-微分控制器)控制算法與比例控制算法[3]。其中比例算法實(shí)現(xiàn)較為簡(jiǎn)單,算法中的比例系數(shù)容易求解及操作,設(shè)計(jì)過程簡(jiǎn)單明了。在本系統(tǒng)的設(shè)計(jì)應(yīng)用中,信號(hào)表示燈的個(gè)數(shù)不定,位置布局不固定,比較靈活,并且隨機(jī)點(diǎn)亮信號(hào)燈容易導(dǎo)致比例算法中的比例系數(shù)很難調(diào)整,易造成智能小車擺動(dòng)幅度大,平衡性差,造成智能小車翻車的概率大幅增加。PID算法可以明顯改善上述缺點(diǎn),使用積分與微分控制器的調(diào)節(jié),使其離散值保持在一定區(qū)間內(nèi)。因此,比例系數(shù)設(shè)置更為容易[4]。
本設(shè)計(jì)中的速度控制采用PID算法,可以實(shí)現(xiàn)智能小車有效靈活地加、減速。
智能小車在行駛過程中可能會(huì)不定期地遇見障礙物,通過設(shè)計(jì)障礙物識(shí)別算法辨別障礙物,可使智能小車曲線行駛避開障礙物。在局部特征點(diǎn)檢測(cè)快速發(fā)展階段,人們對(duì)于特征的認(rèn)識(shí)也越來越深入,近幾年許多學(xué)者提出的特征點(diǎn)檢測(cè)算法及其改進(jìn)算法也愈來愈多,在眾多的算法中涌現(xiàn)出眾多佼佼者。在本系統(tǒng)中,利用FAST(Features from Accelerated Segment Test)算法[5-6]在灰度圖下對(duì)障礙物進(jìn)行特征提取,然后進(jìn)行障礙物識(shí)別。FAST算法在某像素與其周圍領(lǐng)域內(nèi)足夠多的像素點(diǎn)相差較大,則該像素可能是角點(diǎn),通過不斷地比較進(jìn)行特征點(diǎn)檢測(cè)。同時(shí),在障礙物識(shí)別中加入模板匹配(NCC算法)[7-10],進(jìn)一步提高識(shí)別障礙物的精確度,雙重算法的使用能夠達(dá)到高精度、高效率識(shí)別的目的。
實(shí)現(xiàn)障礙物測(cè)距的方法較多,有單目視覺障礙物測(cè)距[11]、激光雷達(dá)障礙物測(cè)距[12]、激光測(cè)距[13]等方法。其中激光雷達(dá)障礙物測(cè)距方式價(jià)格較高,智能小車載重增大,對(duì)于本系統(tǒng)來說不實(shí)用,而激光測(cè)距方式發(fā)出的光線會(huì)對(duì)OpenMV識(shí)別造成偏差,智能小車在行駛過程中受到影響。單目視覺測(cè)距算法可以很好地彌補(bǔ)上述方法的不足,單目測(cè)距根據(jù)圖像攝取模塊焦距、圖像攝取模塊離地面高度以及障礙物底部在相平面上的位置,通過光學(xué)相似三角計(jì)算獲得障礙物距離,可以很好地完成本系統(tǒng)的實(shí)驗(yàn)要求,在智能小車負(fù)重未增加的情況下,小車行駛效率進(jìn)一步提高。
在本系統(tǒng)中實(shí)現(xiàn)信號(hào)燈識(shí)別采用顏色追蹤算法,該算法可以準(zhǔn)確識(shí)別到點(diǎn)亮的信號(hào)燈。顏色追蹤算法信息全面,對(duì)全幅圖像、所有的顏色均會(huì)進(jìn)行搜索,搜索目標(biāo)顏色的精確度會(huì)進(jìn)一步提高。其中由查找X、Y上最小寬度的像素方式,同時(shí)設(shè)置面積閾值,如果色塊面積小于閾值設(shè)定值則會(huì)被過濾掉,大于等于設(shè)定的面積閾值則會(huì)保留。所以,通過設(shè)置點(diǎn)亮?xí)r的顏色閾值與面積閾值則可對(duì)其追蹤。
智能小車行駛過程中,本系統(tǒng)中的速度控制可由PID算法對(duì)電機(jī)進(jìn)行控制。PID控制系統(tǒng)原理圖如圖1所示。
圖1 PID控制系統(tǒng)原理圖Fig.1 Schematic diagram of PID control system
在該算法中,r(t)為輸入,y(t)為實(shí)測(cè)值,e(t)為偏差信號(hào),其中關(guān)系如式(1)所示:
e(t)=r(t)-y(t)
.
(1)
輸出為一種線性組合規(guī)律,該規(guī)律由偏差信號(hào)的比例、積分、微分決定,具體由式(2)表示:
(2)
式中:Kp是比例系數(shù);Ti是比例積分常數(shù);Td是微分時(shí)間常數(shù)。
本系統(tǒng)中障礙物識(shí)別算法的核心算法為FAST算法和模板匹配算法(NCC算法)。其中,F(xiàn)AST算法速度快,在攝入的圖像以像素p為中心半徑為r,同時(shí)檢測(cè)其像素點(diǎn)數(shù)。設(shè)置p點(diǎn)為候選點(diǎn),同時(shí)定義閾值,這些像素點(diǎn)與像素p比較,若絕對(duì)值均小于閾值,則p點(diǎn)不是特征點(diǎn);若超過閾值則進(jìn)行下一步考察。以此類推計(jì)算出超過閾值的像素點(diǎn)個(gè)數(shù),若至少有半數(shù)像素點(diǎn)超過設(shè)置閾值,則是特征點(diǎn);否則,直接過濾。
對(duì)圖像進(jìn)行非極大值抑制,計(jì)算特征點(diǎn)處的FAST得分值(score值,也即s值),判斷以特征點(diǎn)p為中心的一個(gè)鄰域內(nèi),如果有多個(gè)特征點(diǎn),判斷每個(gè)特征點(diǎn)的s值,若p是鄰域所有特征點(diǎn)中響應(yīng)值最大的則保留;否則抑制。
如果鄰域內(nèi)只有一個(gè)特征點(diǎn),保留并對(duì)其得分進(jìn)行計(jì)算,計(jì)算公式如式(3)所示:
(3)
式中,V表示所得到的分?jǐn)?shù),t表示閾值。
NCC算法是一種歸一化相關(guān)匹配法,是基于圖像灰度信息的匹配方法。
NCC算法計(jì)算原理公式如式(4)所示。
(4)
可根據(jù)積分圖像提前計(jì)算出任意窗口大小和與平方和,式(4)中uf表示帶檢測(cè)圖像,ur表示參考模板圖像的窗口均值。在積分圖像建立起窗口下的待檢測(cè)圖像與模板圖像的和平方,以及交叉乘積5個(gè)積分圖索引后就完成了預(yù)計(jì)生成。通過索引表查詢計(jì)算結(jié)果,NCC就實(shí)現(xiàn)了線性時(shí)間的復(fù)雜度計(jì)算。
小車在運(yùn)行過程中,障礙物測(cè)距可通過單目視覺測(cè)距算法測(cè)量。單目視覺測(cè)距算法原理圖如圖2所示。
圖2 單目視覺測(cè)距原理框圖Fig.2 Schematic diagram of monocular visual distance measurement
單目測(cè)距算法中,Hm、Rm為障礙物真實(shí)值,Apix、Bpix為攝像頭中的圖像,其關(guān)系可推演得出。在左邊的攝像頭里的幾何關(guān)系可得出式(5)與式(6):
(5)
(6)
由公式(5)和(6)可推理出公式(7):
(7)
原理框圖中真實(shí)環(huán)境中的集合關(guān)系,可得出式(8):
(8)
將公式(8)代入公式(7),可得出結(jié)論公式(9):
(9)
小車在追蹤點(diǎn)亮的信號(hào)表示燈,采用顏色追蹤算法。點(diǎn)亮的信號(hào)燈與未點(diǎn)亮的信號(hào)燈在顏色上存在差異,本系統(tǒng)通過該點(diǎn)不同而設(shè)計(jì)顏色追蹤算法。
顏色追蹤算法搜集信息全面,精度高,在施行過程中出錯(cuò)的概率大幅降低。該算法利用機(jī)器視覺中需要識(shí)別的顏色進(jìn)行追蹤,在RGB下對(duì)點(diǎn)亮的信號(hào)燈進(jìn)行閾值設(shè)定,設(shè)定需要追蹤物體的顏色后,則該顏色在此種環(huán)境狀態(tài)下能夠在設(shè)定的閾值范圍內(nèi)識(shí)別。不僅如此,還通過設(shè)計(jì)面積閾值,對(duì)顏色面積進(jìn)行判斷識(shí)別,其中由查找X、Y上最小寬度的像素方式,同時(shí)設(shè)置面積閾值,如果色塊面積小于閾值設(shè)定值則會(huì)被過濾掉,大于等于設(shè)定的面積閾值則會(huì)保留,這樣可排除外界因素干擾。當(dāng)兩者同時(shí)識(shí)別后驅(qū)動(dòng)小車對(duì)目標(biāo)進(jìn)行追蹤。
首先通過OpenMV攝像頭系統(tǒng)進(jìn)行圖像采集,然后將圖像信息數(shù)據(jù)送傳至擁有STM32F427的OpenMV系統(tǒng)進(jìn)行顏色追蹤、模板匹配、測(cè)距、特征點(diǎn)檢測(cè)等處理,然后驅(qū)動(dòng)智能小車的電機(jī)。循跡避障智能小車系統(tǒng)框圖如圖3所示。
圖3 循跡避障智能小車系統(tǒng)框圖Fig.3 Block diagram of tracking obstacle avoidance intelligent vehicle system
OpenMV攝像頭可以實(shí)現(xiàn)物體在動(dòng)態(tài)特征下無接觸遠(yuǎn)距離測(cè)量,是光測(cè)量的一種有效應(yīng)用。OpenMV攝像頭電路結(jié)構(gòu)如圖4所示。
圖4 OpenMV攝像頭電路結(jié)構(gòu)Fig.4 Circuit structure of OpenMV camera
電源管理模塊選擇有3種方案:鋰電池、鎳鎘電池、鎳氫電池??刂葡到y(tǒng)各個(gè)部件都需要合適且比較穩(wěn)定的電壓,電源電壓大小和能量要充足,才能保證系統(tǒng)在行駛時(shí)的穩(wěn)定性。因此選擇12 V的鋰電池,電源管理圖如圖5所示。
圖5 電源管理圖Fig.5 Power management diagram
電機(jī)驅(qū)動(dòng)模塊選擇12 V的ASLONG-JGB37微型直流減速電機(jī)。根據(jù)電池供電的不同,電機(jī)的轉(zhuǎn)速也不同,而該電機(jī)轉(zhuǎn)速可調(diào)。帶減速的電機(jī)加上了減速箱,降低了轉(zhuǎn)速,增強(qiáng)了扭力。
首先對(duì)系統(tǒng)進(jìn)行初始化,攝像頭系統(tǒng)將會(huì)進(jìn)行圖像采集,如果采集到圖像,攝像頭系統(tǒng)將采集到的圖像數(shù)據(jù)送傳至OpenMV進(jìn)行處理。若檢測(cè)到點(diǎn)亮的信號(hào)表示燈,調(diào)整轉(zhuǎn)角,系統(tǒng)會(huì)對(duì)點(diǎn)亮后的信號(hào)表示燈進(jìn)行顏色追蹤。若在追蹤過程中檢測(cè)到障礙物,系統(tǒng)將會(huì)對(duì)障礙物進(jìn)行測(cè)距,同時(shí)調(diào)整轉(zhuǎn)角,驅(qū)動(dòng)電機(jī)使小車曲線行駛,避免觸碰障礙物;若未檢測(cè)到障礙物,驅(qū)動(dòng)小車前進(jìn),此時(shí)小車將會(huì)直線行駛。通過控制PWM口的信號(hào)輸出可以實(shí)現(xiàn)輪速的控制, 主程序流程如圖6所示。
圖6 主程序流程圖Fig.6 Flow chart of main program
當(dāng)檢測(cè)到點(diǎn)亮的信號(hào)表示燈時(shí),左右車輪高速轉(zhuǎn)動(dòng), 小車直行,完成滅燈任務(wù);當(dāng)檢測(cè)到障礙物坐標(biāo)出現(xiàn)在圖像中的左邊時(shí),智能小車左輪高速正轉(zhuǎn), 右輪低速正轉(zhuǎn), 實(shí)現(xiàn)右轉(zhuǎn),避開障礙物,然后通過檢測(cè)點(diǎn)亮的信號(hào)表示燈繼續(xù)追蹤,完成滅燈任務(wù); 當(dāng)檢測(cè)到障礙物坐標(biāo)出現(xiàn)在圖像中的右邊時(shí),右輪高速正轉(zhuǎn), 左輪低速正轉(zhuǎn), 實(shí)現(xiàn)左轉(zhuǎn),避開障礙物,然后通過檢測(cè)點(diǎn)亮的信號(hào)表示燈繼續(xù)追蹤,完成滅燈任務(wù)。如果未檢測(cè)到點(diǎn)亮的信號(hào)燈,智能小車通過右輪高速正轉(zhuǎn), 左輪低速正轉(zhuǎn), 實(shí)現(xiàn)差速控制左轉(zhuǎn)尋找場(chǎng)內(nèi)隨機(jī)點(diǎn)亮的信號(hào)燈。
按照上述設(shè)計(jì)方案,完成的循跡避障智能小車控制系統(tǒng)模型,在規(guī)定時(shí)間內(nèi)需要從指定位置出發(fā),智能小車快速找尋規(guī)定場(chǎng)內(nèi)的隨機(jī)點(diǎn)亮的信號(hào)表示燈,當(dāng)智能小車進(jìn)入到點(diǎn)亮的信號(hào)表示燈的規(guī)定范圍內(nèi)時(shí),信號(hào)燈會(huì)自動(dòng)熄滅。此時(shí),下一處的信號(hào)燈將會(huì)隨機(jī)點(diǎn)亮,智能小車再一次需要完成滅燈,每個(gè)燈被滅后可能再次被點(diǎn)亮。如此,在規(guī)定時(shí)間內(nèi)完成滅燈任務(wù),同時(shí)統(tǒng)計(jì)滅燈個(gè)數(shù)。循跡避障智能小車測(cè)試實(shí)驗(yàn)過程如圖7所示。 循跡避障智能小車測(cè)試數(shù)據(jù)如表1所示。
圖7 循跡避障智能小車滅燈實(shí)驗(yàn)圖Fig.7 Experiment diagram of tracking obstacle avoidance intelligent vehicle lamp extinction
表1 小車滅燈測(cè)試數(shù)據(jù)Tab.1 Test data of car lights out
根據(jù)不同距離 OpenMV攝像頭返回的數(shù)據(jù),計(jì)算出當(dāng)前信標(biāo)燈對(duì)應(yīng)小車的坐標(biāo)值, OpenMV 攝像頭測(cè)試數(shù)據(jù)如表2所示。
表2 OpenMV攝像頭測(cè)試數(shù)據(jù)Tab.2 Test data of OpenMV camera
根據(jù)表1、表2測(cè)試數(shù)據(jù),可以得出以下結(jié)論:在300 s時(shí)間內(nèi),平均滅燈個(gè)數(shù)超過50個(gè),說明本系統(tǒng)具有可行性,小車能夠精確識(shí)別點(diǎn)亮的信號(hào)表示燈;通過 OpenMV攝像頭得到的左中右坐標(biāo)值,誤差值在1 cm范圍內(nèi),說明系統(tǒng)可準(zhǔn)確通過攝像頭數(shù)據(jù)識(shí)別障礙物并進(jìn)行測(cè)距;小車能夠進(jìn)行左中右坐標(biāo)值位置測(cè)量,說明系統(tǒng)能夠在追蹤及滅掉點(diǎn)亮的信號(hào)燈過程中避開障礙物;小車在2,4,6 m位置處得到坐標(biāo)值,說明系統(tǒng)能準(zhǔn)確地驅(qū)動(dòng)小車前進(jìn),完成滅燈。本系統(tǒng)達(dá)到設(shè)計(jì)要求。
本文提出的基于OpenMV智能“尋的”小車控制系統(tǒng)采用OpenMV攝像頭系統(tǒng)完成圖像數(shù)據(jù)的采集,通過將圖像數(shù)據(jù)送傳至OpenMV系統(tǒng)進(jìn)行處理,完成對(duì)點(diǎn)亮的信號(hào)表示燈的追蹤,達(dá)到了避開障礙物的設(shè)計(jì)要求。該系統(tǒng)采用FAST特征點(diǎn)檢測(cè)、NCC模板匹配、PID控制、單目視覺測(cè)距等算法,處理速度更快,精度高,數(shù)據(jù)精確,負(fù)載輕,小車實(shí)驗(yàn)測(cè)試數(shù)據(jù)差值小,幾乎可以忽略,系統(tǒng)穩(wěn)定,達(dá)到設(shè)計(jì)的預(yù)期效果。