張 濤,陳萬培,喬延婷,陳舒涵
(揚州大學 信息工程學院,江蘇 揚州 225009)
汽車作為人們的日常交通工具,其安全性是人們的首要關注點。汽車安全技術可分為主動安全技術[1-2]和被動安全技術[3-5]。傳統(tǒng)的汽車安全保障措施如安全氣囊是一種被動安全技術,即在發(fā)生事故時汽車才會做出相應處理,對駕駛員和乘客進行人身保護。相比被動安全技術,汽車主動安全以其對事故的預測能力及事故避免能力正在飛速發(fā)展?,F(xiàn)如今,自動駕駛技術[6-7]已經成為汽車領域的大熱話題,自動駕駛是汽車主動安全技術十分成熟的產物,沒有汽車主動安全技術的保障,自動駕駛技術也不會存在。特斯拉公司作為世界著名的電動能源車制造商,其汽車自動駕駛技術的研發(fā)也走在了各車企的前面。同樣,谷歌、百度等傳統(tǒng)車企以及各高等院校也相繼投入人力和物力進行自動駕駛汽車的研發(fā)。由中國汽車技術研究中心舉辦的智能車大賽就是自動駕駛技術的一次盛會。自動駕駛由前期的輔助駕駛[8-9],發(fā)展為半自動駕駛[10-11],并最終成為汽車完全自主控制的自動駕駛。本文討論的Haar檢測技術[12-13]是輔助駕駛中車輛檢測的一種檢測方法,Haar檢測技術在目標檢測中運用相當廣泛,但同時也顯露出檢測速度慢、實時性差的弊端。本文對Haar檢測進行簡單介紹,并提出新的檢測邏輯以改善Haar特征在車輛檢測中的應用,對車輛檢測速度進行一次較大的提升。
Haar檢測前期工作集中于樣本收集和分類器訓練。樣本收集分為正樣本收集和負樣本收集,正樣本是像素清晰的車尾部圖片,負樣本是行車環(huán)境周圍非車輛圖片。樣本收集的數量越多,質量越好,訓練的分類器分類效果就越好。最終進行檢測用的分類器是由多個強分類器級聯(lián)組成的級聯(lián)分類器,每一個強分類器又是由多個弱分類器組成。在進行車輛檢測時,算法接收到輸入的圖片,用一個滑窗去遍歷圖像,每一次遍歷都會進行一次分類器訓練,分類器通過則代表該滑窗有車,不通過代表無車;若該尺寸滑窗遍歷完整張圖片都未找到車輛,則改變滑窗大小重新遍歷檢測,以此類推。車輛檢測原理如圖1所示。
圖1 車輛檢測原理
由圖1可以看出,車輛檢測算法運行緩慢的原因在于算法進行了大量的無效滑窗運算。車輛在圖像中的大小受攝像頭安裝因素、車輛實際大小因素的影響,滑窗進行運算時由最小滑窗到最大滑窗進行遍歷搜索,理想情況下如果存在車輛,算法可以較快給出檢測結果。但是,假設一幅圖中不存在車輛,那么算法需要運行所有滑窗,這段時間可達幾十秒,足以帶來很多的安全隱患。
本文設計的Haar檢測提速方法,將車輛實際大小、車速以及安全距離列入算法考慮范圍,對有可能發(fā)生碰撞的區(qū)域進行了特定滑窗運算,非碰撞區(qū)域不進行滑窗檢測,這樣將大大提高車輛檢測速度。由于安全距離在圖像中是以像素高度這一因素來體現(xiàn),所以首先要建立實際坐標系與像素坐標系的映射關系,運用相機標定技術[14-16]在不同車速情況下快速定位到需要檢測的圖像高度范圍;由相機標定參數可以得到需要檢測的圖像高度信息,在該區(qū)域內設定特定的圖像檢測框進行檢測,實現(xiàn)車輛的快速定位。整個系統(tǒng)的運行流程如圖2所示。
圖2 系統(tǒng)流程
相機標定主要標定俯仰角、側傾角、方向角和安裝位置幾個參數,在本文提出的系統(tǒng)中,只進行俯仰角的標定,其他參數在安裝時按照安裝要求進行操作,為已知參數。上文已經提到過車輛在行駛途中,安全距離這一因素在圖像中體現(xiàn)在像素高度上,而攝像機的俯仰角對成像圖中感興趣區(qū)域的高度位置影響最大。
攝像機進行標定時,利用標定靶面進行俯仰角標定,標定模型如圖3所示。設攝像頭在車中的安裝高度為H1,標定靶面距離攝像頭安裝位置縱向距離為L,如果攝像頭安裝位置相對地面水平,即俯仰角為0°,由標定靶面上標定線之間的實際距離與成像圖中的像素距離可以得到圖像坐標系與實際世界坐標系的比例關系k,由標定靶面與攝像頭高度差結合比例k可以計算得到標定靶面上標定參考線理論上在圖像中的像素坐標系位置。
圖3 標定模型
若攝像頭安裝存在俯仰角,則標定靶面在成像中的像素坐標系位置就會改變,設俯仰角為0°時標定靶面參考線在圖像坐標系中的高度為H,俯仰角為θ時標定靶面參考線在圖像坐標系中的高度為h,如圖4所示。根據H與h的差值Δh和比例k得到因俯仰角θ引起的高度偏差ΔH′,由ΔH′和標定靶面到攝像頭距離L可以計算出俯仰角θ,其具體計算步驟見式(1)~式(3)。
(1)
ΔH′=Δh·k·δ,
(2)
(3)
圖4 成像模型
其中,δ為攝像機鏡頭引起的畸變系數,本系統(tǒng)采用的相機畸變較小,參考線距離較近,結合實際應用中俯仰角誤差對圖像高度選取的影響,采用同一個畸變系數進行俯仰角標定。
2.2.1 滑窗尺寸設定
Haar檢測的原始算法是從小尺寸滑窗到全尺寸滑窗依次遍歷,例如一幅720*480的無車圖像,需要在全圖從24*24尺寸窗口到480*480尺寸窗口遍歷檢測一遍,這樣完整的一幅圖運算結束大約需要30 s的時間,嚴重影響了系統(tǒng)的性能。
從上述分析來看,要想提高算法的運行速度,最根本的方法是減少不必要的滑窗運算。法規(guī)規(guī)定,中國轎車標準寬度在1.6~1.8 m,極限情況下卡車寬度不大于2.4 m,轎車寬度不小于1.5 m。結合本系統(tǒng)的攝像頭選型分析,對前方不同縱向距離區(qū)域的橫向距離進行了像素分析,表1給出了不同距離時,根據法規(guī)規(guī)定的車寬實際需要檢測的最小車寬與最大車寬滑窗尺。
表1 檢測尺寸對照表
縱向距離/m橫向距離/m像素間距最小車寬像素最大車寬像素87.8650125217157.850097167207.837673126257.831060104
對數據進行分析,如圖5所示。可以看出橫向距離與像素寬度近似線性結構。在進行滑窗檢測時可根據具體行坐標,計算出該行應檢測的最小最大滑窗尺寸,這樣可大大減少不必要的運算。
圖5 車寬車距關系
2.2.2 檢測區(qū)域設定
上文已經利用減少滑窗窗口的辦法對算法進行了提升,本節(jié)將從感興趣區(qū)域選取上對算法再次優(yōu)化,減少不必要的運算,提升系統(tǒng)的實時性性能。Haar原始檢測算法針對全圖進行遍歷搜索,在車載相機的圖像里,很大一部分為天空,這部分區(qū)域是不存在車輛的,如果仍然檢測,將會耗費很長的時間;另一方面,車輛檢測主要針對碰撞預警算法[17-18],而非本車道行駛的車輛是不存在與本車發(fā)生碰撞危險的,所以這部分區(qū)域也不列入感興趣區(qū)域檢測范圍內。
考慮到相鄰車道會有并入車道的傾向,將車輛檢測的感興趣區(qū)域設置為1.2倍車道寬度區(qū)域,即攝像頭采集畫面中,根據本車行駛車道的車道線信息,向左右兩側延伸一定像素距離,達到提前檢測并入車道車輛的功能,實現(xiàn)提前預警。經改善后的Haar檢測算法運行步驟如下:
① 獲取車道線方程Line1,Line2;
② 設置感興趣區(qū)域邊界線方程Leftline,Rightline;
③ 獲取本車車速Vcar;
④ 設置感興趣區(qū)域上下邊界Rowup,Rowdown;
⑤ 設置滑窗尺寸及比例系數;
⑥ 滑窗遍歷感興趣區(qū)域檢測車輛。
為了證明所提方案的可行性,系統(tǒng)進行了實車測試,分別采集了50幀圖像對相機標定精度和算法改善情況進行數據分析。圖6為相機標定精度分析,圖7為Haar檢測算法改善前后對圖像檢測時間的分析。從數據折線圖可以看出,相機標定滿足精度要求,Haar改善算法也大大縮減了圖像檢測時間,由秒級降低到了毫秒級,滿足系統(tǒng)對實時性的要求。
圖6 測量標定數據對比
圖7 算法時間提升驗證
通過對滑窗尺寸的設定以及興趣區(qū)域的合理劃分,將車輛檢測中Haar檢測算法做了一定的優(yōu)化,在不漏失有潛在碰撞危險車輛的前提下,將原始的每幅圖30 s提升到約每幅圖200 ms,大大提高了系統(tǒng)運行的實時性。但是,本次算法性能的提升只是針對訓練好的分類器,如果分類器加入新樣本重新訓練,在分類器改變的情況下也許會有實時性的損失,有待后續(xù)進一步研究。