曹 璐, 陳 明, 秦玉芳
(1.上海海洋大學 信息學院,上海 201306; 2.農(nóng)業(yè)部漁業(yè)信息重點實驗室,上海 201306)
場景多變,人體形態(tài)的多樣及人與物體之間相互遮擋等因素的影響給行人檢測帶來了巨大的挑戰(zhàn)[1]。目前,行人檢測的常用方法包括基于統(tǒng)計學習和深度學習的方法。Dalal N[2]提出的方向梯度直方圖(histogram of oriented gradient,HOG)特征是行人檢測中最為經(jīng)典的特征,其很好地描述了行人的輪廓,但在復雜背景和遮擋情況下檢測效果較差。可變形部件模型(deformable part models,DPM)在HOG特征的基礎(chǔ)上考慮了多角度多姿態(tài),通過訓練多模型提高了遮擋情況下的預測精度,但其結(jié)構(gòu)復雜,運行速度較慢[3~5]。2012年,Hinton Krizhevsky A等人[6]將深度學習用于圖像識別,在當年的國際視覺識別大賽中取得了最好的成績。鄭銳等人[7]利用高斯混合模型提取前景,使用傳統(tǒng)混合特征對目標進行分類,提升了速度。黃成都[8]將傳統(tǒng)分類器融入codebook背景建模中,解決了光照突變問題,降低行人檢測誤檢率。鄒沖等人[9]將檢測任務分為兩級,通過HOG結(jié)合支持向量機(HOG—SVM)進行一級粗檢測,再利用LeNet神經(jīng)網(wǎng)絡進行細檢測,提升了檢測精度。然而上述方法直接輸入圖像信息,包含大量冗余信息,局部邊緣和紋理不明顯,且計算效率低。
為此,本文提取圖像的HOG特征作為卷積神經(jīng)網(wǎng)絡的一個輸入通道,充分利用HOG算子處理邊緣輪廓信息和紋理信息的優(yōu)勢,同時為了降低來自卷積層的特征的噪點污染,利用稀疏自動編碼器進行特征稀疏化。基于此,提出了基于多通道輸入的稀疏化卷積神經(jīng)網(wǎng)絡的方法(multi-channel-sparse—CNN,MCS—CNN),大幅提高了行人檢測的準確度和檢測運行速度。
MCS—CNN深度網(wǎng)絡結(jié)構(gòu)主要分為:多通道輸入層、卷積層、稀疏特征層、分類層,如圖1。

圖1 MCS-CNN結(jié)構(gòu)
受文獻[10]的啟發(fā),并結(jié)合HOG處理圖像輪廓和邊緣的特性,將圖像和HOG特征圖連接成3個通道:
1)原圖轉(zhuǎn)換到顏色空間YUV后,第1個通道為128×64的Y通道圖像;
2)第2個通道分為4個大小相等的塊(block),由3個64×32的YUV通道和64×32的全0矩陣組成。
3)第3個通道同樣由4個大小相等的block組成,前3個block分別由YUV 3個通道經(jīng)過HOG處理形成的特征圖[2]組成,最后一個block取前3個block的像素最大值。
多通道處理如圖2所示。

圖2 圖像多通道處理
考慮到第一通道使用的是Y通道信息,與其他通道信息數(shù)值差距較大,所以對3個通道的數(shù)據(jù)進行歸一化處理。
上述3個通道的信息通過卷積層提取特征。本文通過構(gòu)建不同層數(shù)的結(jié)構(gòu)來構(gòu)建卷積層,CNN網(wǎng)絡結(jié)構(gòu)如圖3。

