王薇薇,王江濤,陳 燕
(淮北師范大學物理與電子信息學院,安徽淮北 235000)
近年來,隨著人工智能技術特別是無人駕駛技術的興起,使行人檢測成為當前的研究熱點,行人檢測是計算機視覺的重要分支,在智能監(jiān)控、主動安全、人機交互等領域都發(fā)揮著重要的作用。行人檢測技術經(jīng)過幾十年的發(fā)展,取得了較大的進展,但由于人體形狀是多變的,且人體所處的場景也是動態(tài)時變的,這些因素都導致行人檢測難以得到理想的結果,還需要進一步展開研究。
在行人檢測的發(fā)展中,學者們提出了許多方法,也試圖對提出的方法加以改進,比較主流的行人檢測方法按照系統(tǒng)使用的分類器一般可分為兩類:一類是基于SVM的行人檢測;一類是基于AdaBoost的行人檢測。SVM一般與DPM或者HOG相結合進行行人檢測,而AdaBoost一般與Haar小波或ACF相結合進行行人檢測。HOG算法[1]由Dalal和Triggs在2005年提出,這對于行人檢測有著里程碑的意義,HOG能夠非常好地表征行人,HOG+SVM系統(tǒng)也使行人檢測的性能大大提高,但HOG特征的計算時間長,特征維度高,且由于行人多樣性、背景多樣性以及遮擋等原因,單一的HOG特征不足以表達復雜的變化情況。對此,廣大學者提出了許多改進的方法[2-4],取得了不錯的效果。
2009年,Dollár[5-9]等人利用積分圖技術,將各種特征(如HOG、顏色特征、梯度幅度特征、邊緣特征等)的積分圖進行有機的結合,經(jīng)過濾波,降采樣等操作形成聚合通道特征(ACF)。ACF集成了各種信息,所以能更好地表征行人,也更具有魯棒性。而且積分圖技術與特征金字塔的使用,加速了特征的計算,在分類階段使用AdaBoost分類器,獲得了具有實時效果的行人檢測器。ACF對檢測目標優(yōu)異表征能力引起了廣大研究者的關注,他們對ACF進行了改進。對于單一波段下的行人檢測,其檢測性能總達不到理想的效果,如可見光波段對光照很敏感,當遇上霧霾、燈光昏暗等情況時,檢測效果會變差。而對于紅外波段,當目標熱輻射弱或者有其它熱源干擾時,檢測效果也會欠佳。對此,彭志蓉等[10]提出了一種基于多光譜的聚合通道特征,他們利用了可見圖像與紅外圖像進行特征提取,克服了單一波段下魯棒性差的問題,提高了行人檢測的精度。李慶武等[11]提出了一種多尺度聚合通道特征估計算法,利用高斯拉普拉斯算子與高斯差分算子之間的關系,結合特征金字塔算法,減小了計算特征的時間開銷,實現(xiàn)了實時、精確的行人檢測系統(tǒng)。韓建棟等[12]提出了一種結合紋理特征和邊緣特征的聚合通道特征,提高了檢測精度,同時降低了誤檢率。在行人檢測領域,ACF+AdaBoost系統(tǒng)取得了較好的效果,但仍沒有達到實際運用的要求,仍存在改進的空間。一個精確度高、誤檢率低、實時的行人檢測系統(tǒng)才是市場的需求。簡單、易算、表征能力強的Hash碼[13]的出現(xiàn)與神經(jīng)網(wǎng)絡的興起給行人檢測提供了新的思路。本文通過增加改進的自適應加權的Hash碼通道,設計AdaBoost與CNN的級聯(lián)結構,旨在從增加系統(tǒng)特征的多樣性和改善AdaBoost分類器兩方面提高行人檢測系統(tǒng)的性能。
聚合通道特征集成了各種特征,從不同的角度描述行人的外觀共性,典型的ACF如圖1所示,包含灰度特征、顏色特征、梯度幅度特征、梯度方向直方圖等。ACF采用了快速特征金字塔,能夠快速地計算出不同尺寸的行人的特征,一般的特征金字塔需要將圖像放縮到每一層對應的尺寸,再計算每一層圖像的ACF,而快速金字塔算法是把金字塔分成幾個組,只需計算縮放因子為1、1/2、1/4層的特征,然后用計算好的層來估計其它層。
圖1 特征通道示例
圖2所示為ACF+AdaBoost行人檢測流程,首先提取待檢測圖像的ACF特征,為了滿足行人多尺度的需求,需要構建特征金字塔,然后生成特征向量,再經(jīng)過之前訓練好的AdaBoost分類器檢測行人,會產(chǎn)生多個預選行人區(qū)域,每個區(qū)域有各自的得分。得分越高的,越有可能是行人區(qū)域,反之亦然。因此要用非極大值抑制(NMS)算法[14]去掉那些可能性小的區(qū)域,得到最終的檢測結果。
圖2 ACF+AdaBoost行人檢測流程
Hash碼可看作是圖像的“指紋”,它的運算非常簡單,但分辨能力很強,這些特點也讓Hash碼得到廣泛的應用,如相似圖片搜索引擎、視覺追蹤以及行人檢測等。
傳統(tǒng)的Hash碼的計算一般分為以下幾個步驟[15]:
步驟1 對圖像進行離散余弦變換(DCT);
步驟2 取變換后圖像左上角的8×8區(qū)域I1。因為經(jīng)過余弦變換,圖像的能量都集中在低頻部分。所以可取左上角區(qū)域進行Hash碼的提取;
步驟3 計算I1的平均灰度值v,比較I1中各個像素點與v的大小。比v大的點賦值為1,比v小的點賦值為0;
步驟4 最后按一定的規(guī)則排列這64位數(shù),得到Hash碼。
對圖像進行DCT可以獲取圖像的低頻部分,減少圖像像素域均值的影響,使算法更具有魯棒性。DCT是一種可分離變換,一維的DCT的變換核為:
(1)
(2)
(3)
對于大小為M×N的二維圖像矩陣,其變換核為:
(4)
DCT為:
(5)
其中,x,u=0,1,,M-1,y,v=0,1,,M-1.
由于DCT的可分離性,可用兩次一維的DCT來完成二維的DCT,即通過式(6)來計算。
f(x,y)→F行[f(x,y)]=F(x,v)→F(x,v)T→F列[F(x,v)T]=F(u,v)T→F(u,v).
(6)
本文用的Hash碼的目的在于增加特征通道,拓展ACF特征,加入傳統(tǒng)的Hash碼時,結果并不理想,考慮到增加的特征的維度和幅度,不能與原有的通道特征有較大差異,所以要對傳統(tǒng)的Hash碼進行改進。
3.2.1 Hash碼圖
在進行Hash碼計算時,為了不丟失圖像的信息,本文用原圖離散余弦變換后的整張圖來進行計算。同樣地,如上述步驟3,可得到與原圖大小一樣的二值Hash碼圖,如圖3(b)所示。
圖3 Hash碼圖與原圖的對比
3.2.2 對Hash碼圖進行加權
為了使Hash碼圖能更好地加入到ACF特征通道,本文嘗試了多種Hash碼圖的加權,首先要構造一個權值矩陣,它與Hash碼圖的大小相同,每一個點的值即為Hash碼圖對應點的權值,由于Hash碼圖是一個二值圖,所以沒有采用一般的權值與灰度值相乘的加權方法,而是采用了權值與灰度值相加的方法,對于權值矩陣的構造,本文也有多種嘗試,如圖4是不同的權值輻射點的權值矩陣,構造權值矩陣具體步驟如下:
步驟1 計算矩陣中其它點(x,y)與權值輻射點(x0,y0)的距離:
(7)
步驟3 把1賦值給權值輻射點。
由上文所述可知,權值矩陣中的點離輻射點越近,權值就越大,反之亦然。
110.50.330.2510.70.450.310.240.50.450.350.280.220.330.310.280.230.20.250.240.220.20.18
(a)以左上角的點作為權值輻射點
0.350.480.50.450.330.450.710.70.330.51110.330.450.710.70.330.350.450.50.450.33
(b)以中心點作為權值輻射點
0.180.20.220.240.250.20.240.280.320.330.220.280.330.480.50.240.320.480.710.250.330.511
(c)以右下角的點作為權值輻射點
圖4不同的權值矩陣
傳統(tǒng)的ACF+AdaBoost系統(tǒng)在達到理想的檢測率時,會帶來虛警率過高的問題。輔助網(wǎng)絡可以提高AdaBoost分類器的性能,從而提高系統(tǒng)的檢測率,其設計考慮到了系統(tǒng)的實時性,故輔助網(wǎng)絡必須是一個簡單而有效的網(wǎng)絡。
CNN是近年興起的一種前饋神經(jīng)網(wǎng)絡,其在行人檢測領域優(yōu)異的表現(xiàn)引起了廣大學者的關注[16-18]。CNN應用了局域感受野、權值共享和池化機制,局域感受野指網(wǎng)絡通過濾波器在輸入圖像上滑動提取圖像的特征,權值共享機制與池化減少了網(wǎng)絡所需的參數(shù),防止過擬合。這些機制的使用使CNN具有分類精確、魯棒性高的特點。具體的卷積操作如下:
(8)
CNN對目標的精確分類能力和對復雜背景的高魯棒性給了本文的行人檢測新的啟發(fā)。通過實驗發(fā)現(xiàn),傳統(tǒng)的AdaBoost分類器因為虛警率太高而引起性能衰減。結合CNN的特點,考慮構建一個輔助CNN網(wǎng)絡對AdaBoost的后續(xù)樣本進行判決,旨在不影響實時性能的前提下,降低檢測的虛警率?;谶@兩點的考慮,通過實驗設計如圖5所示的CNN網(wǎng)絡,除輸入層外網(wǎng)絡包含了5層,網(wǎng)絡固定輸入48*48的灰度圖,采用6個通道對輸入圖像進行卷積,卷積核的大小為5*5,滑動步長為1,故第一層的輸出大小為44*44*6,第二層為池化層,其以第一層的輸出作為輸入,對其輸入的每個非重疊的2*2區(qū)域求均值,故第二層的輸出大小為22*22*6,達到了減少數(shù)據(jù)冗余的目的,網(wǎng)絡的第三次問卷積層,該層卷積核的大小為5*5,有12個卷積通道,故其輸出大小為18*18*12,第四層為池化層,其操作與第二層相同,第五層為全連接層,其作用是根據(jù)實際的分類要求,把該層的輸入整合成一個向量輸出。在傳統(tǒng)的ACF+AdaBoost系統(tǒng)對檢測圖像進行分類后,級聯(lián)上本文設計的CNN網(wǎng)絡,進行二次分類,能夠有效地減少系統(tǒng)的虛警率。
圖5 本文輔助CNN的結構
算法的運行環(huán)境:內存為8 GB,CPU為AMD A10 PRO 7800b R7處理器,主頻為3.5 GHz。算法的運行軟件平臺為MATLAB R2012a。
實驗均在INRIA數(shù)據(jù)庫上進行,該數(shù)據(jù)庫分為訓練集和測試集,訓練集包含了614幅正樣本圖(含有2416個行人)和1218幅負樣本圖,測試集包含了288幅正樣本圖(含有1126個行人)和453幅負樣本圖。INRIA數(shù)據(jù)庫包含的行人豐富,數(shù)據(jù)集也很完善。以系統(tǒng)的漏檢率MR-FPPI作為評估標準,在檢測過程中,檢測器可能把背景誤認為是行人,影響系統(tǒng)的檢測性能,以FP(False Positive)為檢測器誤把背景判斷為行人的窗口總數(shù),以TP(True Positive)為檢測器準確判斷出行人的窗口總數(shù)。其中,漏檢率的定義為:
(9)
實驗發(fā)現(xiàn),ACF還具有良好的拓展性,因此可以增加ACF的通道。當加入適當?shù)奶卣魍ǖ罆r,能有效地提高系統(tǒng)的檢測率,而當加入的特征不當時,不但增加了行人檢測的時間,還有可能降低系統(tǒng)的檢測率。如當加入輻射點為左上點或右下點的權值矩陣的Hash碼時,系統(tǒng)的漏檢率不但沒有下降,反而分別上升到19.74%和21.43%,而當加入輻射點為中心點的權值矩陣的改進Hash碼時,其漏檢率降低到16.31%。改進的Hash碼計算簡單,且對行人刻畫能力強,能有效地提高系統(tǒng)的檢測率,結果如圖6所示。
圖6 不同的權值矩陣檢測率
圖7(a)為運用10個ACF作為檢測特征時行人檢測的結果,可以看出系統(tǒng)把某些不是行人的物體也標記為行人,系統(tǒng)的誤檢率很高。級聯(lián)本文設計的輔助CNN網(wǎng)絡后,系統(tǒng)的檢測結果如圖7(b)所示,輔助CNN有效地降低了系統(tǒng)的誤檢率。
圖7 輔助CNN的效果對比
通過大量實驗發(fā)現(xiàn),基于ACF+AdaBoost系統(tǒng),可以通過加入改進的Hash碼通道來降低系統(tǒng)的漏檢率,同時級聯(lián)輔助CNN網(wǎng)絡來降低系統(tǒng)的誤檢率,由圖8可知,系統(tǒng)行人檢測的性能大大提高。
圖8 本文方法與ACF+AdaBoost系統(tǒng)的比較
本文針對傳統(tǒng)ACF+AdaBoost系統(tǒng)在達到理想檢測率時會有較高誤檢率的問題,從兩個方面改善系統(tǒng)的性能,一方面通過加入自適應加權的Hash碼通道特征,增加系統(tǒng)特征的多樣性,降低系統(tǒng)的漏檢率;另一方面,通過級聯(lián)輔助CNN,提高AdaBoost分類器的性能,降低系統(tǒng)的誤檢率,最終達到了提高系統(tǒng)檢測性能的目的。下一步研究會將神經(jīng)網(wǎng)絡運用于行人檢測,進一步提高行人檢測的性能,旨在開發(fā)可以實時運行的檢測軟件。