單 巍,王江濤,陳得寶,李素文
(淮北師范大學物理與電子信息學院,安徽 淮北 235000)
行人檢測作為汽車輔助駕駛[1-2]、智能監控[3-4]和高級人機接口[5-6]的先決條件,一直是計算機視覺領域的研究熱點。由于行人姿態與所處背景的多樣性,行人檢測也一直是計算機視覺中的難點問題。行人檢測主要采取統計分類的方法,先圖像進行感興趣區域(ROIs)分割[7-8],然后對ROIs進行特征提取[9-11],最后送入分類器進行二分類[12-13]。早期應用較為廣泛的是梯度方向直方圖(HOG)與支持向量機(SVM)相結合的方法[14],在實踐中也取得了較好的效果。但在復雜背景和存在遮擋的情況下,檢測效果將大打折扣。將其他特征與HOG相結合可以提高算法的魯棒性,但實時性有所降低[9]。與可見光圖像相比,紅外成像系統對光照不敏感,夜間也能正常工作,物體的亮度取決于物體本身輻射出的熱量,人體在紅外圖像中一般體現為高亮區域;但其缺點在于紅外圖像中損失了顏色、紋理等信息,能夠利用的僅僅是亮度與梯度信息,可用信息的降低給特征提取增加了難度[15]。因此,傳統行人檢測方法中,檢測效果很大程度上取決于設計特征的好壞。人工設計特征費時費力,需要啟發式專業知識,很大程度上依靠設計者的經驗和運氣。
隨著“Alpha Go”戰勝人類棋手成為人工智能領域最熱門的新聞[16],“深度學習”(deep learning,DL)[17]方法引起研究者們越來越多的關注。與以往的模式識別方法相比,深度學習(deep learning)最大的特點是不再由人工設計特征,而是輸入原始數據,通過大量的訓練樣本對構建的含有多個隱藏層的神經網絡進行訓練,由網絡自動地學習所需的特征。A.Krizhevsky等[18]將卷積神經網絡(CNN)與深度學習相結合在圖像網絡大規模視覺識別挑戰賽(ImageNet large scale visual recognition challenge,ILSVRC)中,以15.3 %的錯誤率取得了圖像分類與目標定位任務的最好成績。此后先后出現了R-CNN、Faster R-CNN等神經網絡不斷取得了更好的檢測效果[19-21]。
雖然深度卷積網絡在ILSVRC中取得了極大的成功,但是在紅外圖像中的行人檢測問題上,采用深度學習的方法卻不是很多。盡管Faster R-CNN等神經網絡在物體檢測領域取得了很好的檢測效果,但由于網絡過于龐大,難以勝任單機或手持設備上的行人檢測任務。本文從深度學習的角度出發對紅外圖像中的行人檢測問題展開研究,致力于研究一類規模適中的網絡模型來解決紅外行人檢測問題。首先建立了對應的樣本庫。在此基礎上,通過設計不同結構的深度卷積神經網絡來解決紅外圖像中的行人檢測問題。實驗結果表明該方法對紅外圖像中的行人具有很高的檢測率和很低的虛警率,優于依靠特征提取檢測行人的傳統方法。此外,本文提出的深度卷積神經網絡參數選擇方法對構建深度網絡解決相關問題也有很高的參考價值。
傳統的人工神經網絡中,隱含層的神經元與前一層是全連通的(full connected),這意味著每一個神經元都與前一層的所有神經元存在參數關聯[22]。假定輸入圖像大小為M·N·D(M、N、D分別代表圖像的寬度、高度和深度),此時輸入層將有F=M·N·D個輸入,而第二層中每一個神經元對應F個權值。由此可以見第二層中每個神經元的參數隨圖像尺度而指數增長,龐大的參數量,容易導致過擬合,因此需要改變神經網絡的結構,使之適應直接輸入原始圖像數據,而卷積神經網絡就是深度學習的一種有效實現手段。
卷積神經網絡作為傳統神經網絡的特例,一般由多個單層的卷積神經網絡組合而成,除第一層輸入的原始圖像以外,每層的輸入、輸出都是由一組向量構成的特征圖(feature maps)。每個單層的卷積神經網絡包含有卷積、非線性變換和下采樣三個階段[23],其結構如圖1所示。

