賈翻連,張麗紅
(山西大學(xué) 物理電子工程學(xué)院,山西 太原 030006)
近年來(lái),人群密度估計(jì)成為智能視頻分析的一個(gè)研究熱點(diǎn),并且越來(lái)越多的學(xué)者和研究人員使用基于深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的各種方法研究人群密度。其中,Davies[1]指出,人群密度與當(dāng)前幀的前景像素面積近乎呈線性關(guān)系,由此提出了基于像素統(tǒng)計(jì)特征的人群密度估計(jì)算法。隨后,基于改進(jìn)的混合神經(jīng)網(wǎng)絡(luò)密度估計(jì)算法[2]被提出。劉曼等提出一種基于可變矩形框的人群密度數(shù)值估計(jì)算法[3];時(shí)增林等提出了基于序的空間金字塔池化網(wǎng)絡(luò)的人群計(jì)數(shù)方法[4];張洞明等提出了一種結(jié)合支持向量機(jī)回歸進(jìn)行集成學(xué)習(xí)的方法來(lái)進(jìn)行人群密度估計(jì)[5];譚智勇等提出了基于深度卷積神經(jīng)網(wǎng)絡(luò)的人群密度估計(jì)方法[6]。在這些方法中,網(wǎng)絡(luò)首先學(xué)習(xí)訓(xùn)練數(shù)據(jù),然后通過(guò)學(xué)習(xí)過(guò)程組成的網(wǎng)絡(luò)系統(tǒng)能夠識(shí)別人群特征并進(jìn)行分類。此外,大多數(shù)機(jī)器學(xué)習(xí)使用梯度下降法求最小能量損失時(shí)較難找到零損失,機(jī)器學(xué)習(xí)的結(jié)果可能在真實(shí)值附近振蕩,產(chǎn)生學(xué)習(xí)誤差。
卷積網(wǎng)絡(luò)是為識(shí)別二維形狀而特殊設(shè)計(jì)的一個(gè)多層感知器,且卷積神經(jīng)網(wǎng)絡(luò)模型具有很強(qiáng)大的特征提取和表示能力,但是卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算速度受卷積層與子采樣層之間特征圖的大小匹配的影響。對(duì)此,文中提出用離散小波變換替換卷積神經(jīng)網(wǎng)絡(luò)中的子采樣層,以改善預(yù)處理時(shí)的振蕩現(xiàn)象和卷積神經(jīng)網(wǎng)絡(luò)中特征圖的匹配問(wèn)題,從而更好地進(jìn)行人群密度估計(jì)。
在深度學(xué)習(xí)模型中,卷積神經(jīng)網(wǎng)絡(luò)是最經(jīng)典的模型之一。卷積網(wǎng)絡(luò)是為識(shí)別二維形狀而特殊設(shè)計(jì)的一個(gè)多層感知器,這種網(wǎng)絡(luò)結(jié)構(gòu)對(duì)平移、比例縮放、傾斜或者共他形式的變形具有高度不變性。LeCun等[7]提出的卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)是第一個(gè)真正的多層非線性結(jié)構(gòu)學(xué)習(xí)算法,在手寫字符識(shí)別中已經(jīng)成功應(yīng)用。該方法將特征提取和識(shí)別結(jié)合在一起,通過(guò)卷積操作直接對(duì)圖像進(jìn)行處理,提取圖像的局部特征如角點(diǎn)、邊緣等等,并利用誤差反向傳播過(guò)程,不斷地選擇、優(yōu)化既得特征。
一般地,CNN包含多個(gè)卷積過(guò)程和全連接的過(guò)程。每個(gè)卷積過(guò)程由四部分組成,即卷積層、匯聚層、非線性變換層,局部反應(yīng)標(biāo)準(zhǔn)化層。通過(guò)這四個(gè)部分減少參數(shù)數(shù)目以提高訓(xùn)練性能,并能夠保證圖像對(duì)位移、縮放、形變的魯棒性。
卷積網(wǎng)絡(luò)較一般神經(jīng)網(wǎng)絡(luò)在圖像處理方面有如下優(yōu)點(diǎn):輸入圖像和網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)能很好地吻合;特征提取和模式分類同時(shí)進(jìn)行,并同時(shí)在訓(xùn)練中產(chǎn)生;權(quán)重共享可以減少網(wǎng)絡(luò)的訓(xùn)練參數(shù),使神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)變得更簡(jiǎn)單,適應(yīng)性更強(qiáng)。
卷積神經(jīng)網(wǎng)絡(luò)的缺點(diǎn)在于計(jì)算瓶頸,即卷積層與子采樣層間特征圖的大小匹配,會(huì)影響計(jì)算速度和時(shí)間。
小波分析從信號(hào)處理角度來(lái)看可以作為基于傅里葉變換理論發(fā)展起來(lái)的一種有效的時(shí)頻分析方法[8]。將小波分析應(yīng)用于數(shù)字圖像信號(hào),可以利用小波變換在時(shí)域和頻域均具有的良好的局部化描述特點(diǎn),方便地表示圖像的平滑區(qū)域和局部特征區(qū)域,并具有多分辨率分解的特點(diǎn)[9]。
小波變換主要包括連續(xù)小波變換(CWT)和離散小波變換(DWT)。離散小波變換可表示為:
(1)
母小波應(yīng)滿足如式2所示的條件[10]。
(2)
主要有兩種方法實(shí)現(xiàn)離散小波變換:多分辨率分析和提升方案。文中采用多分辨率分析。多分辨率分析分解信號(hào)可以寫成:
(3)
其中,fn(t)是分析信號(hào);φ(t)是一個(gè)尺度函數(shù);gl是一個(gè)低通濾波器,對(duì)應(yīng)于φ(t);hl是一個(gè)高通濾波器,對(duì)應(yīng)于π(t)。
用基本卷積神經(jīng)網(wǎng)絡(luò)處理人群密度圖片時(shí),其網(wǎng)絡(luò)的結(jié)構(gòu)會(huì)受圖片背景的影響。當(dāng)背景較為復(fù)雜時(shí),網(wǎng)絡(luò)會(huì)有比較多的隱含層,此時(shí),基本卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算瓶頸會(huì)更為突出。對(duì)此,文中對(duì)該模型進(jìn)行改進(jìn),其模型如圖1所示。
圖1 改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)
對(duì)圖像進(jìn)行小波變換的原理就是通過(guò)低通濾波器和高通濾波器對(duì)圖像進(jìn)行卷積濾波,再進(jìn)行二取一的下采樣。在卷積神經(jīng)網(wǎng)絡(luò)中,離散小波變換可以達(dá)到和原卷積神經(jīng)網(wǎng)絡(luò)中下采樣過(guò)程一樣的效果,因此在加入DWT后,將原來(lái)的下采樣過(guò)程去掉。
DWT層使用DWT分解上一層的輸出,通過(guò)式3,輸出h(a)從式4中獲得。
(4)
為了使輸出具有相同的長(zhǎng)度,對(duì)DWT的輸出層取樣。最后,小波神經(jīng)網(wǎng)絡(luò)的輸出可以表示為:
(5)
即該方法利用權(quán)重作為母小波的尺度,這意味著訓(xùn)練過(guò)程可視為尋找母小波的最佳形狀來(lái)逼近訓(xùn)練數(shù)據(jù)的一種方法。因此,式5中的權(quán)重矩陣W的每個(gè)分量可以由式6計(jì)算。
(6)
其中,on,m是矩陣O的元素;pn,m是矩陣P的元素。矩陣O和P為:
(7)
(8)
其中,E為能量損失。
(9)
其中,yk是神經(jīng)網(wǎng)絡(luò)的當(dāng)前輸出;tk是訓(xùn)練數(shù)據(jù)。文中使用均方誤差來(lái)評(píng)估能量損失。
在系統(tǒng)為Windows Server 2012的服務(wù)器、Python 3.5、MATLAB 2012a的實(shí)驗(yàn)平臺(tái)下,用2個(gè)數(shù)據(jù)集對(duì)提出的方法進(jìn)行驗(yàn)證。一個(gè)數(shù)據(jù)集來(lái)自Chan[11]UCSD的行人數(shù)據(jù)集(簡(jiǎn)稱數(shù)據(jù)集1),該數(shù)據(jù)集是圖片分辨率為238*158、幀率為10 fps的視頻。另外一個(gè)數(shù)據(jù)集是自己拍攝的一段某路口視頻(簡(jiǎn)稱數(shù)據(jù)集2),該視頻視角較遠(yuǎn),場(chǎng)景中有少許雜亂背景。
將人群密度按照人數(shù)分為低、中、高三個(gè)等級(jí),具體定義如表1所示。
表1 人群密度等級(jí)的定義
文中選擇Haar小波作為基小波,選擇2級(jí)分解尺度。傳統(tǒng)的多層神經(jīng)網(wǎng)絡(luò)為32層,改進(jìn)后的神經(jīng)網(wǎng)絡(luò)為28層。
使用數(shù)據(jù)集1的部分作為訓(xùn)練數(shù)據(jù)來(lái)訓(xùn)練提出的改進(jìn)神經(jīng)網(wǎng)絡(luò)的特性,部分作為測(cè)試數(shù)據(jù)集來(lái)測(cè)試所提出的網(wǎng)絡(luò),并且將文中方法與傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行對(duì)比,得到的實(shí)驗(yàn)結(jié)果如表2和表3所示。其中,A為傳統(tǒng)的多層神經(jīng)網(wǎng)絡(luò)方法,B為多層神經(jīng)網(wǎng)絡(luò)中隱含層加入離散小波變換的方法,C為基本的卷積神經(jīng)網(wǎng)絡(luò)方法,D為文中改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)方法,E為HangSu等[12]采用的SST-LBP方法并使用SVM作為分類器;F為Kim[13]采用的計(jì)算運(yùn)動(dòng)區(qū)域和對(duì)比信息的方法,其中對(duì)比信息基于GLDM[14]矩陣方法,累加矩陣元素將和作為一個(gè)特征,然后用這兩個(gè)特征去訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)[15]。
表2 數(shù)據(jù)集1人群密度等級(jí)估計(jì)準(zhǔn)確率 %
表3 數(shù)據(jù)集2人群密度等級(jí)估計(jì)準(zhǔn)確率 %
用信噪比來(lái)評(píng)估小波神經(jīng)網(wǎng)絡(luò)的性能,計(jì)算公式如下:
(10)
用不同的數(shù)據(jù)集進(jìn)行了實(shí)驗(yàn),結(jié)果見表4。
表4 信噪比對(duì)比結(jié)果
此外,使用MSE(均方誤差)來(lái)衡量神經(jīng)網(wǎng)絡(luò)的性能。
(11)
用不同的數(shù)據(jù)集進(jìn)行了實(shí)驗(yàn),所得結(jié)果見表5。
表5 均方誤差結(jié)果
從表2~5可以看出,改進(jìn)的神經(jīng)網(wǎng)絡(luò)的平均信噪比較傳統(tǒng)的網(wǎng)絡(luò)有所提高,且均方誤差平均值有所降低,這意味著改進(jìn)的神經(jīng)網(wǎng)絡(luò)比傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)具有更好的性能,從而可以得到更好的人群密度等級(jí)估計(jì)結(jié)果。由數(shù)據(jù)集2的結(jié)果可知,該網(wǎng)絡(luò)具有良好的魯棒性。
將卷積神經(jīng)網(wǎng)絡(luò)中的子采樣層用離散小波變換代替,對(duì)其權(quán)重矩陣的計(jì)算進(jìn)行了優(yōu)化,通過(guò)權(quán)重自適應(yīng)改善卷積神經(jīng)網(wǎng)絡(luò)在解決回歸問(wèn)題預(yù)處理時(shí)的振蕩現(xiàn)象,提高卷積神經(jīng)網(wǎng)絡(luò)卷積層與子采樣層間特征圖的大小匹配。實(shí)驗(yàn)結(jié)果表明,采用的基于離散小波變換的卷積神經(jīng)網(wǎng)絡(luò)與基本的卷積神經(jīng)網(wǎng)絡(luò)相比,有較好的分類效果及較快的運(yùn)算速度。