王洪德,王煥青
(1.大連交通大學(xué) 土木與安全工程學(xué)院,遼寧 大連 116028; 2.大連交通大學(xué) 隧道與地下結(jié)構(gòu)工程技術(shù)研究中心,遼寧 大連 116028)*
卷積神經(jīng)網(wǎng)絡(luò)圖像識(shí)別技術(shù)在入侵監(jiān)測(cè)系統(tǒng)中的應(yīng)用研究
王洪德1,2,王煥青2
(1.大連交通大學(xué) 土木與安全工程學(xué)院,遼寧 大連 116028; 2.大連交通大學(xué) 隧道與地下結(jié)構(gòu)工程技術(shù)研究中心,遼寧 大連 116028)*
為應(yīng)對(duì)入侵手段復(fù)雜多樣的安全形勢(shì),解決現(xiàn)有入侵監(jiān)測(cè)技術(shù)成本高、適應(yīng)性差的問題,設(shè)計(jì)研發(fā)一種成本低廉、兼容性好、方便拓展的入侵監(jiān)測(cè)系統(tǒng).應(yīng)用開源深度機(jī)器學(xué)習(xí)框架TensorFLow實(shí)現(xiàn)基于卷積神經(jīng)網(wǎng)絡(luò)的圖像識(shí)別算法,構(gòu)建輔助安全系統(tǒng),并在多種工況下對(duì)系統(tǒng)有效性進(jìn)行驗(yàn)證.結(jié)果表明:系統(tǒng)能以較高準(zhǔn)確率對(duì)入侵行為進(jìn)行識(shí)別,在多分類情景下,隨訓(xùn)練樣本數(shù)量的增加,模型預(yù)測(cè)準(zhǔn)確率得到提高,而收斂時(shí)間有所增加,開啟GPU加速后縮短為原來的1/10.
入侵監(jiān)測(cè);圖像識(shí)別;卷積神經(jīng)網(wǎng)絡(luò);TensorFlow
隨著國民經(jīng)濟(jì)的快速發(fā)展,人們?cè)谙硎茇S富的物質(zhì)文化成果的同時(shí),也逐漸意識(shí)到保護(hù)自身利益的重要性,社會(huì)安全防范意識(shí)的普遍提高,安防系統(tǒng)在各種場(chǎng)合的應(yīng)用也越來越普及.入侵監(jiān)測(cè)技術(shù)是安全領(lǐng)域研究的一大熱點(diǎn)課題,視頻監(jiān)控系統(tǒng)已得到大范圍應(yīng)用,小到超市、餐廳,大到城市交通、軍事基地,視頻監(jiān)控系統(tǒng)已是安防設(shè)施中不可或缺的一個(gè)重要環(huán)節(jié).然而,傳統(tǒng)視頻監(jiān)控系統(tǒng)存在這明顯不足[1],主要表現(xiàn)為監(jiān)控方式缺乏主動(dòng)性和即時(shí)性;監(jiān)控漏報(bào)問題突出等.因此,智能監(jiān)控預(yù)警系統(tǒng)的研發(fā)與應(yīng)用符合各行各業(yè)的迫切需求.目前,一些科研人員針對(duì)入侵監(jiān)測(cè)這一課題做了很多有意義的研究和探索,大致可分為兩類:①基于物理傳感器的入侵監(jiān)測(cè)技術(shù)[2- 3];②基于圖像識(shí)別技術(shù)的入侵檢測(cè)技術(shù)[4- 5].此外,目前的入侵檢測(cè)技術(shù)研究大多處于理論層面,并基于Matlab實(shí)現(xiàn).由于Matlab體積龐大,平臺(tái)相關(guān)性強(qiáng),實(shí)際應(yīng)用中必然要選用替代方法實(shí)現(xiàn),而這一過程也不可避免的會(huì)出現(xiàn)新的問題.
為解決實(shí)際應(yīng)用和技術(shù)上的不足,本文從實(shí)用出發(fā),針對(duì)已部署傳統(tǒng)視頻監(jiān)控系統(tǒng)需增加入侵監(jiān)測(cè)功能的場(chǎng)景,基于卷積神經(jīng)網(wǎng)絡(luò),設(shè)計(jì)一種通過對(duì)監(jiān)控視頻進(jìn)行圖像識(shí)別,從而實(shí)現(xiàn)入侵監(jiān)測(cè)功能的輔助安全系統(tǒng).該系統(tǒng)基于開源項(xiàng)目,所用Python語言可覆蓋Matlab絕大多數(shù)功能,兼容幾乎所有硬件平臺(tái),使用具有自適應(yīng)能力的分類模型,并且支持GPU加速,幾乎無需額外的硬件設(shè)備投入,成本低廉,具有較高的適用性及可拓展性.
1.1 卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用
卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種前饋神經(jīng)網(wǎng)絡(luò)[6- 7],可感知圖像的局部特征,并對(duì)局部特征進(jìn)行綜合得到全局特征,在處理大型圖像時(shí)表現(xiàn)出色.目前,支持CNN的機(jī)器學(xué)習(xí)框架不勝枚舉,本文采用Google的開源機(jī)器學(xué)習(xí)框架TensorFlow[8]予以實(shí)現(xiàn).TensorFlow使用Python作為開發(fā)語言,兼容性好,移植性和拓展性強(qiáng),并支持GPU計(jì)算,可大大加快機(jī)器學(xué)習(xí)模型的訓(xùn)練速度.
1.2基于TensorFlow的CNN入侵檢測(cè)模型設(shè)計(jì)
與BP網(wǎng)絡(luò)類似,設(shè)計(jì)CNN的難點(diǎn)在于如何確定網(wǎng)絡(luò)規(guī)模,如卷積層、下采樣層的個(gè)數(shù)、大小以及連接方式,網(wǎng)絡(luò)結(jié)構(gòu)的選取會(huì)影響到網(wǎng)絡(luò)的訓(xùn)練難度和準(zhǔn)確性.對(duì)于一般的小型圖像分類問題,采用2個(gè)卷積層、2個(gè)下采樣層以及2個(gè)全連接層即可得到良好的效果.但由于監(jiān)控視頻的分辨率往往較高,為了盡可能的保留圖像中的更多細(xì)節(jié),本文采用3個(gè)卷積層、3個(gè)下采樣層以及2個(gè)全連接層的網(wǎng)絡(luò)結(jié)構(gòu),其簡圖如圖1所示.
圖1 CNN入侵檢測(cè)模型簡圖
圖中各符號(hào)及相關(guān)參數(shù)如下:
(1)input代表輸入的圖像數(shù)據(jù),由系統(tǒng)從本地磁盤或數(shù)據(jù)采集模塊讀取.圖像攜帶有類別標(biāo)簽,系統(tǒng)將標(biāo)簽保存在一個(gè)張量中作為結(jié)果集;
(2)conv*表示卷積層,W_conv*和B_conv*分別表示對(duì)應(yīng)卷積層的權(quán)重和偏置,所有卷積層的卷積核大小均為m*m,步長為s,三個(gè)卷積層依次產(chǎn)生特征圖個(gè)數(shù)為4、8、16;
(3)pool*表示下采樣層,采樣域?yàn)?*2,對(duì)前面緊鄰卷積層進(jìn)行平均值采樣,采樣域間互不重疊;
(4)BPh和BPo是兩個(gè)全連接層,可與pool3層共同視為一個(gè)BP神經(jīng)網(wǎng)絡(luò),W_BP*和B_BP*分別為對(duì)應(yīng)全連接層的權(quán)重和偏置,激活函數(shù)使用sigmod函數(shù).BPh層含有n個(gè)神經(jīng)元,BPo層所含神經(jīng)元個(gè)數(shù)c即為分類個(gè)數(shù),系統(tǒng)讀取系統(tǒng)配置信息確定c的值.每個(gè)神經(jīng)元代表一類,樣本類別即為輸出值最大的神經(jīng)元所代表的類別,并對(duì)輸出結(jié)果進(jìn)行one-hot編碼,輸出最大值的神經(jīng)元置為1,其余置為0.如三分類問題中,c=3,如果3號(hào)神經(jīng)元輸出值最大,則編碼后的輸出結(jié)果為001;
(5)采用誤差反向傳播算法[9]調(diào)整網(wǎng)絡(luò)各層權(quán)值和偏置.
為適應(yīng)不同監(jiān)控設(shè)備,模型中的可變參數(shù)m、s、n由系統(tǒng)根據(jù)輸入圖像的大小計(jì)算來確定.計(jì)算方法如下:
約定m為奇數(shù),步長s=(m-1)/2.為保證模型的擬合度并盡量減少訓(xùn)練參數(shù),約定pool3層的輸出做一維展開后的大小為不小于128的最小整數(shù).設(shè)x0×y0表示樣本圖像的大小,第i步卷積和下采樣操作后生成的特征圖大小可通過下面公式計(jì)算:
式中,int為向下取整運(yùn)算,s取滿足x3×y3×8≥128的最大正整數(shù),可用二分法求得.
再根據(jù)經(jīng)驗(yàn)公式計(jì)算BPh層神經(jīng)元個(gè)數(shù):
則網(wǎng)絡(luò)的中需要訓(xùn)練的參數(shù)個(gè)數(shù)為:
卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算實(shí)質(zhì)上是矩陣運(yùn)算,參數(shù)m、s、n、c定義了各個(gè)矩陣的大小.使用TensorFlow框架便于對(duì)各個(gè)參數(shù)進(jìn)行計(jì)算和調(diào)整.若采用GPU加速計(jì)算,只需調(diào)用對(duì)應(yīng)的GPU接口即可.
如圖2所示,系統(tǒng)由數(shù)據(jù)提取、模型訓(xùn)練與預(yù)測(cè)、用戶接口三大模塊組成,各模塊功能如下:
圖2 系統(tǒng)功能模塊結(jié)構(gòu)圖
(1)數(shù)據(jù)提取模塊.負(fù)責(zé)從視頻監(jiān)控系統(tǒng)中讀取視頻流數(shù)據(jù),按管理員設(shè)置的時(shí)間間隔提取圖片,轉(zhuǎn)換為TensorFlow可接受的格式發(fā)送到模型處理模塊進(jìn)行預(yù)測(cè).為節(jié)省計(jì)算資源,視頻數(shù)據(jù)的提取是在保證過濾掉包含入侵人員的幀的情況下,采用隔一段時(shí)間提取一幀的處理方式,以期加快系統(tǒng)響應(yīng)速度.時(shí)間間隔通常設(shè)置在0.3~0.5 s之間;
(2)模型訓(xùn)練與預(yù)測(cè)模塊.模型以二進(jìn)制文件形式存儲(chǔ)到本地文件系統(tǒng)中,管理員可按需求調(diào)整模型參數(shù).初次部署時(shí)需準(zhǔn)備一定數(shù)量的訓(xùn)練樣本對(duì)模型進(jìn)行初始化訓(xùn)練;訓(xùn)練模型時(shí),系統(tǒng)自動(dòng)讀取圖像并生成樣本集,同時(shí)按文件名中的分類信息,生成對(duì)應(yīng)的結(jié)果集,輸入到分類模型中;訓(xùn)練完成后,系統(tǒng)進(jìn)入監(jiān)控狀態(tài),當(dāng)某一幀圖像檢測(cè)到入侵人員時(shí),會(huì)彈出對(duì)話框、現(xiàn)實(shí)圖像并發(fā)出提示音,管理員可根據(jù)是否誤報(bào)給系統(tǒng)以反饋,系統(tǒng)會(huì)將數(shù)據(jù)存儲(chǔ)到特定空間,用于下次模型訓(xùn)練.系統(tǒng)會(huì)每隔特定時(shí)間對(duì)模型進(jìn)行優(yōu)化訓(xùn)練,以不斷適應(yīng)監(jiān)控系統(tǒng)的細(xì)微變化,提高模型預(yù)測(cè)的準(zhǔn)確性;
(3)用戶接口模塊.用戶通過瀏覽器訪問管理員指定的地址對(duì)系統(tǒng)進(jìn)行操作.該模塊后端采用Python語言和Django框架開發(fā)[10],對(duì)外開發(fā)Restful風(fēng)格的webservice接口[11];前端采用Ajax技術(shù)通過Json格式與后端交互數(shù)據(jù).這種設(shè)計(jì)兼容各種設(shè)備,管理員可通過PC端、移動(dòng)端等任何具有Web訪問功能的終端對(duì)系統(tǒng)進(jìn)行管理查看,提高了系統(tǒng)的靈活性和可拓展性.
用戶接口功能結(jié)構(gòu)如圖3所示.
圖3 用戶接口功能結(jié)構(gòu)
用戶接口主要功能如下:
(1)綜合信息,即系統(tǒng)首頁.展示系統(tǒng)當(dāng)前狀態(tài)、報(bào)警信息及其他提示信息;
(2)模型管理.包含模型信息、訓(xùn)練模型、模型驗(yàn)證、計(jì)劃任務(wù)等子功能.模型信息用于展示當(dāng)前生效模型相關(guān)信息,提供導(dǎo)入/導(dǎo)出模型功能;訓(xùn)練模型可選擇樣本數(shù)據(jù)集對(duì)模型進(jìn)行訓(xùn)練,并實(shí)時(shí)查看訓(xùn)練進(jìn)度,完成訓(xùn)練后模型將自動(dòng)保存;模型驗(yàn)證可使用驗(yàn)證數(shù)據(jù)集對(duì)模型準(zhǔn)確度進(jìn)行驗(yàn)證;計(jì)劃任務(wù)可設(shè)置系統(tǒng)自動(dòng)訓(xùn)練模型的時(shí)間、周期規(guī)模等;
(3)數(shù)據(jù)樣本管理.包含查看樣本、樣本集管理等子功能.查看樣本可逐個(gè)查看系統(tǒng)中的樣本數(shù)據(jù),包括數(shù)據(jù)的創(chuàng)建日期、正負(fù)(正樣本即存在入侵的樣本)等信息;樣本集管理可將樣本分組,然后按組輸入到模型中進(jìn)行訓(xùn)練或者驗(yàn)證;
(4)配置選項(xiàng).系統(tǒng)和用戶設(shè)置等子功能.系統(tǒng)設(shè)置包含系統(tǒng)的數(shù)據(jù)采集時(shí)間間隔、開發(fā)數(shù)據(jù)端口等配置項(xiàng),并提供系統(tǒng)重啟等功能;用戶設(shè)置包括增刪用戶、口令設(shè)置、權(quán)限設(shè)置等管理功能.
測(cè)試系統(tǒng)部署于單臺(tái)多核工作站上,搭載有Intel Core i7 6700K處理器,16G內(nèi)存,顯卡為NVIDIA GeForce GTX 960,在不同訓(xùn)練數(shù)據(jù)量以及是否開啟GPU加速等多種工況下進(jìn)行測(cè)試.
樣本圖像大小為352×288像素,根據(jù)式(1)~式(3)計(jì)算可知,卷積步長s=2,卷積核大小為5×5.首先,按有無入侵兩類情況對(duì)系統(tǒng)進(jìn)行測(cè)試,則BPh層神經(jīng)元個(gè)數(shù)為25個(gè),模型中可訓(xùn)練的參數(shù)個(gè)數(shù)為1 096,one-hot編碼為:
01:無入侵;
10:有入侵.
然后,對(duì)三分類情景進(jìn)行測(cè)試,則BPh層神經(jīng)元個(gè)數(shù)為30個(gè),模型中可訓(xùn)練的參數(shù)個(gè)數(shù)為1 298,one-hot編碼:
001:無入侵;
010:有人入侵;
100:有動(dòng)物入侵.
測(cè)試結(jié)果如表1所示.
由表1可以看出,二分類情景(即“有/無”問題)中模型能以100%的準(zhǔn)確率檢測(cè)出監(jiān)測(cè)區(qū)域有無異物入侵,樣本的增加對(duì)模型準(zhǔn)確率幾乎沒有影響,這是因?yàn)樵跊]有異物闖入情況下的監(jiān)控畫面基本相同,相對(duì)于有異物闖入的情形有明顯差異,因此區(qū)分度較高.而三分類情景中,在訓(xùn)練樣本較少時(shí),模型出現(xiàn)少量誤報(bào)的情況,隨著樣本的增加,誤報(bào)情況減少,但依然存在.經(jīng)研究發(fā)現(xiàn),誤報(bào)樣本為蹲伏狀人類樣本,使模型與某些大型非人類異物混淆,造成誤報(bào).在“三分類4”工況的訓(xùn)練樣本中加入適量蹲伏狀態(tài)的人類樣本后,模型成功區(qū)分出該類情形.
此外,隨訓(xùn)練樣本數(shù)量的增加,模型收斂時(shí)間也有所增加,在開啟GPU加速的情境下,收斂速度提高了10倍有余,加速效果顯著.
表1 不同工況條件及測(cè)試結(jié)果
(1)將基于卷積神經(jīng)網(wǎng)絡(luò)的圖像識(shí)別技術(shù)應(yīng)用到入侵監(jiān)測(cè)領(lǐng)域,設(shè)計(jì)了一種成本低廉、兼容性好、自適應(yīng)能力強(qiáng)、能與現(xiàn)有視頻檢測(cè)系統(tǒng)有效結(jié)合的入侵監(jiān)測(cè)系統(tǒng);
(2)設(shè)計(jì)了能夠根據(jù)輸入數(shù)據(jù)自行調(diào)整網(wǎng)絡(luò)參數(shù)的神經(jīng)網(wǎng)絡(luò),并基于TensorFlow框架實(shí)現(xiàn);
(3)在兩種分類情景、不同工況下對(duì)系統(tǒng)進(jìn)行測(cè)試,探明了系統(tǒng)準(zhǔn)確率、收斂時(shí)間與訓(xùn)練數(shù)據(jù)集規(guī)模的關(guān)系以及GPU加速的效果,驗(yàn)證了系統(tǒng)的有效性.
[1]袁國武.智能視頻監(jiān)控中的運(yùn)動(dòng)目標(biāo)檢測(cè)和跟蹤算法研究[D].昆明:云南大學(xué),2012.
[2]謝鑫,吳慧娟,饒?jiān)平?一種基于光纖布喇格光柵振動(dòng)傳感器的光纖圍欄入侵監(jiān)測(cè)系統(tǒng)及其模式識(shí)別[J].光子學(xué)報(bào),2014,43(5):1- 6.
[3]李洪才,劉春桐,張志利.一種用于周界入侵監(jiān)測(cè)的FBG振動(dòng)傳感器[J].光電子·激光,2015(10):1902- 1907.
[4]王孝艷,張艷珠,董慧穎,等.運(yùn)動(dòng)目標(biāo)檢測(cè)的三幀差法算法研究[J].沈陽理工大學(xué)學(xué)報(bào),2011(6):82- 85,91.
[5]鄭清超.基于紅外圖像分析的入侵探測(cè)系統(tǒng)研究[D].廣州:華南理工大學(xué),2011.
[6]盧宏濤,張秦川.深度卷積神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺中的應(yīng)用研究綜述[J].數(shù)據(jù)采集與處理,2016,31(1):1- 17.
[7]吳起,蔣軍成.基于BP神經(jīng)網(wǎng)絡(luò)技術(shù)的實(shí)驗(yàn)數(shù)據(jù)分析處理[J].中國安全科學(xué)學(xué)報(bào),2006,16(1):39- 43.
[8]張俊,李鑫.TensorFlow平臺(tái)下的手寫字符識(shí)別[J].電腦知識(shí)與技術(shù),2016,12(16):199- 201.
[9]蔡文泳,王心旺.基于誤差反向傳播算法神經(jīng)網(wǎng)絡(luò)模型的網(wǎng)絡(luò)式以問題為基礎(chǔ)學(xué)習(xí)效果評(píng)價(jià)方法的研究[J].醫(yī)學(xué)教育,2014(1):153- 156.
[10]王冉陽.基于Django和Python的Web開發(fā)[J].電腦編程技巧與維護(hù),2009(2):56- 58.
[11]趙博文.解析Restful Web Service架構(gòu)[J].光盤技術(shù),2008(10):4- 5.
Application Study of Convolution Neural Network Image Recognition Technology in Intrusion Detection System
WANG Hongde1,2,WANG Huanqing2
(1.School of Civil & Safety Engineering,Dalian Jiaotong University,Dalian 116028,China; 2.Tunnel & Underground Structure Engineering Center,Dalian Jiaotong University,Dalian 116028,China)
In order to solve the complicated and diversified security situation of intrusion and to solve the problem of high cost and poor adaptability of existing intrusion detection technology,an intrusion detection system with low cost,good compatibility and convenient expansion is designed and developed.The image recognition algorithm is realized based on convolution neural network using open-source depth machine learning framework TensorFLow,and the system architecture is constructed.Then the effectiveness of the system is validated under various operating conditions.Results show that the intrusion behavior can be identified by the system with high accuracy.In a multi-class scenario,with the increase of the number of training samples,the prediction accuracy of the model is increased.While the convergence time is increased,the time is shorten to one tenth when the GPU acceleration is turned.
intrusion detection;image identification;convolutional neural network;TensorFlow
1673- 9590(2017)05- 0107- 04
A
2016- 11- 10
國家自然科學(xué)基金資助項(xiàng)目(U1261121/E0422);中國鐵路總公司科技研究開發(fā)計(jì)劃資助項(xiàng)目(2015Z002)作者簡介:王洪德(1963-),男,教授,博士,主要從事交通安全風(fēng)險(xiǎn)評(píng)價(jià)、安全信息工程等研究 E-mail:whdsafety@126.com.