鄧元望,蒲宏韜,華鑫斌,孫彪
(湖南大學 機械與運載工程學院,湖南 長沙 410082)
車道線檢測是輔助駕駛感知系統最重要的功能之一,提高車道線檢測的準確性,將有利于保障智能汽車的安全行駛和駕駛員的人身安全[1].
目前,常見的車道線檢測算法主要有基于特征檢測、基于模型的檢測和基于深度學習的檢測.基于特征的檢測主要的特征包括了邊緣、紋理特征和顏色特征等[2-3].王家恩等提出了基于車道線寬度和邊緣點數量統計的邊緣檢測算法,能有效抑制噪聲的產生[4].Chen 等通過Sobel 算子進行邊緣檢測,并將圖片轉換到HSV 空間,進行顏色特征的車道線特征提取[5].文獻[6]通過結合遠視場LSD 直線檢測和遠視場的雙曲線模型匹配對車道線進行擬合,取得了較好的效果.Wang 等利用密度聚類DBSCAN 算法動態確定鄰域參數實現對車道線的提取,并使用拋物線模型對車道線進行擬合[7].Ajaykumar 等使用K-means 聚類算法對概率霍夫變換后的線段進行聚類,并利用輪廓系數確定最佳的聚類簇的數目,由于K-means 算法的局限性,聚類效果容易受到影響[8].He 等提出了基于點云卷積神經網絡的車道線檢測算法,在光照變化等復雜情況下,大大提高了檢測精度[9].Neven 等將車道線檢測問題轉化為實例分割問題,利用LaneNet 網絡獲取每條車道線的像素級分割,從而提高了檢測精度[10].
在車道線的跟蹤領域,常見的跟蹤算法可以分為基于模型參數的跟蹤和基于感興趣區域的跟蹤.Lee 等通過上一幀圖像車道線的位置信息,動態確定感興趣區域,在此區域內對車道線進行追蹤,具有很好的實時性[11].Wu 等利用卡爾曼濾波器對直線兩端坐標參數進行跟蹤,從而實現了對車道線的跟蹤[12].
針對相關文獻存在的魯棒性、準確性與實時性無法有效兼顧的問題,為了在滿足實時性的同時,更準確、全面地提取車道線信息,本文提出基于RCDBSCAN 的車道線檢測跟蹤與類型識別算法.
本文在圖像預處理部分,通過逆透視變換和對應點提取車道線感興趣區域(Region of Interest,ROI),將Sobel 算子邊緣檢測結果和基于顏色空間HSL 和Lab 的最大類間方差法(OTSU)二值化結果進行數據融合,提取出車道線的邊緣特征點;采用RC-DBSCAN 算法對特征點進行聚類;通過圖像直方圖峰值位置與簇點的質心位置排除路面干擾,并使用最小二乘法對車道線進行擬合;同時通過簇是否二次聚類和Lab 顏色空間中的簇點的顏色值對車道線類別進行判定;最后通過卡爾曼濾波對車道線進行跟蹤,并劃定可信區域對卡爾曼濾波的追蹤結果進行判定和優化.總體算法流程如圖1 所示.

圖1 總體算法流程Fig.1 Overall algorithm flow chart
攝像頭采集到的圖片可分為三個區域:天空背景區域,車道線區域,車道線外背景區域.為了排除背景干擾,根據R、G、B 通道的值進行灰度化處理,灰度Gray 的計算式如下:

根據自車道范圍,劃定圖片的感興趣區域,本文選取圖片下方2/5 左右的區域中的自車道線附近區域作為感興趣區域.對圖像進行基于對應點的逆透視變換處理[13],得到車道線的鳥瞰圖.圖2(a)為攝像頭采集的某車道線原圖,(b)為ROI 區域的逆透視變換圖.

圖2 圖像的初處理Fig.2 Initial processing of image
利用Sobel 算子通過模板,在x(水平),y(垂直)方向對圖片進行卷積操作,通過對遍歷點進行領域處理,達到提取邊緣特征的效果,見圖3.
設圖像卷積中心點的坐標為(x,y),使用3×3的模板近似偏導數的計算式如下:

