石志強(qiáng),趙向東,李文軍,張 挺
(航天科工集團(tuán)第二研究院 207所,北京 100854)
計(jì)算機(jī)視覺(jué)處理是計(jì)算機(jī)人工智能的一個(gè)重要研究方向,它的最終目標(biāo)是通過(guò)計(jì)算機(jī)模擬人類視覺(jué),實(shí)現(xiàn)對(duì)現(xiàn)實(shí)場(chǎng)景的理解和推理。其中,對(duì)于輸入場(chǎng)景通過(guò)計(jì)算機(jī)實(shí)現(xiàn)目標(biāo)的自動(dòng)識(shí)別分類,即目標(biāo)識(shí)別,是實(shí)現(xiàn)計(jì)算機(jī)視覺(jué)的一個(gè)基礎(chǔ)部分,也是目前的一個(gè)研究熱點(diǎn)。比較成功的商業(yè)化應(yīng)用實(shí)例是人臉識(shí)別系統(tǒng),它是通過(guò)計(jì)算機(jī)對(duì)人臉的智能識(shí)別,實(shí)現(xiàn)對(duì)不同人身份的確認(rèn)。在人體識(shí)別方面,由于人體自身姿態(tài)、衣著的多樣性以及人體外觀變化大,目前尚沒(méi)有較為成熟的算法。
目前,人體識(shí)別主要有基于多模板匹配[1]、基于邊緣輪廓特征[2]和基于運(yùn)動(dòng)特征[3]等各種方法。然而,從實(shí)際效果來(lái)看,目前最好的是DALAL N和TRIGGS B提出的基于HOG特征的人體檢測(cè)方法[4]。DALAL N等人通過(guò)使用16×16大小的塊在檢測(cè)窗口中滑動(dòng),然后按一定方式統(tǒng)計(jì)塊中的梯度向量直方圖,將各個(gè)塊的梯度向量直方圖串聯(lián),組成特征向量,最終利用SVM對(duì)獲取的特征向量進(jìn)行訓(xùn)練,獲取分類器。按照該方法,如果選擇檢測(cè)窗口大小是 128×64,block 大小為 16×16,cell大小為4×4,bin分為 9個(gè)方向,每次 block移動(dòng) 8,那么獲得的向量大小為3 780維,檢測(cè)效果雖然理想,但是耗時(shí),難以達(dá)到實(shí)時(shí)性的要求。
本文通過(guò)對(duì)基于HOG特征的人體檢測(cè)算法進(jìn)行分析,提出了一種基于感興趣區(qū)域進(jìn)行HOG提取的算法。該算法在適當(dāng)影響檢測(cè)效果的條件下,能夠較好地減少計(jì)算量,達(dá)到提高計(jì)算速度的目的。
HOG是DALAL N等人在2005年提出的一種基于梯度的特征提取過(guò)程,它的內(nèi)容主要有4點(diǎn):(1)使用梯度作為特征提取對(duì)象,將梯度向量劃分為統(tǒng)計(jì)bin;(2)將梯度向量圖劃分為網(wǎng)格狀的cell,以cell為單位統(tǒng)計(jì)梯度向量直方圖;(3)以 block為單位,對(duì) cell進(jìn)行統(tǒng)計(jì),得到三維梯度向量直方圖,并進(jìn)行歸一化,減少局部光照的影響;(4)收集所有的 block,合并成最終圖像的HOG特征向量。
輸入圖像像素點(diǎn)(x,y)的梯度按如下方式來(lái)計(jì)算:
其中,Gx(x,y)、Gy(x,y)、H(x,y)分別表示圖像像素點(diǎn)(x,y)處 x方向、y方向的梯度以及原始點(diǎn)像素值。像素點(diǎn)(x,y)的梯度和梯度方向定義為:
整個(gè)提取過(guò)程各概念之間的關(guān)系如圖1所示。
圖1 block和cell示意圖
在HOG特征提取過(guò)程中,block窗口按固定方式在檢測(cè)窗口的梯度向量圖上進(jìn)行掃描獲取block塊內(nèi)的局部特征,特征向量是通過(guò)對(duì)每個(gè)block塊的特征進(jìn)行統(tǒng)計(jì)獲得的,整個(gè)HOG計(jì)算過(guò)程以block為單位。由圖1(b)可以看到,檢測(cè)窗口的大量block塊并不包含目標(biāo)信息,真正包含信息的block是包含行人邊緣輪廓的block。為了提高檢測(cè)效率,可以采取降維的方式,通過(guò)選取包含人體信息、對(duì)分類有顯著影響的block作為最終的特征,剔除掉不包含信息的block,可以顯著地減少行人的特征維數(shù),達(dá)到快速檢測(cè)的目的。
SVM[5]是基于Vapnik等發(fā)展的統(tǒng)計(jì)學(xué)習(xí)理論的支撐向量機(jī),具有相對(duì)優(yōu)良的性能指標(biāo)。通過(guò)算法的學(xué)習(xí)過(guò)程,SVM可以自動(dòng)尋找出那些對(duì)分類有較好區(qū)分能力的支持向量,構(gòu)造出性能良好的分類器。
線性SVM假設(shè)樣本是線性可分的情況下,尋找到一個(gè)可以使訓(xùn)練樣本完全可分的超平面將樣本分開(kāi),其本質(zhì)上是一個(gè)凸二次規(guī)劃問(wèn)題。該超平面描述為:
其中,“·”是點(diǎn)積,w是n維向量,b為偏移量。
已知一組獨(dú)立同分布的訓(xùn)練樣本:
和假設(shè)函數(shù)集:
其中,Rd表示輸入空間。
線性支撐矢量機(jī)可以歸納為如下二次規(guī)劃:
最小化:
約束條件:
其中,C>0為懲罰因子,其取值越大,對(duì)經(jīng)驗(yàn)誤差的懲罰也越大。
取p=1,通過(guò)Lagrange乘子方法,求原規(guī)劃式的Wolfe對(duì)偶規(guī)劃。
最大化:
約束條件:
求解上述二次規(guī)劃問(wèn)題,得到最優(yōu)的Lagrange乘子ai,那些對(duì)應(yīng)于Lagrange乘子大于零的訓(xùn)練樣本被稱為支持矢量。最終線性支持矢量機(jī)的判決函數(shù)具有如下形式:
將式(14)繼續(xù)整理,得:
令
得到:
由式(17)可知,|wj|越大,表示 xj是在行人識(shí)別中起較大作用的分量。因此,可以通過(guò)給出一個(gè)衡量block對(duì)分類影響大小的量block權(quán)重因子,通過(guò)對(duì)每個(gè)block權(quán)值的統(tǒng)計(jì),尋找出在人體檢測(cè)中有較大區(qū)分能力的block,重新組成表征行人的特征向量。
首先對(duì)判決函數(shù)按block重新整理:
定義第k個(gè)block權(quán)重因子:
圖2為改進(jìn)的二次訓(xùn)練對(duì)block重新選擇的過(guò)程。訓(xùn)練過(guò)程分為以下4步:
(1)利用線性SVM分類器對(duì)依據(jù)傳統(tǒng)HOG方法提取出來(lái)的特征進(jìn)行訓(xùn)練,得到支持向量的決策函數(shù);
(2)根據(jù)式(19)對(duì)步驟(1)得到的決策函數(shù)中的wkj進(jìn)行計(jì)算,得到各個(gè)block的權(quán)重因子;
(3)設(shè)定合適的閾值,選取權(quán)重因子高于閾值的block,即對(duì)分類影響較大的block作為二次訓(xùn)練的block;
(4)以選擇的block組成特征向量重新訓(xùn)練,得到最終支持向量的決策函數(shù)。
圖2 二次block選擇過(guò)程
為了證明該方法的有效性,本文在INRIA樣本庫(kù)上進(jìn)行驗(yàn)證。使用LIBSVM 2.88作為SVM工具,訓(xùn)練樣本選取正樣本3 542個(gè),負(fù)樣本4 542個(gè),測(cè)試樣本選取正樣本1 000個(gè),負(fù)樣本1 000個(gè)。
原始HOG算法每個(gè)block由36維特征構(gòu)成,總共由105個(gè)block構(gòu)成,描述行人的特征向量長(zhǎng)度為3 780維。
其中感興趣block通過(guò)手動(dòng)標(biāo)定,選取包含輪廓特征的block組成特征向量。實(shí)際操作過(guò)程中,選取了41個(gè)包含輪廓特征的block形成1 476維特征向量,經(jīng)過(guò)訓(xùn)練獲取SVM決策函數(shù)。
二次block選取過(guò)程基于block權(quán)重因子對(duì)block進(jìn)行選擇,選取符合條件的block重新提取特征向量進(jìn)行訓(xùn)練,獲取SVM決策函數(shù)。在實(shí)際實(shí)驗(yàn)中,首先通過(guò)原始HOG學(xué)習(xí)過(guò)程獲取SVM決策函數(shù),經(jīng)過(guò)計(jì)算,獲得block權(quán)重因子,選取閾值為0.5,對(duì)block權(quán)重因子進(jìn)行篩選,得到實(shí)際符合條件的block為20個(gè),如圖3所示,利用這20個(gè)block重新生成720維的特征向量,經(jīng)過(guò)訓(xùn)練獲取SVM決策函數(shù)。
圖3 block權(quán)重因子以及檢測(cè)閾值
分別利用3種不同的方法通過(guò)改變決策函數(shù)中的閾值b對(duì)測(cè)試樣本進(jìn)行檢測(cè),得到漏警率和虛警率的關(guān)系如圖4所示。
圖4 三種不同方法效果比較
由圖4可以看出,在3種檢測(cè)方式中,原始HOG檢測(cè)方式檢測(cè)效果最好;通過(guò)人工選擇感興趣區(qū)域,保留41個(gè)block后提取特征向量進(jìn)行分類,檢測(cè)效果有一定的下降,這主要是由于人類主觀經(jīng)驗(yàn)的不足,不能完全合理確定起主要作用的特征,導(dǎo)致特征選擇不充分的原因。
二次block訓(xùn)練的方法通過(guò)引入block權(quán)重的概念,利用原始訓(xùn)練得到的決策函數(shù)中的信息來(lái)確定感興趣block,在選取的block數(shù)目減少到原始的1/5即20個(gè)時(shí),在顯著提高計(jì)算速度的情況下仍然能夠得到較精確的分類器。
實(shí)驗(yàn)結(jié)果證明,本文提出的兩種減少特征維數(shù)、提高分類效率的算法在實(shí)際的應(yīng)用中較為有效。
HOG特征是目前在行人檢測(cè)過(guò)程中較為有效的一種方法,在人體檢測(cè)過(guò)程中有著很高的識(shí)別率,然而HOG由于計(jì)算量較大、檢測(cè)速度慢,因此限制了HOG的應(yīng)用。本文通過(guò)對(duì)HOG的分析,發(fā)現(xiàn)可以通過(guò)減少HOG中冗余block,從而減少計(jì)算量,提高檢測(cè)速度。
[1]呂治國(guó),徐昕,賀漢根.基于可變模板和支持向量機(jī)的人體檢測(cè)[J].計(jì)算機(jī)應(yīng)用,2007(9):2258-2261.
[2]陳實(shí),馬天駿,黃萬(wàn)紅,等.基于形狀上下文描述子的步態(tài)識(shí)別[J].模式識(shí)別與人工智能,2007(6):794-799.
[3]韓鴻哲,王志良,劉冀偉,等.基于線性判別分析和支持向量機(jī)的步態(tài)識(shí)別[J].模式識(shí)別與人工智能,2005(2):160-164.
[4]DALAL N,TRIGGS B.Histograms of oriented gradients for human detection[C].CVPR’05, 2005.
[5]焦李成,周偉達(dá),張莉,等.智能目標(biāo)識(shí)別與分類[M].北京:科學(xué)出版社,2010.