曾 輝,謝森林
(韓山師范學院物理與電子工程學院,潮州 521000)
Adaboost是一種基于統計的學習算法。在學習過程中,它可以不斷地根據事先定義好的特征所起的效果調整該特征的權值,最終按照特征的性能由好到壞給出判斷準則[1]。該算法在人臉識別上,具有檢測速度快、精度高的優點,是當前人臉識別算法的主要研究方向。但由于需要對所有可能的檢測窗口進行窮舉搜索,因此計算復雜度高;而且這類方法需要消耗大量的時間和精力收集和訓練樣本,特別是在對非人臉樣本的選取上存在很大的困難[2]。現有系統還存在對限制條件要求較嚴格、魯棒性較差、誤檢率過高等缺點,這些也限制了Adaboost算法的應用范圍。
由于Adaboost算法在選取非人臉樣本時比較困難,當前研究的熱點就在于如何利用需要識別對象的特性,如:顏色、紋理、灰度分布、幾何形狀、運動等知識構建適應性強、分割精度高的快速算法[3]。基于上述思路,本文將3D形變建模技術與AdaBoost算法相結合,提出一種新型算法:3D Adaboost,并應用到運動車輛的視頻檢測及識別上。
一個完整的車輛識別系統一般由兩大部分組成:一是車輛檢測(Vehicle Detect);二是車輛識別(Vehicle Identification)。其一般流程如圖1所示。

圖1 車輛識別系統流程
Adaboost算法的優勢在于:設計者可以不斷地加入新的弱分類器,從而獲得盡可能小的誤差率。該算法運行時,將盡可能地排除已經認定為準確的樣本點,而沒有被認定為準確的樣本點的權重將被加大,然后繼續識別,如此反復。Adaboost算法在T輪過后,能夠將重點集中在信息更豐富的樣本點上,從而達到從弱訓練到強訓練的目的[4]。
AdaBoost算法由于其本身特性,其缺點主要體現在以下兩個方面:第一,當訓練樣本及其特征較多的時候,訓練時間會被無限延長;第二,在實際檢測中,由于光照、圖片拍攝角度等因素,AdaBoost算法就會對側面樣本或者旋轉樣本產生錯誤識別[5]。
3.2.1 3D AdaBoost算法過程介紹
針對上文所述AdaBoost算法的缺陷,本文將3D形變建模技術與AdaBoost算法相結合,提出一種新型算法:3D Adaboost。以期減少識別消耗的時間,進一步提高識別的準確率[3]。
3D AdaBoost算法過程如下:
對t=1,…,T:


按照這個最佳的弱分類器,加權重調整:

式中,ei=0表示xi被準確地識別分類;ei=1表示xi被錯誤地識別分類。
得到最后的強分類器為

3.2.2 3D形變建模算法過程介紹
本課題采用的3D AdaBoost算法,重點在于如何對運動車輛進行3D建模。我們知道,車輛圖像建模時,由于受到視角變換、光線改變等因素的影響,如何利用有限數量的一般模型,通過線性組合,從而標識任何一個3D車輛圖像,是我們要解決的主要問題。

使用分析工具PCA對車輛圖像進行壓縮,再把基底變換到一個由對應坍方差距陣的特征值按降序排列對應的特征向量和形成的坐標系下[6]:


3D AdaBoost車輛檢測算法流程圖如圖2所示。

圖2 3D AdaBoost車輛檢測算法流程圖
本課題的測試平臺分為離線訓練和在線識別兩部分。如圖3所示,由于Adaboost訓練算法由弱分類器組合成強分類器的這個過程運算量大,需要時間長。所以本課題采用離線訓練的方式,學習在不同環境下采集到的車輛樣本(真樣本)和非車輛樣本(假樣本),不占用系統檢測時間。在線識別部分,依據離線訓練的結果來進行權重、弱分類器的操作,通過安裝在車上的CCD采集道路圖像,在上位機上進行實時的檢測和識別,從而判斷車輛位置及類型[7]。這部分運算量少,所需時間短。

圖3 車輛檢測算法流程圖
路面測試效果圖如圖4所示

圖4 系統路面測試效果圖
測試結果見表1。

表1 路面實測車輛識別正確率
實驗數據表明,本文提出的3D AdaBoost算法相對傳統算法,所需要的特征維數更低,可節約匹配時間[3]。同時,在對車輛識別正確率上,本文提出的3D AdaBoost算法識別正確率也高于傳統算法。
本課題融合3D形變建模和AdaBoost算法,提出了一種新型識別算法3D AdaBoost,并將其運用到運動車輛檢測上。實驗證明,在視角變化、光照改變的情況下,此算法均性能良好。特別是在車輛相對于觀測點側面運動時,該算法識別準確率相對于傳統的算法有較大提高。當然,由于其還是基于AdaBoost算法的基礎上實現,對于離線訓練部分,其訓練時間相對于識別時間,還是較長。