考慮到車道線圖像中存在較多水平方向的灰度階躍變化,故可在水平方向與垂直方向的卷積的加權處理中,增大水平方向卷積的權重,即增大gx的權重,可以更加有效的檢測出車道線信息.經過大量直道、彎道圖像的測試,本文最終設定gx,gy的權重分別為:70%和30%,這樣得到的車道線邊緣信息更與實際符合.圖4 為Sobel 算子在不同路段的提取效果.

圖4 Sobel 算子邊緣提取圖Fig.4 Sobel operator edge extraction graph
為了提高算法的魯棒性,考慮到HSL 顏色空間中L 分量對白色像素點比較敏感,Lab 顏色空間[14]的b 通道對與黃色像素點十分敏感,本節采用HSL,Lab顏色空間對特征點進行提取[15].
圖5(a)逆透視變換圖包含了黃色車道線(左側),白色車道線(右側).由于HSL 顏色空間的L 分量對白色像素點比較敏感.本節在L 通道上通過OTSU 二值化處理,如圖5(d)所示;在Lab 顏色空間中,b 通道對與黃色像素點十分敏感,同樣利用OTSU 算法在b 通道上進行二值化處理,如圖5(e)所示.為了提高算法的實時性,本文還設定了b 通道中的灰度值閾值Tb(Tb=180),若此通道下圖片像素最大灰度值bmax小于Tb,可認為圖中沒有黃色車道線,跳過此步驟.
最后將兩個通道上得到的二值圖進行“或”運算,得到基于顏色空間的特征點提取結果.將其與邊緣提取的結果進行融合,最后對結果二值圖進行形態學膨脹處理,如圖5(f),從而可以得到更加準確的提取結果.使用融合的方式,只提取車道線邊緣附近的像素點,減少了非必要的特征點數量,能提高聚類算法的實時性.

圖5 顏色模型下的車道線提取Fig.5 Lane extraction based on color model
針對實際道路車道線可能為虛線或缺失的特征,本文結合DBSCAN 聚類結果的投影質心距離與車道線分布特征,提出了基于RC-DBSCAN 的特征點聚類算法.下面給出其算法流程:
系統輸入大小是1 920×1 080 的車道線二值圖像,樣本點集為:

設領域的閾值為Ep,劃分為簇的最小點數為Mp,對任意點p 的鄰域Np的定義和核心點條件進行了定義:

根據上述條件,進行DBSCAN 聚類[16,17],如圖6所示.將DBSCAN 聚類后得到的n 個簇投影到圖片坐標系x 軸.設第n 個簇的簇點數為numn,通過公式(7)計算質心Cn,可以得到n 個位于x 軸上的質心集合centroids,如公式(8):

設定臨界質心距離的閾值Dt,分別計算centroids 中不同簇的質心間的歐式距離.如果簇i,j 滿足式(9),則將簇i,j 合并為一個簇:

否則仍然劃為不同的簇.如圖6 所示,r1與r2簇的投影質心距離D12小于設定的閾值,故被合并為一個簇;而r3簇到r1與r2的距離都大于了閾值,故被認為是單獨的簇:

圖6 二次聚類圖解Fig.6 Reclustering diagram
對于單幀車道線二值圖像,RC-DBSCAN 算法的流程圖如圖7 所示:

圖7 RC-DBSCAN 算法流程圖Fig.7 Flow chart of RC-DBSCAN algorithm
相比傳統特征點處理算法,DBSCAN 聚類算法能在一定程度上降噪,更好的排除干擾特征點.利用車道線縱向分布的已知信息,根據DBSCAN 聚類的結果的投影質心進行二次聚類,能有效合并虛線或缺失車道線,避免了動態調整聚類的鄰域參數,提高了算法的實時性.
為了使不同的簇被分到不同的類,通過預實驗,本文設置鄰域參數:Ep=10,Mp=10,Dt=50.為了驗證改進后的聚類算法的聚類效果,本文進行了大量的實驗.圖8(a)表示了有虛線車道線時的ROI 圖像.采用DBSCAN 算法進行聚類后,得到的效果圖如圖8(b)所示,左側虛線車道線被聚類為多個類別;而采用RC-DBSCAN 后,如圖8(c)所示,左側虛線車道線被正確的聚類為一類.

