翁佳昊, 秦永法, 唐曉峰, 高 源, 張浩文, 關(guān) 棟
(揚州大學(xué)機械工程學(xué)院, 江蘇 揚州 225127)
自動駕駛車輛集人工智能、車輛技術(shù)等眾多技術(shù)于一體. 車道線檢測算法為車輛的自適應(yīng)巡航、車道線保持、變道超車等功能提供技術(shù)支持, 是自動駕駛技術(shù)的核心部分[1].車道線檢測算法按原理可分為基于車道線特征的檢測算法和基于深度學(xué)習(xí)的檢測算法兩大類.基于特征的車道線檢測算法參數(shù)量較少, 計算時間短, 響應(yīng)速度快, 對硬件要求較低.針對該類算法的準確率問題, Gong等[2]提出基于動態(tài)雙閾值的車道線檢測算法以減少噪聲, 提高特征提取的準確性; Xiong等[3]提出一種基于多攝像頭融合的車道線檢測算法,增強了算法的可靠性; Shen等[4]為解決傳統(tǒng)算法在夜間、雨天等復(fù)雜環(huán)境下準確率低的問題, 提出一種基于動態(tài)感興趣區(qū)域和螢火蟲算法的車道線檢測方法; Yam-Uicab等[5]提出一種適用于圖形處理器(graphics processing unit, GPU)并行計算的快速車道線檢測算法, 從算法和硬件層面提高了車道線檢測算法的響應(yīng)速度; Pansotra等[6]提出一種基于模糊均值控制的車道線檢測算法,提高了該類算法的魯棒性; 鄧元望等[7]提出一種基于DBSCAN二次聚類的車道線檢測算法, 提高了聚類算法的準確率; 王其東等[8]提出一種基于投影統(tǒng)計量和雙曲線模型的車道線識別算法, 提高了車道線檢測的精度和實時性能.上述基于特征的車道線檢測算法大部分通過Hough變換來實現(xiàn)車道線特征提取任務(wù),Hough變換對直線的檢測準確率較高,但無法區(qū)分車道線和道路背景, 故Hough變換前須選定圖像感興趣區(qū)域才能分割車道線及背景.感興趣區(qū)域的劃分直接影響了車道線檢測的效果,且Hough變換對路面噪聲較為敏感,檢測效果受光照變化影響較大.對此,本文提出一種適用于結(jié)構(gòu)化道路場景下的基于路徑搜索的車道線檢測算法, 該算法無須選定感興趣區(qū)域,受路面噪聲影響較小,能夠檢測Hough變換無法處理的大曲率車道線檢測.
本文以校園場景內(nèi)的車道線為研究對象, 提出一種基于路徑搜索的車道線檢測算法, 算法流程見圖1.首先對輸入圖像進行預(yù)處理,包括圖像灰度化及濾波等操作,過濾部分道路噪聲;然后用邊緣提取算法根據(jù)梯度變化情況提取圖像邊緣,得到車道線的邊緣信息,之后用基于路徑搜索的車道線元素點檢測算法提取左右兩側(cè)車道線;最后對所得車道線元素點使用多項式擬合和最小二乘法擬合得到車道線.相比于用Hough變換提取車道線的方法,該算法無須提取感興趣區(qū)域,增強了算法魯棒性,同時解決了Hough變化只能檢測直線的問題.基于路徑搜索的車道線檢測算法適用于大曲率的車道線檢測,能夠?qū)崿F(xiàn)彎道檢測.
圖1 車道線檢測算法流程Fig.1 Flow of lane detection algorithm
梯度和顏色是圖像的兩個重要信息.但顏色信息受光照等因素的影響較大, 用顏色信息來進行特征提取的魯棒性較差.梯度邊緣信息能直接反映物體邊緣, 不受光照條件的影響, 可選用圖像梯度信息作為特征提取依據(jù).灰度化處理將RGB三通道的顏色信息轉(zhuǎn)化為單通道的灰度圖像信息, 由于維度的降低, 運算速度大幅提高.圖像灰度f(x,y)=0.299×R+0.587×G+0.114×B, 式中f(x,y)表示點(x,y)處的灰度值,R、G、B分別代表紅、綠、藍3個顏色通道的取值.
圖像邊緣提取是通過計算圖像梯度方向獲取梯度變化信息, 從而得到物體邊緣信息的算法[9], 主要分為以下四個步驟.
圖2 橫向(a)和縱向(b)的sobel算子Fig.2 Sobel in horizontal direction(a) and vertical direction(b)
3) 非極大值抑制[11].在獲得圖像的梯度信息后,為去除非邊緣的點,須判斷像素點是否為局部梯度最大值.若是,則保留該點;否則將該點的像素值設(shè)置為0.
4) 雙閾值檢測.經(jīng)非極大值抑制獲得的圖像邊緣,會存在部分虛邊緣,這些虛邊緣可能是真實的邊緣信息,也可能由噪聲產(chǎn)生, 可以通過Canny邊緣檢測算法的雙閾值檢測進行剔除.
為了提取車道線邊緣,傳統(tǒng)算法根據(jù)車道線的線性特征, 使用Hough變換提取邊緣信息中的直線部分,須選定感興趣區(qū)域過濾背景干擾,魯棒性較差,且無法處理大曲率車道線.對此,本文提出一種基于路徑搜索的車道線元素點檢測算法.由于車道線邊緣點相連,確定車道線起始點后不斷搜索相鄰點,直至沒有相鄰點時停止,就能完成車道線上所有邊緣點的搜索.算法分為以下兩個步驟.
首先, 確定起始點.以圖像中線為分界線, 從圖像中線最下方分別向左右兩側(cè)搜尋兩邊的車道線起始點.設(shè)圖像大小為1 280×1 024, 圖像左上角坐標為(0,0), 右下角坐標為(1 280, 1 024).定義A(i,j)為圖像上坐標為(i,j)的點的像素值.以左側(cè)車道線為例, 算法偽代碼如下:
1) 設(shè)初始值i=1 280/2,j=1 024.
2) IfA(i,j)!=0: 執(zhí)行步驟5; else: 執(zhí)行步驟3.
3) Ifi!=0:i=i-1; else:i=1 280/2,j=j-1.
4) IfA(i,j)!=0: 執(zhí)行步驟5; else: 執(zhí)行步驟3.
5) (i,j)∈P, 點(i,j)為左側(cè)起始點, 結(jié)束算法.
其次, 生成路徑.在確定路徑起始點后, 搜索起始點的相鄰點, 將搜索到的相鄰點加入集合P, 直至沒有相鄰點后終止算法.最終集合P內(nèi)的點即為車道線點.以左側(cè)車道線為例, 由于車道線向右延伸, 因此只須搜尋右側(cè)鄰近點, 可以提高算法的執(zhí)行速度和提取精度.設(shè)確定的起始點為(i,j), 集合Q為待搜索點集合.由于路面不平整, 圖像上可能存在選取起始點的干擾點.若選取起始點后生成的路徑點小于20個, 則認為該點為干擾點,起始點須重新選?。惴▊未a如下:
1) 取點(i,j)∈Q, 搜索相鄰點.
2) IfA(i+1,j)!=0:(i+1,j)∈P,Q.
3) IfA(i,j-1)!=0:(i,j-1)∈P,Q.
4) IfA(i+1,j-1)!=0:(i+1,j-1)∈P,Q.
5) (i,j)臨近點搜索完成, 在集合Q中去除(i,j).
6) IfQ=?, 執(zhí)行步驟7; else: 執(zhí)行步驟1.
7) 集合P為包含路徑點集, 結(jié)束算法.
8) If所得集合P中的點少于20個: 重新選取起始點.
對于校園場景下的彎道線檢測,由于車道線存在不連續(xù)的問題,為保證所得車道線特征點的擬合效果,在選取起始點生成路徑后,若所得特征點數(shù)量小于200,則從路徑末端再執(zhí)行一次算法,提取兩段彎道車道線,即可保證擬合曲線的精度.
將相機搭載在起亞線控改裝車輛上, 輸入車道線檢測及相應(yīng)的控制算法, 在某大學(xué)校園路段測試車道線檢測算法在車道線保持任務(wù)中的響應(yīng)度及準確性.將采集到的圖像數(shù)據(jù)進行離線處理, 并將測試效果與基于Hough變換的車道線檢測算法進行對比.
測試使用的操作系統(tǒng)為Ubuntu18.04, CPU為Inter(R) Core(TM)i9-9300, GPU為NVIDIA GeForce GTX 2080Ti.實驗平臺為圖3所示的起亞線控改裝車輛.
圖3 實驗平臺Fig.3 Experimental platform
分別用基于Hough變換的車道線檢測算法和基于路徑搜索的車道線檢測算法對采集的校園道路場景圖像進行檢測,共500張車道圖像,其中直線車道420張,彎道80張.經(jīng)測試,基于Hough變換的車道線檢測算法和基于路徑搜索的車道線檢測算法在檢測直道時的準確率分別為88.6%和91.2%.說明基于路徑搜索的車道線檢測算法在檢測直道時的準確率更高.此外,基于Hough變換的車道線檢測算法只能檢測直道線,而基于路徑搜索的車道線檢測算法對彎道線檢測同樣適用.經(jīng)測試,其彎道線檢測準確率為86.2%,檢測效果見圖4.如圖4所示,基于路徑搜索的車道線檢測算法能夠有效檢測大曲率的彎道車道線.該算法與控制算法相結(jié)合能實現(xiàn)車輛的車道線保持功能,滿足響應(yīng)度與準確性的要求.
圖4 基于路徑搜索的檢測算法對彎道線的檢測效果Fig.4 Detection effect of curve based on path search detection algorithm
受邊緣提取算法選取的上下閾值的影響,圖像可能出現(xiàn)噪聲點,從而影響車道線檢測的最終效果.圖5為不同噪聲點影響下的車道線檢測算法效果對比.如圖5(a)所示,邊緣提取圖像在閾值的影響下出現(xiàn)不同程度的噪聲點.基于路徑搜索的車道線檢測算法和基于Hough變換的車道線檢測算法在路面噪聲較小的情況下均能有效檢測車道線;但當路面噪聲點較多時,基于Hough變換的車道線檢測算法檢測效果較差,而基于路徑搜索的車道線檢測算法仍具有良好的檢測效果.由此可見,基于路徑搜索的車道線檢測算法具有較強的抗干擾能力,受噪聲點的影響較小,魯棒性較好.
圖5 噪聲點較少(上圖)和較多(下圖)情況下的車道線檢測算法效果對比Fig.5 Effect comparison of lane detection algorithms in the case of less noise points (above) and more noise points (below)