許璐鈞,張遠(yuǎn)輝,徐栢銳,何雨辰
(中國(guó)計(jì)量大學(xué)機(jī)電工程學(xué)院,浙江 杭州 310018)
車道線識(shí)別是目前高級(jí)駕駛輔助系統(tǒng)(Advanced Driver Assistance Systems,ADAS)的關(guān)鍵技術(shù)之一[1],借助車載傳感器來(lái)輔助駕駛員感知行車環(huán)境中存在的安全隱患,通過(guò)識(shí)別車道線分析出車輛位于行駛車道的相對(duì)位置,從而判斷車輛是否存在車道偏離的危險(xiǎn),對(duì)可能存在的危險(xiǎn)情況提前預(yù)警進(jìn)一步。現(xiàn)有的車道線識(shí)別方法大多借助于傳統(tǒng)的可見(jiàn)光相機(jī),可以歸納為基于特征的車道線識(shí)別方法[2]、基于模型的車道線識(shí)別方法[3]、機(jī)器學(xué)習(xí)的圖像分割方法[4-6]。當(dāng)車輛高速行駛時(shí),容易造成運(yùn)動(dòng)模糊,而且這些包含大量冗余信息的連續(xù)圖像幀會(huì)極大地浪費(fèi)計(jì)算能力、內(nèi)存空間和時(shí)間。
一種事件相機(jī)[7]應(yīng)運(yùn)而生,該傳感器異步輸出地址事件的數(shù)據(jù)。目前,基于地址事件(AER)的目標(biāo)識(shí)別與跟蹤已經(jīng)取得研究進(jìn)展。Maqueda[8]等人通過(guò)實(shí)驗(yàn)證明在具有挑戰(zhàn)性的光照條件和快速運(yùn)動(dòng)的情況下,事件數(shù)據(jù)在預(yù)測(cè)車輛的轉(zhuǎn)向角度時(shí)仍具有魯棒性。Wang[9]提出一種基于改進(jìn)高斯斑點(diǎn)跟蹤算法的定位檢測(cè)器,用于事件目標(biāo)跟蹤和定位。Ramesh等人[10]提出一種事件信息的(Distribution Aware Retinal Transform,DART)描述子,但該描述子在設(shè)計(jì)原理上未考慮旋轉(zhuǎn)、尺度、視角的不變性。Li[11]采用相關(guān)濾波器和卷積神經(jīng)網(wǎng)絡(luò)對(duì)事件流對(duì)象進(jìn)行跟蹤。雖然地址事件數(shù)據(jù)具有高時(shí)間分辨率、寬動(dòng)態(tài)范圍的優(yōu)點(diǎn),但是目前仍然很少將其應(yīng)用在車道線識(shí)別中。在實(shí)際應(yīng)用時(shí),車輛高速行駛、環(huán)境的光線亮暗、路肩石和樹陰等陰影對(duì)識(shí)別方法造成很大的干擾。
為了解決上述問(wèn)題,本文利用事件流異步、高時(shí)間分辨率的特性,提出一種針對(duì)地址事件的快速車道線識(shí)別方法。首先,將原始事件數(shù)據(jù)進(jìn)行濾波、LIF編碼的預(yù)處理,這樣不僅可以完整地表征事件的強(qiáng)度,而且可以濾除大量噪聲事件。然后,通過(guò)恢復(fù)車道的視角來(lái)定位出車道線在圖像坐標(biāo)的位置,再采用三次B樣條曲線擬合。最后,采取車道跟蹤策略優(yōu)化該方法的檢測(cè)率和運(yùn)行速度,在保證高檢測(cè)率的前提下,相較于傳統(tǒng)幀圖像的車道線識(shí)別方法大大減少了運(yùn)行時(shí)間。
如圖1所示,傳統(tǒng)相機(jī)以“幀”的形式捕捉和存儲(chǔ)視頻,不管亮度變化,在一個(gè)固定的周期內(nèi)拍攝完整的幀畫面,且每一幀圖像都攜帶著來(lái)自所有像素的視覺(jué)信息;而事件相機(jī)是對(duì)其感光陣列中的每一個(gè)像素點(diǎn)上的光強(qiáng)信息按時(shí)間先后進(jìn)行連續(xù)檢測(cè),當(dāng)相對(duì)變化超過(guò)設(shè)定的閾值時(shí),異步獨(dú)立地輸出該像素點(diǎn)的位置信息和變化屬性的數(shù)據(jù)(即事件)。
圖1 傳統(tǒng)相機(jī)與事件相機(jī)的傳輸方式對(duì)比圖
傳統(tǒng)的成像機(jī)制帶來(lái)了大量的信息冗余,對(duì)帶寬和存儲(chǔ)提出了很大的挑戰(zhàn),而通過(guò)事件驅(qū)動(dòng)的方式完全可以滿足數(shù)據(jù)量小且高時(shí)間分辨率的要求。
車道線識(shí)別方法的總體框架如圖2,包括事件數(shù)據(jù)預(yù)處理、車道識(shí)別和跟蹤三個(gè)部分。
圖2 車道線識(shí)別方法的流程圖
事件流對(duì)環(huán)境中的光強(qiáng)變化非常敏感,不可避免地易受到光學(xué)硬件電路和環(huán)境因素影響,在輸出車道信息的同時(shí)夾雜著大量的噪聲[12],從而影響后續(xù)的車道識(shí)別和跟蹤。因此,數(shù)據(jù)預(yù)處理非常必要[13]。由于事件流與圖像幀的輸出方式上有明顯地差異,基于幀的傳統(tǒng)視覺(jué)處理算法不能直接應(yīng)用于事件數(shù)據(jù)中。針對(duì)這一特性,本文直接對(duì)事件流序列進(jìn)行處理,采用濾波的方法來(lái)濾除由于硬件電路和隨機(jī)產(chǎn)生的噪聲。
(1)
在AER感知模式中,某一位置的像素被激活時(shí),輸出由這些像素組成的事件,反之則不會(huì)輸出。因此,可以將發(fā)生“事件”這一動(dòng)態(tài)過(guò)程表示成階躍函數(shù)ε(x,y,t)的形式。
ei=(xi,yi,ti)?ε(x-xi,y-yi,t-ti)
(2)
那么,N個(gè)事件組成的事件流可以寫作
(3)
有效事件是由物體的運(yùn)動(dòng)或是光強(qiáng)度的變換真實(shí)產(chǎn)生的,一個(gè)有效事件通常不會(huì)單獨(dú)產(chǎn)生,而會(huì)激活周圍位置的像素。所以,有效事件的密度值通常是大于無(wú)效事件的密度。在時(shí)空鄰域U(x,y,t)內(nèi),輸入事件e=(x,y,t)的密度計(jì)算如下式(4)。如果事件密度小于,則該事件為無(wú)效事件并濾除;反之則為有效事件并保留。
(4)
傳統(tǒng)的計(jì)算機(jī)視覺(jué)算法通常用于處理同步圖像幀,而不能直接處理異步事件流數(shù)據(jù),因此文中采用LIF編碼,用于將異步事件流轉(zhuǎn)換為幀[14]。2006年Burkitt提出LIF神經(jīng)元模型[15],輸入信號(hào)直接影響神經(jīng)元的狀態(tài),只有當(dāng)膜電位(Membrane Potential,MP)上升到閾值電位時(shí)才會(huì)產(chǎn)生輸出脈沖信號(hào)。事件流與LIF神經(jīng)元模型相結(jié)合,可以很好的反應(yīng)出時(shí)間連續(xù)和觸發(fā)事件異步的特征,不局限于傳統(tǒng)圖像固定時(shí)刻的曝光。使用LIF編碼不僅可以將事件流轉(zhuǎn)化為事件幀,而且可以濾去隨機(jī)產(chǎn)生的噪聲。
首先,把每個(gè)圖像像素(x,y)看作是一個(gè)具有膜電位和觸發(fā)計(jì)數(shù)器n的神經(jīng)元,它的值受到輸入尖峰和時(shí)間的影響。每個(gè)輸入事件會(huì)導(dǎo)致像素(x,y)處的MP值階躍增加,同時(shí)相應(yīng)的MP值遵循固定衰減速率下降;一旦像素MP值超過(guò)設(shè)定閾值,則將其重置為0。然后,在一定時(shí)間間隔內(nèi),統(tǒng)計(jì)每個(gè)像素的膜電位MP超過(guò)閾值的次數(shù),通過(guò)式(5)進(jìn)行0~255像素值的歸一化處理。最后,采用閾值分割對(duì)像素值σ(n)二值化操作。在固定時(shí)間間隔T=20ms內(nèi),每個(gè)像素的觸發(fā)計(jì)數(shù)器n會(huì)被重新置零。
(5)
式中,為一定時(shí)間間隔內(nèi)像素點(diǎn)(x,y)上發(fā)生的事件總數(shù),σ(n)是事件幀的像素值,為了符合8位圖像將其范圍歸一化為0~255。
如圖3(a)是基于圖像幀的車道線圖像,(b)是基于AER的車道線事件幀,(c)是經(jīng)過(guò)濾波后LIF編碼得到的車道線事件幀。
圖3 不同方式得到的車道線圖像
原始的事件流數(shù)據(jù)經(jīng)過(guò)濾波等預(yù)處理方式將事件數(shù)量減少,從而到達(dá)去除大量噪聲的目的。由于單目相機(jī)安裝的位置與路面具有一定角度,使實(shí)際平行的車道線出現(xiàn)近大遠(yuǎn)小、遠(yuǎn)處相交于一點(diǎn)的問(wèn)題。因此,需要通過(guò)逆透視變換將相機(jī)拍攝視角如圖4(a)轉(zhuǎn)換成俯瞰視角如圖4(b),恢復(fù)車道線的平行關(guān)系。
圖4 逆透視變換前后車道的視角
(6)
圖5中(a)中綠線畫出的區(qū)域?yàn)檐嚨谰€區(qū)域,(b)為經(jīng)過(guò)逆透視變換得到的車道俯瞰圖,有助于后續(xù)的識(shí)別車道線位置。
圖5 車道線的俯瞰圖
4.2.1 定位車道線的搜索起點(diǎn)
首先,將逆透視變換得到的俯瞰圖沿著豎直方向一分為二,即劃分為左、右兩個(gè)搜索區(qū)域;然后,對(duì)俯瞰圖的左、右兩個(gè)區(qū)域在豎直方向上做非零像素點(diǎn)個(gè)數(shù)的直方圖統(tǒng)計(jì);最后,定位左、右兩個(gè)峰值分別作為左、右兩條車道線的搜索起點(diǎn)。如圖6為每列非零像素個(gè)數(shù)統(tǒng)計(jì)直方圖,橫坐標(biāo)為圖5中俯瞰圖對(duì)應(yīng)的像素橫坐標(biāo),縱坐標(biāo)是每一列非零像素的個(gè)數(shù)。
圖6 統(tǒng)計(jì)直方圖
4.2.2 B樣條曲線
B樣條曲線是一種通過(guò)特征點(diǎn)局部控制形狀的曲線,具有控制靈活、易于計(jì)算機(jī)編程等特點(diǎn),常用用于擬合直線及曲線。B樣條曲線的總方程為
(7)
式中qi是控制曲線的特征點(diǎn),F(xiàn)i,k(t)是k階B樣條基函數(shù)。文中,使用三次B樣條曲線對(duì)m+1個(gè)特征點(diǎn){q0,q1,q2,…,qm}進(jìn)行擬合,即可以擬合出m-1條分段曲線,每段曲線可寫為
gi(t)=g(xi(t),yi(t)),i=1,2,…,m-2
(8)
其中,xi(t),yi(t)分別為圖像坐標(biāo)系中像素的水平、垂直坐標(biāo)值的取值范圍為[0,1]。4個(gè)特征點(diǎn)擬合出一段分段曲線,根據(jù)B樣條曲線的基函數(shù),得到參數(shù)表達(dá)式
(9)
4.2.3 車道線的擬合
利用滑動(dòng)窗定位特征點(diǎn),并采用隨機(jī)抽樣一致法對(duì)擬合車道線進(jìn)行連續(xù)迭代,直到擬合誤差小于閾值或是達(dá)到最大迭代次數(shù)。具體步驟為:
1)將當(dāng)前搜尋的基點(diǎn)作為搜索起點(diǎn),并以當(dāng)前基點(diǎn)為中心,做網(wǎng)格化搜尋。同時(shí),統(tǒng)計(jì)每個(gè)搜索框區(qū)域內(nèi)非零像素的個(gè)數(shù),剔除非零像素個(gè)數(shù)小于一定閾值的搜索框。
2)計(jì)算每個(gè)搜索框內(nèi)非零像素坐標(biāo)的均值,作為特征點(diǎn)。
3)根據(jù)三次B樣本曲線模型,隨機(jī)選取若干個(gè)點(diǎn),生成一條初始曲線。
4)計(jì)算剩余特征點(diǎn)與初始曲線的相對(duì)距離,當(dāng)相對(duì)距離小于設(shè)定閾值時(shí)執(zhí)行5),否則執(zhí)行步驟3),直至達(dá)到最大迭代次數(shù)。
5)利用本次循環(huán)加入的特征點(diǎn)對(duì)三次曲線進(jìn)行修正,保存當(dāng)前最佳擬合的曲線,直到迭代上限。
如圖7(a)是滑動(dòng)窗對(duì)俯瞰圖的擬合圖,圖中綠色框?yàn)榛瑒?dòng)窗擬合結(jié)果,紅色、藍(lán)色像素為區(qū)分左、右車道。(b)是三次B樣條曲線擬合出的車道線。(c)是識(shí)別出的可行駛區(qū)域。
圖7 車道線的擬合圖
車道線跟蹤的策略:通過(guò)判斷左右兩條車道線是否平行,具體參考數(shù)據(jù)是前一幀的兩條擬合三次曲線的標(biāo)準(zhǔn)差,判別是否大于一定的閾值,若是在設(shè)定的閾值范圍內(nèi),把前五幀的平均擬合數(shù)據(jù)作為當(dāng)前幀的擬合結(jié)果輸出;若是前一幀兩條擬合車道線的標(biāo)準(zhǔn)差大于閾值范圍,則重新檢測(cè)下一幀圖像。實(shí)驗(yàn)中在判斷擬合車道線是否平行的基礎(chǔ)上,再增加一項(xiàng)判斷量,即為車輛行駛過(guò)程的偏移量d。車輛在正常行駛過(guò)程中,考慮到車輛會(huì)出現(xiàn)變道的情況,所以當(dāng)偏移量大于設(shè)定的閾值時(shí),將重新識(shí)別車道線,反之則啟動(dòng)跟蹤模塊。
車道跟蹤模塊,一是可以保證車輛在直線行駛過(guò)程中,減少不必要的計(jì)算以加快識(shí)別速度;二是可以減小路面字標(biāo)、樹陰、光照等影響,提高了算法的魯棒性,減少異常幀的干擾。圖8(a)是未加入跟蹤模塊的車道線識(shí)別的效果圖,(b)是加入跟蹤模塊的識(shí)別效果圖,綠色區(qū)域即為識(shí)別得到的可行駛區(qū)域。
圖8 未使用和使用跟蹤模塊的識(shí)別對(duì)比圖
為了驗(yàn)證研究方法的可用性和魯棒性,在理論研究的基礎(chǔ)上,在四種車輛行駛環(huán)境下進(jìn)行測(cè)試,并與其它兩種車道線識(shí)別方法[18,19]進(jìn)行對(duì)比。統(tǒng)計(jì)檢測(cè)率、平均每幀耗時(shí)作為評(píng)價(jià)指標(biāo),檢測(cè)率是正確識(shí)別到兩條車道的幀數(shù)占總幀數(shù)的百分比,平均每幀耗時(shí)是程序的總運(yùn)行時(shí)間除以總幀數(shù)。
PC硬件配置為Inter i7-8750H CPU3.6GHz NVIDIA GeForce GTX1060。
軟件運(yùn)行環(huán)境為Window 10,內(nèi)存為8.0GB,Python3.7和OpenCV4.0庫(kù)。事件流數(shù)據(jù)是由仿真器ESIM[16](Event Camera Simulator)模擬得到。該仿真器可以真實(shí)地反應(yīng)出事件流數(shù)據(jù)。ESIM基于ROS(Robot Operating System)軟件平臺(tái),緊密結(jié)合了渲染引擎和事件仿真器,這使仿真器可以根據(jù)視覺(jué)信號(hào)的動(dòng)態(tài)性自適應(yīng)地生成rosbag文件從而獲取事件幀。圖像幀轉(zhuǎn)換成事件幀的具體流程圖9如下,圖像幀為1280X720分辨率,模擬生成事件幀的分辨率仍保持不變。
圖9 圖像幀轉(zhuǎn)換成事件幀的流程圖
圖10為四種場(chǎng)景下車道線識(shí)別的效果圖,每一排分別是基于事件的車道線圖像、車道擬合的曲線、識(shí)別效果圖,從上到下代表四種場(chǎng)景分別是車輛一般行駛情況、路面有標(biāo)識(shí)、樹陰遮擋、夜晚行車環(huán)境。表1為四種場(chǎng)景對(duì)應(yīng)的總幀數(shù)、錯(cuò)誤幀數(shù)、準(zhǔn)確率和平均每幀運(yùn)行時(shí)間。
圖10 四種場(chǎng)景(a-d)下車道線識(shí)別的效果圖
表1 四種場(chǎng)景下車道線檢測(cè)率
上述實(shí)驗(yàn)結(jié)果圖10可看出,本文提出的車道線識(shí)別算法很大程度上消除了樹陰、路面字標(biāo)等影響,對(duì)光照不足的情況也有很好的識(shí)別效果。從表1可得,算法的平均檢測(cè)率為97.05%,平均每幀耗時(shí)18.24毫秒,可滿足實(shí)時(shí)性要求且可應(yīng)用于多種場(chǎng)景,在滿足高檢測(cè)率的同時(shí)保證了較高的運(yùn)行速率。
圖11為三種車道線識(shí)別方法對(duì)每種場(chǎng)景中的同一事件幀的對(duì)比圖,每一行分別為Hough[17]、Hough-Kalman[18]、和本文方法;每一列是四種場(chǎng)景,分別為一般行駛情況、路面有標(biāo)識(shí)、樹陰遮擋、夜晚行車環(huán)境。
圖11 三種車道線識(shí)別方法在四種場(chǎng)景(a-d)中的對(duì)比圖
對(duì)比圖11可以看出,多變的路面環(huán)境對(duì)Hough[17]方法的識(shí)別效果影響較大,Hough-Kalman[18]方法容易受到路面字標(biāo)、樹陰的影響,而研究提出的方法在很大程度上消除了這些影響。由表2可得,本研究中的車道線識(shí)別方法平均檢測(cè)率為97.04%,高于文獻(xiàn)[18,19]的94.64%、95.87%;并且每幀圖像的處理時(shí)間較快。
表2 不同方法對(duì)比的實(shí)驗(yàn)結(jié)果
針對(duì)目前傳統(tǒng)車道線識(shí)別方法容易受到車輛高速行駛、樹陰、光線亮暗等影響,本文提出一種地址事件數(shù)據(jù)流的快速識(shí)別車道線方法,在多種不同場(chǎng)景下進(jìn)行實(shí)驗(yàn)測(cè)試,表明效果良好。
1)針對(duì)AER感知模式中存在硬件電路和環(huán)境隨機(jī)產(chǎn)生的噪聲,采用濾波、LIF編碼的方式直接對(duì)事件流序列進(jìn)行預(yù)處理,可以濾除大量無(wú)效事件,提高車道線定位的準(zhǔn)確性。
2)相比傳統(tǒng)基于同步圖像幀的車道識(shí)別方法,研究中采用高時(shí)間分辨率的異步事件流,可避免兩個(gè)相鄰幀之間的信息丟失。加入了車道跟蹤模塊,減小異常幀的干擾并提高了識(shí)別的實(shí)時(shí)性。
3)經(jīng)過(guò)四種不同路況的實(shí)驗(yàn)場(chǎng)景驗(yàn)證,提出的車道線識(shí)別方法在19959幀動(dòng)態(tài)車道線測(cè)試中,平均檢測(cè)率為97.05%,平均每幀耗時(shí)18.24毫秒,可滿足實(shí)時(shí)性要求。