圖8 RC-DBSCAN 與DBSCAN 的檢測效果對比Fig.8 Comparison of detection effect between RC-DBSCAN and DBSCAN
圖8(d)為有交通標志干擾的場景.采用DBSCAN 算法聚類后的結果如圖8(e)所示,箭頭交通標志能夠被較好的識別分離出來,但右側的虛線車道線被錯誤的聚類為多個類別;采用RC-DBSCAN后,虛實車道線以及交通標志都被正確的聚類,如圖8(f)所示.
由于需要將簇向二值圖的x 軸投影并計算質心,故算法的誤差主要來源于二值圖的車道線分布情況.因此本算法要求二值圖中的車道線之間盡量平行且縱向分布,有助于減小誤差.
對于自車道識別,為了有效的提取出左右兩條車道線,需要去除路間的交通標志干擾.圖片直方圖的左右峰值處可認為是車道線的大致位置[18],取質心距離Lmax,Rmax最小的簇分別為左右車道線的簇,公式(10)、(11)中L 與R 對應的i 分別為左右車道線的簇序號.

對于圖8(d),其直方圖如圖9(a)所示,其中橫軸為橫向的像素點坐標,縱軸為二值圖中此橫軸對應的白色像素點個數,其左右峰值的橫坐標分別為76,220,取投影后的質心點距離聚類峰值最近的簇作為左右車道線的簇,其他遠離峰值的簇可作為噪聲簇剔除.剔除噪聲簇后,路面干擾被正確的剔除了,如圖9(b)所示.

圖9 路標干擾的剔除與車道線擬合Fig.9 Elimination of road sign interference and lane fitting
根據國家公路標準,結構化道路上的車道線有直道和彎道,且彎道線的曲率較小,有直線擬合、拋物線擬合、樣條曲線擬合等擬合方式[19].為了減小擬合算法的復雜性,本文使用拋物線模型進行車道擬合,并采用最小二乘擬合的擬合方法.其模型和誤差平方和E 的表達式為:

擬合后,將車道線變換到原圖,其結果圖如圖9(c)所示.
對于標準的公路道路,車道線按照顏色和形狀一般可以分為黃線與白線,實線與虛線.為了全面的提取車道線信息,保證車輛決策的正確性,有必要將不同車道線的種類信息識別出來.
對于某條車道線的簇,如果其進行了二次聚類,則認為其為虛線車道線,否則判定為實線.此外,車道線有黃色、白色兩種顏色,考慮到Lab 顏色空間對黃色的敏感性,本文將車道線的簇點對應到Lab 空間.為了在滿足算法是實時性的同時判斷出車道線的顏色,可在車道線簇中隨機選取N 個點,并設定一個顏色閾值Ty,并計算這些點在Lab 空間中的平均灰度值Lavg:

若Lavg大于Ty,則認為此車道線為黃色車道線,否則為白色車道線.判別流程如圖10 所示.

圖10 車道線類型識別算法圖Fig.10 Lane type recognition algorithm
卡爾曼濾波在目標跟蹤領域具有廣泛的應用,它分為狀態的預測和更新兩個部分[20,21].在本文中,卡爾曼濾波主要用來跟蹤車道線模型的參數值A、B、C,狀態向量x 包含了六個狀態,分別是拋物線的三個參數和它們的變化量:A、B、C、ΔA、ΔB、ΔC.狀態向量,狀態轉移矩陣分別為:

首先通過式(17)、(18)進行狀態預測:
通過式(19)計算卡爾曼系數,來盡可能地衡量預測量與觀測量之間的權重系數,并利用卡爾曼系數對狀態量與協方差估計量進行更新.更新過程如公式(20)、(21):

