張書娟 王震洲
摘要:在輔助駕駛中對行人檢測的實時性要求較高,然而現(xiàn)有方法的計算復(fù)雜度普遍較高,難以滿足實時應(yīng)用的需求。該文提出了一種基于AdaBoost算法的行人檢測與預(yù)警方法。行人探測器由Opencv訓(xùn)練,并且訓(xùn)練12級行人探測器。通過在處理器上使用檢測器,實現(xiàn)視頻圖像的行人檢測功能。另外,通過使用可變步長和分區(qū)掃描跟蹤方法,有效提高了檢測率,實時檢測的要求基本達到。采用均勻化預(yù)處理和多尺度融合技術(shù)提高了檢測過程中檢測率;通過直方圖均衡辦法有效地剔除了光影等因素對測試結(jié)果的影響;在測試完成后,通過多尺度融合技術(shù)消除冗余部分的測試結(jié)果,最終不僅減低了誤報率而且大大提高檢測效率。
關(guān)鍵詞:AdaBoost;行人檢測;多尺度融合;快速掃描
中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2018)06-0174-04
行人檢測是指在圖像中或者視頻圖像中,確認(rèn)是否有行人,如果有行人,那么將會對其進行預(yù)警的處理。行人檢測是汽車安全的關(guān)鍵技術(shù),也是行人跟蹤,行為分析,步態(tài)分析,等研究的必要步驟。近年來行人檢測越來越多的向新興領(lǐng)域靠近,但是在處理的過程中特別容易受到外界環(huán)境的一些影響。現(xiàn)在常用的行人檢測的方法就是模式識別類的方法。
莊家俊等人通過模板匹配的方法來檢測夜間行人,首先通過預(yù)處理圖片來選取可能存在目標(biāo)的局部區(qū)域,再根據(jù)候選區(qū)域利用特征末班匹配進行分類,這種二次處理檢測的算法雖然降低了算法冗雜度,但是由于第一級處理的程度太大,剔除掉了一部分目標(biāo)區(qū)域,從而導(dǎo)致漏檢現(xiàn)象。郭烈根據(jù)行人腿部具有邊緣對稱性,利用sobel算子提取車載視頻中圖像的垂直邊緣并且找到對稱中心,再根據(jù)行人的高度與寬度比,從而檢測圖像中的行人,但是該方法的計算量太大,算法非常的冗雜的弊端。寧博利用集成學(xué)習(xí)方法改變傳統(tǒng)學(xué)習(xí)中泛化能力;根據(jù)特征選擇的方法來選取關(guān)鍵特征,這樣很大程度地減少了計算量;并且其引入了動態(tài)分類器的方法,增大了外界環(huán)境變化的魯棒性,但是由于算法太過復(fù)雜,根本無法達到實時檢測。
本文提出了一種基于Ada Boost算法的行人檢測與預(yù)警方法。行人探測器由Opencv訓(xùn)練,并且訓(xùn)練12級行人探測器。通過在處理器上使用檢測器,實現(xiàn)視頻圖像的行人檢測功能。另外,通過使用可變步長和分區(qū)掃描跟蹤方法,增大了檢測率,實時檢測的要求基本達到。采用均勻化預(yù)處理和多尺度融合技術(shù)提高了檢測過程中檢測率;通過直方圖均衡辦法有效地剔除了光影等因素對測試結(jié)果的影響;在測試完成后,通過多尺度融合技術(shù)消除冗余部分的測試結(jié)果,最終提高檢測率,降低誤報率。
1訓(xùn)練分類器
訓(xùn)練分類器的就是先選擇樣本,再對樣本進行離線訓(xùn)練。訓(xùn)練分類器的過程如圖1,首先選擇訓(xùn)練樣本集即選擇正樣本集和負樣本集,再通過開源軟件opencv的程序來完成訓(xùn)練分類器的訓(xùn)練。
1.1選擇樣本
我們將HKPC得到的行人樣本作為正訓(xùn)練樣本集;負樣本集采用INRIA樣本集即沒有行人的任何圖片。我們使用了4454份行人正面樣本和9萬份INRIA負樣本。訓(xùn)練的樣本如圖2。
1.2創(chuàng)建級聯(lián)分類器
創(chuàng)建Ada Boom級聯(lián)分類器即使用opencv的開源代碼來完成。首先新建2個文件夾,一個在其儲存4454個正樣本,一個保存9000個負樣本。然后新建文本文檔,類似img/1.jpg 100 20 40…其中20是檢測窗口的初始寬,40是檢測窗口的初始高。接著創(chuàng)建文本文檔,類似于-img/1.ipg…。接著運行程序,將正樣本文件轉(zhuǎn)成vec文件。最后運行程序?qū)⒌玫降膙ec文件和負樣本一起作為參數(shù)并訓(xùn)練分類器,訓(xùn)練24小時。部分訓(xùn)練參數(shù)見表1。
1.3數(shù)據(jù)分析
從表中可以看出,在少數(shù)情況下,前者的強分類器才具有特征的數(shù)量
超過強分類器中包含的數(shù)量。在宏觀上,具有大數(shù)字的強分類器通常包含更多的特征。
2行人檢測
行人檢測流程圖如圖3所示,首先,捕獲并輸入視頻圖像,然后預(yù)處理圖像。接著利用不同尺度的檢測窗口對整個檢測圖像進行掃描,以確定檢測窗口中是否有行人,若發(fā)現(xiàn)有行人,則觸發(fā)警示系統(tǒng)進行提醒。行人檢測的主要過程如圖3所示。
2.1圖像灰度化
通過攝像頭來獲得原始圖像,將原始圖像數(shù)據(jù)通過DSP(數(shù)字信號處理器)進行處理,將YUV格式的圖像數(shù)據(jù)存儲在存儲器中。具體過程為每幀后將新的原始圖像的輸入,就會觸發(fā)一個中斷,這個中斷可以把RGB格式的圖像轉(zhuǎn)換成YUV格式的圖像數(shù)據(jù)保存在內(nèi)存中。圖像獲取過程如圖4。
在YUV格式圖像中,Y表示圖像的灰度值,UV表示色差的兩個分量。由于我們只需要測試圖像的圖像灰度值,因此可以直接忽略UV值。所以在檢測中只需要得到Y(jié)分量數(shù)據(jù)即就可以得到灰度圖像。
2.2檢測窗口掃描
由于利用Ada Boost方法特征是穩(wěn)定的,所以只需將計算出的特征值除以分類器的閾值,并且除以檢測窗口的面積,就可以任意改變檢測窗口而不會影響結(jié)果的判斷。在行人檢測過程中檢測每次放大比例為1.25為最佳效果。如圖5是誤檢以及漏檢的情況。
從統(tǒng)計的行人檢測數(shù)據(jù)中,如表3所示。檢測率僅為84%,漏檢的圖像大;誤檢率為34%,雖然比一個弱分類器的能力強,但遠離實際需要;并且該速度滿足不了實時的檢測。
3檢測性能提升
3.1預(yù)處理輸入圖像
(1)對輸入圖像做直方圖均衡化預(yù)處理,以減少光照陰影對檢測的影響。
(2)訓(xùn)練分類器和分類器的檢測過程都需要對特征值進行歸一化處理,以獲得更好的適應(yīng)性,防止檢測過程中出現(xiàn)嚴(yán)重的過度擬合現(xiàn)象。
(3)對感興趣區(qū)域中的待檢測圖像進行有針對性的檢測。首先通過邊緣檢測找到行人可能存在的位置,然后使用分類器進行掃描檢測。本文中使用sobel算子來提升檢測速率。
3.2掃描速度的提升
例如檢測窗口大小為w×h,輸入圖像的大小為W×H,則用式1可以得到檢測判斷的次數(shù)。圖片的計算量非常大,這個過程占用了70%以上的檢測時間。因此,提高檢測率的方法就是要解決實時檢測的問題
掃描速度的提升我們通過變速掃描窗口來實現(xiàn)。即當(dāng)檢測窗判斷輸出為0時,增加窗口掃描步長;當(dāng)檢測窗輸出為1,減小掃描步長;我們設(shè)置最大掃描步長Vmax,以避免超出窗口。
此外,我們可以進一步提高檢測率,在前兩級聯(lián)分類器的強分類器逐行掃描的幫助下,然后去除虛警區(qū)域用完整的級聯(lián)分類器掃描得以完成。因為前一級強分類器檢出率高率而且對最終檢測率沒有影響,所以加快檢測速度可以進行兩次掃描來完成,并且實現(xiàn)實時檢測。兩次掃描過程如圖6。
3.3多尺度融合
為了實現(xiàn)每個目標(biāo)只有一個輸出的目標(biāo),必須刪除多余輸出。只有當(dāng)一個組中有三個以上的相鄰矩形時,才可以將行人包含在該組矩形所在的區(qū)域。因此,多尺度融合有利于降低檢測結(jié)果的誤報率。遍歷檢測行人的子窗口后,找到相鄰的子窗口,以相鄰窗口的坐標(biāo)位置和寬度作為最終的輸出子窗口。
算法優(yōu)化后的檢測數(shù)據(jù)如表4所示,表中第一行為沒有優(yōu)化處理的數(shù)據(jù),第二行為經(jīng)過多尺度融合和方差歸一化方法提升后的數(shù)據(jù),第三行顯示的是在方法提升后的情況下加入了快速掃描算法后的數(shù)據(jù)。分析數(shù)據(jù)可知多尺度融合和方差歸一化有利于增加檢出率、較小誤檢率,但是檢測速率會有一點的降低;本文中通過快速掃描提高檢測速率。
4結(jié)論
基于AdaBoost的行人檢測預(yù)警方法有效地實現(xiàn)了行人的檢測,近一步的預(yù)警的實現(xiàn)保護了行人的安全。該方法首先在圖像檢測中訓(xùn)練級聯(lián)分類器。進而得到的分類器用來掃描視頻圖像中的多個區(qū)域,確定局部區(qū)域是否有行人,若有行人就會觸發(fā)語音提示,即預(yù)警提示。該方法采用圖像預(yù)處理和多尺度融合技術(shù)增加檢測的準(zhǔn)確率,減小誤報率。并且對檢測的窗口進行變速掃描和兩種掃描方式提高檢測率。所以基于Ada-Boost的行人檢測預(yù)警方法不僅可以有效地檢測出行人并且可以進行預(yù)警提示,而且提升了性能,可以有效大力的推廣使用。