宋乾毓 蔡丹丹 李肖夏 田 斌
(中汽研汽車檢驗(yàn)中心(廣州)有限公司,廣東 廣州 511300)
汽車是人們出行的一種主要工具。由于汽車數(shù)量不斷增加,因此出現(xiàn)交通堵塞、交通事故等問題,為了能夠解決上述問題,研究人員進(jìn)行了許多嘗試和探索。目前,人工智能技術(shù)、互聯(lián)網(wǎng)+技術(shù)等廣泛應(yīng)用于各行各業(yè)。在汽車領(lǐng)域中,智能駕駛已經(jīng)成了未來發(fā)展的一個(gè)主要方向。在汽車行駛的過程中,駕駛員獲得的大部分信息(例如路面狀況信息、交通標(biāo)志信息以及障礙物信息等)都來自其自身的視覺,如果可以模仿人類的視覺系統(tǒng)來了解路面環(huán)境,就可以輔助人們進(jìn)行汽車駕駛,從而提高汽車行駛的安全性,降低發(fā)生交通事故的概率。
該文對(duì)基于視覺導(dǎo)航的智能駕駛系統(tǒng)進(jìn)行的研究是以無人駕駛車輛作為硬件實(shí)驗(yàn)平臺(tái)的。該無人駕駛車輛在環(huán)境感知傳感器方面配備了前向四線激光雷達(dá)、側(cè)向單線激光雷達(dá)和攝像頭,構(gòu)成了汽車的雙目視覺傳感器系統(tǒng)。同時(shí),還在車輛上安裝了車輛定位系統(tǒng)[1]。該無人駕駛車輛具有3個(gè)智能子駕駛模塊,即環(huán)境感知模塊、規(guī)劃決策模塊以及自動(dòng)控制模塊。其中,環(huán)境感知模塊主要是指對(duì)車輛周圍環(huán)境進(jìn)行感知和探索的硬件設(shè)備,包括導(dǎo)航系統(tǒng)、高清攝像頭以及激光雷達(dá)等。規(guī)劃決策模塊的主要功能是對(duì)車輛行駛路線進(jìn)行規(guī)劃。自動(dòng)控制模塊主要負(fù)責(zé)在車輛行駛過程中對(duì)油門、剎車以及方向盤等機(jī)構(gòu)進(jìn)行控制。上述所有的硬件設(shè)備均采用CAN總線進(jìn)行連接,通過串口通信的方式進(jìn)行數(shù)據(jù)信息交互,車載智能駕駛系統(tǒng)的結(jié)構(gòu)框架如圖1所示。
由圖1可知,在駕駛過程中,攝像頭、激光雷達(dá)以及GPS的主要功能是感知車身周圍的環(huán)境,對(duì)采集到的數(shù)據(jù)進(jìn)行處理,并傳送至路徑規(guī)劃和決策模塊,最終由控制模塊來完成汽車的各種剎車、轉(zhuǎn)向燈動(dòng)作,從而實(shí)現(xiàn)智能駕駛的目標(biāo)。
圖1 車載智能駕駛系統(tǒng)框架
在智能交通系統(tǒng)中,對(duì)行駛路徑進(jìn)行自動(dòng)尋優(yōu)是車載智能駕駛系統(tǒng)所必備的一項(xiàng)技術(shù),同時(shí)也是車載智能駕駛系統(tǒng)實(shí)踐應(yīng)用亟待解決的問題。而作為路徑尋優(yōu)技術(shù)中的關(guān)鍵環(huán)節(jié),對(duì)車道線識(shí)別進(jìn)行系統(tǒng)的研究和開發(fā)能夠?yàn)檐囕v的自動(dòng)駕駛提供道路方向、彎曲曲率以及車輛實(shí)時(shí)行駛的車道線信息等數(shù)據(jù)。因此,車載智能駕駛系統(tǒng)可以對(duì)車道線進(jìn)行精準(zhǔn)識(shí)別,從而提高車輛自動(dòng)駕駛的安全性和可靠性。通常來說,車載智能駕駛系統(tǒng)要想對(duì)車道線進(jìn)行識(shí)別,就需要通過安裝在車身上的CCD攝像頭來采集車道視頻流數(shù)據(jù)信息,并采用相關(guān)算法進(jìn)行分析,得到車道線的數(shù)據(jù)信息?,F(xiàn)階段有2種不同類型的車道線識(shí)別算法:1) 對(duì)視頻圖像進(jìn)行逐幀分析,再對(duì)識(shí)別到的車道線進(jìn)行相應(yīng)的信息標(biāo)注。2) 對(duì)視頻流中的車輛運(yùn)動(dòng)矢量數(shù)據(jù)信息進(jìn)行分析,在該基礎(chǔ)上完成對(duì)車道線位置的識(shí)別和跟蹤工作。
該文通過條件約束來降低道路邊緣特征的噪聲干擾,并引進(jìn)光流算法來進(jìn)行車道識(shí)別,以提高車載智能駕駛系統(tǒng)的計(jì)算效率。光流算法是一種可以在連續(xù)視頻幀中進(jìn)行識(shí)別和跟蹤的方法。以光流算法為基礎(chǔ)的車道線快速識(shí)別主要分為以下4個(gè)步驟:1) 引入光流算法對(duì)車道線的大概范圍進(jìn)行動(dòng)態(tài)性評(píng)估,其目的是盡可能地定位感興趣區(qū)域。2) 采用復(fù)合算子對(duì)道路邊緣特征進(jìn)行計(jì)算和檢測(cè)。3) 利用多項(xiàng)式擬合對(duì)車道線進(jìn)行識(shí)別。4) 對(duì)車道線的類型進(jìn)行識(shí)別,將識(shí)別出的車道線標(biāo)注到視頻圖像中。
與傳統(tǒng)的車道線識(shí)別算法相比,采用光流法能夠快速確定車道線的檢測(cè)范圍,提高了車載智能駕駛系統(tǒng)對(duì)車道線進(jìn)行識(shí)別的效率。其具體的工作原理是根據(jù)圖像序列中的像素隨著時(shí)間域所發(fā)生的變化來發(fā)現(xiàn)2個(gè)相鄰幀之間所具有的內(nèi)在聯(lián)系,并在該基礎(chǔ)上對(duì)2幀之間的數(shù)據(jù)信息進(jìn)行計(jì)算[2]。光流法通過計(jì)算每幀中關(guān)鍵特征點(diǎn)的位置就可以實(shí)現(xiàn)對(duì)正在運(yùn)動(dòng)中的物體進(jìn)行檢測(cè)和跟蹤的目標(biāo)。該文設(shè)計(jì)的利用L-K光流法對(duì)車道線進(jìn)行跟蹤和識(shí)別的流程如下。
首先,在光流算法中添加新的特征點(diǎn)。其次,利用光流法對(duì)該特征點(diǎn)進(jìn)行計(jì)算。最后,根據(jù)特征點(diǎn)對(duì)其進(jìn)行整理和篩選。
在上述識(shí)別車道線的過程中,利用L-K光流法進(jìn)行計(jì)算是該流程中的關(guān)鍵。設(shè)定影像灰度保持不變,t處在坐標(biāo)(x,y)像素點(diǎn)上,那么可以計(jì)算t+dt的具體位置為(x+dx,y+dy),在該基礎(chǔ)上通過計(jì)算可以得到公式(1)。
式中:I(x,y,t)為已知量;d為常數(shù)。
對(duì)公式(1)進(jìn)行泰勒展開,可以得到公式(2)。
將公式(2)寫為矩陣公式,如公式(3)所示。
式中:u、v分別為像素坐標(biāo)系中指向u軸和v軸正方向的位移量。
由公式(3)可知,它具有2個(gè)(u和v)不同的變量,如果僅使用1個(gè)點(diǎn),就無法完成對(duì)2個(gè)變量進(jìn)行計(jì)算的任務(wù),為了解決該問題,引入窗口內(nèi)像素具有相同運(yùn)動(dòng)軌跡的概念,將窗口大小設(shè)定為w×w,則該窗口一共具有w2個(gè)像素,因此也共計(jì)有w2個(gè)方程,如公式(4)所示。
采用最小二乘解計(jì)算可以得出u和v的值。
在對(duì)上一幀車道線進(jìn)行識(shí)別的基礎(chǔ)上,采用光流法對(duì)視頻幀進(jìn)行計(jì)算,對(duì)計(jì)算結(jié)果進(jìn)行篩選后,得到較精準(zhǔn)的坐標(biāo)點(diǎn),再對(duì)得到的坐標(biāo)點(diǎn)進(jìn)行計(jì)算,以獲取車輛的運(yùn)動(dòng)估計(jì)[3]。該算法的主要流程如下:1) 對(duì)左、右2組坐標(biāo)點(diǎn)來說,采用DBSCAN聚類算法對(duì)其位移矢量進(jìn)行計(jì)算,以去除前景像素,得到主要背景坐標(biāo)點(diǎn)。2) 采用平均加權(quán)法對(duì)前方背景圖像的相對(duì)矢量位移進(jìn)行計(jì)算,如公式(5)所示。3) 在計(jì)算得出位移矢量的結(jié)果后,對(duì)汽車左、右兩側(cè)的車道預(yù)估曲線進(jìn)行計(jì)算,同時(shí)將其設(shè)定為系統(tǒng)的感興趣區(qū)域。4) 在系統(tǒng)的感興趣區(qū)域內(nèi)完成對(duì)圖像進(jìn)行二值化、查找汽車行駛車道線像素等任務(wù)。
式中:a為前方背景圖像的相對(duì)位移矢量;ai為第i組特征像素的相對(duì)位移矢量;si為第i個(gè)特征像素和車道擬合曲線的距離倒數(shù);k為像素。
通常情況下,我國(guó)道路上兩側(cè)的車道線寬度是恒定的(2條車道線是相互平行的),根據(jù)點(diǎn)與直線之間距離最短的原理可以計(jì)算車輛中心與左右兩側(cè)車道線的具體距離,如公式(6)和公式(7)所示。
式中:DL為車輛與道路左側(cè)車道線的距離;DR為車輛與道路右側(cè)車道線的距離;kL、bL為左車道線坐標(biāo);kR、bR為右車道線坐標(biāo)。
在計(jì)算上述距離后,就可以計(jì)算車輛中心與兩側(cè)車道線中心之間的相對(duì)位移D,當(dāng)車輛左側(cè)偏離2條車道線中心時(shí),其相對(duì)位移為負(fù);當(dāng)車輛右側(cè)偏離2條車道線中心時(shí),其相對(duì)位移為正,如公式(8)所示。
由于在車輛行駛的大部分時(shí)間內(nèi),車輛的方向和車道線之間都不是平行的,因此,引入偏航角的概念來表示車輛方向和車道線之間的夾角φ,如公式(9)所示。
在不同的道路環(huán)境下,道路車道線的寬度是不相同的,這將導(dǎo)致憑借車道線和車輛中心距離以及偏航角來對(duì)車道偏離進(jìn)行預(yù)警的智能駕駛系統(tǒng)會(huì)出現(xiàn)偏差,為了解決該問題,還需要引入車輛的長(zhǎng)、寬數(shù)據(jù)[4]。LV表示車輛的長(zhǎng)度,WV表示車輛的寬度,采用公式(10)計(jì)算車輛前部和車輛中心距離在行駛垂直方向的投影L如公式(10)所示。
當(dāng)L與車左、右兩側(cè)車道線的距離DL、DR相等時(shí),表示此時(shí)車輛正處于車道線的邊緣,而當(dāng)距離D為負(fù)時(shí),表示已經(jīng)出現(xiàn)左偏離,當(dāng)距離D為正時(shí),表示已經(jīng)出現(xiàn)右偏離,如公式(11)所示。
為了保障在比較復(fù)雜的路況下汽車行駛的安全性,還需要針對(duì)車輛碰撞預(yù)警系統(tǒng)進(jìn)行研究。而碰撞預(yù)警系統(tǒng)需要對(duì)車輛與前方車輛的距離信息進(jìn)行實(shí)時(shí)計(jì)算,并根據(jù)計(jì)算出來的距離結(jié)果進(jìn)行碰撞預(yù)警提示[5]。要想完成對(duì)前向車輛碰撞進(jìn)行預(yù)警的任務(wù),還需要獲得車輛距離的三維信息,該文引入視差計(jì)算和三維重建的方法來對(duì)車輛前方環(huán)境進(jìn)行精準(zhǔn)感知。
3.2.1 視差計(jì)算
采用WTA算法對(duì)車輛碰撞預(yù)警中的視差進(jìn)行計(jì)算。WTA是一種可以對(duì)路況圖像中左側(cè)視圖像素點(diǎn)進(jìn)行匹配并自動(dòng)選擇最優(yōu)像素點(diǎn)對(duì)視差值進(jìn)行計(jì)算的方法,計(jì)算后就可以得到對(duì)應(yīng)的三維圖像信息。
在采用WTA算法獲得的初始視差圖中還具有很多匹配錯(cuò)誤的點(diǎn),這就需要對(duì)該視差圖進(jìn)行精細(xì)化處理,該文選擇對(duì)其進(jìn)行左右一致性檢測(cè),以提高其匹配的精度。其具體的檢測(cè)流程為進(jìn)行左右一致性檢測(cè),獲取左右視差圖中的異常點(diǎn),如公式(12)所示。
式中:dL(p)為p點(diǎn)在左側(cè)視圖中的具體視差值;dR(p-dL(p))為p點(diǎn)在右側(cè)視差圖中的具體視差值。
3.2.2 三維重建視差圖計(jì)算
為了對(duì)視差圖進(jìn)行三維重建,該文利用工業(yè)相機(jī)構(gòu)建一個(gè)車載智能化測(cè)量平臺(tái),該平臺(tái)具有2臺(tái)相互平行的相機(jī),以確保相機(jī)的光軸時(shí)刻處于同一平行狀態(tài)下,設(shè)定相機(jī)的基線為0.4 m[6]。在工業(yè)相機(jī)坐標(biāo)系的基礎(chǔ)上建立世界坐標(biāo)系,并將三維平面向下平移2.3 m(到地面位置),設(shè)定工業(yè)相機(jī)的俯角θ=10°,工業(yè)相機(jī)的橫滾角和偏航角均為0°。在重建三維點(diǎn)云的過程中,使用了4個(gè)不同的坐標(biāo)(像素坐標(biāo)系、圖像坐標(biāo)系、相機(jī)坐標(biāo)系以及世界坐標(biāo)系),雙目測(cè)量系統(tǒng)的坐標(biāo)系定義如圖2所示。
圖2 雙目測(cè)量系統(tǒng)坐標(biāo)
由雙目逆投影的變換原理可以計(jì)算二維像素平面視差d的像素點(diǎn)p(x,y),并將其投影得到三維世界坐標(biāo)系下的換算關(guān)系,如公式(13)所示。
式中:B為雙目基線的具體長(zhǎng)度;f為攝像機(jī)的焦距;Rz(θ)為旋轉(zhuǎn)矩陣;cx、cy為相機(jī)內(nèi)的參數(shù);[0,0,h]為平移矩陣;xw、yw和zw為雙目測(cè)量系統(tǒng)在三維坐標(biāo)系中的x、y和z值。
由映射關(guān)系計(jì)算公式可以將圖像坐標(biāo)系下的像素點(diǎn)投影到三維世界的坐標(biāo)系中,從而完成三維點(diǎn)的云重建任務(wù)。待完成視差計(jì)算和三維云重建后,再對(duì)車輛識(shí)別的定位結(jié)果進(jìn)行計(jì)算,并采用計(jì)算所得距離的中位值作為智能車輛和前方車輛間的距離。
綜上所述,隨著人工智能、信息化技術(shù)以及互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,汽車工業(yè)的發(fā)展已經(jīng)步入智能化時(shí)代,而機(jī)器視覺作為一種在車載智能化駕駛系統(tǒng)中應(yīng)用廣泛的技術(shù),它的發(fā)展水平對(duì)汽車智能化駕駛系統(tǒng)有十分重要的影響。該文所設(shè)計(jì)的基于視覺導(dǎo)航車載智能駕駛系統(tǒng)是一種智能化的駕駛輔助系統(tǒng),能夠?qū)嚨榔x和車輛碰撞進(jìn)行精準(zhǔn)識(shí)別和預(yù)警,從而提高車輛駕駛過程中的安全性。未來,隨著各種先進(jìn)傳感器和圖像處理算法在智能駕駛系統(tǒng)中的應(yīng)用,基于視覺導(dǎo)航的車載智能駕駛系統(tǒng)會(huì)有更高的精準(zhǔn)性和實(shí)用性。