圖1 單層卷積神經網絡的三個階段Fig.1 Three phases of a single layer convolution neural network
卷積階段的輸入是由n1個n2×n3大小的二維特征圖構成的三維張量,將輸入特征圖記作xi;而卷積階段的輸出是由m1個m2×m3大小的二維特征圖構成三維數組,將輸出特征圖記作yj。連接輸入特征圖xi和輸出特征圖yj的權值記作ωij,該權值ωij就是可訓練的卷積核,大小為k2×k3。輸出特征圖yj與輸入特征圖xi的關系表達式為
(1)
式中,*為二維離散卷積運算符;bj為可訓練的偏置參數。
非線性變換階段是把卷積階段提取的特征通過非線性映射R=h(y)進行篩選,非線性操作可以采用sigmoid、tanh或softsign等飽和非線性函數或ReLU不飽和非線性函數實現,其目的在于利用函數的非線性提高模型的表達能力,避免線性模型表達能力不足的問題。下采樣階段中,采用式(2)分別對每張特征圖進行下采樣,下采樣后特征圖數量不變,分辨率降低,以達到降維的目的。
yj=βjdown(xj,N)+bj
(2)
式中,xj是卷積層中第j個特征映射的激活值;N為子采樣層所需要的窗口邊界大??;βj為子采樣層中第j個權重系數,其值通常為1,bj是第j個向量的偏置,通常為0;yj是子采樣層中第j個特征映射,down為基于因子N進行下采樣的池化函數。
由于卷積層中每個神經元僅在局部感知范圍內數據連通,因此需要合理安置神經元的空間排列對整個輸入數據進行傳播。在確定卷積核大小的情況下,神經元的空間排列和個數由以下三個參數決定:
1) 輸出數據的深度(depth):輸出數據的深度指同一局部感受野有多少個神經元與之連通,連接到同一局部感知野的神經元組成一個深度行(depth column)。輸出數據的深度也被形象的稱為特征圖的個數。
2) 卷積核移動的步長(stride):卷積核的大小決定了感受野的大小,也就是滑動窗口的大小,卷積核平移的步長大于1且小于等于卷積核的大小。
3) 所采用的補零方式(zero-padding):有時在卷積過程中會在圖像的邊緣補零,補零的尺度會影響到輸出數據的空間尺度。
本部分中我們將設計相應的卷積神經網絡實現紅外行人檢測功能。在設計網絡時綜合考慮網絡的規模和性能,以期望建立單CPU可快速運行的卷積神經網絡。在結構上以LeNet-5[24]為參考,通過實驗來確定網絡的具體層數和參數。構建網絡時采用BU-TIV (Thermal Infrared Video) Benchmark紅外人體數據庫作為訓練依據,從中選取正負樣本各3000個,共6000個構成樣本集,其中正負各2000個用來訓練,其余正負各1000個樣本則作為測試集。初始時,將所有樣本歸一化為32×32,由于紅外圖像為灰度圖像,所以圖像深度為1。
卷積神經網絡的參數主要包括網絡層數、卷積核大小和特征圖個數,三者相互聯系、互相影響、相互制約。目前卷積神經網絡的參數選擇沒有統一的方法,更多的是依靠設計者的經驗與大量的實驗??紤]到三個參數中網絡層數與卷積核大小對網絡結構的影響更大且兩者的聯系更為密切,特征圖個數相對獨立且對網絡結構影響較小,因此我們以檢測的錯誤率作為參數選取的衡量標準,錯誤率越小,代表網絡提取特征的能力越強,錯誤率為0.5表示系統無法收斂,錯誤率的定義為:

(3)
式中,ER為總的錯誤數;TOTAL為總樣本數。具體選擇參數的思路為:
1) 在單層卷積網絡中測試不同大小的卷積核提取特征的能力,依次增加特征圖個數,觀察卷積核大小與特征圖個數在特征提取能力方面的內在聯系,根據錯誤率最小的實驗結果預選擇單層卷積網絡中卷積核大小與特征圖個數的選取范圍。
2) 根據預選的卷積核大小,根據輸入圖像大小和卷積網絡構建規則列出網絡可能的結構形式,并按網絡層數進行歸類,設計出用于紅外行人檢測的卷積神經網絡的初始結構。
3) 在確定的網絡層數下,固定各卷積層中卷積核的大小,依次改變各卷積層中特征圖個數,對可能的網絡結構進行大量實驗,記錄錯誤率結果。
4) 對比第3)步中的實驗結果,選擇最小錯誤率對應的組合為最優的網絡結構參數。
根據實驗樣本大小和3.1節中提出的卷積網絡構建規則,令步長為S=1,補零為P=0,考慮到卷積核大小F不可任意取值,必須保證輸出的特征圖邊長為整數,則可能的網絡結構參數如表1組合所示,可以看出受樣本大小限制,網絡層次最深只能做到7層。以7層網絡為例,設計出深度卷積網絡結構及參數如圖2所示,圖2中除輸入層外共包含3個卷積層、3個池化層和1個輸出層,X、Y、Z分別是各卷積層與池化層中特征圖的個數,表1中,M、N、P、Q、R、S和m、n、p、q、r、s分別為各個特征圖的寬和高。如果是5層網絡,則沒有C5和S6層,S4層直接全連接到輸出層。

表1 可能的網絡結構參數Tab.1 Possible network structure parameters

