張駿 徐向華 李姣
摘 要: 針對目前夜間場景下尾燈提取算法存在的顏色和形狀適應性受限問題,提出了一種基于尾燈光暈層次特點驗證的尾燈提取方法。該方法與基于顏色閾值過濾的方法、基于形狀過濾的方法以及基于機器學習的方法相比,具有較好的顏色和形狀適應性,算法整體具備了實時性、較高的準確率和較少的誤檢率。
關鍵詞: 夜間場景; 尾燈提取; 顏色和形狀適應性; 光暈層次
中圖分類號:TP391.4 文獻標志碼:A 文章編號:1006-8228(2015)08-06-03
Nighttime taillight pick-up method based on halo layer structure verifying
Zhang Jun, Xu Xianghua, Li Jiao
(Hangzhou Dianzi University, Zhejiang Provincial Key Lab of Data Storage and Transmission Technology, Hangzhou, Zhejiang 310037, China)
Abstract: For current nighttime taillight pick-up algorithms, the color and shape adaptabilities are inadequate. This paper proposes a novel taillight pick-up algorithm based on the halo layer structure verifying. Compared with the current algorithms such as the color thresholding, the shape filtering and the machine learning, the algorithm proposed has a better color and shape adaptability, and has the features of real-time, high accuracy and low false positive rate.
Key words: nighttime; taillight pick-up; color and shape adaptabilities; layer structure of halo
0 引言
夜間車輛檢測可以被應用于自動駕駛汽車和預警系統等。夜間場景下,尾燈是前方車輛惟一明顯的特征。因此,尾燈提取是夜間車輛檢測的關鍵和基礎。現有的基于顏色閾值過濾[1-3]的尾燈提取方法是根據尾燈的顏色特征設置顏色閾值。此類方法實時性好,但易受環境光照和攝像頭參數等因素影響,檢測率不穩定。基于形狀過濾的方法[4-6]基于形態過濾圖像提取尾燈。此類方法不受圖像顏色差異影響,一般以“圓形”為過濾條件,而尾燈形狀多樣,因此其形狀適應性較弱。由于目前尚無描述能力較好的尾燈特征,因此基于機器學習的尾燈提取方法[7, 8]檢測效果較差。綜上可見,目前缺乏顏色和形狀適應性均較好的尾燈檢測方法。
盡管尾燈形狀各異,但光暈具有同一個特性:緊貼白色區域分布,亮度從白色區域邊界向外依次遞減。該遞減現象呈現層次性,每一層光暈層形狀與白色區域邊界形狀相似。同時,通過對比車燈對象以及非車燈對象可知:前者的光暈亮度按層次遞減,而后者的光暈亮度分布混亂。因此,通過驗證該特性即可有效地區分二者。
1 尾燈提取
1.1 總體流程
本文算法分三步:預處理、假設產生和假設驗證。在預處理步驟中,算法對圖像進行寬泛的顏色閾值過濾;在假設產生步驟中,算法提取白色區域作為疑似車燈對象;在假設驗證步驟中,算法基于疑似對象的白色區域計算其光暈的大致范圍。接下來,使用光暈層次拓展(Halo Layers Expansion,HLE)算法基于白色區域邊緣向外不規則地層層拓展,精確覆蓋該對象的光暈,并得到光暈的層次結構;使用亮度遞減驗證(Luminance Diminishing Verification,LDV)算法驗證疑似對象的光暈亮度分布;去除未通過驗證的對象,得到可信度較高的車燈對象。
1.2 光暈層次拓展(HLE)算法
1.2.1 光暈區域初步確定
光暈區域緊貼白色區域,面積正比于白色區域,因此基于白色區域可大致確定光暈區域。算法首先提取白色區域,計算每個區域的外接矩形,記為“內矩形”;然后,根據內矩形向外拓展得到一個范圍更大的矩形,記為疑似對象的“外矩形”。外矩形即為初步確定的尾燈光暈范圍。利用式⑴可通過內矩形得到對應的外矩形。XouterRect,YouterRect,HouterRect和WouterRect分別表示外矩形的左上角點的X、Y坐標,高和寬;下標為innerRect的為內矩形的對應變量。
⑴
圖1(a)為源圖像,圖1(b)為閾值過濾后圖像,圖1(c)為標示了內矩形的圖像,圖1(d)為標示了內矩形和外矩形的圖像。
1.2.2 HLE算法
車燈白色高亮區域形狀各異,但同一個車燈上的光暈層的形狀都與其白色區域邊界的形狀類似。因此,基于白色區域邊緣向外等距離層層拓展,可精確覆蓋光暈區域,同時得到其光暈區域的層次結構。不同車燈需要拓展的層數不同,算法首先通過式⑵計算需要拓展的光暈層數Nlayers。
Nlayers=min{Hinner,Winner,14} ⑵
算法偽代碼描述如下。函數pointPolygonTest計算傳入像素點到白色區域邊界contour的最短距離,返回正數表示測試點為白色區域內部的點,負數則是表示外部的點。
Input:outerRect-疑似對象的外矩形
contour-中央白色高亮區域的輪廓
Nlayers-拓展層數
Output:layers-光暈層數據集合
for i=0 to Nlayers-1 do
layeri={}
layers[i]=layeri
end for
for i=0 to outerRect.width-1 do
for j=0 to outerRect.height-1 do
dis=pointPolygonTest(outerRect[i][j],contour)
if(dis<0 and dis?-14)
layerIndex=0-ceil(dis)
end if
if(layerIndex+1>Nlayers)
continue
end if
if(layerIndex?0)
layers[layerIndex].add(outerRect[i][j]);
end if
end for
end for
圖2展示了HLE算法的效果。圖2(a)為圓形車燈,圖2(b)為梯形車燈,圖2(c)為不規則形狀車燈。
1.3 亮度遞減驗證(LDV)算法
尾燈光暈的亮度按層次遞減,越遠離白色區域邊緣的光暈像素點的亮度值越低。而大部分干擾燈光或反射光的光暈亮度分布混亂。LDV算法基于這一點,對疑似對象的光暈區域進行驗證,從而區分干擾對象。
圖3(a)為一個抽象車燈,放大左邊部分得到圖3(b)。圖中光暈點(x,y)周圍8個像素點中,亮度值最低的點(minP)位于更高的層數上。因此,若某對象為車燈對象,則對于位于其第i層(layer)光暈層上的任意點(x,y),它周圍8個像素點中亮度值最小的點一定是位于第i+1層或者更高的層數上。基于此規律,算法驗證疑似對象的每個光暈點,統計該對象所有光暈點中滿足該條件的光暈點所占的比例。
圖3 驗證依據說明示意圖
滿足驗證規則的點被稱為“pass(通過)點”,它們占所有光暈點的比例被稱為“pass(通過)率”。算法偽代碼如下。
Input:tail-疑似車燈對象,tail=(wPoints,layers,Nlayers)
Output:Ppass-pass率
SSearch={}
SSearch.add(wPoints)
Ppass=0.0
for i=0 to layers.length-1 do
for j=0 to layeri.length-1 do
minP=GetMinP(layeri[i],imgRGBfilter)
if(minP?SSearch)
Cpass=Cpass+1
end if
end for
SSearch.add(layeri)
end for
其中,tail表示輸入的疑似車燈對象,它包含:當前對象白色區域像素點的集合wPoints,光暈層數據集合layers以及拓展層數Nlayers。輸出參數Ppass為當前對象的pass率,SSearch保存當前已經驗證結束的光暈點,函數GetMinPoint搜索輸入點周圍8個像素點,返回其中R通道值最小的像素點,Cpass表示pass點計數。
圖4為車燈對象(正例)的驗證情況,圖4(a),4(b)分別為不同形狀尾燈。其中第三張圖中的白色點為pass點。圖5為非尾燈對象(負例)的驗證情況。圖5(a)為車牌反光,圖5(b)為廣告牌。
可見,正例的pass率較高,負例的pass率較低。我們統計了各種對象的pass率,結果如圖6所示,最終確定30%為正、負例對象的區分閾值。
[場景\&車燈數\&算法\&檢測到的
車燈數\&檢測框\&誤檢框\&檢測率\&幀均誤檢框\&高速\&225\&T.方法\&166\&311\&145\&73.78%\&1.45\&W.方法\&61\&390\&329\&27.11%\&3.29\&本文方法\&195\&406\&211\&86.67%\&2.11\&城市\&253\&T.方法\&222\&287\&65\&78.75%\&0.65\&W.方法\&194\&1318\&1124\&76.68%\&11.24\&本文方法\&247\&591\&344\&97.63%\&3.44\&]
3 結束語
本文提出基于光暈層次特點驗證的尾燈提取算法,利用尾燈光暈向外延伸衰減的特點,解決了已有方法在尾燈形狀和顏色適應性上存在的問題。實驗證明,在各類場景下,本文方法具有更好的尾燈顏色、形狀適應性和檢測準確度。
參考文獻:
[1] O'Malley R, Jones E, Glavin M. Rear-Lamp Vehicle Detection and
Tracking in Low-Exposure Color Video for Night Conditions[J].IEEE Transactions on Intelligent Transportation Systems,2010.11(2):453-462
[2] O Malley R, Glavin M, Jones E. Vehicle detection at night based on
tail-light detection[C].1st international symposium on vehicular computing systems,2008:2-4
[3] Thammakaroon P, Tangamchit P. Predictive brake warning at
night using taillight characteristic[C]. International Symposium on Industrial Electronics (ISIE),2009:217-221
[4] Alcantarilla P F, Bergasa L M, Jime X. Night time vehicle detection
for driving assistance lightbeam controller[C]. Intelligent Vehicles Symposium,Eindhoven,2008:291-296
[5] Alt N, Claus C, Stechele W. Hardware/software architecture of an
algorithm for vision-based real-time vehicle detection in dark environments[C].Design, Automation and Test in Europe (DATE), ACM, Munich, 2008:176-181
[6] Schamm T, von Carlowitz C, Zollner J M. On-road vehicle
detection during dusk and at night[C]. Intelligent Vehicles Symposium (IV), San Diego, CA,2010:418-423
[7] Zehang S, Bebis G, Miller R. Monocular precrash vehicle detection:
features and classifiers[J].IEEE Transactions on Image Processing,2006.15(7):2019-2034
[8] Hong C, Nanning Z, Chong S. Boosted Gabor Features Applied to
Vehicle Detection[C].18th International Conference on Pattern Recognition (ICPR),2006:662-666
[9] Chun-Che W, Shih-Shinh H, Li-Chen F. Driver assistance
system for lane detection and vehicle recognition with night vision[C]. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2005),2005:3530-3535