, ,
(1.江蘇開放大學 信息與機電工程學院,南京 210017;2.南京信息工程大學 電子與信息工程學院,南京 210017)
行人檢測技術是通過模式識別方法, 從視頻序列或者靜態(tài)圖像中判斷是否存在行人, 并對行人進行定位[1]。行人檢測技術在安保領域、無人駕駛領域、機器視覺領域以及多媒體分析領域等具有廣泛的應用前景[2-3]。
行人檢測系統(tǒng)性能指標主要包括檢測精度和檢測速度, 其中, 檢測精度主要由特征提取準確度決定, 檢測速度主要由分類算法復雜度決定[4]。為提高行人檢測的準確度, 2005年, Navneet Dalal和Bill Triggs首次提出了HOG特征[5], 同時利用SVM分類器對HOG特征進行分類。由于HOG能較好表征人體邊緣, 并且對光照和微小形變不敏感, 該方法較好解決了行人檢測技術的準確度問題, 成為當前行人檢測技術研究熱點。但是, 由于HOG特征是高維特征, 在分類階段引入較大計算量, 影響行人檢測速度。以大小為64*128的圖像為例, 根據文獻[6]算法參數計算得到的HOG特征為3780維。如此高維特征在分類器訓練和識別中必然引入較大計算量, 導致在行人檢測階段速度較慢。因此, 有必要研究提高行人檢測速度的快速算法。一種思路是對提取特征降維, 從而減少分類階段的計算量。另一種思路是尋找速度更佳分類算法, 從而提升檢測速度[7]。為此, 本文提出一種基于HOG特征和Adaboost分類器的快速行人檢測方法。在HOG特征的基礎上, 首先利用PCA降維方法對HOG特征降維, 在保持特征信息基礎上, 減少特征維度, 最后使用Adaboost構建強分類器進行分類。即便采用了降維、快速算法等技術對行人檢測進行優(yōu)化, 但實際應用過程了任然不能滿足海量數據實時處理的要求。
針對目前行人檢測技術運算量大、實時性差等不足, 本文提出了一種Hadoop云平臺下基于梯度直方圖(HOG)特征和Adaboost算法的快速行人檢測方法。該方法首先利用云計算模式提取圖片的HOG特征, 然后利用PCA方法對提取特征降維, 最后使用Adaboost算法構建分類器對降維特征進行分類。利用不同場景照片對本文方法進行實驗, 仿真結果表明, 在保持較高檢測準確度前提下, 采用Hadoop云計算的檢測速度比傳統(tǒng)的基于HOG特征行人檢測算法提高將近5倍, 有效提高檢測算法的實時性。
為了能夠使本文提出的行人檢測方法可以在Hadoop平臺有效實現(xiàn), 文章采用了圖像的處理接口HIPI ( Hadoop Image Processing Interface), 為了實現(xiàn)圖像數據的輸入和輸出。而Hadoop技術在最初就是用來處理文本數據時, 一般會把輸入的數據劃分成多個大小相同的獨立數據塊, 但是這些并不適用于本文的海量圖像處理, 而且會破壞圖像的完整性。所以本文為了能有效的對海量圖像進行行人目標檢測, 文章在原有Hadoop基礎上進行大量的創(chuàng)新, 使其輸入的圖像是完整的, 且每個數據塊大小適中。
文章首先把一些圖像小文件組合成為圖像大文件的方法, 使用CombineFilelnputFormat接日, 以此來實現(xiàn)了多個圖像小文件打包并合并到一個圖像文件SequenceFile中, 并且不改變原有的每個圖像小文件結構, 每一條圖像小文件為記錄存放在SequenceFile中生成鍵值對(
HOG特征核心思想是利用邊緣方向密度分布表征目標的形狀, 即利用圖像的局部梯度方向表征目標的整體特征。
HOG 特征的提取主要包括字塊劃分、梯度計算、梯度投影及HOG 特征向量收集等4個步驟。具體算法流程如圖1所示。
圖1 HOG特征提取流程
如圖1所示, 首先將輸入圖像劃分為不同的子塊(Block), 然后每個Block再劃分為若干個單元(Cell)。為了提高HOG算子在不同場景的魯棒性, 每個Block有一定重疊。然后利用梯度算子計算每個Cell中像素的梯度, 并在每個Cell內對計算梯度進行投影和歸一化, 得到梯度方向直方圖。其中, 梯度計算公式如公式(1)~(3)所示, 梯度投影過程實質是將梯度方向空間劃分為若干個等分, 將所有各個像素的梯度方向投影到劃分好的梯度方向空間中。最后梯度方向直方圖歸一化, 并將所有Cell的歸一化梯度直方圖連接在一起, 最終形成HOG特征。
dx(x,y)=I(x+1,y)-I(x-1,y)
(1)
dy(x,y)=I(x,y+1)-I(x,y-1)
(2)
(3)
其中:I(x,y)為像素值。
在得到HOG特征后, 由于特征維度較高, 如直接利用該特征分類計算量較大, 影響行人檢測速度, 因此, 本文利用主成分分析算法(PCA)降維技術對HOG特征降維。
(4)
A= [aij],1≤i≤p,1≤j≤p
(5)
(6)
cor(Fi,Fj)=0
(7)
var(Fi)>var(Fj),i (8) 其中,cor(Fi,Fj)表示變換后特征的相關系數, var(Fi)表示變換后特征的方差。由于信息的測量標度一般用方差表示, 變量的方差越大, 表征其含有信息量越大。因此, 通過PCA算法后的特征向量, 從前往后所含信息量逐步減少且互不相關。選取前面若干個變量作為主成分, 當主成分中信息量得到原始信息量的95%以上, 即可較好地表征原始特征。對于降維后的特征向量, 使用Adaboost算法構建強分類器, 進行分類。 Adaboost是一種迭代算法, 其核心思想是針對同一個訓練集訓練不同的弱分類器, 然后把這些弱分類器集合起來, 構成一個更強的最終分類器(強分類器)。 假設樣本集為X{xk},k=1,2,3,...,N, 類別空間集為Y{yk},k=1,2,3,...,N, Adaboost算法具體流程如下: 1)初始化樣本權重。對于所有樣本賦予相同的權值, 如公式(9)所示: (9) (10) 其中,I(Fi(xk))定義為: 根據分類誤差ei, 計算若分類器Fi的權重αi, 如公式(11)所示: (11) (12) 其中:Zk為規(guī)范化因子, 其計算如公式(13)所示: (13) 3)當滿足一定的迭代次數或分類誤差ei為零時, 結束迭代, 得到最終的強分類器G(x), 如公式(14)所示。ei能否為0?根據誤差定義可以為0. (14) 其中:M為迭代次數。 Adaboost算法能夠對學習得到的弱分類器的錯誤進行適應性調整, 降低了錯誤較大的弱分類器權重, 從而最終能構建分類能力較強的分類器。 本文在訓練弱分類器階段, 使用了決策樹分類器。最終利用Adaboost算法得到強分類器, 實現(xiàn)對場景圖片進行快速行人檢測。 本文首先基于輸入的行人圖片, 根據一定的比例縮放, 提取其HOG特征, 其中, 得到的HOG特征為3780維, 經過PCA降維后, 得到維度為808維。降維后的HOG特征, 以決策樹作為弱分類器, 通過訓練集數據利用Adaboost算法構建強分類器, 從而實現(xiàn)對行人圖片實現(xiàn)分類。 實驗使用NICAT與MIT兩個數據集圖片來組成訓練集。NICAT數據庫是目前規(guī)模較大的靜態(tài)圖像行人數據庫,25551張含單人的圖片,5207張高分辨率非行人圖片,數據庫中已分好訓練集和測試集,方便不同分類器的比較;MIT數據庫共924張行人圖片,但只含正面和背面兩個視角。本文也采用了開源的一些手工標注了的互聯(lián)網圖片作為樣本庫。由于包含人體的正樣本數量遠遠小于對背景區(qū)域隨機產生的負樣本數量,這種情況訓練的模型效果并不好。本文將采用文獻[8]提出的方法選擇具有代表性的負樣本,同時也去除僅有平滑區(qū)域的負樣本。訓練集中正樣本數量12 679,負樣本數量13 991,其中所有樣本都尺度歸一化為64×128。 為了評估本文提出算法的性能,測試集選擇國際上廣泛使用且非常具有挑戰(zhàn)的行人檢測公共測試數據集INRIA數據庫。總共選擇有820張圖像,包含不同光照,分辨率,姿態(tài)下的行人。 為驗證算法的有效性, 在Hadoop云平臺環(huán)境下搭建實驗仿真平臺, 分別使用經典算法和本文算法進行實驗對比。在Linux平臺下,采用1個主節(jié)點和20個工作節(jié)點組成一個云計算,其中20個工作節(jié)點的配置相同,選擇文獻[9]的圖像分類算法進行對比實驗,采用正確檢測率、識別時間等指標對檢測結果進行衡量。HOG特征采用積分圖技術快速計算,其最優(yōu)參數的設置參考文獻[10]所示。AdaBoost級聯(lián)分類器采用的開源模型,其參數設置保持一致。 為了定性分析本文所提出的算法的行人檢測性能,分別使用傳統(tǒng)的基于HOG特征的行人檢測方法和本文方法對樣本集訓練和測試, 測試階段分別計算兩種方法的檢測率、漏檢率、虛檢率和平均識別時間, 實驗結果見表1。 表1 行人檢測試驗結果 從仿真結果可以看出, 本文算法在檢測率、漏檢率、虛檢率指標基本與傳統(tǒng)方法持平, 但是檢測速度比傳統(tǒng)方法提高了將近倍, 這較好的提高了行人檢測算法的實用性和實時性。 為驗證算法的實用性, 利用兩種方法對幾種經典場景下的行人照片進行檢測, 檢測結果如圖2所示。值得注意的是,本文提出的算法具有強垂直邊緣(與人類肢體相似)的物體更有可能誤認為人體,如圖2(a)路邊豎立的架子;另一方面,本文提出的模型對攜帶行李、衣著寬松等情況的檢測效果也相當理想,說明在壓縮后的特征能保留最強特征,濾除干擾因素,提升檢測精度。 圖2 實際場景下行人檢測性能對比 如圖2所示, (a)~(c)為傳統(tǒng)方法行人檢測結果, (d)~(e)為本文方法檢測結果。從圖中可以看出, 對于幾種經典場景, 在檢測準確方面, 兩種方法均能有效識別行人;在檢測速度方面, 傳統(tǒng)方法檢測時間在秒以上, 本文方法識別時間在一秒以內, 本文方法比傳統(tǒng)方法提高了倍多, 仿真結果充分證明了本文方法的有效性。 HOG特征算子能較好表征行人邊緣特征, 在行人檢測中廣泛應用。針對由于HOG特征算法維度較高而導致的計算量復雜問題, 本文提出了Adaboost分類器的快速行人檢測方法, 在提取圖像的HOG特征基礎上, 使用PCA降維方法對HOG特征降維, 再利用Adaboost分類器對降維特征分類。利用INRIA行人數據庫對本文方法和傳統(tǒng)的基于HOG特征的行人檢測方法進行仿真驗證,利用不同場景照片對本文方法進行實驗。仿真結果表明, 在保持較高檢測準確度前提下, 采用Hadoop云計算的檢測速度比傳統(tǒng)的基于HOG特征行人檢測算法 提高將近五倍, 有效提高檢測算法的實時性。 參考文獻: [1] Nguyen D T, Li W Q, Ogunbona P O. Human detection from images and videos: A survey[J]. Pattern Recognition, 2016, 51:148-175. [2] 張 陽.復雜交通場景中基于視頻的行人檢測與跟蹤若干關鍵問題研究[D].廣州:華南理工大學, 2013. [3] Wang Z, Cao X B, Yang P K. Transfer Learning for Pedestrian Detection [J]. Neurocomputing, 2013, 100(1) : 51-57. [4] 蘇松志, 李紹滋, 陳淑媛,等.行人檢測技術綜述[J].電子學報, 2012,40(4):814-820. [5] Enzweiler M, Gavrila D M. Monocular pedestrian detection:survey and experiments [J]. IEEE Trans Pattern Anal. Mach. Intell. 2009, 31(12):2179-2195. [6] Dalal N, Triggs B. Histograms of oriented gradients for human detection[J]. IEEE Conference on Computer Vision & Pattern Recognition. 2005:556-893. [7] 王 旋, 陳 忻, 劉 巍,一種適用于并行運算處理的實時高動態(tài)范圍圖像合成算法研究[J].影像科學與光化學, 2015,33(4):330-335. [8] 蘇奇全, 賈宏光, 朱明超,等.基于遞推閉環(huán)子空間辨識的自適應預測控制方法[J].信息與控制, 2015, 44(2):22-26. [9] 徐勝軍,韓九強,趙 亮,等.用于圖像分割的局部區(qū)域能量最小化算法[J].西安交通大學學報,2011,45(8):7-12. [10] Wang X, Han T X, Yan S. An HOG-LBP human detector with partial occlusion handling[A]. Proc. ICCV[C]. 2009:32-39.1.4 Adaboost算法
2 實驗分析
2.1 實驗數據集
2.2 實驗環(huán)境及其參數設置
2.3 定性定量分析
3 結術語