式中:Ht為t 時刻的觀測矩陣,衡量本身狀態與觀測狀態之間的轉換,觀測狀態為車道線模型的三個參數:A,B,C,Rt表示t 時刻的觀測噪聲協方差矩陣;Kt為卡爾曼系數.
對于復雜路況導致的觀測值突變的情況,僅靠卡爾曼濾波無法實現準確檢測.由于幀間車道線位置差異很小,本文將前一幀圖片檢測得到的車道線的位置進行左右分別平移距離D,劃定一個可信區域R(如圖11 線框),如果下一幀的觀測車道線不在R 內,則認為此幀圖像的路面為檢測異常路面,觀測值誤差過大,此時將卡爾曼濾波的預測參數值作為車道線參數的輸出,直到車道線觀測結果恢復為正常路面.

圖11 車道線的可信區域Fig.11 Believable area of lane line
為了檢驗本文算法在實際工況下的工作性能,本文采集了某路段的車道線視頻并結合Tusimple 數據集,在多場景下對算法進行驗證.實驗視頻由車載相機采集,視頻幀率為29 幀/s,圖片分辨率大小為1 920×1 080,車速范圍為60-90 km/h,實驗平臺為PC 端(Inter Core i5-9400F CPU,2.9GHz),內存為8G.
圖12 列舉了在直道、彎道、虛實車道線、光照變化以及車輛遮擋等情景下,本文算法的工作效果圖.(a)為有路間標識干擾的直道車道線,左側為實線,右側為虛線;(b)(c)(d)分別表示車輛干擾以及光照變化的場景,通過卡爾曼濾波,預測了正確的車道線位置;(e)(f)為Tusimple 數據集中的場景,包含了道路破損等復雜路況.

圖12 多場景下的車道線檢測Fig.12 Lane detection in multiple scenes
本文選取復雜工況下的多場景車道線視頻進行實驗,結果如表1 所示.組1 中包括了較多的交通標識干擾和車輛干擾,以及光照變化(進出隧道)等情況;組2 包含了大量彎道,有較多的車道線模糊甚至丟失、部分路面的陰影干擾的情況;組3 為Tusimple數據集中選擇的800 幀圖片,圖片大小為1 280 ×720,包含了車道線不清晰,道路破損等情況.

表1 車道線檢測實驗Tab.1 Lane detection experiment
同樣是在路況良好的城市道路中,文獻[7]使用了動態DBSCAN 聚類算法,圖片分辨率為1280 ×720,平均每幀耗時約為100 ms.而本文的特征融合提取減少了非必要特征點數量,且二次聚類算法不需要動態調整DBSCAN 聚類的鄰域參數,具有更高的實時性,對于分辨率為1 920×1 080 的圖片,每幀耗時平均約79ms.文獻[22]用傳統霍夫變換的方法來檢測車道線,在Tusimple 數據集中的準確率為88.1%.本文采用了多特征融合的特征點提取方式,在復雜路況下的提取效果更理想,在Tusimple 數據集中的準確率可達94.88%.
為了驗證結構化道路上,算法對車道線的類型識別的效果,本文設置了:Yellow,White,Segmented,Solid 標簽.如圖13 所示,(a)為直線車道,(b)為有路面干擾的彎道,(c)左側為黃色車道線,右側為白色車道線,結果表明本文算法具有良好的適應性.


圖13 結構化道路的車道線類型識別Fig.13 Lane type recognition of structured road
為了驗證算法對車道線類型判斷的準確性,本文選取了道路良好的結構化道路進行車道線類型識別的實驗,結果如表2 所示.

表2 車道線類型識別實驗Tab.2 Lane type recognition experiment
在車輛行駛的復雜工況下,車道線的提取存在魯棒性和實時性不高的問題,本文在邊緣特征與顏色空間特征提取的基礎上,提出了RC-DBSCAN 聚類算法和車道線類型識別算法,結合卡爾曼濾波,在彎道、路面干擾、隧道等復雜工況下進行了實車實驗.結果表明,RC-DBSCAN 算法相比于傳統的聚類算法具有更好的魯棒性和實時性,在復雜工況下的車道線檢測準確性可達95%,對于分辨率為1 920 ×1 080 的圖片,每幀耗時平均約79 ms,具有較好的實時性,在結構化道路上,車道線類型識別的準確率達98%.