單 巍,王江濤,陳得寶,李素文
(淮北師范大學(xué)物理與電子信息學(xué)院,安徽 淮北 235000)
行人檢測作為汽車輔助駕駛[1-2]、智能監(jiān)控[3-4]和高級人機(jī)接口[5-6]的先決條件,一直是計(jì)算機(jī)視覺領(lǐng)域的研究熱點(diǎn)。由于行人姿態(tài)與所處背景的多樣性,行人檢測也一直是計(jì)算機(jī)視覺中的難點(diǎn)問題。行人檢測主要采取統(tǒng)計(jì)分類的方法,先圖像進(jìn)行感興趣區(qū)域(ROIs)分割[7-8],然后對ROIs進(jìn)行特征提取[9-11],最后送入分類器進(jìn)行二分類[12-13]。早期應(yīng)用較為廣泛的是梯度方向直方圖(HOG)與支持向量機(jī)(SVM)相結(jié)合的方法[14],在實(shí)踐中也取得了較好的效果。但在復(fù)雜背景和存在遮擋的情況下,檢測效果將大打折扣。將其他特征與HOG相結(jié)合可以提高算法的魯棒性,但實(shí)時(shí)性有所降低[9]。與可見光圖像相比,紅外成像系統(tǒng)對光照不敏感,夜間也能正常工作,物體的亮度取決于物體本身輻射出的熱量,人體在紅外圖像中一般體現(xiàn)為高亮區(qū)域;但其缺點(diǎn)在于紅外圖像中損失了顏色、紋理等信息,能夠利用的僅僅是亮度與梯度信息,可用信息的降低給特征提取增加了難度[15]。因此,傳統(tǒng)行人檢測方法中,檢測效果很大程度上取決于設(shè)計(jì)特征的好壞。人工設(shè)計(jì)特征費(fèi)時(shí)費(fèi)力,需要啟發(fā)式專業(yè)知識,很大程度上依靠設(shè)計(jì)者的經(jīng)驗(yàn)和運(yùn)氣。
隨著“Alpha Go”戰(zhàn)勝人類棋手成為人工智能領(lǐng)域最熱門的新聞[16],“深度學(xué)習(xí)”(deep learning,DL)[17]方法引起研究者們越來越多的關(guān)注。與以往的模式識別方法相比,深度學(xué)習(xí)(deep learning)最大的特點(diǎn)是不再由人工設(shè)計(jì)特征,而是輸入原始數(shù)據(jù),通過大量的訓(xùn)練樣本對構(gòu)建的含有多個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,由網(wǎng)絡(luò)自動(dòng)地學(xué)習(xí)所需的特征。A.Krizhevsky等[18]將卷積神經(jīng)網(wǎng)絡(luò)(CNN)與深度學(xué)習(xí)相結(jié)合在圖像網(wǎng)絡(luò)大規(guī)模視覺識別挑戰(zhàn)賽(ImageNet large scale visual recognition challenge,ILSVRC)中,以15.3 %的錯(cuò)誤率取得了圖像分類與目標(biāo)定位任務(wù)的最好成績。此后先后出現(xiàn)了R-CNN、Faster R-CNN等神經(jīng)網(wǎng)絡(luò)不斷取得了更好的檢測效果[19-21]。
雖然深度卷積網(wǎng)絡(luò)在ILSVRC中取得了極大的成功,但是在紅外圖像中的行人檢測問題上,采用深度學(xué)習(xí)的方法卻不是很多。盡管Faster R-CNN等神經(jīng)網(wǎng)絡(luò)在物體檢測領(lǐng)域取得了很好的檢測效果,但由于網(wǎng)絡(luò)過于龐大,難以勝任單機(jī)或手持設(shè)備上的行人檢測任務(wù)。本文從深度學(xué)習(xí)的角度出發(fā)對紅外圖像中的行人檢測問題展開研究,致力于研究一類規(guī)模適中的網(wǎng)絡(luò)模型來解決紅外行人檢測問題。首先建立了對應(yīng)的樣本庫。在此基礎(chǔ)上,通過設(shè)計(jì)不同結(jié)構(gòu)的深度卷積神經(jīng)網(wǎng)絡(luò)來解決紅外圖像中的行人檢測問題。實(shí)驗(yàn)結(jié)果表明該方法對紅外圖像中的行人具有很高的檢測率和很低的虛警率,優(yōu)于依靠特征提取檢測行人的傳統(tǒng)方法。此外,本文提出的深度卷積神經(jīng)網(wǎng)絡(luò)參數(shù)選擇方法對構(gòu)建深度網(wǎng)絡(luò)解決相關(guān)問題也有很高的參考價(jià)值。
傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)中,隱含層的神經(jīng)元與前一層是全連通的(full connected),這意味著每一個(gè)神經(jīng)元都與前一層的所有神經(jīng)元存在參數(shù)關(guān)聯(lián)[22]。假定輸入圖像大小為M·N·D(M、N、D分別代表圖像的寬度、高度和深度),此時(shí)輸入層將有F=M·N·D個(gè)輸入,而第二層中每一個(gè)神經(jīng)元對應(yīng)F個(gè)權(quán)值。由此可以見第二層中每個(gè)神經(jīng)元的參數(shù)隨圖像尺度而指數(shù)增長,龐大的參數(shù)量,容易導(dǎo)致過擬合,因此需要改變神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),使之適應(yīng)直接輸入原始圖像數(shù)據(jù),而卷積神經(jīng)網(wǎng)絡(luò)就是深度學(xué)習(xí)的一種有效實(shí)現(xiàn)手段。
卷積神經(jīng)網(wǎng)絡(luò)作為傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的特例,一般由多個(gè)單層的卷積神經(jīng)網(wǎng)絡(luò)組合而成,除第一層輸入的原始圖像以外,每層的輸入、輸出都是由一組向量構(gòu)成的特征圖(feature maps)。每個(gè)單層的卷積神經(jīng)網(wǎng)絡(luò)包含有卷積、非線性變換和下采樣三個(gè)階段[23],其結(jié)構(gòu)如圖1所示。
圖1 單層卷積神經(jīng)網(wǎng)絡(luò)的三個(gè)階段Fig.1 Three phases of a single layer convolution neural network
卷積階段的輸入是由n1個(gè)n2×n3大小的二維特征圖構(gòu)成的三維張量,將輸入特征圖記作xi;而卷積階段的輸出是由m1個(gè)m2×m3大小的二維特征圖構(gòu)成三維數(shù)組,將輸出特征圖記作yj。連接輸入特征圖xi和輸出特征圖yj的權(quán)值記作ωij,該權(quán)值ωij就是可訓(xùn)練的卷積核,大小為k2×k3。輸出特征圖yj與輸入特征圖xi的關(guān)系表達(dá)式為
(1)
式中,*為二維離散卷積運(yùn)算符;bj為可訓(xùn)練的偏置參數(shù)。
非線性變換階段是把卷積階段提取的特征通過非線性映射R=h(y)進(jìn)行篩選,非線性操作可以采用sigmoid、tanh或softsign等飽和非線性函數(shù)或ReLU不飽和非線性函數(shù)實(shí)現(xiàn),其目的在于利用函數(shù)的非線性提高模型的表達(dá)能力,避免線性模型表達(dá)能力不足的問題。下采樣階段中,采用式(2)分別對每張?zhí)卣鲌D進(jìn)行下采樣,下采樣后特征圖數(shù)量不變,分辨率降低,以達(dá)到降維的目的。
yj=βjdown(xj,N)+bj
(2)
式中,xj是卷積層中第j個(gè)特征映射的激活值;N為子采樣層所需要的窗口邊界大小;βj為子采樣層中第j個(gè)權(quán)重系數(shù),其值通常為1,bj是第j個(gè)向量的偏置,通常為0;yj是子采樣層中第j個(gè)特征映射,down為基于因子N進(jìn)行下采樣的池化函數(shù)。
由于卷積層中每個(gè)神經(jīng)元僅在局部感知范圍內(nèi)數(shù)據(jù)連通,因此需要合理安置神經(jīng)元的空間排列對整個(gè)輸入數(shù)據(jù)進(jìn)行傳播。在確定卷積核大小的情況下,神經(jīng)元的空間排列和個(gè)數(shù)由以下三個(gè)參數(shù)決定:
1) 輸出數(shù)據(jù)的深度(depth):輸出數(shù)據(jù)的深度指同一局部感受野有多少個(gè)神經(jīng)元與之連通,連接到同一局部感知野的神經(jīng)元組成一個(gè)深度行(depth column)。輸出數(shù)據(jù)的深度也被形象的稱為特征圖的個(gè)數(shù)。
2) 卷積核移動(dòng)的步長(stride):卷積核的大小決定了感受野的大小,也就是滑動(dòng)窗口的大小,卷積核平移的步長大于1且小于等于卷積核的大小。
3) 所采用的補(bǔ)零方式(zero-padding):有時(shí)在卷積過程中會在圖像的邊緣補(bǔ)零,補(bǔ)零的尺度會影響到輸出數(shù)據(jù)的空間尺度。
本部分中我們將設(shè)計(jì)相應(yīng)的卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)紅外行人檢測功能。在設(shè)計(jì)網(wǎng)絡(luò)時(shí)綜合考慮網(wǎng)絡(luò)的規(guī)模和性能,以期望建立單CPU可快速運(yùn)行的卷積神經(jīng)網(wǎng)絡(luò)。在結(jié)構(gòu)上以LeNet-5[24]為參考,通過實(shí)驗(yàn)來確定網(wǎng)絡(luò)的具體層數(shù)和參數(shù)。構(gòu)建網(wǎng)絡(luò)時(shí)采用BU-TIV (Thermal Infrared Video) Benchmark紅外人體數(shù)據(jù)庫作為訓(xùn)練依據(jù),從中選取正負(fù)樣本各3000個(gè),共6000個(gè)構(gòu)成樣本集,其中正負(fù)各2000個(gè)用來訓(xùn)練,其余正負(fù)各1000個(gè)樣本則作為測試集。初始時(shí),將所有樣本歸一化為32×32,由于紅外圖像為灰度圖像,所以圖像深度為1。
卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)主要包括網(wǎng)絡(luò)層數(shù)、卷積核大小和特征圖個(gè)數(shù),三者相互聯(lián)系、互相影響、相互制約。目前卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)選擇沒有統(tǒng)一的方法,更多的是依靠設(shè)計(jì)者的經(jīng)驗(yàn)與大量的實(shí)驗(yàn)。考慮到三個(gè)參數(shù)中網(wǎng)絡(luò)層數(shù)與卷積核大小對網(wǎng)絡(luò)結(jié)構(gòu)的影響更大且兩者的聯(lián)系更為密切,特征圖個(gè)數(shù)相對獨(dú)立且對網(wǎng)絡(luò)結(jié)構(gòu)影響較小,因此我們以檢測的錯(cuò)誤率作為參數(shù)選取的衡量標(biāo)準(zhǔn),錯(cuò)誤率越小,代表網(wǎng)絡(luò)提取特征的能力越強(qiáng),錯(cuò)誤率為0.5表示系統(tǒng)無法收斂,錯(cuò)誤率的定義為:
(3)
式中,ER為總的錯(cuò)誤數(shù);TOTAL為總樣本數(shù)。具體選擇參數(shù)的思路為:
1) 在單層卷積網(wǎng)絡(luò)中測試不同大小的卷積核提取特征的能力,依次增加特征圖個(gè)數(shù),觀察卷積核大小與特征圖個(gè)數(shù)在特征提取能力方面的內(nèi)在聯(lián)系,根據(jù)錯(cuò)誤率最小的實(shí)驗(yàn)結(jié)果預(yù)選擇單層卷積網(wǎng)絡(luò)中卷積核大小與特征圖個(gè)數(shù)的選取范圍。
2) 根據(jù)預(yù)選的卷積核大小,根據(jù)輸入圖像大小和卷積網(wǎng)絡(luò)構(gòu)建規(guī)則列出網(wǎng)絡(luò)可能的結(jié)構(gòu)形式,并按網(wǎng)絡(luò)層數(shù)進(jìn)行歸類,設(shè)計(jì)出用于紅外行人檢測的卷積神經(jīng)網(wǎng)絡(luò)的初始結(jié)構(gòu)。
3) 在確定的網(wǎng)絡(luò)層數(shù)下,固定各卷積層中卷積核的大小,依次改變各卷積層中特征圖個(gè)數(shù),對可能的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行大量實(shí)驗(yàn),記錄錯(cuò)誤率結(jié)果。
4) 對比第3)步中的實(shí)驗(yàn)結(jié)果,選擇最小錯(cuò)誤率對應(yīng)的組合為最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)。
根據(jù)實(shí)驗(yàn)樣本大小和3.1節(jié)中提出的卷積網(wǎng)絡(luò)構(gòu)建規(guī)則,令步長為S=1,補(bǔ)零為P=0,考慮到卷積核大小F不可任意取值,必須保證輸出的特征圖邊長為整數(shù),則可能的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)如表1組合所示,可以看出受樣本大小限制,網(wǎng)絡(luò)層次最深只能做到7層。以7層網(wǎng)絡(luò)為例,設(shè)計(jì)出深度卷積網(wǎng)絡(luò)結(jié)構(gòu)及參數(shù)如圖2所示,圖2中除輸入層外共包含3個(gè)卷積層、3個(gè)池化層和1個(gè)輸出層,X、Y、Z分別是各卷積層與池化層中特征圖的個(gè)數(shù),表1中,M、N、P、Q、R、S和m、n、p、q、r、s分別為各個(gè)特征圖的寬和高。如果是5層網(wǎng)絡(luò),則沒有C5和S6層,S4層直接全連接到輸出層。
表1 可能的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)Tab.1 Possible network structure parameters
圖2 7層卷積神經(jīng)網(wǎng)絡(luò)Fig.2 Seven layers convolutional neural network
從表1可以看出,組合2、9、10、11由于參數(shù)選取不當(dāng)造成特征圖大小不是整數(shù),組合不成立;組合1、3、8、12是單層卷積結(jié)構(gòu),也暫時(shí)不考慮。對剩下的組合進(jìn)行歸類,組合4、6、13、14、15、17可以構(gòu)成5層深度卷積網(wǎng)絡(luò),而組合7、16可以構(gòu)成7層深度卷積網(wǎng)絡(luò)。
對于表1中列出的某個(gè)確定組合,其網(wǎng)絡(luò)層數(shù)和每一層卷積核的大小都已經(jīng)確定了,唯一沒有確定的就是特征圖的個(gè)數(shù),通過實(shí)驗(yàn),我們發(fā)現(xiàn)當(dāng)特征圖個(gè)數(shù)大于9時(shí)網(wǎng)絡(luò)趨向不收斂,因此在1~9的范圍內(nèi)對該參數(shù)進(jìn)行選擇。
考慮到理論上更深的網(wǎng)絡(luò)層數(shù)提取的特征種類更多,對目標(biāo)的描述更加細(xì)致,目標(biāo)特征表達(dá)能力也應(yīng)強(qiáng)于淺層網(wǎng)絡(luò),故優(yōu)先對7層網(wǎng)絡(luò)進(jìn)行實(shí)驗(yàn)。7層網(wǎng)絡(luò)中包含有兩種組合,分別對應(yīng)表1中的組合7和組合16。通過大量實(shí)驗(yàn)發(fā)現(xiàn),組合7的第一卷積層中特征圖個(gè)數(shù)為2、第二卷積層中特征圖個(gè)數(shù)為8、第三卷積層中特征圖個(gè)數(shù)為7時(shí),網(wǎng)絡(luò)擁有最低的錯(cuò)誤率為0.0335,此時(shí)特征表達(dá)維數(shù)為2×2×7×8×2=448。對于組合16的第一卷積層中特征圖個(gè)數(shù)為3、第二卷積層中特征圖個(gè)數(shù)為3、第三卷積層中特征圖個(gè)數(shù)為7時(shí),網(wǎng)絡(luò)擁有最低的錯(cuò)誤率為0.0175,此時(shí)特征表達(dá)維數(shù)為1×1×7×3×3=63。兩組實(shí)驗(yàn)結(jié)果如表2所示。
表2 7層網(wǎng)絡(luò)各組合最優(yōu)參數(shù)與結(jié)果Tab.2 Optimal parameter and experimental results of all combination in seven layers
從表2可以看出,7層網(wǎng)絡(luò)中63維特征向量對行人的表達(dá)能力最強(qiáng),維數(shù)增大則容易產(chǎn)生過擬合,從而導(dǎo)致錯(cuò)誤率升高。表2中7層網(wǎng)絡(luò)的兩種組合在各自最優(yōu)參數(shù)情況下的訓(xùn)練過程如圖3所示,可以看到組合16在開始階段收斂速度快于組合7,兩者最終的收斂速度接近,在充分訓(xùn)練的情況下,網(wǎng)絡(luò)處于穩(wěn)定收斂狀態(tài),組合16的收斂程度略高于組合7。
圖3 各網(wǎng)絡(luò)訓(xùn)練過程Fig.3 Training process of each network
除7層網(wǎng)絡(luò)外,我們也對其余淺層網(wǎng)絡(luò)進(jìn)行了實(shí)驗(yàn),網(wǎng)絡(luò)最低的錯(cuò)誤率為0.0190(高于表2中的錯(cuò)誤率0.0175)。由此可見,在合理設(shè)置卷積模板大小和特征圖個(gè)數(shù)的前提下,更深的網(wǎng)絡(luò)層次能夠提供更加強(qiáng)大的特征表達(dá)能力,且所需的特征向量維數(shù)低于淺層網(wǎng)絡(luò)結(jié)構(gòu)。
綜合分析上述的測試結(jié)果,將表2實(shí)驗(yàn)中確定的參數(shù)填入預(yù)先設(shè)計(jì)的網(wǎng)絡(luò)初始結(jié)構(gòu)(圖2),得到最終網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4 最終的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)Fig.4 Final network structure parameters
采用本文所述的網(wǎng)絡(luò)進(jìn)行測試實(shí)驗(yàn),測試樣本來源BU-TIV Benchmark紅外庫,共2000個(gè),其中1~1000為正樣本,1001~2000為負(fù)樣本。檢測結(jié)果中,共有35個(gè)樣本被誤判,其中4個(gè)正樣本被誤判為負(fù)樣本,31個(gè)負(fù)樣本被誤判為正樣本。圖5中給出了部分被錯(cuò)誤分類的樣本。
圖5 部分被錯(cuò)誤分類的樣本Fig.5 Part of misclassified samples
由圖5(a)可知,誤判正樣本中有的是不完整的人體或者圖像非常模糊,有的則是騎在摩托車上的人,摩托車發(fā)動(dòng)機(jī)在圖像中體現(xiàn)為高亮度;由圖5(b)可知,誤判的負(fù)樣本中有的場景較為復(fù)雜,有的樣本中存在部分行人的肢體,這都增加了分類的難度。值得一提的是,在檢查正確分類的樣本時(shí),我們發(fā)現(xiàn)所有騎自行車的人都被正確分類為人體。
為直觀反映檢測效果,本文以錯(cuò)誤率、檢測率和虛警率作為衡量指標(biāo),定義如下:
(4)
(5)
式中,TP為正確分類的正樣本數(shù)量;FP為被錯(cuò)誤分類的正樣本數(shù)量;FN為被誤判為正樣本的負(fù)樣本數(shù)量。將本文算法與傳統(tǒng)方法:文獻(xiàn)[14]和文獻(xiàn)[9]進(jìn)行對比,實(shí)驗(yàn)結(jié)果如表3所示。從實(shí)驗(yàn)結(jié)果可以看出,本文提出的算法不但擁有更高的檢測率,而且虛警率和總的錯(cuò)誤率遠(yuǎn)遠(yuǎn)低于參考文獻(xiàn)中的算法。
表3 不同行人檢測算法性能指標(biāo)對比Tab.3 Performance comparison between different pedestrian detection algorithms
本文構(gòu)建了一個(gè)7層深度卷積神經(jīng)網(wǎng)絡(luò),通過理論分析與大量實(shí)驗(yàn)確定了網(wǎng)絡(luò)中的所有參數(shù),該網(wǎng)絡(luò)可以直接輸入原始圖像,并能夠自動(dòng)的從樣本中學(xué)習(xí)所需的特征,避免了傳統(tǒng)的行人檢測算法依靠人工設(shè)計(jì)特征的弊端。從最終的實(shí)驗(yàn)結(jié)果看,本文方法在總錯(cuò)誤率、檢測率和虛警率等指標(biāo)上比傳統(tǒng)方法更為優(yōu)秀。
在紅外人體檢測問題上,深度卷積神經(jīng)網(wǎng)絡(luò)是一種行之有效的方法,但是其難點(diǎn)在于網(wǎng)絡(luò)參數(shù)的選擇。目前針對紅外行人檢測構(gòu)建深度卷積網(wǎng)絡(luò)的工作還不多見,主要原因在于缺少大量帶標(biāo)簽的紅外人體與非人體樣本,同時(shí)深度網(wǎng)絡(luò)參數(shù)太多,網(wǎng)絡(luò)訓(xùn)練耗時(shí)過長。本文首先構(gòu)建了能夠用于紅外行人檢測的樣本大數(shù)據(jù)庫,然后在分析網(wǎng)絡(luò)工作原理和大量實(shí)驗(yàn)的基礎(chǔ)上,對深度卷積網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計(jì)與參數(shù)選擇方法進(jìn)行了深入研究,最后得出結(jié)論:在合理設(shè)置卷積模板大小和特征圖個(gè)數(shù)的前提下,更深的網(wǎng)絡(luò)層次能夠提供更加強(qiáng)大的特征表達(dá)能力,且所需的特征向量維數(shù)低于淺層網(wǎng)絡(luò)結(jié)構(gòu)。本文方法構(gòu)建的深度卷積神經(jīng)網(wǎng)絡(luò)在紅外行人檢測問題上取得了非常好的效果,為構(gòu)建深度學(xué)習(xí)網(wǎng)絡(luò)解決相關(guān)問題提供了參考依據(jù)。