圖2 7層卷積神經網絡Fig.2 Seven layers convolutional neural network
從表1可以看出,組合2、9、10、11由于參數選取不當造成特征圖大小不是整數,組合不成立;組合1、3、8、12是單層卷積結構,也暫時不考慮。對剩下的組合進行歸類,組合4、6、13、14、15、17可以構成5層深度卷積網絡,而組合7、16可以構成7層深度卷積網絡。
對于表1中列出的某個確定組合,其網絡層數和每一層卷積核的大小都已經確定了,唯一沒有確定的就是特征圖的個數,通過實驗,我們發現當特征圖個數大于9時網絡趨向不收斂,因此在1~9的范圍內對該參數進行選擇。
考慮到理論上更深的網絡層數提取的特征種類更多,對目標的描述更加細致,目標特征表達能力也應強于淺層網絡,故優先對7層網絡進行實驗。7層網絡中包含有兩種組合,分別對應表1中的組合7和組合16。通過大量實驗發現,組合7的第一卷積層中特征圖個數為2、第二卷積層中特征圖個數為8、第三卷積層中特征圖個數為7時,網絡擁有最低的錯誤率為0.0335,此時特征表達維數為2×2×7×8×2=448。對于組合16的第一卷積層中特征圖個數為3、第二卷積層中特征圖個數為3、第三卷積層中特征圖個數為7時,網絡擁有最低的錯誤率為0.0175,此時特征表達維數為1×1×7×3×3=63。兩組實驗結果如表2所示。

表2 7層網絡各組合最優參數與結果Tab.2 Optimal parameter and experimental results of all combination in seven layers
從表2可以看出,7層網絡中63維特征向量對行人的表達能力最強,維數增大則容易產生過擬合,從而導致錯誤率升高。表2中7層網絡的兩種組合在各自最優參數情況下的訓練過程如圖3所示,可以看到組合16在開始階段收斂速度快于組合7,兩者最終的收斂速度接近,在充分訓練的情況下,網絡處于穩定收斂狀態,組合16的收斂程度略高于組合7。

圖3 各網絡訓練過程Fig.3 Training process of each network
除7層網絡外,我們也對其余淺層網絡進行了實驗,網絡最低的錯誤率為0.0190(高于表2中的錯誤率0.0175)。由此可見,在合理設置卷積模板大小和特征圖個數的前提下,更深的網絡層次能夠提供更加強大的特征表達能力,且所需的特征向量維數低于淺層網絡結構。
綜合分析上述的測試結果,將表2實驗中確定的參數填入預先設計的網絡初始結構(圖2),得到最終網絡結構如圖4所示。

圖4 最終的網絡結構參數Fig.4 Final network structure parameters
采用本文所述的網絡進行測試實驗,測試樣本來源BU-TIV Benchmark紅外庫,共2000個,其中1~1000為正樣本,1001~2000為負樣本。檢測結果中,共有35個樣本被誤判,其中4個正樣本被誤判為負樣本,31個負樣本被誤判為正樣本。圖5中給出了部分被錯誤分類的樣本。

圖5 部分被錯誤分類的樣本Fig.5 Part of misclassified samples
由圖5(a)可知,誤判正樣本中有的是不完整的人體或者圖像非常模糊,有的則是騎在摩托車上的人,摩托車發動機在圖像中體現為高亮度;由圖5(b)可知,誤判的負樣本中有的場景較為復雜,有的樣本中存在部分行人的肢體,這都增加了分類的難度。值得一提的是,在檢查正確分類的樣本時,我們發現所有騎自行車的人都被正確分類為人體。
為直觀反映檢測效果,本文以錯誤率、檢測率和虛警率作為衡量指標,定義如下:

(4)

(5)
式中,TP為正確分類的正樣本數量;FP為被錯誤分類的正樣本數量;FN為被誤判為正樣本的負樣本數量。將本文算法與傳統方法:文獻[14]和文獻[9]進行對比,實驗結果如表3所示。從實驗結果可以看出,本文提出的算法不但擁有更高的檢測率,而且虛警率和總的錯誤率遠遠低于參考文獻中的算法。

表3 不同行人檢測算法性能指標對比Tab.3 Performance comparison between different pedestrian detection algorithms
本文構建了一個7層深度卷積神經網絡,通過理論分析與大量實驗確定了網絡中的所有參數,該網絡可以直接輸入原始圖像,并能夠自動的從樣本中學習所需的特征,避免了傳統的行人檢測算法依靠人工設計特征的弊端。從最終的實驗結果看,本文方法在總錯誤率、檢測率和虛警率等指標上比傳統方法更為優秀。
在紅外人體檢測問題上,深度卷積神經網絡是一種行之有效的方法,但是其難點在于網絡參數的選擇。目前針對紅外行人檢測構建深度卷積網絡的工作還不多見,主要原因在于缺少大量帶標簽的紅外人體與非人體樣本,同時深度網絡參數太多,網絡訓練耗時過長。本文首先構建了能夠用于紅外行人檢測的樣本大數據庫,然后在分析網絡工作原理和大量實驗的基礎上,對深度卷積網絡的結構設計與參數選擇方法進行了深入研究,最后得出結論:在合理設置卷積模板大小和特征圖個數的前提下,更深的網絡層次能夠提供更加強大的特征表達能力,且所需的特征向量維數低于淺層網絡結構。本文方法構建的深度卷積神經網絡在紅外行人檢測問題上取得了非常好的效果,為構建深度學習網絡解決相關問題提供了參考依據。