賈翻連, 張麗紅
(山西大學(xué) 物理電子工程學(xué)院, 山西 太原 030006)
近幾年來, 人群密度估計(jì)成為智能視頻分析的一個(gè)研究熱點(diǎn). 對(duì)人群密度進(jìn)行估計(jì)的算法開始出現(xiàn)并不斷豐富, 主要算法包括模板匹配和深度學(xué)習(xí)兩類. Davies[1]等提出人群密度的估計(jì)能夠利用提取前景圖像(只包含人)的總像素?cái)?shù)以及邊緣圖像的總像素?cái)?shù)兩種像素特征來進(jìn)行, 它們都與圖像人群數(shù)量大致成線性關(guān)系; Chow[2]為了對(duì)人群的像素統(tǒng)計(jì)特征進(jìn)行有效地分析, 通過使用神經(jīng)網(wǎng)絡(luò)方法估計(jì)人群密度信息; Marana[3]提出基于紋理分析的人群密度估計(jì)算法, 該算法的主要功能是能夠解決高密度場景的人群密度估計(jì)問題; Lin S F[4]等人在論文中提出利用個(gè)人特征來檢測行人, 實(shí)現(xiàn)人群人數(shù)的統(tǒng)計(jì), 從而實(shí)現(xiàn)人群密度估計(jì); Zhao[5]提出了一種基于模板匹配進(jìn)行行人檢測的方法, 對(duì)行人進(jìn)行了參數(shù)化建模. 這些方法首先從給定的圖像中提取特征, 然后通過這些特征將人群密度圖片分成不同等級(jí). 常用的分類器是支持向量機(jī)和神經(jīng)網(wǎng)絡(luò), 其中HuaYang[6], XiaoHua Li[7]等都選擇支持向量機(jī)作為分類器.
這些方法往往都是在整幅圖像中應(yīng)用一個(gè)模型, 把特征向量映射成行人數(shù)量來進(jìn)行人群密度估計(jì), 其缺陷是忽略了不同區(qū)域中的不同人群密度的差異, 且用一個(gè)模型一次處理一張圖片需要的時(shí)間較長. 卷積神經(jīng)網(wǎng)絡(luò)模型具有很強(qiáng)大的特征提取和表示能力, 本文提出一種基于并行卷積神經(jīng)網(wǎng)絡(luò)的人群密度估計(jì)算法, 把視頻幀進(jìn)行分塊, 將圖像塊分別輸入不同的模型, 深入地挖掘不同條件下較好的特征, 降低背景環(huán)境復(fù)雜度的影響, 從而更好地進(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[8]等人提出的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, 簡稱 CNN)是第一個(gè)真正的多層非線性結(jié)構(gòu)學(xué)習(xí)算法, 它在手寫字符識(shí)別中已經(jīng)成功應(yīng)用, 該方法將特征提取和識(shí)別結(jié)合在一起, 通過卷積操作直接對(duì)圖像進(jìn)行處理, 提取圖像的局部特征如角點(diǎn)、 邊緣等等, 并利用誤差反向傳播過程, 不斷地選擇、 優(yōu)化既得的特征.
一般地, CNN包含多個(gè)卷積過程和全連接的過程. 每個(gè)卷積的過程由4個(gè)部分組成, 即卷積層、 匯聚層、 非線性變換層, 局部反應(yīng)標(biāo)準(zhǔn)化層. 通過這4個(gè)部分減少參數(shù)數(shù)目以提高訓(xùn)練性能, 并能夠保證圖像對(duì)位移、 縮放、 形變的魯棒性. 經(jīng)典的LeNet-5網(wǎng)絡(luò)模型結(jié)構(gòu)如圖 1 所示.
圖 1 LeNet-5網(wǎng)絡(luò)框架Fig.1 LeNet-5 network framework
卷積網(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)變得更簡單, 適應(yīng)性更強(qiáng).
卷積神經(jīng)網(wǎng)絡(luò)的缺點(diǎn)是: 存在計(jì)算瓶頸, 即卷積層與子采樣層間特征圖的大小匹配, 會(huì)影響計(jì)算速度和時(shí)間.
用基本卷積神經(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ì)此, 本文提出一種并行卷積神經(jīng)網(wǎng)絡(luò), 其模型如圖 2 所示.
并行卷積神經(jīng)網(wǎng)絡(luò)由4部分組成: 輸入、 特征提取、 特征融合和結(jié)果輸出. 圖像分塊后將每一個(gè)圖像塊作為該模型的輸入; 特征提取是通過并行卷積神經(jīng)網(wǎng)絡(luò)來實(shí)現(xiàn)的, 特征融合采用的是自編碼網(wǎng)絡(luò), 最后用支持向量機(jī)將分類結(jié)果輸出.
并行卷積神經(jīng)網(wǎng)絡(luò)是可以同時(shí)處理多個(gè)圖像塊的網(wǎng)絡(luò)結(jié)構(gòu), 每層都是一個(gè)完整的卷積神經(jīng)網(wǎng)絡(luò), 具有基本卷積神經(jīng)網(wǎng)絡(luò)的基本功能. 在卷積神經(jīng)網(wǎng)絡(luò)中處在同一個(gè)特征圖中的神經(jīng)元節(jié)點(diǎn)有著共同的卷積核, 表示為數(shù)學(xué)模型
(1)
式中: *代表卷積操作;xi代表前一層中第i個(gè)特征圖;wij代表從上一層第i個(gè)特征圖產(chǎn)生下一層第j個(gè)特征圖所需要的卷積核;bj代表閾值;f(x)代表激活函數(shù).
圖 2 并行卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Parallel convolution neural network structure
網(wǎng)絡(luò)中第p個(gè)樣本的誤差為Ep, 表達(dá)式如式(2), 式中yp代表期望輸出,op代表實(shí)際輸出. 將網(wǎng)絡(luò)關(guān)于整個(gè)樣本集的誤差測度定義為β, 表達(dá)式如式(3).
(2)
β=∑Ep.
(3)
由網(wǎng)絡(luò)結(jié)構(gòu)可知: 并行卷積神經(jīng)網(wǎng)絡(luò)具有基本卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn), 而且通過分塊處理一幅圖片, 減少了卷積神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)量, 使得運(yùn)算速度加快, 降低了網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜度.
基本的圖像分類任務(wù)主要由特征提取和分類兩部分組成. 基于并行卷積神經(jīng)網(wǎng)絡(luò)的人群密度估計(jì)算法的流程如圖 3 所示.
圖 3 人群密度估計(jì)算法的流程圖Fig.3 Flow chart of population density estimation algorithm
具體步驟如下:
1) 圖像預(yù)處理
視頻中存在透視效應(yīng), 使得同樣面積的前景像素實(shí)際的大小不同, 所以需要對(duì)圖像做透視校正, 以降低其在實(shí)驗(yàn)中帶來的誤差.
2) 圖像分塊
對(duì)于每一幀圖像都進(jìn)行分塊, 在本文中分成3*3塊區(qū)域.
3) 人群密度預(yù)估計(jì)
根據(jù)前景面積閾值粗略判斷該區(qū)域是否是密集人群, 對(duì)于稀疏人群, 網(wǎng)絡(luò)中第一層卷積的卷積核大小為 5×5, 第二層卷積核大小為 3×3; 對(duì)于密集人群, 網(wǎng)絡(luò)中第一層的卷積核大小為7×7, 第二層卷積核大小為5×5.
4) 人群特征提取
將圖像塊輸入并行卷積神經(jīng)網(wǎng)絡(luò), 根據(jù)步驟3)的預(yù)估計(jì)結(jié)果選擇合適的卷積核進(jìn)行特征提取.
在網(wǎng)絡(luò)中, 損失函數(shù)為平方損失函數(shù), 如式(4)所示.
(4)
式中: β表示的是誤差, 整個(gè)式子表示的是誤差的平方和.
激活函數(shù)采用有Maxout的Exponential Linear Enit (ELU)[8], 表達(dá)式如式(5).
(5)
ELU 是 ReLU 的一個(gè)相對(duì)平滑的版本, 它能加速收斂并提高準(zhǔn)確度. 其中α是一個(gè)可調(diào)整的參數(shù), 它控制著ELU負(fù)值部分在何時(shí)飽和. 與 ReLU 不同, ELU 擁有負(fù)值, 允許它們以更低的計(jì)算復(fù)雜度將平均單位激活推向更加接近 0 的值. 與雙曲正切和Sigmoid函數(shù)相比較, 由于ELU函數(shù)的正部分是恒等式, 所以梯度消失的問題得到了緩解, 因此它們的導(dǎo)數(shù)是一個(gè)而不是收縮的.
5) 人群特征融合
由步驟4)可以得到每一個(gè)圖像塊的特征. 這些特征維數(shù)過高, 很難直接應(yīng)用. 因此有必要融合這些特征, 降低特征維數(shù). 并且, 在我們的方法中, 每張圖像被分割為9個(gè)區(qū)域塊. 在每一塊的區(qū)域邊界可能會(huì)有某一個(gè)人被分到兩個(gè)甚至更多的圖像塊中, 不同塊特征中有些特征是有可能表示同一個(gè)人的, 因此有必要融合這些特征. 每個(gè)圖像塊的特征由向量組成, 本文采用自編碼網(wǎng)絡(luò)融合這些特征并降維.
6) 人群特征分類
將步驟5)得到的特征用Softmax分類.
7) 結(jié)果輸出
網(wǎng)絡(luò)的輸出層 3 個(gè)節(jié)點(diǎn)分別對(duì)應(yīng) 3 個(gè)密度等級(jí), 將步驟6得到的分類結(jié)果作為支持向量機(jī)的輸入, 通過支持向量機(jī)得到網(wǎng)絡(luò)的輸出. 在實(shí)驗(yàn)中采用向量形式將訓(xùn)練樣本的類別對(duì)應(yīng)到輸出節(jié)點(diǎn), 即: 低密度等級(jí)對(duì)應(yīng)的輸出向量就是(1,0,0)T, 中密度等級(jí)對(duì)應(yīng)的輸出向量是(0,1,0)T, 高密度等級(jí)對(duì)應(yīng)的輸出向量是(0,0,1,)T.
在系統(tǒng)為windows server 2012的服務(wù)器、 python 3.5 的實(shí)驗(yàn)平臺(tái)下, 用2個(gè)數(shù)據(jù)集對(duì)提出的方法進(jìn)行驗(yàn)證. 一個(gè)數(shù)據(jù)集來自Chan[9]UCSD的行人數(shù)據(jù)集(下文簡稱數(shù)據(jù)集1 ), 該數(shù)據(jù)集圖片分辨率為238*158、 幀率為10fps的視頻. 另外一個(gè)數(shù)據(jù)集是自己拍攝的一段某路口視頻(下文簡稱數(shù)據(jù)集2), 該視頻視角較遠(yuǎn), 場景中有少許雜亂背景.
表 1 人群密度等級(jí)的定義
將人群密度按照人數(shù)分為低、 中、 高3個(gè)等級(jí), 具體定義如表 1 所示.
并行卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程大致可以歸結(jié)為 3 步, ① 將樣本導(dǎo)入分類器進(jìn)行訓(xùn)練至網(wǎng)絡(luò)收斂; ② 優(yōu)化網(wǎng)絡(luò), 刪除冗余的連接; ③ 進(jìn)一步訓(xùn)練. 網(wǎng)絡(luò)中采用的損失函數(shù)為對(duì)數(shù)損失. 網(wǎng)絡(luò)的誤差參數(shù)β的初始值設(shè)為 0.18, 通過實(shí)驗(yàn)發(fā)現(xiàn)在這個(gè)閾值之前網(wǎng)絡(luò)的誤差處于平滑下降趨勢, 當(dāng)網(wǎng)絡(luò)誤差降至 0.15 左右時(shí), 大部分的可分樣本已經(jīng)能夠正確分類; 對(duì)于少數(shù)不可分樣本, 由于受到學(xué)習(xí)率的影響, 會(huì)使分類錯(cuò)誤. 實(shí)驗(yàn)中,α=0.1 , 學(xué)習(xí)率為0.000 1, 此時(shí)分類效果最好.
對(duì)于數(shù)據(jù)集1和數(shù)據(jù)集2, 選取其中4 400個(gè)樣本, 使用數(shù)據(jù)集中的樣本, 提取特征, 用2 400個(gè)樣本訓(xùn)練神經(jīng)網(wǎng)絡(luò)的參數(shù), 并用剩余的2 000個(gè)樣本進(jìn)行測試. 人群密度等級(jí)估計(jì)準(zhǔn)確率的結(jié)果如表 2 和表 3 所示. 將并行卷積神經(jīng)網(wǎng)絡(luò)的實(shí)驗(yàn)結(jié)果和基本卷積神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)結(jié)果進(jìn)行比較.
表 2 和表 3 結(jié)果表明: 并行卷積網(wǎng)絡(luò)對(duì)于人群密度估計(jì)有極高的準(zhǔn)確率, 并且與基本卷積神經(jīng)網(wǎng)絡(luò)和BP神經(jīng)網(wǎng)絡(luò)相比, 其分類準(zhǔn)確率也有所提高.
表 2 數(shù)據(jù)集 1 人群密度等級(jí)估計(jì)準(zhǔn)確率
表 3 數(shù)據(jù)集2人群密度等級(jí)估計(jì)準(zhǔn)確率
另外, 將數(shù)據(jù)集1和HangSu[10], Kim[11]的方法進(jìn)行比較. HangSu等采用了 SST-LBP 方法描述特征并使用 SVM 作為分類器. Kim采用計(jì)算運(yùn)動(dòng)區(qū)域和對(duì)比信息的方法來估計(jì)人群密度等級(jí), 其中對(duì)比信息基于 GLDM 矩陣方法, 累加矩陣元素將和作為一個(gè)特征, 然后用這兩個(gè)特征去訓(xùn)練 BP 神經(jīng)網(wǎng)絡(luò). 由實(shí)驗(yàn)結(jié)果可得到, 依靠卷積神經(jīng)網(wǎng)絡(luò)可以得到更為準(zhǔn)確的特征和分類.
本文算法采用并行卷積神經(jīng)網(wǎng)絡(luò)對(duì)視頻幀進(jìn)行處理, 在算法運(yùn)算速度上與基本卷積神經(jīng)網(wǎng)絡(luò)相比具有明顯優(yōu)勢, 并且具有良好的魯棒性.
本文構(gòu)造了一種并行卷積神經(jīng)網(wǎng)絡(luò)模型, 將其應(yīng)用于人群密度等級(jí)估計(jì), 與基本卷積神經(jīng)網(wǎng)絡(luò)、 BP神經(jīng)網(wǎng)絡(luò)及HangSu, Kim等方法進(jìn)行了對(duì)比. 實(shí)驗(yàn)結(jié)果表明: 本文方法在人群密度估計(jì)準(zhǔn)確度和運(yùn)算速度方面都有所提高.
[1] Davies A C, Yin J H, Velastin S A.Crowd monitoring using image processing[J]. Electronics & Communication Engineering Journal, 1995, 7(1): 37-47.
[2] Chow T W S. Fast training algorithm for feed forward neural networks: application to crowd estimation at underground stations[J]. Artificial Intelligence in Engineering, 1999, 13(3): 301-307.
[3] Marana A N, Velastin S A, Costa L F, et al. Estimation of crowd density using image processing[J]. IEEE Colloquium on Image Processing for Security Applications, 1997, 11(3): 1-11.
[4] Lin S F, Chen J Y, Chao H X. Estimation of number of people in crowded scenes using perspective transformation[J]. IEEE Transactions on Systems, Man and Cybemetics PartA: Systems and Humans, 2001, 31(6): 645-653.
[5] Zhao T, NeVatia R, Wu B. Segmentation and tracking of multiple humans in crowded environments[J]. Pattern AnaIysis and Machine Intelligence, IEEE Transactions on, 2008, 30(7): 1198-1211.
[6] Yang H, Su H, Zheng S, et al. The large-scale crowd density estimation based on sparse spatiotemporal local binary pattern[C]. Multimedia and Expo (ICME), 2011 IEEE International Conference on. IEEE, 2011: 1-6.
[7] Li Xiaohua, Shen Lansun, Li Huanqin. Estimation of crowd density based on wavelet and support vector machine[J]. Transactions of the Institute of Measurement and Control, 2006, 11(3): 2-15.
[8] Djork-Arne Clevert, Thomas Unterthiner, Sepp Hochreiter. Fast and accurate deep network learning by exponential linear units [C], International Conference on Learning Representations. 2016: 1-14.
[9] Chan A, Vasconcelos N.Counting people with low-level features and bayesian regression[J].IEEE Trans on Image Processing, 2012, 21(4): 60-77.
[10] Su H, Yang H, Zheng S. The large-scale crowd density estimation based on effective region feature extraction method[M]. Computer Vision-ACCV 2010. Springer Berlin Heidelberg, 2011.
[11] Kim G, An T, Kim M. Estimation of crowd density in public areas based on neural network[J]. KSII Transactions on Internet & Information Systems, 2012, 6(9): 2170-2190.