圖3 MCS-CNN卷積層結(jié)構(gòu)
第一層包含卷積層,激活層,可選層包括BN,Dropout,MaxPooling,該結(jié)構(gòu)可以重復疊加;第二層包含全連接層,同樣可選BN,Dropout,MaxPooling。卷積層包含M個第一層和N個第二層2個部分,采用3×3的濾波器對輸入信息進行卷積運算。具體層數(shù)選取參見實驗與分析部分。
行人檢測最重要的就是學習到顯著有效的特征,稀疏自動編碼器可以提高特征的表達能力,從而提升網(wǎng)絡的準確率,因此本文采用稀疏層對來自卷積層的特征進行稀疏編碼。訓練稀疏自動編碼器時,將來自卷積層的輸出作為稀疏自動編碼器的輸入(隱含層神經(jīng)元共200個),根據(jù)權(quán)重和輸入向量的加權(quán)組合加上偏置量得到輸出,前向過程為
(1)
定義目標損失函數(shù)
(2)
(3)
式中zi為輸出層的神經(jīng)元i的輸出,xi為輸入層的神經(jīng)元i的輸入,n為神經(jīng)元個數(shù),β為用于控制稀疏性懲罰的權(quán)重,式(3)最后一項為KL距離。
根據(jù)前向計算和反向傳播來訓練第一個隱含層的參數(shù)。同理,采用同樣的方法訓練第二個隱含層的參數(shù)。模型不斷迭代更新權(quán)重,得到參數(shù)W,b。
輸入:圖像訓練集和測試集。
1)多通道輸入;
2)對3個通道進行歸一化處理,通過卷積層和池化層,得到特征圖;
3)將特征圖送入稀疏自動編碼器,得到參數(shù)W,b;
4)將稀疏層的輸出連接全連接層,利用Softmax得到行人的分類結(jié)果;
5)根據(jù)反向傳播算法,不斷訓練迭代更新網(wǎng)絡的參數(shù);
6)輸入測試集,進行模型評估和模型更新。
本文使用的訓練數(shù)據(jù)集選自MIT,PASCAL,共包含4 753張不同尺寸的圖像。其中,MIT的924張圖像全部作為正樣本,其他正樣本和負樣本來自PASCAL。為防止過擬合,本文采用調(diào)節(jié)圖像亮度、飽和度、對比度,隨機裁剪,旋轉(zhuǎn)和仿射變換,模糊處理等方法來進一步擴充數(shù)據(jù)量。
1)建立一個小型網(wǎng)絡,卷積層數(shù)量為2。在第一個卷積層中用32個3×3的濾波器對圖像進行步長為1的卷積;第二個卷積層中,采用64個3×3的濾波器進行卷積,其他參數(shù)不變,Relu作為激活函數(shù)。全連接層中有512個神經(jīng)元,Softmax作為損失函數(shù)。
2)增加網(wǎng)絡深度,建立4層卷積網(wǎng)絡和2層全連接層,卷積層過濾器的個數(shù)分別取32,64,128,256個,在全連接層中分別取256和512個神經(jīng)元。圖4為4層卷積的MCS-CNN正確率和收斂曲線,與2層卷積層情況對比圖像經(jīng)過多通道處理和特征稀疏化之后,收斂更快,測試集的準確率更高,且不易過擬合。圖5為行人圖片經(jīng)過網(wǎng)絡時卷積層特征圖的可視化結(jié)果,表明隨著層數(shù)的增加,網(wǎng)絡忽略背景,更加關(guān)注行人輪廓。

圖4 4層卷積層MCS-CNN的正確率和收斂曲線

圖5 MCS-CNN部分層的可視化結(jié)果
由表1所示,隨著網(wǎng)絡層數(shù)的增加,準確率呈現(xiàn)先增后降的趨勢,整體變化不大,但檢測時間大幅增加。由于本身輸入通道的尺寸較小,不斷增加卷積層的層數(shù)在初期可以去除噪聲,提升提取特征的純度,但隨著層數(shù)的增加和池化等操作會損失圖片信息,從而影響特征的提取和識別結(jié)果。另一方面,MCS-CNN在檢測精度和速度上均優(yōu)于HOG-SVM算法。綜上,同時考慮準確率,召回率和檢測時間,本文取4層卷積網(wǎng)絡對樣本集進行特征提取,網(wǎng)絡模型結(jié)構(gòu)確定后,使用MCS-CNN模型與其他算法進行對比實驗。

表1 MCS-CNN不同卷積層數(shù)的實驗結(jié)果
圖6對比了本文MCS-CNN和CNN的混合矩陣。可以看出,MCS-CNN的查準率為64.22 %,查全率為98.14 %,CNN的查準率為75.8 %,查全率為87.58 %。CNN誤檢了91張圖像,而MCS-CNN誤檢了65張圖像,誤檢測率顯著降低。此外,對HOG-SVM、傳統(tǒng)CNN和MCS-CNN 3種檢測算法進行對比分析,結(jié)果如表2所示。其中測試樣本分別來自Daimler的311張圖像、來自INRIA的172張圖像、來自PASCAL的178張圖像。

圖6 CNN和MCS-CNN的混合矩陣對比

算法準確率/%DaimlerINRIAPSCAL平均檢測速度/(幀·s-1)HOG-SVM69.5273.1663.120.813CNN70.7381.9870.120.291MCS-CNN79.1090.1273.230.282
由表2分析可知,MCS-CNN模型對于Daimler,INRIA和PASCAL 3個數(shù)據(jù)集準確率均最高的。MCS-CNN方法的檢測速度明顯快于HOGSVM方法,略快于CNN。相較于傳統(tǒng)人工提取特征HOG和單純使用原圖作為輸入的CNN來說,本文算法集成了HOG的優(yōu)點,利用CNN自動提取特征,同時通過稀疏自動編碼器來優(yōu)化特征,在整體檢測性能上得到了有效提升。
本文在傳統(tǒng)CNN的基礎(chǔ)上,改變圖像作為網(wǎng)絡輸入的傳統(tǒng)形式,將圖像與HOG相結(jié)合的多通道信息作為輸入向量,然后利用稀疏自動編碼器進行特征稀疏化,降低來自卷積層特征的噪點污染。實驗表明,MCS-CNN模型不但保證了傳統(tǒng)CNN的高效性,同時提高了檢測的準確率。