馬瑞軍,鄧三鵬,郭崇光,郭世南
(1.福建信息職業技術學院 智能制造學院,福建 福州 350000;2.天津職業技術師范大學機器人及智能裝備研究院,天津 300222;3.天津市智能機器人技術及應用企業重點實驗室,天津 300350)
近年來,自動駕駛發展越來越快,車道線檢測算法隨之也有較大發展,從傳統的基于視覺的車道線檢測算法,到基于深度學習的方法,大大提高了車道線檢測的準確性和實時性。
傳統的車道線檢測算法是通過邊緣檢測及濾波等方式分割出車道線區域[1-4]。毛世榕等[5]提出基于機器視覺的車道線檢測算法,可以快速檢測直線車道線,但在檢測復雜彎道時效果較差;Lu 等[6]提出基于脊檢測器和區域G-RANSAC 的車道檢測方法,在黑暗和車道遮擋的場景中有良好的性能,但是在檢測大曲率車道線時表現較差。傳統的邊緣檢測對濾波參數要求高,工作量大,魯棒性較差,當環境出現明顯變化時,容易出現車道線檢測失敗的問題。基于深度學習的車道線檢測主要依靠模型對圖像中的車道線信息進行學習和提取,實現車道線的檢測[6-9]。Neven D等[10]提出LaneNet 網絡,通過語義分將車道線和背景區分出來,再通過聚類得到車道線,對于多車道線檢測效果較差。鮑先富等[11]提出基于多項式曲線擬合的車道線檢測方法,通過滑動窗口與多項式結合擬合出車道線,但是模型的計算量大,容易出現結果不收斂的情況。張凱祥等[12]提出基于YOLO V5 的多任務自動駕駛環境感知算法,通過端到端的車道線目標檢測得到車道線所在的區域,但是檢測結果容易受到輸入圖像像素質量的影響,以及在彎道中表現較差。楊淑琴等[13]提出基于實例分割的復雜環境車道線檢測方法,通過改進的混合任務級聯網絡(HTC)對車道線實例進行分割檢測,該方法需要較多的計算資源,而且檢測準確率容易受到車道線表面不平整度的影響。Feng Z 等[14]提出一種基于貝茲多項式的車道線擬合方法,對于直線目標檢測效果較好在彎曲的車道中表現較差。
針對當前方法在大曲率等背景下的車道線檢測精度低的問題,提出一種基于曲率估計的多項式車道線擬合方法,首先通過車載單目相機對車道線圖像進行采集,將得到的圖像做預處理;剔除圖像中天空等不含車道線的區域;使用YOLO V5 特征提取網絡提取車道線所在的區域;經過二值化操作得到車道線邊緣的大概位置;提取關鍵點,將關鍵點連成向量通過叉乘得到擬合直線;對擬合直線的向量和大概位置組成的向量求內積操作,判斷是否進入彎道;進入彎道時,采用牛頓迭代法、海倫-秦九韶算法以及曲率和三角形內切圓關系得到估計曲率;將估計曲率帶入貝茲多項式中擬合出彎道線;將直線和彎道線拼接輸出全部的車道線。
采用車載單目相機作為圖像采集工具,采集場景包含直線車道、匝道等多種車道場景,編碼使用H2.46 方式,分辨率為1080*760,相機在車輛的安裝位置如圖1 所示。

圖1 單目相機安裝位置
在車道線檢測過程中需要將車輛的坐標系Ov-xyz、相機的坐標系Oc-xyz以及圖像坐標系OI-xy轉換到同一坐標系中,坐標系示意圖如圖2 所示。

圖2 車輛、相機及圖像坐標系
使用Matlab 工具箱對相機參數進行標定,標定后3 個坐標系及相機參數關系如下:
其中,r(Vcv)為羅德里格斯變換Pv= [xv yv zv];Pc=[xc yc zc];PI= [xI yI]分別為車輛坐標系、攝像頭坐標系和圖像坐標原點;Vcv為Ov-xyz-Oc-xyz的旋轉向量;Rcv為Ov-xyz-Oc-xyz的三維旋轉矩陣,通過Vcv進行羅德里格斯變換而得到;Tcv為Ov-xyz-Oc-xyz平移向量;[fcu fcv]為攝像頭的水平和垂直方向的焦距;[cu cv]為像主點;αc為像素夾角。
圖像獲取后,將天空以及機蓋等沒有車道線存在的背景區域剔除,降低檢測算法的計算量,如圖3為原始圖像,圖4 為劃分后的圖像。完成區域劃分后將圖像調整成640*640 的RGB 圖像,便于后續特征提取。

圖3 原始圖像

