胡燕偉,徐美華,郭愛英
(上海大學機電工程與自動化學院,上海200444)
在日常生活中,行人檢測具有廣泛的應用價值和市場價值,如智能交通、視頻監(jiān)控、車輛輔助駕駛等[1-3].行人是目標檢測中較難檢測的類型之一,具有較大的挑戰(zhàn)性,這主要是因為行人具有不同的姿態(tài)、體貌,且行人所處環(huán)境中的背景一般較為復雜,而且還要考慮光照變化、遮擋等外部因素.目前,行人檢測方法以背景建模法和基于統(tǒng)計學習的檢測方法為主.背景建模法包括背景減除法、光流法、幀差法等,通過提取出前景運動的目標,在目標區(qū)域內(nèi)判斷是否包含行人,不過這類方法易受環(huán)境光照變化、畫面抖動等條件影響[4].基于統(tǒng)計學習的方法主要通過提取行人特征,利用大量的行人樣本構(gòu)建行人檢測分類器,能夠克服行人姿態(tài)不同和光照變化等難點,相較于背景建模法可達到更高的檢測精度[5].
基于統(tǒng)計學習的行人檢測方法是目前研究的主要方向,其中選取哪種行人的特征描述子和分類器會影響這類方法的檢測性能.描述圖像中行人的特征主要有:Haar,LBP和梯度方向直方圖(histogram of oriented gradient,HOG)等,利用的分類器主要有:神經(jīng)網(wǎng)絡、支持向量機(support vector machine,SVM)和Boosting等.大多數(shù)基于此方法的行人檢測算法都需要進行大量的計算,在檢測速度方面存在較大問題,故需要進一步優(yōu)化以減少檢測時間.Papageorgiou等最早提出Haar特征后,Viola等[6-7]提出了使用積分圖來加快Haar特征的計算速度,并使用Adaboost構(gòu)建級聯(lián)分類器進行行人檢測;Dalal等[8]提出的HOG是應用較廣的行人特征,對光照變化具有較強的魯棒性,但檢測時間較長;Zhu等[9]提出用積分直方圖來加快HOG特征的計算,并利用AdaBoost實現(xiàn)一個快速行人檢測系統(tǒng);Wojek等[10]通過GPU使用并行技術(shù)實現(xiàn)HOG計算,建立了一個實時行人檢測系統(tǒng);2008年Felzenswalb等[11]提出了可變形部件模型(deformable part model,DPM)目標檢測算法,該算法對目標多視角和形變問題具有較強的魯棒性,但是DPM特征維度較高,單幅圖像檢測速度較慢[11].針對DPM的加速算法主要有2種方式:①星型級聯(lián)可變形部件(star-cascade DPM,casDPM)模型中通過主成分分析(principal component analysis,PCA)法降維和級聯(lián)分類器的檢測方式,該方式可過濾掉不存在目標的區(qū)域,提高檢測速度[12];②Dubout等[13]使用FFT加速HOG特征和濾波器模型的卷積運算.雖然這2種方法都對經(jīng)典DPM模型加速了約10倍,但均可以更進一步提高檢測速度.
本工作通過對傳統(tǒng)DPM模型的研究發(fā)現(xiàn),在DPM算法通過滑動窗口方式進行目標檢測時,滑動窗口數(shù)量與待檢測圖像的分辨率大小線性相關(guān),且一般圖像中背景區(qū)域面積占整幅圖像的一半以上,而背景區(qū)域的檢測花費了大量時間.根據(jù)上述分析,如果能過濾掉背景并提取出包含目標的區(qū)域,只在該區(qū)域上檢測,就可以加快檢測速度,因此本工作提出了基于二進制化的梯度范數(shù)(binarized normed gradients,BING)-casDPM的快速行人檢測算法.該算法首先通過BING算法標定出目標候選區(qū)域,然后根據(jù)候選區(qū)域特點提取待檢測框,最后利用casDPM模型進行快速行人檢測.實驗結(jié)果證明,該行人檢測算法較傳統(tǒng)DPM模型和casDPM模型在基本不降低檢測率的同時,大幅提升了檢測速度.
雖然,一些傳統(tǒng)的特征描述子對行人有較好的表達效果,但因為其維度較高而不適合用作篩選目標候選區(qū)域的特征,所以Cheng等[14]根據(jù)特征范數(shù)提出了BING特征,經(jīng)過有監(jiān)督特性的分類,快速篩選出一組包含目標的候選窗口.
圖像中的物體一般孤立存在于背景中,有著清晰的輪廓和閉合的邊緣,而背景區(qū)域通常只呈現(xiàn)出同質(zhì)化特點.當把檢測窗口調(diào)整到一個較小的固定尺寸時,不同物體的梯度范數(shù)(normed gradients,NG)特征會表現(xiàn)出一定共性,對于背景和物體有較好的辨別性.在進行圖像檢測時,將圖像縮放到不同的尺度空間,在調(diào)整后的尺寸上使用8×8的窗口,在水平和垂直方向使用算子[-1,0,1]計算梯度gx和gy,歸一化得到NG特征為
式中,b表示為二進制化后得后的BING特征,b∈{0,1};k,l分別為8×8特征中的行列位置.
圖像中物體和背景的梯度圖對比如圖1所示,圖中紅框內(nèi)物體與綠框內(nèi)背景的梯度有較明顯的差異,物體的梯度模式比較雜亂,而背景比較單一和清楚.
圖1 尺寸為8×8的NG特征圖Fig.1 Size of 8×8 NG feature map
將NG特征二進制化,使用byte類型存儲一個梯度,并且只取前Ng位表示梯度范數(shù)從而減少計算量,故64維的NG特征近似為BING特征為
式中:b表示為二進制化后得到的BING特征,b∈{0,1};k,l分別為8×8特征中的行列位置.
利用BING特征性質(zhì)可以有效地篩選出包含目標的窗口.標定目標候選區(qū)域就是將似物性較大的窗口篩選出來,檢測窗口得分越高表明該區(qū)域似物性概率越大.似物性的定義如下:通過一個窗口將目標物體框出來,且這個窗口能夠最大程度地包含任何種類的物體[15].基于BING特征的目標候選區(qū)域標定算法如圖2所示.
圖2 基于BING的候選區(qū)域標定算法Fig.2 Algorithm of candidate area calibration based on BING
首先,通過訓練圖像上的標注信息生成多個不同尺度進行采樣,保留采樣樣本和標注樣本重疊率大于50%的樣本,并歸一化到8×8大小保存為正樣本;在每張圖像中隨機采樣備選的窗口,保留與標注樣本重疊率小于50%的窗口為負樣本.建立如式(3),(4)所示的窗口得分模型進行訓練:
式中:sl,w,gl分別為濾波器得分、第一級SVM訓練得到的權(quán)值系數(shù)和BING特征;l,i,(x,y)分別為窗口坐標、尺度和位置.
第一級線性SVM分類器中的權(quán)值參數(shù)w通過二值化處理提升式(3)的計算效率.如式(5)所示,采用“Gram-Schmidt”正交化將w投影到不同的正交向量中,只取包含前Nw個正交向量作為輸出來降低計算量[16-17]:
通過二值化近似后,得到BING特征對應的窗口的得分模型:
集合sl中,有些尺寸(如20×500)相對于尺寸(如100×100)來說,窗口包含目標的可能性較小,因此根據(jù)窗口大小、第一級分類器得分和最終窗口是否包含目標等信息建立第二級SVM模型.訓練時,當l位置的窗口與已標注窗口重合度高于50%時放入正樣本,否則就放入負樣本;通過如式(7)所示的訓練得到第二級分類器參數(shù),并使用其對測試圖像進行最終窗口打分,輸出一系列按得分降序排列的目標候選區(qū)域:
式中:vi,ti為第二級SVM訓練得到的參數(shù);ol為最后計算得到的窗口分數(shù).
測試圖像中背景區(qū)域通常占圖像面積50%以上,而DPM算法通過滑動窗口遍歷檢測圖像,其背景部分的檢測會耗費大量時間,因此本工作提出了基于BING-casDPM的快速行人檢測算法.該算法首先通過BING算法對目標候選區(qū)域進行標定,再根據(jù)標定結(jié)果的特點進一步處理,提取待檢測框,將其作為輸入以縮小casDPM模型檢測范圍,減少滑動窗口數(shù).相較于傳統(tǒng)DPM,casDPM采用級聯(lián)方式通過設定閾值過濾不包含目標的區(qū)域,并采用PCA降維方式降低計算復雜度,加快了檢測速度.
使用基于BING的目標候選區(qū)域標定算法,輸入待檢測圖像在保證檢測精度的同時,快速篩選產(chǎn)生一系列包含目標的候選窗口.BING算法對每幅圖像產(chǎn)生約2 000個候選窗口,由于取得分排名前1 000的候選窗口時的檢測率可達96.2%,因此本工作取得分前1 000的窗口進行進一步處理.
通過分析BING算法得到的大量檢測結(jié)果發(fā)現(xiàn),得分排名1 000以內(nèi)的前20%的窗口雖然包含大部分目標,但是尺寸過大,且包含背景信息過多;得分排名80%以后的窗口目標似物性較低,因此為了降低計算量以及準確提取待檢測框,取得分排名20%~80%的目標候選窗口進行計算,而舍去其他候選窗口.候選窗口位置示意圖如圖3(b)所示,圖中的目標區(qū)域以及光照變化明顯的區(qū)域的候選窗口相對集中,被判定可能存在目標物體.本工作根據(jù)圖像中像素點在候選窗口出現(xiàn)的頻率提取待檢測框,結(jié)果如圖3(c)所示.
圖3 提取待檢測框Fig.3 Retrieve the box to be detected
待檢測框提取步驟如下.
(1)將候選窗口按似物性得分降序排序,取得分排名在20%~80%的600個窗口.設Bi為第i個候選窗口的位置,Pi(x,y)為像素I(x,y)與第i個候選窗口關(guān)系結(jié)果,則
(2)計算每個像素I(x,y)在所有候選窗口中出現(xiàn)的頻率:
(3)利用實驗分析得到的頻率閾值t對P(x,y)進行二值化得到Q(x,y):
通過式(10)得到一個和圖像I大小相同,且只包含0和1的矩陣Q,計算矩陣Q中包含所有數(shù)值1的最小矩陣,得到對角坐標(xmin,ymin)和(xmax,ymax),并根據(jù)此坐標得到圖像I中待檢測框(見圖3(c)).
行人檢測流程如圖4所示.將得到的待檢測框作為輸入,使用casDPM模型進行行人檢測.casDPM模型利用改進的HOG特征、隱式支持向量機(latent SVM,LSVM)分類器和滑動窗口方式,在傳統(tǒng)DPM模型基礎上通過PCA降維和級聯(lián)檢測加快檢測.
傳統(tǒng)DPM模型中的特征取消了原HOG中的塊(block),以單元(cell)為單位,將cell中的梯度值分別離散到18個有符號梯度方向(0°~360°)和9個無符號梯度方向(0°~180°).通過歸一化并利用截斷函數(shù)進行限幅,得到31維HOG特征,而casDPM模型中將31維特征進一步PCA降維,以少量的開銷將原特征映射到前K個主成分中,這里取K=5.
casDPM模型的濾波器由2部分組成:①一個粗糙的根濾波器,主要從低分辨率圖像中確定整體目標輪廓;②若干個部件濾波器,主要從高分辨率圖像中確定各部件的尺寸和位置[18].濾波器的得分是濾波器向量和窗口特征向量的點積.使用φ(H,p)表示為以p為左上角坐標、尺寸為w×h窗口的全部特征向量串接起來的向量;H為HOG特征金字塔;p指定位于金字塔第l層的位置.HOG金字塔的位置用z=(p1,p2,···,pn)表示,其中pi=(xi,yi,li).行人站姿的DPM特征示意圖如圖5所示,其中(a)為根濾波器ω,(b)為部件濾波器pi(i>0),(c)為部件偏移情況.用di(δi)表示部件濾波器pi的偏離損失,越亮的部分表示部件濾波器相對于根濾波器偏離越大.
級聯(lián)檢測方式通過一系列閾值對部件模型進行修剪.使用的閾值包括一個全局閾值T和按順序排列的 2n個中間閾值 ((t1,t′1),(t2,t′2),···,(tn,t′n));用Ψ表示圖像中每個部件的空間位置,對于每個根位置ω∈Ψ,ω區(qū)域在模型檢測后的得分為score(ω);對score(ω)采用形變修剪和假設修剪方式進行n階評估;以mi(ω)表示部件pi在ω的得分;初始化輸出集為空集.最終根濾波器和部件濾波器的檢測得分為
式中:ai(ω)為部件濾波器pi的理想位置函數(shù);di(δi)為δi的二次函數(shù);⊕為二進制操作符,表示當最終得分score(ω)≥T時,判定該區(qū)域包含目標,添加進結(jié)果輸出集中[19].
待檢測框經(jīng)過casDPM模型級聯(lián)檢測后,得到的包圍框通過非極大值抑制產(chǎn)生精確行人結(jié)果(見圖4(c)).為了證明本算法的準確性,最后將結(jié)果返回到原始尺度的檢測圖中(見圖4(d)).
圖4 行人檢測流程Fig.4 Pedestrian detection process
圖5 行人DPM特征示意圖Fig.5 DPM feature diagram of pedestrian
BING算法在Pascal VOC2007數(shù)據(jù)集中取已標注各類物體的2 500張圖像訓練;casDPM模型在INRIA數(shù)據(jù)集中取行人庫中1 000個正樣本和1 500個負樣本訓練.系統(tǒng)訓練和檢測使用的PC機配置為Inter Core i5-7300HQ@2.50 GHz;8 GB內(nèi)存.
本算法行人檢測流程如圖6所示.BING算法、待檢測框提取、casDPM模型組成了基于BING-casDPM的快速行人檢測算法.首先,使用BING算法將輸入圖像進行目標候選區(qū)域標定,篩選得到一組按得分降序排列的候選窗口;然后根據(jù)候選窗口的分布特性提取待檢測框;最后應用訓練好的casDPM模型在待檢測框上檢測行人,并將檢測結(jié)果還原到原圖像中.
圖6 本算法的行人檢測框架圖Fig.6 Pedestrian detection frame of this algorithm
本工作是在PC平臺上Visual Studio 2012環(huán)境下,使用C++語言編程實現(xiàn)基于BING-casDPM的快速行人檢測算法.將本算法與經(jīng)典DPM模型和casDPM模型利用INRIA行人數(shù)據(jù)庫的檢測庫中進行測試,該檢測庫圖像中行人目標具有姿態(tài)多樣化、遮擋和視角不同等情況,且背景復雜、光照變化較大,能有效驗證算法的檢測性能.288張測試圖像中包含589個行人,其在平均檢測時間、檢測率和誤檢率3個方面的性能比較如表1所示.
表1 經(jīng)典DPM算法、casDPM算法與本算法性能比較Table 1 Performance comparisons of classical DPM algorithm,casDPM algorithm and this algorithm
表1數(shù)據(jù)表明,在基本不損失檢測率的情況下本算法的平均檢測速度和誤檢率都優(yōu)于另外2種檢測算法,速度比傳統(tǒng)DPM模型提高約16倍,比casDPM模型提高約40%.檢測庫的圖像中有1 280×910,640×480,408×370等多種分辨率大小,本算法能從不同分辨率圖像中快速準確地識別行人,對不同尺度的圖像有較好的適應性.使用BING-casDPM模型在一定程度上也可以有效減少誤檢窗口,與casDPM模型檢測效果對比如圖7所示,證明本算法相較于casDPM算法有著更好的檢測性能.
圖7 不同算法對比圖Fig.7 Different algorithms contrast figure
本算法對輸入尺寸為640×480的實際場景圖像進行行人檢測結(jié)果測試,運行程序并在圖像中檢測出行人,結(jié)果如圖8所示.
圖8 本算法的行人檢測結(jié)果Fig.8 Pedestrian detection performance of this algorithm
從圖7中可以看出,該算法對主要行人目標具有良好的檢測效果,基本沒有出現(xiàn)誤檢窗口.本算法主要是基于BING算法提取候選窗口,并利用casDPM模型進行滑動窗口方式的快速檢測,在速度上較傳統(tǒng)DPM算法和casDPM算法有大幅提升.在檢測率上較其他2種算法略有下降,主要原因是BING算法在行人候選區(qū)域的準確檢測對算法整體的檢測性能有很大影響.當圖像背景非常復雜時,BING算法可能未篩選出準確的目標候選窗口,導致有些目標區(qū)域被判定為背景,在提取待檢測框時未將目標包含進去,從而沒有被casDPM模型檢測出,影響了最終檢測結(jié)果.
本工作提出了一種基于BING-casDPM的快速行人檢測算法.該算法主要針對滑動窗口方式的DPM模型,在背景上花費大量時間導致速度較慢的問題,引入基于BING特征的目標候選區(qū)域的快速標定;并根據(jù)候選窗口在圖像上的分布特點進一步處理,提取待檢測框;最后通過訓練好的casDPM行人模型對待檢測框進行細檢測.通過仿真實驗證明,該算法比經(jīng)典DPM模型和casDPM模型在保持一定檢測率的同時降低了誤檢率,大幅提高了檢測速度.未來本工作將繼續(xù)研究目標候選區(qū)域和行人檢測算法的融合方式,進一步分析利用目標候選區(qū)域結(jié)果,提取更精確合理的待檢測框,以提高行人檢測算法的準確率和實時性.