黎向鋒, 趙偉康, 豆心愿2, 李 堃, 左敦穩(wěn)
(1.南京航空航天大學 機電學院,江蘇 南京 210002; 2.吉林大學 汽車工程學院,吉林 長春 130000)
隨著經(jīng)濟的不斷發(fā)展,生產(chǎn)力的大幅提高,國內(nèi)汽車的產(chǎn)量和銷量均穩(wěn)定增長。汽車作為代步工具給人們的出行帶來了極大便利,但也帶來了諸多棘手的難題,譬如交通事故、堵塞等[1]。先進輔助駕駛系統(tǒng)(Advanced Driver Assistant System,ADAS)能夠在發(fā)生危險前發(fā)出警報,保證駕駛安全,因而變得越來越重要,其發(fā)展勢頭迅猛。車輛檢測是ADAS的重要組成部分,引起了越來越多的國內(nèi)外學者的關(guān)注。
利用單目視覺技術(shù)進行車輛檢測,成本低廉,因此應(yīng)用十分廣泛,通??煞譃?類:① 基于車輛特征的方法,如任薇[2]根據(jù)車底陰影特征,使用高斯混合模型對圖像聚類,使用模型中的均值和方差自適應(yīng)提取車底陰影與路面交線,經(jīng)過濾波合并檢測到車輛,該方法實時性好,但受光照影響大,魯棒性差;② 基于模板匹配的方法,如李璟[3]對目標分塊提取Hog特征值,并對每個分塊賦予不同權(quán)值,計算與模板相關(guān)性最大的區(qū)域作為目標,該算法魯棒性好,但計算量大,實時性低;③ 基于機器學習的方法[3],該算法實時性好,魯棒性高,是近年來研究的熱點,如王蕾[4]利用角點檢測算法找出ROI,提取射影不變量特征,使用樸素貝葉斯分類器找到目標,算法實時性好,但容易受外界環(huán)境影響,導致分類器的檢測率不高;劉公俊[5]先通過圖像處理找出存在車底陰影可能存在的感興趣區(qū)域,使用離線訓練的分類器檢測該區(qū)域,找到目標,該算法速度快,受外界環(huán)境(光照、雨雪和天氣)影響大,產(chǎn)生漏檢。因此,通過對AdaBoost+Haar算法的訓練和檢測方式進行改進,提高了檢測率和檢測速度,降低了虛警。
在AdaBoost算法中,通常是訓練多個強分類器串聯(lián)形成一個級聯(lián)分類器[6]。一般而言,分類器前面幾級中包含的弱分類器數(shù)量較少,復雜度低,可用來區(qū)分與目標差別大的對象。越往后,強分類器包含的弱分類器個數(shù)會逐漸增多,復雜度高,可用來區(qū)分與目標相似的對象。待檢測樣本若未通過強分類器則直接丟棄,直至通過所有強分類器,樣本才會被判斷為目標。該方法相較于其他的檢測算法,計算量小,檢測率高,但仍不能滿足實時性的要求。
在圖像中,道路與天空占據(jù)了圖像大部分區(qū)域,且一般是純色塊,定義為簡單樣本,將剩下負樣本定義為復雜樣本,復雜樣本的紋理復雜、顏色多樣,一般多為樹木、房屋等。對負樣本進行分類,使用正樣本和簡單負樣本訓練一個只包含6個強分類器的分類器C1,同時用一個同樣數(shù)量的正樣本和未分類的負樣本訓練一個只包含6個強分類器C2。
圖1 分類器檢測效果
如圖1(a)所示,使用C1檢測的目標窗口集中在了車的前端蓋板上和道路上有車以及道路欄桿的部分,車子前蓋和有車區(qū)域之間明顯存在一個無目標帶,純路面和天空區(qū)域已經(jīng)幾乎全部過濾掉了。圖1(b)中,使用C2檢測的目標窗口大部分都集中在車區(qū)域的前端蓋板上和道路上有車區(qū)域,但仍有部分檢測窗口存在天空和無目標道路區(qū)域。因此C1檢測結(jié)果比C2更集中,區(qū)域更小,數(shù)量也更少。
基于此本文構(gòu)造一種新的強分類器級聯(lián)方案,其結(jié)構(gòu)如圖2所示。首先由正樣本和簡單負樣本訓練出一個能夠過濾圖像中的道路天空區(qū)域的分類器,接著在后面級聯(lián)上由復雜負樣本訓練出來的一個分類器。這樣分類器的結(jié)構(gòu)先簡單后復雜,使用這個分類器進行目標檢測的時候,在分類器的前幾級就會過濾掉圖像中的道路及天空等大部分的純色簡單區(qū)域,提高效率。
圖2 分類器級聯(lián)結(jié)構(gòu)圖
AdaBoost+Haar檢測算法的檢測率高,但由于需要檢測的窗口數(shù)量大,降低了檢測算法的效率,無法達到實時性的要求。
檢測算法的檢測流程是多尺度、從左上到右下遍歷整幅圖像。在天空區(qū)域,由于沒有檢測目標,檢測算法浪費了近一半的時間,而且還可能存在虛警。在路面區(qū)域車輛是近大遠小的,因此,與本車實際距離較近的車不需要用小尺度的檢測窗口去檢測目標,同理,在與本車實際距離遠的區(qū)域也無需用大尺度的窗口去檢測。因此可以得出結(jié)論,檢測算法有大量的時間浪費在了非目標檢測區(qū)域和多余尺度上。
本文提出一種根據(jù)車寬度調(diào)整檢測框?qū)挾鹊乃惴?。該算法利用逆透視變換算法[7]標定法將圖像坐標與世界坐標系的路平面建立一對一的映射關(guān)系。根據(jù)車的寬度算出檢測窗口的邊長范圍來過濾檢測窗口數(shù)量,提高效率。
本文把地平線以下區(qū)域作為感興趣區(qū)域。由于透視變換的關(guān)系,在世界坐標系中兩條車道線在無窮遠處相交。過這個點的水平線即是實際世界坐標系中的無窮遠處,是天空和路面的分界線,也就是地平線。由郭磊[8]等人推導出來的圖像坐標中yp與世界坐標的YP關(guān)系如下:
(1)
式中,H為圖像的高度;α0與γ0分別為攝像頭鏡頭的垂直視野角和俯仰角。
安裝在汽車上的攝像頭經(jīng)過標定后,世界坐標系中的道路平面和圖像坐標系一一對應(yīng)。本文車寬匹配算法將左下角點作為起點,由左至右、由下至上遍歷整個圖像,相較于傳統(tǒng)滑窗算法以頂邊為基準放大窗口,本文將底邊將作為參考邊,該參考邊同時也是汽車和路面的接觸區(qū)域且與汽車寬度一致,可根據(jù)汽車寬度使用逆透視變換算法計算檢測窗口寬度范圍,過濾多余尺度的檢測窗口。根據(jù)GB 1589-2016[9]車輛寬度極限值為2.55 m,取轎車寬度為1.6~2.5 m,如圖3所示。程序檢測時,由車輛復雜寬度W的范圍確定圖像中不同行r檢測框底邊w的范圍,這樣可以根據(jù)車的寬度來自適應(yīng)調(diào)整檢測窗口的大小,減少了超過一半的候選檢測框的個數(shù),在保證檢測率的同時極大地提高了檢測效率。
圖3 車寬匹配算法
所提出的自適應(yīng)車輛檢測算法先確立地平線,然后根據(jù)車的寬度范圍自適應(yīng)地調(diào)整圖像中不同行的檢測框范圍,具體算法如圖4所示。
圖4 檢測順序圖
圖5為經(jīng)逆透視變換得到的,靠里的兩條綠線代表的車寬是1.6 m,靠外的兩條黃線代表的車寬是2.5 m,圖像檢測窗口在不同行的尺寸見表1所示,可以看出通過寬度濾波,改進的算法檢測窗口數(shù)量是傳統(tǒng)算法的0.26倍,可過濾大量的無關(guān)窗口。
利用C++編程語言,基于Visual Studio 2010開發(fā)平臺,所用的計算機為64位Windows系統(tǒng),4.00 GB內(nèi)存,雙核四核心2.5 GHz處理器。本文訓練的正樣本9285張,負樣本57000張,其中簡單負樣本34652張,復雜負樣本21048張,歸一化尺寸24×24,Haar特征類型為CORE。使用如下兩種方案,訓練出對應(yīng)的分類器:① 分類器C3,直接由正樣本和未分類的負樣本訓練一個共有26個強分類器級聯(lián)的分類器;② 改進的分類器C4,訓練一個共有24個強分類器級聯(lián)的分類器。其中前6級由正樣本和簡單樣本訓練,后18級由正樣本和復雜樣本訓練。
圖5 逆透視變換圖
行數(shù)傳統(tǒng)檢測窗口改進算法檢測窗口范圍55024~160110~16053024~160100~14051024~16088~12449024~16076~10847024~16066~9545024~16054~80
使用傳統(tǒng)算法在進行訓練分類器C3、實際訓練到14級時,弱分類器個數(shù)已經(jīng)超過622個,已經(jīng)發(fā)散。由圖6的ROC曲線可知在相同的誤檢率情況下,改進的分類器C4比C3檢測率更高,說明改進的分類器的泛化性能更強。
圖6 分類器C3、C4 ROC曲線圖
為了客觀高效地評價改進訓練方法的分類器的泛化性能和檢測的效率,本文使用的是KITTI[10]、BenchMark Dateset[11]數(shù)據(jù)集以及自己收集的圖片,隨機挑選,一共500張,共有車輛目標1788個。分3種方式進行測試:① 使用分類器C3+滑窗檢測;② 使用分類器C4+滑窗檢測;③ 使用分類器C4+本文車寬匹配算法檢測,結(jié)果如表2所示。
表2 檢測結(jié)果統(tǒng)計
從圖7中可以看出,改進的算法能夠在光照復雜的場景下檢測到多個目標,魯棒性好,檢測穩(wěn)定。由表2的方式1和方式2,明顯看出使用C4比C3的檢測率更高,效率也提高了30%,這主要是由于,C3未對負樣本分類,已經(jīng)發(fā)散,弱分類器個數(shù)過多,檢測效率下降;由方式2和方式3可以看出,使用新的檢測算法比傳統(tǒng)算法檢測速度提高了4.5倍,這主要是由于地平線縮小了檢測范圍,車寬過濾了大量的檢測框個數(shù),而檢測率降低主要是由于部分車輛的“高度”超過了地平線的范圍,無法檢測。
圖7 方式3部分檢測效果圖
本文提出改進AdaBoost+Haar的車輛檢測算法,能夠高效快速地檢測到車輛。算法對硬件的要求低,有很好的泛化性能,能夠在不降低檢測率的情況下將檢測速度提高了7倍,同時還能有效抑制虛警。因此該方法是可行的。