摘要 ?本文提出了一種實時并且精準(zhǔn)的人體檢測架構(gòu)C4。C4在目前最高精確度下可以達(dá)到20幀每秒的檢測速度,并且是在只使用一個處理線程和不使用GPU等硬件的情況下達(dá)到的。能達(dá)到實時而精確的檢測源于以下兩點:第一,相鄰像素差值的符號是描述輪廓的關(guān)鍵信息;第二,CENTRIST描述子非常適合做人體檢測,因為它編碼了符號信息并且可以隱式地表達(dá)全局輪廓。使用CENTRIST描述子和線性分類器,我們提出了一種不需要顯式生成特征向量的計算方法,它不需要圖像的預(yù)處理或特征向量的歸一化,只需要O(1)時間去測試一個圖片區(qū)域。C4也非常適合進(jìn)一步的硬件加速,我們在一個嵌入式的1.2GHz CPU上同樣實現(xiàn)了20fps的高速人體檢測。
Ⅰ引言
人體檢測在生活中應(yīng)用廣泛:監(jiān)控系統(tǒng)和機(jī)場安全,自動駕駛和駕駛輔助系統(tǒng),人機(jī)交互,互動娛樂,智能家庭和老人輔助,軍方的尋人應(yīng)用等。廣泛的應(yīng)用和挑戰(zhàn)吸引了很多研究者參與到其中來。
本文的目的是以最少的誤報率進(jìn)行實時而精確的人體檢測。在機(jī)器人系統(tǒng)上,計算效率尤其重要,不僅要達(dá)到實時的檢測,還要做的占用盡量少的CPU資源,使得其他任務(wù)例如路徑規(guī)劃、導(dǎo)航等不會受到影響。
目前的人體檢測在很多方面已經(jīng)達(dá)到問題的前沿,例如:特征、分類器、速度、遮擋處理等,引文[1]~[11]做了詳細(xì)論述。然而,至少還有兩個重要問題沒有得到解決:
(1)實時檢測檢測速度非常重要,因為實時檢測是很多現(xiàn)實應(yīng)用[12]的先決條件。
(2) 確定最重要的信息源 HOG[1]和LBP[8]特征在人體檢測中取得了成功,但我們還不是很清楚的了解這些特征中最重要的信息是什么,或者說,為什么這些特征可以取得這么好的檢測效果。
在本文中,我們認(rèn)為這兩個問題是緊密相關(guān)的,我們證明合適的特征選擇會帶來高效的檢測結(jié)果。事實上,特征計算是現(xiàn)有方法的主要瓶頸,現(xiàn)有方法即使使用GPU的100+并行處理線程,也只能達(dá)到大約10fps的檢測速率。大多數(shù)時間都耗費(fèi)在了特征計算上(包括圖像預(yù)處理、特征構(gòu)建和特征向量歸一化)。
本文主要解決了兩個問題。第一,通過一系列精心設(shè)計的實驗(見SectionⅢ-A)表明表征身體外沿的輪廓特征可以提供人體檢測的重要信息。我們發(fā)現(xiàn)相鄰像素差值的符號對于表示輪廓至關(guān)重要,但差值的大小沒有符號信息重要。
第二,我們提出用輪廓線索(contour cues)進(jìn)行人體檢測,并表示成熟的CENTRIST[13]特征非常適合人體檢測(見SectionⅢ-B)。CENTRIST編碼了像素差值的符號信息,并且可以表示全局(大規(guī)模)輪廓。在SectionⅢ-C中,我們將CENTRIST與其他特征進(jìn)行了對比。
CENTRIST特征在速度上非常吸引人,在SectionⅣ中,我們提出了一種不包括圖像預(yù)處理和特征向量歸一化的評價方法。事實上,沒有必要顯式地計算CENTRIST特征向量,因為它已經(jīng)無縫的嵌入在分類器中,能夠達(dá)到視頻流檢測速度。我們使用層級分類器,所以將此方法叫做C4:detecting humanContour using aCascadeClassifier and theCENTRISTdescriptor.
C4可以在不使用GPU的單線程上實現(xiàn)精確地實時人體監(jiān)測。在SectionⅤ中,我們用兩種評價方法展示實驗結(jié)果,第一,在一個標(biāo)準(zhǔn)人體檢測數(shù)據(jù)集上的實驗結(jié)果;第二,在線檢測結(jié)果,即在iRobot PackBot上的實驗結(jié)果。特別的,我們還展示了基于實時行人檢測的行人跟蹤。我們將此檢測系統(tǒng)提供給其他研究者使用。
Ⅱ相關(guān)研究工作
人體檢測的精確度仍是主要研究方向,尤其是在低FPPI[2] (False Positive Per Image)時的高檢測率。在此方面的研究主要向兩個方向發(fā)展:特征和分類器。
人體檢測中使用過各種特征,例如Haar[7],edgelet[10],然而HOG是使用最多的人體檢測特征[1,3,4,6,8]。邊緣在不同方向上的強(qiáng)度分布似乎可以有效地在圖像中捕獲人體。近來,LBP(LocalBinary Patern)方法的變體也表現(xiàn)出很大潛力[5][8]。最近人體檢測趨向于聯(lián)合多種信息源,例如顏色、局部紋理、邊緣、運(yùn)動等等[14,6,8,15],引入更多信息通道會提高檢測精度,但同時也會增加檢測時間。
在分類器方面,線性SVM由于速度快而被廣泛使用。HIK SVM(Histogram IntersectionKernel SVM)[16][17]可以達(dá)到更高的精度,耗時有所增加[4]。
最近的研究還提高了人體檢測的速度。層級(cascade)[7][11]和積分圖[14][8]被廣泛用來加速檢測。然而,檢測速度仍遠(yuǎn)低于幀率,所以人們使用GPU來做并行計算,例如,[9]中的系統(tǒng)達(dá)到了10fps,[8]中達(dá)到了4fps,兩者都使用了GPU。在SectionⅣ中,我們展示了一種可以在不使用GPU的單線程上達(dá)到20fps的方法(并且此方法非常易于做GPU加速)。表Ⅰ對比了當(dāng)前的幾種快速檢測方法的速度和精度,包括本文提出的C4方法。
表Ⅰ,幾種人體檢測方法的速度比較。VGA分辨率是640*480,qVGA是320*240,精度單位是1FPPI(False Positive Per Image)
?
移動機(jī)器人平臺上的人體檢測系統(tǒng)已有很多相關(guān)研究工作[18,19,20,21],多數(shù)都是利用測距傳感器(ranging sensor)[18][21]。3D傳感器對于檢測和跟蹤有很大作用(人體位于地平面之上,可以在深度上被很好的分割),此方面也已經(jīng)有一些不錯的系統(tǒng)出現(xiàn)。然而這些方法有一個缺點:測距系統(tǒng)的解析度有限、臨時采樣率有限、難以處理強(qiáng)烈的室外光。因此,探索被動光電傳感器例如攝像機(jī)的可用性變得更加重要。
Ⅲ使用CENTRIST描述子檢測人體輪廓
A 像素差值的符號對于編碼輪廓和人體檢測至關(guān)重要
我們認(rèn)為輪廓是人體檢測中最有用的信息,而相鄰像素差值的符號是對輪廓進(jìn)行編碼的關(guān)鍵。這兩個假設(shè)都在本節(jié)有實驗支持。
假設(shè)1:對于人體檢測,最重要的就是編碼輪廓信息,而這正是HOG描述子的關(guān)鍵。
局部紋理可能對檢測有害,例如人衣服上的圖案可能擾亂檢測器。圖1b是圖1a的Sobel梯度圖(計算圖1a中每個像素的Sobel梯度,歸一化到[0,255],然后替換原像素值)。Sebel圖會平滑局部高頻紋理信息,所以圖1b中剩下的輪廓可以清晰地顯示人體的位置。
?
圖1 (a)原圖,(b)Sobel梯度圖,(c)梯度符號圖
Dalal的HOG論文[1]中的圖6也表明在人體輪廓周圍的圖像塊是HOG描述子中最重要的。然而,我們還沒有清楚地知道HOG描述子中編碼的到底是什么信息,使得它在人體檢測中如此成功。
我們要通過實驗表明輪廓是HOG描述子中編碼的最重要的信息。我們使用論文[1]中的原始HOG檢測器,但使用Sobel圖進(jìn)行測試。原始HOG SVM檢測器使用輪廓和其他信息(例如有衣服上的紋理)交織在一起進(jìn)行訓(xùn)練,這樣訓(xùn)練出來的檢測器如果在只有輪廓信息的Sobel圖上能夠檢測出人體,就表明輪廓信息是HOG編碼的主要信息。結(jié)果,檢測精度在1FPPI時是67%,比[14]中評價的12個檢測器中的7個都要好。
因此,我們相信輪廓是HOG描述子中用于人體檢測的最重要的信息。C4和其他現(xiàn)有方法的最大不同是C4明確地從Sobel圖中檢測人體輪廓。
假設(shè)2:相鄰像素間差值的符號是編碼輪廓的關(guān)鍵信息。我們經(jīng)常使用梯度來檢測輪廓,而梯度是通過相鄰像素做差來獲得的。我們將說明差值的符號是編碼輪廓的關(guān)鍵信息,而差值的幅值(大小)并沒有符號重要。
為了證明此假設(shè),對于給定的圖像I,我們生成圖像I’,I’與I保持相鄰像素差值符號的一致,但差值大小被忽略。即
上式中,I中的96對應(yīng)I’中的3,因為存在比較路徑:2<32<38<96。換句話說,雖然I’中忽略了差值的大小,但元素之間的空間相對位置仍會提供一種大小關(guān)系。此外,I和I’中的梯度幅值也會有很大不同。將圖1b看做I,則圖1c就是對應(yīng)的I’(像素值變換到[0,255]區(qū)間),可以很容易地從中檢測出人體輪廓。
我們?nèi)酝ㄟ^實驗驗證假設(shè)2,使用原始HOG檢測器在梯度符號圖(類似圖1c)上進(jìn)行人體檢測,在1FPPI時達(dá)到了61%的精度,比[14]中評價的7中方法的精度都要高。雖然在Sobel圖和符號圖上的檢測精度都比較低,但要注意到,所用的分類器都是在原圖上進(jìn)行訓(xùn)練的,我們在沒有改變原始HOG分類器的情況下就取得了比現(xiàn)有的一些方法還要高的精度。這充分證明了,人體檢測中最有用的信息是人體的全身輪廓信息,而相鄰像素的差值符號是編碼輪廓信息的關(guān)鍵。
B CENTRIST描述子
我們建議使用CENTRIST描述子[13]來識別人體,因為它簡潔的編碼了關(guān)鍵的符號信息,并且不需要圖像的預(yù)處理和后處理。CENTRIST意思是CENsusTRansform hISTogram。在此節(jié)中我們會說明為什么CENTRIST描述子適合人體檢測,并將CENTRIST描述子與其他描述子進(jìn)行對比(在SectionⅢ-C中)。
CT比較像素點e#
CensusTransform(CT,普查變換)最初是為了建立局部區(qū)域的一致性而設(shè)計的[22]。CT比較像素點與其周圍像素的灰度值大小,如下式所示:
如果中心像素值大于或等于周圍的某個像素值,對應(yīng)位置的值為1,否則值為0。從像素值比較得到的這8個值以一定的順序(我們以從左到右、從上到下的順序)排列在一起,轉(zhuǎn)換為[0,255]間的一個十進(jìn)制數(shù),這個數(shù)就是中心像素的CT值。CENTRIST描述子就是這些CT值的直方圖[13]。
如公式(3)所示,CT值簡潔的編碼了相鄰像素的差值符號信息。CENTRIST所遺漏的似乎只有捕獲全局(大尺度)輪廓的能力。
對于給定的具有CENTRIST描述子h的圖像I,和有匹配的CENTRIST描述子的圖像I’,我們希望I’與I相似,尤其是在全局輪廓上相似。如圖2所示,圖2a是一個108*36的人體輪廓,我們將此圖分割為12*4個塊(block),每個塊的大小是9*9。對于每個塊I,我們找到具有相同CENTRIST描述子的圖像I’。如圖2b所示,根據(jù)CENTRIST描述子重建的圖像與原圖很相似,雖然圖像的左邊有些許錯誤,但人體輪廓的全局特征仍被很好的保留下來。
?
圖2 從CENTRIST描述子重建的圖像
CENTRIST描述子不僅編碼了最重要的局部差值符號信息,而且還隱式地編碼了人體的全局輪廓信息,所以我們認(rèn)為CENTRIST描述子可以很好的表達(dá)人體輪廓。
C 與HOG和LBP的比較
在本節(jié)我們將CENTRIST與HOG和LBP這兩個最常用的人體檢測描述子進(jìn)行對比。
對于分類來說,同類別樣本的特征向量應(yīng)該彼此相似,不同類別樣本的特征向量應(yīng)該不相似。對于任意樣本x,計算x與所有其他樣本的相似度。設(shè)xin是同類別的樣本中與x相似度最高的,xout是不同類別樣本中與x相似度最高的。s(x,y)表示x與y的相似度,值越大表明相似度越高。很明顯,我們希望sNN = s(x,xin)– s(x,xout)值是正的并且越大越好。sNN是正值表明x被最近鄰規(guī)則正確分類。因此sNN是一個直觀并且易計算的評價描述子是否適合分類的標(biāo)準(zhǔn)。
在圖3中,我們在INRIA數(shù)據(jù)集[1]上對比了CENTRIST(在Sobel圖上)和HOG(在原始圖上)。我們使用2416個含人體的正樣本,從1218個不包含人體的圖中隨機(jī)截取2436個不包含人體的負(fù)樣本(每個圖上截取2個)。圖3a顯示了CENTRIST和HOG的sNN值分布。相似度被歸一化到[0,1]之間,負(fù)sNN值(在黑色虛線的左邊)表示被最近鄰規(guī)則分類錯誤。很明顯CENTRIST的結(jié)果都在正確的一邊(2.9%錯誤),而近乎一半的HOG結(jié)果在錯誤的一邊(46%錯誤)。圖3b進(jìn)一步表明HOG的錯誤多數(shù)都在數(shù)據(jù)集的前一半,即含人體的正樣本部分。
?
圖3a
?
?
圖3b
在[13]中已討論過,HOG或SIFT描述子[23]描述的更多是圖像的詳細(xì)局部紋理信息,而不是結(jié)構(gòu)屬性(例如輪廓)。我們進(jìn)一步推測這是由于HOG中使用的局部差值大小描述的更多是局部紋理信息。很明顯我們也無法從HOG或SIFT描述子重建一個圖像。在圖3中,HOG描述子使用L2范數(shù)歸一化,相似度s(x,y) = xTy;對于CENTRIST描述子,使用直方圖交叉核[24]來計算相似度。
CENTRIST描述子和LBP很相似,如果我們將公式(3)中的所有1變?yōu)?、0變?yōu)?,則修改后的公式就是計算3*3區(qū)域的LBP值[25]的一個中間步驟。然而,更重要的區(qū)別是LBP值如何使用。人體檢測方法中使用統(tǒng)一LBP(uniform LBP)[5][8],非統(tǒng)一LBP放在一起,由于非統(tǒng)一LBP被丟棄了,無法根據(jù)LBP描述子重構(gòu)全局輪廓。此外,[5][8]中對像素值進(jìn)行了插值處理,使得描述子只能編碼模糊過的重要圖像信息(相鄰像素差值符號)。我們計算了統(tǒng)一LBP描述子的sNN分布,有6.4%的最近鄰分類錯誤率,比CENTRIST(2.9%)的兩倍還多,但要好于HOG(46%)。我們猜想是LBP中不完整且模糊的符號信息對于噪聲和局部紋理干擾的敏感度沒有HOG描述子那么高。
Ⅳ快速線性方法和檢測框架
鑒于CENTRIST描述子的優(yōu)點,我們使用它來進(jìn)行人體檢測。使用108*36大小的檢測窗口,將檢測窗口分為9*4個塊(block),每個塊的大小為12*9,含108個像素。類似論文[1],我們將每個相鄰的2*2個塊組成超級塊(super-block),并從每個超級塊中提取CENTRIST描述子。超級塊之間有一半的重疊,所以一個檢測窗口內(nèi)共有共有個超級塊,由于每個超級塊中CT值(取值范圍為[0,255])的統(tǒng)計直方圖為256維,所以特征向量的維數(shù)是256*24=6144維。由于CT值的計算需要3*3的區(qū)域,所以會忽略超級塊周圍一像素寬的邊緣。
A 使用線性分類器進(jìn)行快速掃描
假設(shè)我們已經(jīng)訓(xùn)練好了一個線性分類器ω∈R6144,我們可以根據(jù)對應(yīng)的超級塊將ω分割為小的單元。也就是說,ω可以看做是24個ωi,j∈R256,1≤i≤8,1≤j≤3的串接。對于給定的特征向量為f(同樣分割為fi,j)的圖像區(qū)域,如果滿足下式就將其分類為含有人體:
只需要一個積分圖來計算公式(9),即節(jié)省內(nèi)存空間又節(jié)省時間。實際上,公式(9)計算起來要比公式(7)快3到4倍,并且公式(9)是通用的,可被用來加速其他計算。
這里所描述的方法不包括圖像預(yù)處理(例如平滑)和特征向量的歸一化。事實上,特征提取部分是無縫嵌入到分類器中的。這些特性一起構(gòu)成了一個實時人體檢測系統(tǒng)。
B 檢測框架
在訓(xùn)練方面,使用108*36的正樣本集P以及不包含任何人體的負(fù)樣本原圖集合N,從N中隨機(jī)裁取108*36大小的區(qū)域得到負(fù)樣本集合N1,用P和N1訓(xùn)練線性SVM分類器H1。然后使用二次訓(xùn)練程序(bootstrap 自舉法、自助法)產(chǎn)生一個新的負(fù)樣本集合N2,也就是用H1在負(fù)樣本原圖N上多尺度窮盡搜索誤報的負(fù)樣本。然后用P和N2訓(xùn)練分類器H2,繼續(xù)此迭代過程直到負(fù)樣本原圖N中的所有區(qū)域都被H1,H2…中的至少一個分類為不含人體。最后使用正樣本集合P和所有Ni的并集訓(xùn)練最終的分類器Hlin。
線性SVM分類器可以保證檢測速度,但HIK核SVM分類器可以達(dá)到更高的分類精度[17][4]。所以我們再訓(xùn)練一個HIK SVM分類器,使用Hlim在N上自舉(bootstrap)出一個新的負(fù)樣本集合Nfinal,使用[27]中的方法訓(xùn)練HIK SVM分類器,叫做Hhik。在檢測中,使用有兩個節(jié)點Hlin和Hhik的級聯(lián)方法。
我們將這種方法叫做C4,因為是使用CENTRIST描述子和級聯(lián)分類器基于人體輪廓信息檢測人體:detecting human basedon theirContour informationusing aCascadeClassifier and theCENTRIST descriptor.
C 機(jī)器人上的行人檢測
我們將C4算法集成到一個機(jī)器人iRobot PackBot上,目的是實現(xiàn)機(jī)載行人檢測和跟蹤。首先利用TYZX G2立體攝像機(jī)捕捉圖像,然后使用英特爾1.2GHz的酷睿2雙核CPU處理圖像。我們使用原始圖像進(jìn)行檢測,利用距離信息估計到人體的距離,使用粒子濾波進(jìn)行行人跟蹤。最后,向機(jī)器人底盤和脖子轉(zhuǎn)軸發(fā)出命令進(jìn)行跟蹤。
我們將上面描述的方法和使用立體數(shù)據(jù)的當(dāng)前最優(yōu)方法進(jìn)行比較。我們用距離圖像進(jìn)行人體位置的假設(shè)。使用RANSAC算法從立體數(shù)據(jù)中估計地平面的位置,沿著地平線采樣深度信息。利用深度信息和地面坐標(biāo),可以計算出包含站在給定位置和距離的地面上的人體的包圍盒。這個計算出的包圍盒大大減少了檢測窗口的數(shù)量,從而減少計算量和誤報率。圖4a,4b,4c顯示了C4算法的原始檢測結(jié)果,根據(jù)立體數(shù)據(jù)預(yù)測的結(jié)果以及C4在預(yù)測結(jié)果上的檢測結(jié)果。
?
?
?
圖4 機(jī)器人上的檢測示例。(a)C4算法的原始檢測結(jié)果,(b)C4結(jié)合立體數(shù)據(jù)的結(jié)果,(c)C4結(jié)合立體數(shù)據(jù)處理后的結(jié)果。其中的綠線是用立體數(shù)據(jù)估計的地平面。
在機(jī)器人上應(yīng)用時,C4算法使用了3層節(jié)點的級聯(lián)分類器而不是原來的2層節(jié)點(速度更快但精度低)。默認(rèn)的檢測流程如下:檢測系統(tǒng)在多尺度空間上進(jìn)行搜索,每個尺度的每個可能的位置上用分類器判斷是否有行人。在缺乏其他信息的情況下,這是唯一可靠的檢測方法。然而,當(dāng)有其他信息可用時,我們應(yīng)該用這些信息來減少搜索窗口的數(shù)目,減少誤報率。特別地,我們可以使用從立體攝像機(jī)獲得的地平面信息。例如,圖4a顯示了使用C4算法在所有可能的窗口上進(jìn)行行人檢測的結(jié)果,產(chǎn)生了很多冗余窗口,沒有考慮到在某些位置是根本不可能出現(xiàn)人體的這一事實[28]。行人必須站在地面上,根據(jù)這一事實可以限制搜索范圍,如圖4b所示的C4加立體數(shù)據(jù)的結(jié)果。然后再過濾多余的包圍盒,即得到處理后的結(jié)果,如圖4c(在SectionⅤ-C中有后處理的詳細(xì)說明)。
Ⅴ結(jié)果
我們在INRIA數(shù)據(jù)集上做了實驗,在SectionV-A到V-C中討論了C4的速度和精度,在SectionV-D中討論在機(jī)器人上的實驗結(jié)果。
INRIA數(shù)據(jù)集中共有2416個正樣本圖片,1218個負(fù)樣本原圖。我們?nèi)サ魳颖局腥梭w四周的像素,將樣本都裁剪成108*36大小。測試時使用暴力搜索查找圖片所有可能的位置是否含有人體,對測試圖像進(jìn)行0.8倍的連續(xù)降采樣,并以步長為2的網(wǎng)格進(jìn)行掃描。
我們使用Dollar的”Pedestrian detection:A benchmark”(CVPR2009)[2]中的groundtruth和評價標(biāo)準(zhǔn)。檢測到的矩形框Rd和groundtruth的矩形框Rg之間的關(guān)系如公式(10)所示則被認(rèn)為是正確匹配的:
我們同樣遵守[2]中規(guī)定的一個groundtruth矩形框最多匹配一個檢測到的矩形框的。
A 檢測速度
C4能夠達(dá)到比現(xiàn)有人體檢測算法更高的速度。在640*480的20fps視頻上,使用單核2.8GHz處理器,現(xiàn)有的最快系統(tǒng)(保證有較低的虛警率和較高的檢測率)能達(dá)到大約10fps[9],但它是使用了GPU的并行處理。詳細(xì)的對比結(jié)果見表1。
實時處理是很多人體檢測應(yīng)用所必須的特性。我們的系統(tǒng)在一些領(lǐng)域已經(jīng)可以應(yīng)用,例如機(jī)器人。然而,還有很多可以提升速度的空間,使得C4可以適應(yīng)更多應(yīng)用的要求,例如自動駕駛輔助系統(tǒng)。表Ⅱ給出了C4系統(tǒng)中不同模塊的時間花費(fèi),這些模塊都對于硬件加速(例如GPU)非常友好。
?
表Ⅱ,各模塊花費(fèi)時間
不需要顯式地構(gòu)造Hlin的特征向量并不是使得C4如此快的唯一原因。在INRIA數(shù)據(jù)集上進(jìn)行的測試表明,第一級線性分類器Hlin是一個強(qiáng)大的分類器,可以過濾大約99.43%的圖片區(qū)域,只有不到0.6%的圖片區(qū)域需要HIK核分類器Hhik的處理。C4處理INRIA測試集中的所有圖片用了27.1秒,而HOG檢測器[1]需要2167.5秒(所以C4相對于HOG大約有80倍的加速)。
C4在小分辨率的圖片上速度更快,在480*360的YouTube視頻上速度達(dá)到36.3fps,在320*240大小的視頻上能達(dá)到109fps。
B 在INRIA數(shù)據(jù)集上的檢測精度
圖5顯示了C4在FPPW(False Positive PerWindow)和FPPI(False Positive PerImage)兩種精度指標(biāo)上與HOG的對比。HOG用的是論文[1]中的可執(zhí)行文件,在與其他算法對比時,我們直接使用所發(fā)表論文中的精度數(shù)值。
?
圖5 C4與HOG的精度對比
C4在0.96FPPI時能達(dá)到83.5%的檢測率,與INRIA數(shù)據(jù)集上的當(dāng)前最優(yōu)結(jié)果(state of the art)具有可比性,例如ChnFtrs[14]和HOG-LBP[8],這兩個算法在1FPPI時都能達(dá)到大約86%的檢測率。這兩個方法中都使用了多特征融合,C4中也可以使用多特征融合來改善效果。C4比HOG的檢測精度高(在1FPPI時是74.4%),并且比[14]和[2]中對比的很多其他方法都要好。
圖5b顯示了Hhik的FPPW結(jié)果(計算FPPW曲線時沒有使用Hlin)。FPPI與FPPW并不是線性相關(guān)的,但有相似的趨勢。在誤報率大于10-4(FPPI曲線中是0.1)時,C4的結(jié)果要優(yōu)于HOG,在較低的誤報率時不如HOG好,但兩者的曲線在最左邊會收斂在一起。
C 后處理的重要性
圖5中,C4和HOG的曲線分別在10-1FPPI和10-4FPPW處相交,這是由非極大值抑制(NMS)引起的。在C4中,如果某個位置檢測到的矩形框小于3個,就會將其看做誤報。這個要求不會影響正確檢測,因為由于滑動窗口步長為2所以真正有人的位置周圍往往有很多檢測到的矩形框。
較小的移動步長意味著非極大值抑制會大大減少誤報的個數(shù),如圖6所示,在兩幅圖像中分別有17個和5個(中間有兩個距離非常近)誤報窗口,進(jìn)行非極大值抑制后,第一張圖只有1個誤報,第二張圖中的誤報全部消除了(不懂為什么)。
?
圖6 非極大值抑制消除誤報
圖5a中的HOG曲線與論文[14]中的略有不同。在圖5a中,HOG在所有測試圖只有1個誤報的情況下檢測率為34%,而在[14]中僅為10%。相反,[14]中HOG在1FPPI時能達(dá)到更高的檢測率(77%),我們的實驗中為74%。雖然不能清楚地知道造成這些差別的原因是什么,但我們認(rèn)為非極大值抑制和檢測窗口的緊縮是重要原因。
在訓(xùn)練時我們使用非常緊湊的108*36大小的窗口,在后處理階段將檢測窗口松弛到120*42大小。在[2]或[1]中使用的過度松弛的檢測窗口對于降低誤報率是有害的。
D 在機(jī)器人上的檢測結(jié)果
為了更好地了解機(jī)器人上使用的聯(lián)合方法(C4加立體數(shù)據(jù)),我們在iRobot的Bedford設(shè)備搜集的圖像上進(jìn)行了測試。圖7a和圖7b顯示了詳細(xì)分析結(jié)果,圖7a是ROC曲線,圖7b是precision-recall曲線,其中還有不同級聯(lián)級別的結(jié)果分析。
?
圖7a
?
?
圖7b
ROC曲線表明加入立體信息后誤報減少,然而,檢測率的峰值小于無立體信息的獨立C4,這可能是由于獨立C4并不是由在地平線上的人體所訓(xùn)練得來的。precision-recall曲線同樣表明在高recall率時加入立體信息precision會增加,同樣recall率的峰值不如獨立C4高。圖中展示了ROC和precision-recall曲線在不同級聯(lián)級別的對比結(jié)果,表明了級聯(lián)分類器對性能的提升作用。
總之,加入立體信息的聯(lián)合方法有助于減少誤報率,增加檢測速度。聯(lián)合方法可以減少60%的計算量,并將漏檢率降低5倍。
Ⅵ 總結(jié)和未來的工作
在此論文中我們提出了一個實時而精確的人體檢測器C4,它使用輪廓線索、級聯(lián)分類器和CENTRIST描述子檢測人體。
首先,我們通過精細(xì)設(shè)計的實驗,證明輪廓是人體檢測中最重要的信息源,并且相鄰像素差值的符號是編碼輪廓的關(guān)鍵。CENTRIST[13]特別適合人體檢測,因為它簡潔的編碼了符號信息,并且可以捕獲全局輪廓信息。
本文的主要貢獻(xiàn)是快速人體檢測,C4可以在640*480的圖像上只使用一個處理線程達(dá)到20fps,并且達(dá)到與當(dāng)前最優(yōu)的檢測精度可比的精度。
CENTRIST不需要耗時的預(yù)處理和特征向量歸一化操作,并且,使用線性型分類器和CENTRIST,我們不需要顯式生成特征向量,只需要O(1)時間來表示一個圖像塊。
當(dāng)前C4的檢測精度不如[8]和[2]中描述的方法,然而,通過使用[8]和[2]中的多特征融合方法,C4也可以改善檢測精度。此外,C4對于硬件加速非常友好。
最后,我們在配備Intel酷睿2雙核1.2GHz CPU的機(jī)器人iRobot PackBot上,將C4與立體視覺信息融合,在不影響機(jī)器人其他功能的前提下達(dá)到了精確的實時人體檢測效果。
論文下載:[2011 ICRA]Real-Time Human Detection Using Contour Cues
南京大學(xué)吳建鑫教授的主頁:,其中可下載C4的源碼
評論