王 彬,李宏勝
(南京工程學院自動化學院, 江蘇 南京 211167)
流動性密切影響著社會經(jīng)濟和個人生活質(zhì)量,社會經(jīng)濟發(fā)展和個人對生活的追求也推動著交通方式的升級和進步[1].以中國為例,2015年私人汽車擁有量為14 099萬輛,2019年私人汽車擁有量已達22 513萬輛[2].隨著車輛的普及,各種交通事故不斷發(fā)生,在2015—2018年,每年有4萬多人因汽車交通事故死亡,10萬多人受傷.引發(fā)事故的一個重要原因是駕駛員疲勞導致車輛偏離車道.作為高級輔助駕駛系統(tǒng)(ADAS)重要組成部分的車道偏離預(yù)警系統(tǒng),在一定程度上可以避免類似的事故,但截至2019年10月,各類ADAS在新車的搭載率不足30%[3],且不包括已售出的車輛.因此,普及車道偏離預(yù)警系統(tǒng)有著巨大的商業(yè)價值和社會意義.
相對于其他傳感器而言,視覺傳感器成本低廉,能夠提供豐富的特征信息[4],被廣泛應(yīng)用于車道偏離預(yù)警系統(tǒng).在進行車道檢測時,視覺傳感器很容易得到車道線的形狀、大小、位置和顏色等信息,且可以根據(jù)連續(xù)幀之間車道線的位移來進行運動分析.
目前,大部分基于視覺的車道偏離預(yù)警系統(tǒng)可分為系統(tǒng)模型分析及建立、車道檢測和車道偏離預(yù)警三個部分.其中大多數(shù)車道線檢測系統(tǒng)采用直線模型,把左、右車道近似為一條直線[5-7];為了使車道檢測系統(tǒng)更準確,在近場建立直線模型,文獻[8]在遠場采用二次曲線模型來擬合曲線車道、文獻[9]采用橢圓多項式曲線建立車道模型;為使用較少的控制點,文獻[10]采用三次B樣條曲線建立車道模型;為解決陰影產(chǎn)生的強度邊緣雜亂問題,文獻[11]驗證了色度空間變換的方法;為提高虛線車道特征獲取率,文獻[5]提出了一種時間模糊的方法,將其等效為一條連續(xù)直線,但需要選擇合適的時間分量,以免產(chǎn)生重影;在夜間,照明燈產(chǎn)生的不均勻光線會產(chǎn)生一些不規(guī)則的光斑和陰影,帶來大量的噪聲干擾,影響圖像處理的結(jié)果,文獻[7]提出一種能夠抑制和降低噪聲的鄰域平均濾波的方法;文獻[12]提出利用PLSF映射曲線將彩色圖像轉(zhuǎn)化為灰色圖像,提高了圖像的對比度;為進一步提高車道線檢測的準確度,文獻[5]在車道線特征檢測時采用自適應(yīng)閾值的方法來提取圖像中的車道標記,然后采用Hough變換對候選車道位置進行檢測,這種方法在一定程度上減弱了街燈或車燈的光線對全局閾值的影響;文獻[6]采用MSER來掃描車道特征,可篩去非車道標記的斑點,使用累計概率Hough變換進行車道標記檢測;文獻[8]采用先確定兩個邊的閾值,然后用Hough變換進行車道特征提取;文獻[7]使用基于定向的Sobel算子在雜亂的背景中進行車道特征提取;文獻[12]采用OTSU對圖像進行二值化處理;文獻[13-14]使用自適應(yīng)閾值將鳥瞰圖轉(zhuǎn)換為二值圖像,然后使用Hough變換對候選車道細化,采用RANSAC算法消除異常值;文獻[15]提出一種基于全卷積網(wǎng)絡(luò)的車道檢測方法,即利用全卷積分割網(wǎng)絡(luò)來進行車道檢測,但這種方法需要龐大的訓練樣本和精細標注的數(shù)據(jù)集,處理單張圖像耗時需要1.12 s,加載模型處理則需要更多的時間.可見,基于深度學習的方法通常很難在低功耗的移動終端上有良好的表現(xiàn).
本文提出一種基于移動終端的實時車道偏離預(yù)警的方法,研究方法框架如圖1所示.第一部分對系統(tǒng)應(yīng)用場景和環(huán)境進行分析,并建立相應(yīng)模型;第二部分對采集的圖像進行處理,提取和篩選出車道線特征;第三部分對檢測的車道線參數(shù)進行分析,得出車輛相對于車道線的位姿,建立車道偏離預(yù)警系統(tǒng);第四部分對車道偏離系統(tǒng)進行實測,分析實時性和可靠性.
圖1 研究方法框架
圖2 車道模型
由此確定,在36 m內(nèi)可以將車道看作一條直線,即在高速公路場景下可以采用基于直線車道模型的偏離預(yù)警系統(tǒng).
在使用移動終端采集圖像后,需先對圖像進行預(yù)處理,盡可能降低圖像中的噪聲,同時減少計算量,提高實時性;然后進行車道線特征提取和篩除異常值;最后對車道線進行跟蹤,保證車道線檢測的連續(xù)性和穩(wěn)定性.
為在高速公路場景下實現(xiàn)基于移動終端的實時車道偏離預(yù)警功能,須對移動終端采集的車道場景進行預(yù)處理.采集的圖像如圖3(a)所示,圖像中存在很多不必要的信息,為提高檢測準確率和實時性,可對原始圖進行分割,選取感興趣區(qū)域(region of interest,ROI),感興趣區(qū)域要在盡可能保留車道線特征信息的前提下減少干擾信息.因此,本文在圖像的下方約2/5處設(shè)置矩形ROI,設(shè)置后的圖像如圖3(b)所示,去除了天空和部分地表信息,有效減少了后期處理的計算量以及圖像中的干擾.
(a) 原始圖像
由于車道線特征中存在不易被檢測的黃色車道,為了增強黃色車道線特征并提高其相對于路面的梯度,將其轉(zhuǎn)換成HSV格式再進行處理.處理后的圖像如圖3(c)所示,先將黃色區(qū)間的顏色全部轉(zhuǎn)換成白色,而此區(qū)間外的顏色全部轉(zhuǎn)換為黑色,再對ROI圖像采用加權(quán)平均法[18]進行灰度化處理(處理后的圖像如圖3(d)所示):
f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j)
(1)
式中:R、G、B為RGB圖像的三個分量;f為灰度圖像值.
在圖像采集過程中,受到光照等因素影響,使得獲取的圖像中夾雜著不同程度的噪聲,通常表現(xiàn)為高斯噪聲等,為了盡可能削弱這類干擾信息,本文采用一種3×3的卷積核進行高斯濾波[19],用卷積核掃描圖像中的像素,確定鄰域中的像素值,并進行加權(quán)灰度化后替換中心像素,處理后的圖像如圖3(e)所示.應(yīng)用形態(tài)學濾波去除圖像中小斑點的干擾,處理后的圖像如圖3(f)所示,該方法使得其鄰域特征得以連接,進一步增強了車道線的特征.
圖像預(yù)處理后,采用Canny算子[20]進行邊緣檢測,效果如圖4(a)所示,處理后的圖像盡可能地保留了車道邊緣,且減少了噪聲產(chǎn)生的誤報信息,與實際邊緣更接近.但由于透視關(guān)系,實際的車道特征被顯示為梯形,且Canny算子會將一些干擾信息標記為邊緣特征.為進一步優(yōu)化邊緣特征,提出一種類車道線掩膜濾波方法,同時綜合采用自適應(yīng)閾值法對圖像進行二次二值化處理,效果如圖4(b)所示,較好地去除了矩形ROI中干擾信息的邊緣特征,獲得了車道線特征的邊緣二值圖像.
(a) Canny算子邊緣檢測
采用由標準Hough變換改進的累計概率Hough變換來進行車道線特征提取.通過分析檢測到的車道線的方向和范圍來設(shè)定約束參數(shù),處理后的圖像如圖4(c)所示,可見,車道線被檢測出的同時,也誤檢了一些類車道線的干擾信息,所以還需進行車道線異常值的篩選.為正確檢測車道線,剔除干擾信息,本文選擇角度限制對車道線信息進行初步篩選,直接移除一些斜率明顯不符合車道線的誤檢直線,再將初次篩選后的車道線信息分為左、右兩個候選車道線集:
LLEFT={l1(ρ1,θ1),l2(ρ2,θ2),…,lm(ρm,θm)}
(2)
LRIGHT={l1(ρ1,θ1),l2(ρ2,θ2),…,ln(ρn,θn)}
(3)
由于車道線的特征信息相對于誤檢信息更為明顯且較為密集,采用隨機抽樣一次算法(RANSAC)[21]進行二次篩選.通過反復(fù)迭代,不斷調(diào)整模型參數(shù),尋找到車道線的最優(yōu)候選集.通過上述二次篩選,得出的結(jié)果更為準確,篩選后的車道線如圖4(d)所示.
為解決檢測中漏檢或車道線丟失的問題,采用卡爾曼濾波器[22]對車道線進行追蹤.其過程模型可以描述為:
Lk=ALk-1+Buk-1+ωk-1
(4)
測量方程為:
Zk=HLk+vk
(5)
車道線跟蹤過程為:對是否檢測到車道線進行判斷,若檢測到車道線,則對卡爾曼濾波器進行初始化,同時對漏檢幀計數(shù)器進行復(fù)位,再更新卡爾曼濾波器;若未檢測出車道特征,則漏檢幀數(shù)加1,當漏檢幀數(shù)大于設(shè)定閾值時,則對卡爾曼濾波器凍結(jié),同時將漏檢幀數(shù)置0;當漏檢幀數(shù)不大于設(shè)定閾值時,則用上一幀檢測到的車道線參數(shù)代替.
使用卡爾曼濾波器,降低了干擾信息的影響,提高了系統(tǒng)的穩(wěn)定性.
車道偏離預(yù)警[23]是對車道線檢測的模型參數(shù)進行分析并判斷車輛與車道線的相對位置,當車輛偏離車道則發(fā)出預(yù)警,及時提醒駕駛員對車輛位姿進行修正.由于使用的環(huán)境為高速公路,故對整個系統(tǒng)的實時性要求較高,并且在保證安全性的同時,還應(yīng)給予一定的偏離閾值范圍,避免頻繁報警影響駕駛員的駕駛體驗.
對車輛在車道不同位置進行建模.設(shè)左、右車道線的斜率分別為kL和kR,車道線靠近車輛處寬為D,車輛寬為d,兩車道線交匯點到車輛距離為h.已知高速公路車道寬為3.75 m,車輛一般寬為1.4~1.8 m,可以等效認為D=4d.如圖5(a)所示,車輛處于車道正中時,兩車道線斜率絕對值之比為1;圖5(b)是車輛處于車道左極限位置時,此時左車道線斜率的絕對值為|kL|=2h/d,右車道線斜率的絕對值為|kR|=h/(D-0.5d),計算得|kL|/|kR|=3;同理,在右極限位置時,|kL|/|kR|=1/3,即|kL|/|kR|∈[1/3,3],在此區(qū)間內(nèi)車輛仍在車道線內(nèi).
(a) 車輛處于車道正中
為保證安全又兼顧人機交互,本系統(tǒng)給定安全閾值為30%,調(diào)整后|kL|/|kR|范圍是[0.48,2.1].因此,系統(tǒng)設(shè)定當左、右車道線斜率絕對值之比為[0.48,2.1]時,系統(tǒng)不報警,如圖6(a)所示;在[0,0.48)時發(fā)出警告提醒司機向左偏轉(zhuǎn),如圖6(b)所示;在(2.1,+∞)時發(fā)出警告提醒司機向右偏轉(zhuǎn),如圖6(c)所示.
(a) 不報警
搭建的測試環(huán)境如表1所示.為滿足時效性要求,采用JNI接口來實現(xiàn)系統(tǒng)功能.整體流程為:利用最新提出的Camera X組件進行實時的圖像采集;調(diào)用JNI接口,將圖像的信息流傳入Native方法;用C++/C對實時幀進行處理,處理后回調(diào)函數(shù),返回Java算法中;在SurfaceView上顯示處理后的實時幀,并按需求給出警告信息.
表1 測試環(huán)境
將車道線檢測的結(jié)果和實際場景下的幀數(shù)據(jù)進行比較,并把其比值作為評價系統(tǒng)性能的指標.系統(tǒng)準確性評價模型為:
(9)
式中:TESTtrue為系統(tǒng)檢測到的車道線;TESTwrong為系統(tǒng)未檢測到的車道線;TESTchange為車輛進行了變道或者行駛在特殊路段,此類情況下不能進行車道檢測.
本文選取測試的三條路段的檢測結(jié)果準確率分別為92.23%、93.74%和91.18%,符合預(yù)期要求.
圖7為實時處理一段采集圖像中每幀圖像的時間消耗統(tǒng)計圖.這段數(shù)據(jù)中一共含有1 270幀圖像,單幀圖像最大耗時為72.34 ms,最小耗時為23.21 ms,平均值為43.678 ms,標準差為6.382 7,表明本系統(tǒng)可以滿足移動終端的實時性要求.
圖7 每幀圖像處理實時消耗時間
針對高速公路長距離行駛時由車道偏離引發(fā)交通事故的應(yīng)用場景,研究并實現(xiàn)了一種基于移動終端的實時車道偏離預(yù)警系統(tǒng).系統(tǒng)在建立行駛模型的基礎(chǔ)上,提出改進的圖像預(yù)處理方法,提高了車道線檢測的實時性和準確性,實現(xiàn)了車道偏離預(yù)警功能.試驗表明,所提出算法能夠滿足在低功耗移動終端上實現(xiàn)對性能與實時性的要求.在后續(xù)工作中,在保持實時性的要求下,需提高系統(tǒng)對雪天、雨天、霧天等復(fù)雜場景的適應(yīng)性,進一步提升人機交互的便利性.