圖4 待檢測區域
將劃分好檢測區域的圖像輸入到YOLO V5 特征檢測網絡中進行車道線特征提取。YOLO V5 模型由輸入端、Backbone 模塊、Neck 模塊、Head 模塊三部分組成,輸入端可以輸入多種尺寸的RGB 圖片,Backbone 模塊以CSPDarknet53 殘差網絡為核心結構提取車道線圖像特征,為檢測模型提供必要的特征信息;Neck 模塊將提取的特征進行映射,從而將圖像特征從backbone 中提取出來,映射到更高維度的特征空間,提高特征表征能力;Head 模塊用于特征分類和回歸,以獲得車道線在圖中的候選區域。為了提高特征提取的速率文中模型去除了Neck 模塊中的512*20*20的檢測頭,最終網絡結構如圖5 所示。

圖5 YOLO V5 特征提取網絡
車道線具有一定的寬度,為了提高檢測結果的穩定性,文中統一將車道內側線作為邊界。
經過特征提取網絡后圖像中車道線所在的區域被劃分出,如圖6 所示。為了提取貝茲多項式擬合函數所需的關鍵點,將候選車道線區域濾波后按照灰度值做二值化操作[15],得到車道線原始圖像的大概位置,如圖7 所示。根據車道線的大概區域分段得到候選車道線的關鍵點,此時車道線的直線區域邊緣較準確,但是在彎道區域中有較大誤差。將關鍵點連成向量,通過向量叉乘匹配出內側車道直線,計算過程如下:

圖6 車道線候選區域

圖7 濾波二值化車道線
設圖中存在n條候選車道線向量psi,pei,i?{1,2,...n}其中psi和pei分別為候選車道線關鍵點的起點和終點,示意圖如圖8 所示,根據叉乘公式有:

圖8 psi 和pei 示意
取M 的最大值所在的關鍵點作為車道內側線的主要關鍵點,重復多次操作得到車道線在不同部位的主要關鍵點,如圖9 所示。

圖9 車道線關鍵點
提取主要關鍵點后,根據關鍵點估計彎道曲率,再將其帶入貝茲多項式中得到彎道曲線。
曲率估計的算法流程如下:
(1)提取主要關鍵點
尋找直線和彎道線的交界點,將獲得預測結果向量與關鍵點連成的向量求內積。
其中,B為預測結果向量,S為關鍵點連成的向量,當CB,J≤α(α= 0.65)時,將認為車道線進入彎道,取CB,J= 0.65 所在的主要關鍵點為qn;提取距離qn為l的qn-1;將qn和qn-1之間的最大步長l設為10000 像素,則有:
(2)計算點qn位置切線的斜率
點qn處切線斜率f′(x)計算公式為:
(3)線性逼近得到qn+1
設車道線直線區域的所有點集組成Q= {qi=(xi,yi)|i= 1,2,3,…,n},取Q中最后m個點使用牛頓迭代法代入線性逼近方程中求得qn+1的坐標,具體計算如(8)所示:
其中l′為插值步長,為了降低計算量l′ =l。
(4)求取qn-1、qn以及qn+1三點組成三角形的內切圓半徑
設qn-1、qn以及qn+1三點組成的三角形的三邊分別為a、b、c,根據海倫-秦九韶公式有:
其中S為所組成三角形的面積,根據三角形三邊長與面積、內切圓的關系,可得內切圓半徑r。
(5)計算估計曲率k
根據曲率與圓半徑公式(11)可得曲率k:
(6)多項式擬合
將曲率k和qn帶入貝茲多項式中,設由n+ 1 個主要關鍵點控制的車道線可以用貝茲曲線多項式擬合:
其中pi為控制點,bi,n為曲線上每個關鍵點的偏移距離,由公式(13)得到。
(7)重復步驟步驟(1)至(6)得到彎道曲線
將得到的直線結果和曲線結果拼接得到完整的曲線預測結果,如圖10 所示。

圖10 檢測結果
為驗證該方法的有效性,在平潭島上的高速路段及匝道進行數據采集和離線處理。實驗中,YOLO V5特征提取網絡使用平潭島各路段采集整理的道路數據集訓練得到,訓練設備采用顯卡GTX3070 24G、內存DDR4 32G 的服務器。檢測算法在Intel Core i7 9thCPU,2.5G Hz,500 G 內存的環境中運行,對100 張當地道路圖片進行檢測,主要檢測指標有:平均每張圖的檢測時間T;彎道正確檢出率R;每張圖中檢出線長度和實際長度比例的平均值I,具體結果見表1。

表1 算法檢測指標
部分檢測結果如圖11 所示。根據檢測結果可以發現在沒有遮擋的彎道圖中模型的表現較好。當車道線出現遮擋以及斷裂時由于特征提取受到嚴重影響導致模型檢測性能下降。

圖11 檢測結果
實驗結果表明,基于曲率估計的貝茲多項式車道線擬合方法對于匝道等大曲率的車道線檢測具有一定的效果。但對于算法主要進行了彎道曲線研究,對于包含復雜背景、黑夜等場景還有待研究。同時,由于特征提取模型訓練過程使用的數據都出自平潭島,可能會因為數據多樣性不足導致模型特征提取能力不夠,后續工作中將研究數據多樣性對模型性能的影響。