王旭宸,盧欣辰,張恒勝,肖亞敏,解 梅
(電子科技大學(xué)信息與通信工程學(xué)院 成都 611731)
隨著人工智能的大力發(fā)展,無人駕駛技術(shù)應(yīng)運而生,在國家和各企業(yè)的大力投入下取得了一系列重大成果。從谷歌將“Waymo”[1](Alphabet旗下谷歌的無人駕駛汽車項目)宣布獨立立項到百度將“阿波羅”計劃[2](百度開放自動駕駛平臺計劃)成功開放,無人駕駛技術(shù)獲得越來越多的關(guān)注和熱議,相關(guān)領(lǐng)域也將對于無人駕駛技術(shù)的研究提上日程。
作為無人駕駛技術(shù)的基礎(chǔ)工作,車道線檢測技術(shù)的優(yōu)劣關(guān)乎無人駕駛的成敗。車道線檢測的應(yīng)用涵蓋了無人駕駛的各個方面,包括自動泊車、變道檢測、碰撞報警等。車道線檢測是基于道路圖像的特征點提取采樣后,根據(jù)采樣點的密集程度以及采樣點之間的相關(guān)性進行線段提取,并由此確定車道線具體位置。由于道路圖像的變化是實時的,所以對車道線檢測的實時性會有較高的要求,不同算法的計算復(fù)雜度也因此得以體現(xiàn)。
針對車道線檢測的道路數(shù)學(xué)模型有很多,如三次B樣條[3-4]、雙曲線[5-6]、拋物線[7-8]以及回旋曲線[9]等。然而在一般的行車過程中,通常以直線道路居多,所以直線檢測算法便成為了車道線檢測的重點研究方向。
基于OPENCV的車道線檢測技術(shù)在PC機上無論準確率,還是檢測速度都可以達到很好的效果。但若把算法移植到非x86的嵌入式硬件平臺,將會造成檢測速度劇烈下降,以致不能達到實時(20 幀/s以上)的要求。其原因主要是大多數(shù)車道線檢測技術(shù)都采用OPENCV中的霍夫變換[10]來進行直線檢測,而這種算法的實時性有待加強。
研究發(fā)現(xiàn)在平行坐標系中檢測直線的準確率也很理想,且該算法可以大幅度降低算法的復(fù)雜度,加快算法的速度。基于此,將平行坐標系下檢測直線的方法應(yīng)用于車道線檢測中。在實驗中,以霍夫變換下的直線檢測算法作為參照,對比平行坐標系下的直線檢測算法,將二者的準確率和時效性做出對比分析。
車道線檢測技術(shù)的關(guān)鍵性能指標是其準確率和時效性,而時效性的改進要在保證準確率的前提下進行。對道路圖像進行預(yù)處理,將大幅縮減算法的搜索范圍,降低圖片信息量,對于提升算法的準確率和速度都將做出很大的貢獻。而邊緣檢測作為線段檢測的先期工作,進一步縮小了直線檢測算法的搜索范圍,其精確度也決定了檢測效果的優(yōu)劣。
車載攝像頭所采集到的道路圖像如圖1所示,常常會包含很多干擾信息,諸如天空、綠化帶、護欄、建筑物等。
圖1 車載攝像機采集的道路圖像
通常采用圖像分塊的方法,將原始圖片切割,以此確定感興趣區(qū)域,以利于減少車道線搜索的范圍,同時降低圖像的信息量也利于提升處理速度。圖2即為分塊后的圖像,略去了天空、路燈、部分綠化帶等干擾因素。
圖2 分塊后的道路圖像
我國的車道線有黃色和白色兩種,針對白色車道線,將利用其灰度信息做后續(xù)處理,而黃色車道線在很多情況下并不能直接轉(zhuǎn)化為灰度化的車道。
圖3 二值化的道路圖像
在這種情況下,對圖像進行二值化處理[11],將圖像像素點的灰度值設(shè)置為0或255,使整個圖像呈現(xiàn)出明顯的黑白效果。二值化圖像會將圖像的信息量減少,卻能將圖像邊沿凸顯出來。如圖3所示,將黃色和白色車道不加區(qū)別的統(tǒng)一成二值化的車道信息,然后進行接下來的邊緣檢測。
邊緣檢測主要應(yīng)用于檢測圖像的邊沿部分,通常是不同的兩部分區(qū)域交叉的邊界。當圖像的邊界值出現(xiàn)躍變的時候予以標記,通常以離散點的形式來表示,并將道路的點標記圖像作為直線檢測算法的輸入。在各種邊緣檢測算子中,canny算子[12-13]的檢測效果較好,先使用雙閾值判定邊緣,用高閾值確定圖像邊緣,對于高閾值確定的、不能閉合的圖像邊緣,使用低閾值將其閉合,即在高閾值確定的邊界鄰域選取滿足低閾值的點,如此反復(fù),直至邊界完全閉合。
圖4 邊緣檢測的道路圖像
邊緣檢測后的圖像,保留了車道線的大部分信息且降低了圖像所含的信息量,接下來將運用不同算法將車道線找出并加以標記。
霍夫變換是一種常用的圖像特征提取方法,通過投票機制檢測具有某種特定形狀的圖像。這個過程在一個參數(shù)空間中通過累積計算結(jié)果的局部最大值,得到特定形狀的參數(shù),以此確定圖形,并作為霍夫變換的輸出。霍夫變換即運用兩坐標空間之間的變換,將某個坐標空間上具有相同形狀的曲線或者直線映射到另一坐標空間的某個點形成峰值,從而把形狀檢測問題轉(zhuǎn)化為峰值的統(tǒng)計問題。
霍夫直線檢測算法[14]是基于霍夫變換提出的一種圖形提取算法。將笛卡爾坐標系下的直線中不同特征點標記在x-y坐標系中,如圖5所示。依據(jù)直線方程式:
將直線上的各個點映射到k-b坐標下,原坐標系下的每個點對應(yīng)新坐標系中的一條直線,此時的直線方程變?yōu)椋?/p>
圖5中各點映射到新坐標后,得到一簇直線,如圖6所示。這簇直線的交點,即為原直線的參數(shù)k、b。
圖5x-y直角坐標系下的直線
圖6k-b直角坐標系下的直線映射
霍夫直線檢測算法將直線檢測轉(zhuǎn)變?yōu)閰?shù)的估計,即參數(shù)點坐標的聚類問題,而對于直線形狀的車道線,這種方法很實用。即便檢測的對象變?yōu)閺澋老碌那€形狀,也可等效為若干直線的拼接后,再進行霍夫直線檢測。
將邊緣檢測后的圖像,通過霍夫變換把其中邊緣標記點在x-y坐標系下的坐標映射到k-b坐標系下。此時散亂的直線簇出現(xiàn)了幾個交點,如圖7所示,這些交點所對應(yīng)的坐標,即為在x-y直角坐標系下,檢測到的對應(yīng)位置的直線參數(shù)。
將圖7所示的直線簇中各個交點坐標對應(yīng)的直線標記在圖像中,即可得到從圖像中檢測到的幾條直線。由于圖像中的離散點并不全都是車道線的邊沿,為去除誤檢的線段,將檢測到的一系列直線所經(jīng)過的像素點值進行累加,按其像素點值進行排序,取前N個,像素值大于一定閾值的點保留,借此消除一定的噪聲。經(jīng)過篩選后,檢測到的車道線如圖8所示。
圖7 道路邊緣圖像在k-b直角坐標系下的表示
圖8 霍夫變換檢測到的車道線
平行坐標系是一種直觀的坐標表示方法,可以將多元數(shù)據(jù)和高維幾何圖像可視化[15]。對n維空間上的點X(x1,x2,…,xn),用n條等距平行線作為坐標軸,分別將xi的值標記在第i根軸上對應(yīng)地連接起來,形成一條折線,便將多維的數(shù)據(jù)表示在了平行坐標系中。如圖9所示,為一個四維空間下的點集。
圖9 四維空間點集在平行坐標系上的表示
對于道路這類二維圖像,利用笛卡爾坐標與平行坐標的關(guān)系,將直線表示在平行坐標系下,即把直線上各點映射到平行坐標系中。
下面介紹平行坐標系檢測直線的原理。設(shè)平行坐標系中-y軸與x軸之間的區(qū)域為T空間,x軸與y軸間的區(qū)域為S空間。首先在笛卡爾坐標系中設(shè)置一條直線:l ykxb=+(可表示除與y軸平行的任何直線),其上任一點可表示為(x,kx+b)。假設(shè)直線上3點分別為A(x1,kx1+b)、B(x2,kx2+b)和C(x3,kx3+b)。將平行坐標系表示在笛卡爾坐標系下,平行坐標系中的x軸位于笛卡爾坐標系下的y軸位置,平行坐標系中坐標軸間的寬度為d。
當斜率大于0時,A、B、C將在T空間中兩兩產(chǎn)生交點,得到的直線l1、l2、l3為:
計算得到l1和l2的交點為:經(jīng)驗證,該點也在直線l3上,故3條直線交于一點。
同理,當斜率小于0時,A、B、C3點將在S空間中兩兩產(chǎn)生交點,得到的直線l1、l2、l3為:
計算得到l1和l2的交點為:經(jīng)驗證,該點也在直線l3上,故3條直線交于一點。
由此可知,在直角坐標系中的一條直線對應(yīng)平行坐標系中的一個點,而斜率正負不同的直線在平行坐標系中處于不同空間。斜率大于0的直線交點在T空間中;斜率小于0的直線,交點在S空間中。這為平行坐標系檢測直線提供了理論基礎(chǔ)。以斜率小于0為例,某條直線的平行坐標表示,如圖10所示。
圖10 二維空間直線在平行坐標系下的表示
設(shè)一條直線方程為y=kx+b,在平行坐標系中的表示點為(u,v),代入上述式(3)、式(4)得出在T空間中的對應(yīng)關(guān)系為:
在S空間中的對應(yīng)關(guān)系為:
式中,d表示坐標軸之間的距離。
將利用平行坐標系檢測直線的原理應(yīng)用到車道線檢測之中,把邊緣檢測得到的圖像中各個邊緣點表示在平行坐標系中,如圖11所示。其中折線的交點即代表檢測到的某條直線的參數(shù)坐標。
圖11 道路邊緣圖像在平行坐標系下的表示
因為車道線大部分為一側(cè)為正斜率,一側(cè)為負斜率,故在平行坐標系T區(qū)域和S區(qū)域分別檢測兩側(cè)車道線。在S區(qū)域和T區(qū)域分別對連線經(jīng)過的像素點值進行累加,取前N個像素點值最大的點,對這些點進行去干擾處理。將去干擾后得到點的像素值取均值,若均值大于或等于像素閾值,則對去干擾后得到點的坐標值取平均,該坐標值的點即為對應(yīng)檢測區(qū)域中檢測到的直車道線;如平均值小于像素閾值,則認為所在區(qū)域沒有檢測出車道線。車道線檢測效果,如圖12所示。
圖12 基于平行坐標系的直線檢測方法得到的車道線
車道線檢測的首要目標是要正確檢測出車道線,在準確率足夠高的情況下保證實時性,能夠盡快的識別跟蹤道路圖像。通過對兩種算法的分析,可以確定兩種直線檢測算法對于車道線檢測都是可行的。在仿真實驗中,將再對它們的準確率和實時性進行對比分析。
車道線檢測的目的是為了輔助駕駛,在進行檢測的過程中,采用人眼進行識別,大致不偏離正確車道即可,但這種方法受主觀因素影響很大。
本文采用人工標定的方法判別是否準確。首先標注兩側(cè)車道線的基準線l',每一根車道線標定兩點,盡可能處于車道線的中心且兩點間距離盡可能遠,以確定車道線的位置,l'與圖像底部交點x'。標定車道寬度w,在道路圖像中選取較大的w。在標定過程中,檢測直線和圖像底部交點x與基準線和圖像底部交點x',滿足|x-x′|≤w,且檢測直線與基準線滿足|θ(l-l′)|≤10°,則認為檢測到的車道線是正確的。在不同場景下,計算兩種算法的準確率,如表1所示。兩種算法在不同場景下的準確率差別不明顯。
表1 準確率對比
表2所示為兩種算法的實時性,以幀率(f/s)為單位進行對比。雖然二者都能滿足實時性需求(幀率≥20),但是基于平行坐標系檢測直線算法的檢測速率顯著高于霍夫直線檢測算法。
表2 算法速度對比
在本文中,兩種算法除了在進行車道線檢測部分采用不同直線檢測方法外,其他步驟均相同。但是基于平行坐標系的車道線檢測算法明顯加快,究其原因是該算法在進行坐標映射時,不需要重新進行計算,而基于霍夫變換的車道線檢測算法,需要逐點計算,影響了算法的效率。
本文將基于平行坐標系的直線檢測方法應(yīng)用于車道線檢測,并將基于霍夫變換的直線檢測方法和基于平行坐標系的直線檢測方法進行對比。通過仿真驗證兩種檢測方法的準確性和時效性,實驗證明,基于平行坐標系的直線檢測方法具有更高效的特性,能很好地滿足車道線檢測的實時性需求。
現(xiàn)有的車道線檢測方法較龐雜,很少有能適用于多種路況下的檢測算法。近年來,隨著深度學(xué)習(xí)算法的快速發(fā)展,為智能交通帶來了新的希望,未來的車道線檢測技術(shù)將得到更快的發(fā)展,以達到無人駕駛的需求。
[1]ETHERINGTON D, KOLODNY L. Google’s self-driving car unit becomes Waymo[EB/OL]. [2016-12-13]. https://techcrunch.com/2016/12/13/googles-self-driving-car-unitspins-out-as-waymo.
[2]李根.百度宣布開放自動駕駛平臺,取名“阿波羅計劃”[EB/OL]. [2017-04-19]. http://tech.sina.com.cn/it/2017-04-19/doc-ifyeimqc4772869.shtml.LI Gen. The forthcoming of ‘Appollo’, an autopilot platform,has announced by Baidu. [EB/OL]. [2017-04-19]. http://tech.sina.com.cn/it/2017-04-19/doc-ifyeimqc4772869.shtml.
[3]WANG Y, TEOH E K, SHEN D. Lane detection and tracking using B-Snake[J]. Image & Vision Computing,2004, 22(4): 269-280.
[4]LI S, XU J, WEI W, et al. Curve lane detection based on the binary particle swarm optimization[C]//Control and Decision Conference. Melboume: IEEE, 2017.
[5]CHEN Q, WANG H. A real-time lane detection algorithm based on a hyperbola-pair model[C]//Intelligent Vehicles Symposium. Tokyo: IEEE, 2006: 510-515.
[6]LI X, FANG X, WANG C, et al. Lane detection and tracking using a parallel-snake approach[J]. Journal of Intelligent &Robotic Systems, 2015, 77(3-4): 597-609.
[7]MCCALL J C, TRIVEDI M M. Video-based lane estimation and tracking for driver assistance: survey, system, and evaluation[J]. IEEE Transactions on Intelligent Transportation Systems, 2006, 7(1): 20-37.
[8]WANG X, WANG Z, ZHAO L. Lane detection and fitting using the artificial fish swarm algorithm (AFSA) based on a parabolic model[C]//The 9th International Conference on Applied Energy. Cardiff: [s.n.], 2017: 381-388.
[9]EIDEHALL A, GUSTAFSSON F. Obtaining reference road geometry parameters from recorded sensor data[C]//Intelligent Vehicles Symposium. Tokyo: IEEE, 2006: 256-260.
[10]DUDA R, HART P. Using the Hough transforms to detect lines and curves in pictures[C]//Commun ACM. California,USA: ACM, 1972: 11-15.
[11]王強, 馬利莊. 圖像二值化時圖像特征的保留[J]. 計算機輔助設(shè)計與圖形學(xué)學(xué)報, 2000, 12(10): 746-750.WANG Qiang, MA Li-zhuang. Reservation of features of binary images[J]. J Comput-Aid Desig Comput Graph,2000, 12(10): 746-750.
[12]陳強, 朱立新, 夏德深. 結(jié)合Canny算子的圖像二值化[J]. 計算機輔助設(shè)計與圖形學(xué)學(xué)報, 2005, 17(6):1302-1306.CHEN Qiang, ZHU Li-xin, XIA De-shen. Using the canny operator in the binary processing of images[J]. J Comput-Aid Desig Comput Graph, 2005, 17(6): 1302-1306.
[13]ZHAO M, LIU H, WAN Y. An improved Canny edge detection algorithm based on DCT[C]//IEEE International Conference on Progress in Informatics and Computing.Shanghai: IEEE, 2016: 234-237.
[14]KANG W J, DING X M, CUI J W, et al. Fast straight-line extraction algorithm based on improved Hough transform[J]. Opto-Electronic Engineering, 2007, 34(3):105-108.
[15]王紹敏, 孫曉靜, 王克峰, 等. 應(yīng)用平行坐標系進行可視化優(yōu)化設(shè)計[J]. 計算機與應(yīng)用化學(xué), 2004, 21(1):11-15.WANG Shao-min, SUN Xiao-jing, WANG Ke-feng, et al.Visual optimization design using parallel coordinate system[J]. Computer and Applied Chemistry, 2004, 21(1):11-15.