楊志虎, 趙家曼
(東北林業(yè)大學(xué) 信息與計(jì)算機(jī)工程學(xué)院, 哈爾濱 150040)
近些年,越來越多的智能系統(tǒng)進(jìn)入人們的生活,智能安防領(lǐng)域也成為計(jì)算機(jī)應(yīng)用的熱點(diǎn)領(lǐng)域。人流量統(tǒng)計(jì)是公共場(chǎng)所安防的主要任務(wù),解決在多場(chǎng)景下(地點(diǎn),天氣,時(shí)間等)保持較高的識(shí)別與預(yù)測(cè)能力,減少與阻止公共地點(diǎn)容易發(fā)生的群體恐慌事件成為熱點(diǎn)中的熱點(diǎn)。
人群計(jì)數(shù)的方法分為傳統(tǒng)的人群計(jì)數(shù)算法以及基于深度學(xué)習(xí)的人群計(jì)數(shù)算法。傳統(tǒng)的人群計(jì)數(shù)方法可以分為基于檢測(cè)和基于回歸兩類,基于檢測(cè)的方法主要使用一個(gè)滑動(dòng)窗口檢測(cè)場(chǎng)景中的人群,訓(xùn)練一個(gè)分類器,利用從行人全身提取到的小波、HOG、邊緣等特征檢測(cè)行人,并統(tǒng)計(jì)人數(shù),由于人群的遮擋,這種方法效果并不理想;基于回歸的方法,主要思想是學(xué)習(xí)一種特征到人群數(shù)量的映射。該類方法主要分為二步:
(1) 提取場(chǎng)景的低級(jí)特征,例如前景特征,邊緣特征,紋理和梯度特征;
(2)學(xué)習(xí)一個(gè)回歸模型,例如線性回歸、嶺回歸或者高斯過程回歸,學(xué)習(xí)一個(gè)低級(jí)特征到人群數(shù)的映射關(guān)系。
基于深度學(xué)習(xí)的方法分為目標(biāo)檢測(cè)或者人流密度估計(jì)兩種方法。在目標(biāo)檢測(cè)方法中,大多使用為改進(jìn)Fast R-CNN而提出的Faster R-CNN為代表的雙階段神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[1],和集成了很多細(xì)節(jié)設(shè)計(jì)與技巧的YOLOv3為代表的單階段神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[2],直接對(duì)人群進(jìn)行人體或者人頭的識(shí)別,目標(biāo)檢測(cè)算法的準(zhǔn)確率高,但是存在模型推理速度慢,密集人群中的檢測(cè)性能低的問題。在密度估計(jì)方法中,從2016年Multi-column Convolutional Neural Network(MCNN)被提出,其主要解決從單張靜態(tài)圖像精確估算人群密度分布和數(shù)量[3],人群密度就作為計(jì)算機(jī)視覺中一個(gè)主要的任務(wù)被廣泛研究。其推理速度快,對(duì)密集人群人數(shù)的統(tǒng)計(jì)更加有效,但是容易受到使用場(chǎng)景的影響,例如訓(xùn)練數(shù)據(jù)集中、天氣、時(shí)間段等。
在公共地點(diǎn)的安防場(chǎng)景中,不僅需要實(shí)時(shí)的人群數(shù)量統(tǒng)計(jì),還需要對(duì)未來一段時(shí)間的人群數(shù)量變化進(jìn)行預(yù)測(cè),用以判斷實(shí)時(shí)人數(shù)與前端時(shí)間預(yù)測(cè)人數(shù)的差異,觸發(fā)更加有效的預(yù)警。
本文主要基于一些場(chǎng)景,如學(xué)校、廣場(chǎng)、車站、旅游景點(diǎn)(太陽島,中央大街)等公共場(chǎng)所,來研究解決以下問題:
(1)將目標(biāo)檢測(cè)算法和密度估計(jì)算法相結(jié)合,各取優(yōu)勢(shì),最大化精度和最小化耗時(shí),增強(qiáng)實(shí)時(shí)性,提出一種目標(biāo)檢測(cè)算法和密度估計(jì)算法相互監(jiān)督繼續(xù)訓(xùn)練的機(jī)制;
(2)使用機(jī)器學(xué)習(xí)中的回歸模型,對(duì)下一段時(shí)間的人數(shù)變化進(jìn)行預(yù)測(cè),并與實(shí)時(shí)數(shù)據(jù)對(duì)比,觸發(fā)更為有效的預(yù)警;
(3)滿足邊云協(xié)同的構(gòu)建:邊緣系統(tǒng)實(shí)時(shí)處理與分析,流數(shù)據(jù)寫入數(shù)據(jù)庫;云端整合各種數(shù)據(jù),展示在網(wǎng)頁,并配合使用者進(jìn)行本地決策、實(shí)時(shí)響應(yīng),事件跟蹤與記錄等。
項(xiàng)目算法的整體架構(gòu)分為3個(gè)算法模塊:密度估計(jì)算法,目標(biāo)檢測(cè)算法,回歸預(yù)測(cè)算法;并在3個(gè)模塊間增加了數(shù)據(jù)傳遞,互動(dòng)模塊等機(jī)制,如圖1所示。

