楊 英,劉衛國,鐘 令,李亞文
(1.東北大學機械工程與自動化學院,遼寧沈陽110819;2.浙江省汽車安全技術研究重點實驗室,浙江杭州311228)
道路行人識別的核心是利用安裝在運動車輛上的攝像機檢測行人,從而估計出潛在的危險以便采取策略保護行人[1]。基于統計分類的方法是通過機器學習,從一系列訓練數據中得到一個分類器,利用該分類器對輸入窗口圖像進行識別,并判斷是否為行人[2]?;诮y計分類方法的優點是魯棒較好,但是需要很多訓練數據,實時性差。目前,基于統計分類方法識別行人主要類型有:神經網絡、支持向量機和AdaBoost方法。神經網絡方法可以描述極為復雜的模式,已經成功地應用在字符識別和人臉檢測上,它在行人的檢測上也有應用,但實時性和魯棒性都不夠理想。支持向量機是基于結構風險最小化原理的統計學習理論,該方法比神經網絡方法具有更好的泛化能力。Ada?Boost是一種分類器組合的策略,它的目的是將一些弱分類器組合成一個強分類器,廣泛應用于模式識別和計算機視覺領域[3]。
本研究提出一種基于AdaBoost 的行人檢測優化算法,該算法在行人識別分類器訓練時,通過在線更新分類器錯誤率權重,實時調整權重系數,并采用擴展的類Haar 特征,在保證分類器準確率的前提下,降低分類器的級數,減少分類器識別行人所需時間,減少計算的復雜性,滿足實時性要求。
AdaBoost 是一種構建準確分類器的學習算法,該算法包括兩個基本問題[4]:一是每一輪循環中訓練集上的樣本權重如何分布;二是多條弱規則如何合并成為一條準確的預測規則。
傳統的AdaBoost 算法,將訓練集中的每一個樣本集賦予相同的權重ω。然后,進行迭代運算。該算法根據每次迭代運算中樣本集的分類錯誤率εt,對訓練集中的每一個樣本集重新賦予一個新的權重值ωt。ωt是一個與εt相關的函數,即分類錯誤率小的樣本集權重值小,反之,分類錯誤率大的樣本集權重值大。
它含兩個步驟[5]:

式(1)為樣本權重更新過程,式(2)為樣本集歸一化過程。在傳統的AdaBoost 算法中,當單個樣本權重更新時,如果前一輪弱分類器分類錯誤,則那些樣本的權重不斷增大,結果每輪產生的弱分類器的錯誤率相對增大,并在最后的加權投票中所占的權重變得很小。
權重與分類錯誤率密切相關,分類錯誤率由兩部分構成:一是正樣本錯分率(False Positive Rate,FPR),即包含行人的正樣本,沒有檢查出來;二是負樣本的錯分率(False Negative Rate,FNR),即不包含行人的樣本,檢查出來是行人。為了能夠準確地描述錯分率,權重更新過程應該同時考慮正負樣本錯分率,因此,將式(1)的擴展為:

式中:k—調節因子,可以調節或改變樣本權重。
為了研究樣本權重對分類錯誤的影響規律,正、負樣本分布有3 種情況:①正、負樣本的分布比較均勻;②正樣本分布比較集中,負樣本分布比較分散;③負樣本分布比較集中而正樣本分布分散。為了描述樣本權重與分類錯誤率的關系,本研究進行仿真實驗。
本研究將正、負樣本的分布通過二維平面內的點集進行仿真分析。用實心點表示正樣本,空心點表示負樣本。在Matlab 下,由rand 函數隨機生成一組點集,如圖1所示,每個點集都包含1 000 個數據。點集1中正樣本750個,負樣本250個,分別仿真3種不同分布情況,在AdaBoost 訓練過程中,僅用樣本點的坐標(x,y)作為簡單特征。為了分析FNR和FPR對新的權重更新方法的影響,本研究使用全局歸一化權重方法,并保持k=1不變。

