王德才,秦亮曦(廣西大學 計算機與電子信息學院 計算機系,南寧 530004)
基于LBP特征和AdaBoost的行人檢測方法
王德才,秦亮曦
(廣西大學 計算機與電子信息學院 計算機系,南寧 530004)
行人檢測在智能汽車、監(jiān)控系統(tǒng)和高級機器人等領域有廣泛的應用。針對低分辨率和需要實時處理的行人檢測應用場景,提出了采用一致化LBP直方圖特征結合AdaBoost分類器的高效行人檢測方法。在AdaBoost的訓練過程中,采用了CART(Classification And Regression Tree)作為弱分類器,并結合基于Gini不純度的剪枝方法,有效地提高了訓練速度和分類器的性能。針對Caltech行人檢測數(shù)據(jù)集的實驗結果表明,基于LBP特征和CART弱分類器的AdaBoost分類行人檢測方法具有較好的性能。
行人檢測;局部二值模式;AdaBoost方法;分類回歸樹
行人檢測[1](Pedestrian Detection)技術是計算機視覺學科中快速發(fā)展的一個領域,其研究成果在智能汽車、監(jiān)控系統(tǒng)和高級機器人應用等方面起著十分重要的作用。行人檢測的研究來源于各類應用的真實需求,有很強的應用背景和市場價值,比如在汽車輔助駕駛系統(tǒng)和視頻場景監(jiān)控等領域,行人檢測已經(jīng)開始廣泛應用。行人檢測的研究成果最終要為應用服務,傳統(tǒng)的行人檢測平臺如車載輔助駕駛系統(tǒng)往往采用復雜和昂貴的采集設備來獲取較高質(zhì)量的視頻或圖像輸入,并且使用專用計算設備來提高處理速度。而近年來計算機硬件能力的快速提高使得嵌入式設備以及移動智能設備已經(jīng)基本具備實時行人檢測的能力,為行人檢測系統(tǒng)的小型化和快速普及帶來了機遇。本文基于這一考慮,針對低分辨率和實時處理的應用場景,提出了采用一致化LBP直方圖特征結合AdaBoost分類器的高效行人檢測方法。
1.1LBP的基本概念
LBP[2](Local Binary Pattern,局部二值模式)是一種用來描述圖像局部紋理特征的描述符(Operator),LBP被提出以來,由于其簡單有效的特點,被廣泛應用于運動對象檢測等場合。
原始的LBP描述符(LBP Operator)定義為在3*3像素的窗口內(nèi),以窗口中心即第二行第二列的像素的灰度值為基準,與其相鄰的8個像素的灰度值進行比較,若周圍像素值大于中心像素值,則該像素點的位置被標記為1,否則為0,因此被命名為“二值模式”。
LBP算子有效地提取了圖像某一小塊區(qū)域內(nèi)的灰度變化特征,這是因為對于恒定的區(qū)域,所有方向的灰度值差均為0。對于緩慢的斜邊,該算子記錄了梯度方向最大的差值,沿著邊的方向差值為0。
對于獨立于背景的一個斑點,所有方向的差分都很大??傊?,對一幅圖像提取其原始的LBP值,用所得的LBP值應該仍能有效表示該圖片。
1.2一致化LBP模式
LBP描述符經(jīng)過擴展后將形成不同二進制模式,以最常用的圓形區(qū)域LBP描述符為例,在采樣區(qū)域含有N個像素點的LBP運算符共有2N種模式。由于過小的采樣區(qū)域無法描述足夠的圖像信息,常見的N取值都較大,而較大的模式取值范圍形成了典型的高維描述符,給進一步有效處理帶來了很大困難。同時,過多的模式種類對于紋理的表達是不利的。針對這一情況,學者們提出了多種解決辦法。LBP原作者提出的一致化LBP模式[3](Uniform LBP,又稱為均勻模式)是其中一種重要方法。這一方法建立在大量統(tǒng)計結論的基礎之上,即如果將二進制數(shù)字串出現(xiàn)從0到1或者從1到0的一次變化稱為跳變,則真實圖像中大部分LBP模式二進制字串最多只會出現(xiàn)兩次跳變。例如1111111111左移一位還是1111111111,沒有跳變,即跳變次數(shù)為0,這兩個二進制串互為Uniform;000011111左移一位為000111110,跳變次數(shù)為2,這兩個二進制串互為Uniform;10100000左移一位為01000001跳變次數(shù)為3,這兩個二進制串不互為Uniform LBP。根據(jù)Unifrom的定義,對LBP模式值的定義可以更新為針對Uniform模式的公式(1):
在上式中,函數(shù)U被定義為公式(2):
根據(jù)上述定義可以推導出在256位的LBP模式中,Uniform格式占85%~90%,而256位LBP模式下,Uniform LBP共有58個特征。所以256位的LBP分類特征向量可以由256維降為58維+1維共59維,多出來的1維指代所有不是Uniform LBP的特征向量。
Ojala等人的研究指出,Uniform LBP在局部紋理描述上取得了較好的描述效果,原因在于,U-niform LBP的各種模式占據(jù)了圖像中所有模式的絕大部分。不同采樣半徑和周圍像素點個數(shù)會不同,但大量統(tǒng)計證明,Uniform LBP占據(jù)了所有模式的50%~95%。
1.3LBP直方圖
在基于LBP的行人檢測過程中,雖然可以考慮將LBP模式特征直接作為弱分類器中的訓練特征,但出于特征降維等考慮,一般都是采用圖像中LBP模式的統(tǒng)計直方圖作為該圖像的特征向量,即建立一個直方圖,以LBP的種類為橫軸,以每個種類出現(xiàn)的次數(shù)為縱軸。在實踐中,通常采取的步驟為:
(1)將圖像劃分為S*S的圖像子塊,計算每個子塊中每個像素的LBP值。
(2)對每個子塊進行直方圖統(tǒng)計,得出S*S圖像子塊的直方圖。
(3)利用S*S個子塊的直方圖,描述該圖像的紋理特征。
上述過程如圖1所示。
圖1 分塊LBP特征級聯(lián)形成圖像特征
2.1AdaBoost方法
在機器學習中,Boosting通常代表一類能夠提高任意給定學習算法準確度的方法,也就是說具有很強的通用性。Boosting算法最早出現(xiàn)在Valiant提出的PAC(Probably Approximate Correct,近似精確)學習模型中[3]。Valiant和Kearns提出了兩個概念,即“弱學習方法”和“強學習方法”,前者指代在二值判斷問題中,準確率僅略微高于隨機猜測,即正確率略微高于50%的判別方法;后者則具有較高的準確率,并能在多項式時間內(nèi)完成。
在Boosting算法的基礎上,F(xiàn)reund和Schapire進一步提出了自適應增強的Boosting算法,簡稱AdaBoost[4]。其算法的一般流程如表1所示。
表1 AdaBoost算法流程
從上述算法描述中可以看到,弱分類器在AdaBoost中起著關鍵作用。一個弱分類器由一個特征y,閾值t和指示不等號方向的p組成,如公式(3)所示。
在AdaBoost中選取一個最佳弱分類器,就是選擇那個對所有訓練樣本的分類誤差在所有弱分類器中最低的那個弱分類器。許多能有效解決數(shù)據(jù)分類問題的算法,都可以被AdaBoost算法用作弱分類器,其他常用的弱分類器包括CART(Classification And Regression Tree,分類回歸樹)、GD (Gradient Descend,梯度下降方法)、SVM(Support Vector Machine,支持向量機)等等。
本文將采用改進的CART作為AdaBoost的弱分類器。
2.2CART弱分類器
CART[4]的基本原理是通過二分遞歸分割技術生成二叉樹。過程是通過每次決策將當前的樣本集分為兩個子樣本集,使得生成的決策樹的每個非葉子節(jié)點都有兩個分支。決策樹的葉節(jié)點表示決策,內(nèi)部每個分支都是決策過程。從根部開始,每個決策結果指向下一層決策,最后到達葉節(jié)點,得到最終的決策結果。
下面討論CART算法的兩個主要步驟,即建樹過程和剪枝過程。
2.2.1CART建樹過程
前面已經(jīng)提到CART算法的基本原理是運用遞歸劃分技術生成二叉樹。這里假設待分類的樣本有n維特征,表示為向量X(x1,x2,x3,…,xn),而Y為所屬類別。具體遞歸劃分過程為:
第一步:選擇特征中的一維,在其取值范圍中選取一個閾值delta,以該閾值為分割點,將n維特征空間劃分為兩部分。
第二步:遞歸上述步驟,即選取特征中新的一維,再次劃分,直至將n維空間全部劃分完畢。
上述過程的關鍵在于如何選取劃分點。對于本文所述的圖像LBP特征來說,判斷待檢測圖像包含或不包含行人特征是典型的分類問題,于是在應用CART算法進行分類時,需要先列出劃分為兩個子集的所有可能組合,并通過計算某種度量(Metrics)來比較每種組合劃分的優(yōu)劣??捎米鰿ART劃分判斷的度量有多種,如信息增益(In formation Gain)、方差約簡(Variance Reduction)等,但最常用的是采用Gini Impurity(Gini不純度)來表示當前分類的雜亂情況。具體計算時,Gini impurity衡量的是從一個集合中隨機選擇一個元素,基于該集合中標簽的概率分布為元素分配標簽的錯誤率。對于任何一個標簽下的元素,其被分類正確的條件概率可以理解為在選擇元素時選中該標簽的概率與在分類時選中該標簽的概率。
對于有m類樣本的集合,設i∈{1,2,…,m},令fi表示屬于第i類,則Gini Impurity的計算方式如公式(4)所示:
在公式(4)中,即1減去所有分類正確的概率,得到的就是分類不正確的概率。當IG(f)為0時,當前分支下的所有樣本已經(jīng)屬于同一類。
在劃分點選擇時,計算不同選擇的Gini不純度,選擇使該不純度較小的劃分方式,即可不斷遞歸生成CART分類樹。
2.2.2CART剪枝過程
在CART的建樹過程中,由于訓練數(shù)據(jù)中的噪音或孤立點,許多分枝反映的是訓練數(shù)據(jù)中的異常,即產(chǎn)生了過擬合(Over Fitting)。使用這樣未經(jīng)處理的決策樹對類別未知的數(shù)據(jù)進行分類,分類的準確性不高。因此需要通過一定的方法檢測并刪去這些分支,這一過程被稱為剪枝(Pruning)。與常見的剪枝方法不同,CART的剪枝是已經(jīng)建立決策樹后,再去掉不必要的分支或子樹,即所謂后剪枝(Later Pruning)。通過有效的剪枝,可以簡化決策樹的區(qū)分過程,實現(xiàn)快速分類,并且解決過擬合問題造成的泛化能力下降問題。有研究表明,剪枝過程對于生成最優(yōu)決策樹十分關鍵。
CART常用的剪枝方法包括錯誤率降低剪枝、悲觀剪枝以及代價復雜度剪枝等,其中代價復雜度剪枝方法所生成的決策樹性能較好,其算法步驟如下:
第一步:輸入為由CART算法所生成的一棵原始決策樹T0,并設k=0,T=T0,α=+∞。
第二步:從子樹序列中,根據(jù)樹的真實誤差估計選擇最佳決策樹,具體做法是:自下而上對CART樹中的各個內(nèi)部節(jié)點t計算R(t)=r(t)*p (t),其中r(t)為節(jié)點t的誤差率,p(t)為節(jié)點t上的數(shù)據(jù)占所有數(shù)據(jù)的比例。然后以R(t)帶入下式計算每一個內(nèi)部節(jié)點作為根所對應子樹T的誤差值alpha,如公式(5)為:
第三步:自上而下的訪問各個內(nèi)部節(jié)點t,如果有
則剪去t為根的子樹,并對剩下的葉節(jié)點t以多數(shù)表決法確定其類。
第四步:調(diào)整k=k+1,αk=α,Tk=T
第五步:如果T還有葉子節(jié)點,則繼續(xù)第三步的判斷和剪枝過程。
第六步:采用交叉驗證法在子樹序列T0,Tk1,Tk2,…,Tn中選取最優(yōu)子樹 T0作為剪枝的輸出結果。
由于CART方法在生成樹中引入了不純度進行判斷,并在剪枝過程中引入CCP代價復雜度,因而在處理高維特征以及樣本包含缺失值、異常值等情況下比簡單Decision Stump方法更為穩(wěn)定;同時,算法規(guī)則較為簡便,運行效率高,適合用于作為AdaBoost算法中的弱分類器。
通過分類器訓練過程得到級聯(lián)分類器后,就可以用于行人檢測。級聯(lián)分類器的檢測過程如圖2所示。
圖2 級聯(lián)分類器行人檢測過程
在圖2中,待檢測的圖像在經(jīng)過降噪等預處理之后進入檢測過程。這一過程的細節(jié)如下:
(1)先以一定的比例將原始大小的圖像縮小為若干不同尺度,一般可將原圖像每次縮小60%~80%。
(2)用n×n的滑動窗口遍歷每個尺度的圖像,并循環(huán)將滑動窗口覆蓋區(qū)域送入級聯(lián)分類器分類。
(3)分類器實現(xiàn)對n×n大小子圖片的分類判斷,并記錄相應位置。
(4)進行重疊區(qū)域合并等后期處理,形成最后的檢測結果。
實驗的硬件環(huán)境為一臺浪潮服務器,n×n型號為 NF5270M4,CPU為雙 IntelXeonE5-2600V3,內(nèi)存192 G,磁盤1T SATA*2。軟件操作系統(tǒng)為Linux,發(fā)行版本為CentOS 6.5。
訓練和測試數(shù)據(jù)集均采用加州理工行人檢測數(shù)據(jù)集[5](Caltech Pedestrian Detection Dataset)。
為了比較不同弱分類器對AdaBoost訓練過程的影響,本文對比了采用單層決策樹(Decision Stump)、CART決策樹和支持向量機(SVM)作為弱分類器進行AdaBoost訓練所得級聯(lián)分類器的性能。其中CART弱分類器的決策過程和剪枝過程如前文所述,而SVM分類器采用了文獻[5]中的設置,采用線性SVM分類。
本實驗從Caltech行人檢測數(shù)據(jù)集的set0-set5中選擇了3 000張圖像作為訓練集進行分割,并根據(jù)Annotation文件中的Ground Truth信息分離出正負例樣本進行分類器訓練。圖3顯示了這三種弱分類器所訓練的級聯(lián)分類器ROC曲線。
圖3 三種弱分類器訓練結果性能對比
從圖3可看出,當弱分類器采用CART時,性能明顯優(yōu)于單層決策樹和SVM。
近年來,隨著計算機硬件能力的快速提高,嵌入式設備以及移動智能設備已經(jīng)基本具備實時行人檢測的能力,為行人檢測系統(tǒng)的小型化和快速普及帶來了機遇。本文針對低分辨率和實時處理的應用場景探討行人檢測的新方法,提出基于LBP特征和CART弱分類器的AdaBoost分類行人檢測方法。實驗結果證明該方法具有一定的有效性。
[1]蘇松志,李紹滋,陳淑媛,等.行人檢測技術綜述[J].電子學報,2012,04:814-820.
[2]Ojala T,Pietik,Inen M,et al.Multiresolution Gray-Scale and Rotation Invariant Texture Classification with Local Binary Patterns[J].IEEE Transactions on Pattern Analysis&Machine Intelligence,2002,24(7):971-987.
[3]Freund B Y,Schapire R.A decision-theoretic generalization of n-line learning and an application to boosting[J]. Journal of Computer&System Sciences,2010,55(7):119-139.
[4]Zhang J,Li X,Wu B.Forest Cover Estimation based on Classification and Re gression Trees of Miyun Reservoir Upstream Area[J].Remote Sensing Technology&Application,2014.
[5]Dollár P,Wojek C,Schiele B,et al.Pedestrian detection: an evaluation of the state of the art.[J].IEEE Transacti ons on Pattern Analysis&Machine Intelligence,2012,34 (4):743-761.
Method of Pedestrian Dection based on LBP Features and AdaBoost
WANG De-cai,QIN Liang-xi
(Department of computer,School of computer and electronic informatiobn,Guangxi University,Nanning 530004,China)
Pedestrian detection is rapidly evolved in intelligent vehicles,surveillance,and advanced robotics.In this work we introduce a pedestrian detection method of combining LBP(Local Binary Pattern)feature of images and AdaBoost process together to aim at low resolution pedestrian detection application scenarios which need real time processing.In the training process of AdaBoost,the CART (classification and regression tree)as weak classifiers is used,and combined with the pruning method based on Gini impurity the training speed and classification performance is effectively improved.Results of the experiments show that our method is not only efficient in processing speed but also obtain fairly accuracy.
pedestrian detection;LBP;AdaBoost;CART
TP391.41
A
1673-2022(2016)03-0051-04
2016-06-30
王德才(1982-),男,海南安定人,工程師,計算機工程碩士研究生,研究方向為計算機視覺、機器學習。