圖1 項(xiàng)目核心算法架構(gòu)
在密度估計(jì)算法通道中,選用了3個(gè)經(jīng)典的神經(jīng)網(wǎng)絡(luò)模型(MCNN,Switching-CNN,CP-CNN,CSRNet)做對(duì)比實(shí)驗(yàn),在ShanghaiTech數(shù)據(jù)集的平均絕對(duì)誤差MAE和均方誤差MSE預(yù)測(cè)結(jié)果對(duì)比見表1。由表1可知,CRSNet的MAE與MSE更低,有更快的推理速度,本文將其作為密度估計(jì)算法通道的核心算法。密度估計(jì)算法通道的具體流程為:針對(duì)某一特定的地點(diǎn),啟動(dòng)預(yù)訓(xùn)練好的模型,等待目標(biāo)檢測(cè)生成新的數(shù)據(jù),目標(biāo)檢測(cè)生成的數(shù)據(jù)投送到位后,開始遷移訓(xùn)練,訓(xùn)練完成后進(jìn)行常規(guī)的人流量估計(jì)人物;到特定的時(shí)間或者收到管理者的指令后,進(jìn)入下一輪的再訓(xùn)練。

表1 在ShanghaiTech數(shù)據(jù)集的平均絕對(duì)誤差MAE和均方誤差MSE預(yù)測(cè)結(jié)果
在目標(biāo)檢測(cè)算法通道中,本文選用了經(jīng)典的雙階段目標(biāo)檢測(cè)神經(jīng)網(wǎng)絡(luò)Faster R-CNN,F(xiàn)aster R-CNN將特征提取,區(qū)域候選網(wǎng)絡(luò)(RPN),目標(biāo)區(qū)域池化,目標(biāo)分類整合在一個(gè)網(wǎng)絡(luò)中,提出了一種有效定位目標(biāo)區(qū)域的方法,按區(qū)域在特征圖上進(jìn)行特征索引,降低了卷積計(jì)算的時(shí)間消耗,相比較之前的雙階段網(wǎng)絡(luò)在速度和精度上都有非常大的提升。相比較單階段網(wǎng)絡(luò),本文使用目標(biāo)檢測(cè)算法主要目的是生成新的數(shù)據(jù),用于遷移訓(xùn)練密度估計(jì)模型,所以應(yīng)當(dāng)選用準(zhǔn)確率更高的雙階段網(wǎng)絡(luò)。目標(biāo)檢測(cè)算法通道的具體流程如下:針對(duì)某一特定的地點(diǎn),開始識(shí)別預(yù)測(cè),并將識(shí)別后的圖片和對(duì)應(yīng)值入庫,等到一定數(shù)據(jù)量后投喂給密度估計(jì)算法,使其進(jìn)行遷移訓(xùn)練,其可間斷性的被喚醒,生成不同場(chǎng)景下的數(shù)據(jù),極大地提升密度估計(jì)模型的可靠性,同時(shí)其一部分?jǐn)?shù)據(jù)也將反饋給預(yù)測(cè)模型,這部分?jǐn)?shù)據(jù)與密度估計(jì)生成的實(shí)時(shí)數(shù)據(jù)將被整理為時(shí)序數(shù)據(jù),用于預(yù)測(cè)下一時(shí)間段人數(shù)的變化。
在預(yù)測(cè)算法中,本文選用了兩種預(yù)測(cè)算法,一個(gè)是時(shí)間跨度較小的線性回歸算法,一個(gè)是時(shí)間跨度較大的決策樹模型。在時(shí)間跨度較小的線性回歸算法中,在自己錄制的視頻中,進(jìn)行了時(shí)間序列的長度測(cè)試實(shí)驗(yàn),并采用均方誤差MSE進(jìn)行評(píng)估,實(shí)驗(yàn)結(jié)果見表2。在該通道最后選用了Lasso,時(shí)序長度為7的方法。在時(shí)間跨度加大的預(yù)測(cè)模塊中選用了XGBoost,其提供有關(guān)緩存訪問模式、數(shù)據(jù)壓縮和分片的見解,以構(gòu)建有延展性的提升樹系統(tǒng),XGBoost可用比現(xiàn)系統(tǒng)少得多的資源來處理數(shù)十億規(guī)模的數(shù)據(jù),滿足綜合城市中的所有場(chǎng)所的數(shù)據(jù),打破數(shù)據(jù)孤島。