圖1 樣本點集
通過大量仿真實驗得出:
(1)當負樣本分布比較集中而正樣本分布分散時,適合通過(1-FPR)作為指數修正樣本權重,增加算法對正樣本的重視度;
(2)對于正樣本分布比較集中而負樣本分布分散的情況,用(1-FNR)作為指數修正樣本權重更適合,增加算法對負樣本的重視度;
(3)當正負樣本分布比較均勻時,根據需要可使用(1-FPR)或(1-FNR)作為指數來修正樣本權重,可以達到相同的效果。
通過對權重與分類錯誤率的關系進行實驗分析,本研究采用了一種閾值自適應的權重更新算法[6],這種算法的優勢在于可以根據需要,限制FNR或FPR的值。在AdaBoost訓練過程中,研究者先關注正樣本的分類正確率,當FNR降低足夠小以后,再注重整體的誤差率,盡量降低負樣本的錯分率。閾值自適應權重更新算法:
(1)初始化,樣本權重初始值為1/N,N為樣本總數;
(5)全局歸一化樣本集,進入下一輪訓練。
注:f1—正樣本的錯分率;f2—負樣本的錯分率。并且f1<f2,k<1。
閾值自適應的樣本權重更新優化方法可以在保證整體誤差率一定的情況下,在更少的訓練輪數內迅速降低FNR的值。
目標特征的選取是實現目標檢測的重要環節之一。類Haar 特征是行人檢測領域中廣泛運用的一種常見特征,但由于其易受光照變化等因素的影響,該特征僅適用于靜態目標檢測。本研究針對行人運動情況和光照情況定義了一個新的對角線特征,該擴展特征能夠根據兩幀圖片的不同提取運動信息從而提高特征的魯棒性[7]。擴展的類Haar 特征如表1所示。

表1 圖像(16×32)特征模板數量
本研究利用OpenCV 進行樣本特征提取和強、弱分類器的訓練,形成用于確定行人候選區域的級聯分類器。其中,所設置的訓練階段數為N=24,檢測子窗口的大小為16×32,計算得到子窗口類Haar 特征數量如表1所示。所設置的每個階段分類器的最小命中率為0.995,總的錯誤警告率0.5。
訓練得到的行人分割級聯分類器包含24 個強分類器,每個強分類器包含了不同個數的弱分類器,每個弱分類器由一個Haar特征、閾值和指示不等號方向的組成,對于本研究的矩形特征來說,弱分類器的特征值就是上面計算的矩形特征的特征值。訓練得到的前5 個強分類器中所包含的類Haar 特征及其數量如表2所示。

表2 前5個強分類器的類Haar特征數量
AdaBoost 算法是一種分類器算法,是利用大量的分類能力一般的簡單分類器通過一定的方法疊加起來,構成一個分類能力很強的強分類器,再將若干個強分類器串聯成為級聯分類器完成圖像搜索檢測。具體訓練步驟如下[8]:
(1)給定N個訓練樣本組成的集合、弱分類器空間H。其中:xi—樣本特征向量,yi—對應于行人假樣本和真樣本,。已知訓練樣本包含有k個假樣本,l個真樣本,N=k+l。
(3)對于每個t=1,2,…,T(其中:T—訓練次數)進行如下操作:
①歸一化權重:

②對每個特征j,訓練得到相應的弱分類器hj(x):

式中:pj—不等式的方向,只能取±1;fj(x)—特征值;θj—閾值。
③計算弱分類器的加權錯誤率εj:

④選擇具有最小誤差εt的簡單分類器ht(x)加入到強分類器中去:

⑤按照這個最佳的簡單分類器ht(x),采用前文1.3節中的閾值自適應方法,更新每個樣本所對應的權重。
(4)經過T次迭代后,獲得了T個最佳弱分類器ht(x),h2(x),…hT(x),可以將它們按照下面的方式組合成一個強分類器:

其中:?t=log[(1-εt)/εt]。
算法訓練分類器的特點是:當提取的分類器對于某些樣本分類正確時,減小這些樣本的權重;反之,則增加這些樣本的權重。其結果是,后序訓練的簡單分類器就會更加強化對這些分類錯誤樣本的訓練,根據訓練數據,取f1=0.054 3,f2=0.298 1,k=0.333 3。
為了驗證算法的有效性,本研究將該算法采用Vi?sual C++6.0編程實現。行人分類檢測系統在2.2 GHz的處理器1.00 GB 的內存,WINDOWS XP 操作系統上運行,分類器訓練是在OpenCV軟件平臺上進行,并將該程序加載訓練得到的分類器,實現圖像中行人候選區域的在線分割。
訓練樣本包括兩個行人圖像數據庫樣本,第一樣本庫選取2 700 個來自MIT 數據庫的行人圖像,第二樣本庫是來自東北大學校園的1 188 個拍攝圖像,訓練樣本庫中部分樣本圖像如圖2所示。訓練樣本分為真樣本和假樣本,訓練樣本是通過手工標定的方法獲取,它們的尺寸被統一進行縮放成320×240 大小的圖像。
通過在校園內試驗分析,該試驗得到了較好的效果,基本可以把行人分割出來。

圖2 訓練樣本庫中部分圖像
本研究采用上述樣本分別采用傳統和改進兩種方法進行分類器離線訓練,得到行人識別分類器,再應用采集的118幅圖像作為測試集,判斷分類器性能,部分圖像的行人區域分割結果如圖3所示。從圖3中可以看出,該算法取得了很好的行人定位效果。

圖3 行人檢測結果
兩種方法的對比試驗結果如表3所示??梢姼倪M后的算法實時性好,檢測速度快,系統檢測一幅320×240大小的圖像需要的時間僅為0.308 s。在保證檢測準確率的前提下,提高了行人檢測的實時性。跟傳統的行人分割方法比較,基于AdaBoost 算法行人分割算法在速度方面具有很大的優越性。

表3 傳統與改進AdaBoost 算法對比
本研究提出一種基于AdaBoost 算法的新的行人檢測方法,針對類Haar特征易受光照變化等因素的影響,對其進行了改進和擴展,增強了其光照不變性;然后,筆者對AdaBoost 算法加以改進,提出了閾值自適應的權重更新方法,該方法可以在保證整體錯分率一定的情況下,有效地限制正樣本的錯分率;也可以在保證整體錯分率一定的情況下,根據實際需要限定正樣本或負樣本的錯分率,明顯減少強分類器所需的特征數目,優化分類器結構,降低算法復雜性。試驗結果表明:在相同的誤檢率下,改進的AdaBoost 算法具備更少的檢測時間;在相同的訓練層數下,改進算法具有更高的識別率。
(References):
[1]賈慧星,章毓晉.車輛輔助駕駛系統中基于計算機視覺的行人檢測研究綜述[J].自動化學報,2007,33(1):84-90.
[2]常好麗,史忠科.基于單目視覺的運動行人檢測與跟蹤方法[J].交通運輸工程學報,2006,6(2):55-59.
[3]孔凡芝,張興周,謝耀菊.基于AdaBoost 的人臉檢測技術[J].應用科技,2005,32(6):7-9.
[4]呂慧娟,武 澎.基于改進的AdaBoost 算法的人臉檢測[J].河南大學學報:自然科學版,2010,40(1):81-84.
[5]SUN Yi-jun,TODOROVIC S,LI Jian.Unifying multi-class AdaBoost algorithms with binary base learners under the margin framework[J].Pattern Recognition Letters,2007,28(5):631-643.
[6]武 妍,項恩寧.動態權值預劃分實值Adaboost 人臉檢測算法[J].計算機應用研究,2007,24(10):178-184.
[7]黃如錦,李 誼,李文輝,等.基于多特征的AdaBoost 行人檢測算法[J].吉林大學學報:理學版,2010,48(3):449-453.
[8]蔣 焰,丁曉青.基于多步校正的改進AdaBoost 算法[J].清華大學學報:自然科學版,2008,48(10):1613-1616.