表2 常用的機(jī)器學(xué)習(xí)回歸算法在不同時(shí)序長度(LEN)下的對(duì)應(yīng)的結(jié)果
算法框架的主要任務(wù)是提供人流量估計(jì);騷亂,擁擠等人群異常事件的預(yù)警;未來情況的實(shí)時(shí)預(yù)測(cè);生成樣本數(shù)據(jù)等次要任務(wù)。騷亂,擁擠等人群異常事件的預(yù)警主要由兩部分組成,第一部分由密度估計(jì)算法通道生成,對(duì)比前后幾幀密度圖的變化,密度圖大范圍的變化與檢測(cè)值超過閾值的變化會(huì)觸發(fā)對(duì)應(yīng)的預(yù)警;第二部分由小時(shí)間跨度的預(yù)測(cè)值與密度估計(jì)輸出的實(shí)時(shí)監(jiān)測(cè)值作差,超過閾值也會(huì)觸發(fā)對(duì)應(yīng)的預(yù)警。
系統(tǒng)的整體流程如圖2所示。攝像頭采集數(shù)據(jù),在邊緣端進(jìn)行基礎(chǔ)數(shù)據(jù)處理,入庫,方便用戶對(duì)數(shù)據(jù)源查詢和儲(chǔ)存,生成的樣本數(shù)據(jù);之后進(jìn)行流數(shù)據(jù)處理,高效快捷,將處理完的數(shù)據(jù)記錄存入數(shù)據(jù)庫,可視化在手機(jī)APP與網(wǎng)頁平臺(tái),如圖3所示。的網(wǎng)頁平臺(tái)主頁面包括了3個(gè)主要選項(xiàng)卡,監(jiān)控列表顯示接入的所有監(jiān)控設(shè)備,預(yù)警狀態(tài)顯示有預(yù)警狀態(tài)的地點(diǎn),異常記錄是對(duì)一些異常信息的記錄;用戶權(quán)限是用于限定用戶權(quán)限;云端展示是針對(duì)全域監(jiān)控的整體查看,詳細(xì)信息與歷史回顧,方便用戶查詢歷史信息。

圖2 系統(tǒng)的整體流程

圖3 網(wǎng)頁平臺(tái)的主頁面
本文使用深度學(xué)習(xí)與機(jī)器學(xué)習(xí)的一些算法,構(gòu)建了一個(gè)用于公共地點(diǎn)人流量統(tǒng)計(jì)和緊急事件的預(yù)警系統(tǒng)。該系統(tǒng)首次使用多種算法搭配的策略,解決多場(chǎng)景部署,突破了傳統(tǒng)人工監(jiān)控的限制,借助計(jì)算機(jī)強(qiáng)大的數(shù)據(jù)處理能力,自動(dòng)地分析和抽取視頻源中的人流信息,由計(jì)算機(jī)代替人工監(jiān)控,真正實(shí)現(xiàn)實(shí)時(shí)監(jiān)控,即時(shí)反應(yīng),提高人流監(jiān)控的效率和人流監(jiān)控的準(zhǔn)確度,識(shí)別能力更高,識(shí)別場(chǎng)景更加豐富,具有可靠監(jiān)控、報(bào)警精確度高、響應(yīng)速度快等特點(diǎn)。將在接下來的系統(tǒng)與平臺(tái)升級(jí)中,加入危險(xiǎn)動(dòng)作識(shí)別,人臉對(duì)比檢測(cè)等功能,實(shí)現(xiàn)更多方面的智能安防。