何錫浩 單玉剛



摘要:針對當前校園安防需要,開發了基于nodejs校園智能視頻監控系統。校園智能視頻監控通過網絡攝像頭采集視頻信息,使用智能算法分析視頻對目標進行檢測和識別,根據用戶請求分發信息到客戶端。系統具有實時性、準確性和智能化特點,極大地減輕校園安保人員的工作壓力,節省了大量人力物力,可以被廣泛運用。
關鍵詞:視頻監控;Web;智能;校園
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2019)36-0198-03
1背景
視頻監控是安防系統的重要組成部分。傳統的視頻監控系統包括前端攝像機、傳輸線纜和視頻監控平臺。視頻監控具有直觀、準確、及時和信息內容豐富等特點[1]。智能視頻監控在傳統視頻監控基礎上使用計算機視覺技術對視頻信號進行處理、分析和理解,在不需要人為十預的情況下,通過對序列圖像自動分析對監控場景中的變化進行定位、識別和跟蹤,并在此基礎上分析和判斷目標的行為,能在異常情況發生時及時發出警報或提供有用信息,有效地協助安全人員處理危機,并最大限度地降低誤報和漏報現象。
傳統校園管理通常采用保安人員巡邏和視頻監控系統,其時效性較差且功能單一,很難滿足復雜的監控需求。因此開發響應快、具有人工智能的校園視頻監控系統不僅具有理論意義,而且具有實用價值。
本文采用B/S結構,分為web服務器端和web客戶端部分。web服務器端自動處理校園視頻流信息,對行人和車輛進出情況進行統計、存儲和管理;web客戶端部分供用戶遠程查看校園中的人車情況以及人車統計信息,使校園監控實現智能化,安全化。系統開發使用了H5、Js、PYTHON等多語言混合編程,采用WEBSOCKET技術實現服務器和客戶端的信息交互。
2系統架構設計
視頻監控系統由硬件系統和軟件系統組成。視頻監控系統硬件系統主要前端攝像機部分、系統傳輸網絡部分、系統管理中心部分和客戶端。前端攝像機布置在路面固定點、路面可控點、出入口、室內等常規場景,可以選擇固定槍機與球機搭配使用,保證監控空間內的無盲區、全覆蓋。監控傳輸網絡系統主要作用是接人各類監控資源,采用IP網絡傳輸技術傳輸視頻數據到監控中心的服務器,為各項應用提供基礎保障[2]。系統管理中心是整個視頻監控系統的核心,實現視頻圖像資源的匯聚,并對視頻圖像資源進行視頻智能分析技術和進行統一管理和調度。客戶端通過互聯網或WiFi,無線網可以訪問管理中心的信息。系統硬件結構如圖1所示。
系統軟件劃分為視頻信息采集模塊、視頻處理模塊、流媒體服務模塊、Web服務模塊、Web客戶端模塊等。視頻采集模塊實現視頻信息采集、對視頻信息壓縮編碼和傳輸。視頻處理功能模塊實現目標檢測、目標識別和異常行為檢測等功能。Web服務模塊搭建基于UDP協議的web服務器,為用戶提供遠程連接服務。Web客戶端模塊可以對實時視頻流和歷史視頻流的請求播放、暫停、停止等操作,和進行用戶管理、網絡配置等操作。將流媒體服務和Web服務集成在一臺服務器上。流媒體服務模塊的主要功能就是通過流媒體協議,根據用戶請求將視頻實時流或歷史流數據以流化的方式分發給客戶端[3]。為了便于網絡用戶的訪問Web服務,Web服務模塊主要負責接收Web客戶端發送的HTTP請求,處理請求,并把結果返回給客戶端,或者對視頻流進行調度和傳輸等工作。
3智能視頻監控系統設計
3.1視頻信息采集模塊設計
視頻采集模塊將多種輸出設備如Image Sensor、vidicon等的視頻信號進行抽樣、量化和編碼等操作,從而轉化成數字信號的數據采集方式。本系統主要采用IP攝像頭,采用rtsp進行網絡傳輸,lP攝像頭進行網絡傳輸部分代碼如下:
url=rtsp://用戶名:密碼@IP地址:端口號/
cap= cv2.VideoCapture(url)
3.2 Web服務器模塊設計
Web服務器模塊使用基于Chrome V8引擎的NodejS作為服務器實現視頻轉發、信息讀取等功能。在視頻轉發功能中對端口號進行監聽,判斷是否有客戶端連接,并進行發送視頻到監控畫面以及采集視頻等操作。在信息讀取功能中將讀到的MySQL數據庫中的數據存入list,并設置監聽判斷是否有新數據進入,然后封裝數據到信息頁面。NodeJS服務器模塊流程如圖2所示。
3.3視頻處理模塊設計
在NodejS服務器獲取了視頻信息后,視頻處理模塊[4]運用SSD和HyperLPR等算法將視頻信息中有用的目標特征提取出來,實現目標檢測、目標識別和異常行為預測等功能。
3.4 Web客戶端模塊設計
web客戶端模塊實現與Web服務器端信息交互,由視頻接收和顯示與web信息接收和顯示兩個子模塊構成。視頻接收和顯示子模塊用于從服務器端獲取視頻流數據,web信息接收和顯示子模塊用于獲取服務器端的行人和車輛統計信息。Web客戶端根據端口號來判斷信息類型。Web客戶端模塊流程如圖3所示。
4關鍵技術實現
4.1 Web服務器構建
視頻監控系統采用Node.js實現服務器部分。Node.js充當Web服務器和UDP服務器作用,實現的功能有通過UDP協議接收圖像幀數據[5],編碼后構造成為data URL字符串,通過使用WebSocket協議進行圖像幀數據的傳遞,可以同時實現多用戶交互。視頻監控系統利用Node.js的path、express、MySQL等模塊,并與socket.io、連接池等相結合搭建Web服務器。
4.2 WebSocket通信
為了保證雙向通信信號的計算機通信協議,使用WebSock-et在客戶端和服務器之間實現全雙工通信。用戶可以向服務器發送消息并接收事件驅動的響應,而無須輪詢服務器。它可以讓多個用戶連接到同一個實時服務器,并通過API進行通信并立即獲得響應[6],WebSocket全雙工通信如圖4所示。在本系統中,主要使用socket.io模塊實現,部分建立連接代碼如下:
var io= require(”socket.io”)(http);
var serverSocket= dgram.createSocket(”udp4”);
serverSocket.bind(config.udplmagePort);
4.3服務器端視頻顯示實現
視頻顯示采用PyQt5+designer實現,運用多種Label標簽和布局進行排列組合,并使用百度地圖,canvas和表格等各種方式使界面更多元化。視頻顯示部分代碼如下:
#樹形列表
self'.treeWidget= QtWidgets.QTreeWidget(self.frame)
#顯示外框setFrameShape
self'.frame.setFrameShape(QtWidgets.Q Frame.Box)
self'.page_l.setobjectName(”攝像頭/視頻1”)
self:.frame_l= QtWidgets.QFrame(self'.page_l)
self'.labeL8.setObjectName(”視頻方式l”)
self'.horizontalLayout_3.addWidget(self'.labeL8)
4.4 Web客戶端模塊實現
Web信息接收模塊采用JavaScript+iQuery+ socket.10等實現對服務器端口號的監聽,數據的實時顯示,數據統計圖的實現等功能。其對服務器端口的監聽部分代碼如下:
socket.on(”(:1”,function(msg)(
var blob= new Blob([msg],(“type”:”imageVjpeg'});
lmage.sre一window.URL.createObjectURL(blob);
4.5目標檢測和車牌識別實現
4.5.1目標檢測算法
目標檢測采用SSD算法實現。SSD算法是一個比單點檢測器更快、更準確的single-shot多類檢測器,其原因主要有二:一是檢測層采用3*3的Conv卷積核實現了更快;二是針對大中小物體采用多尺度檢測,并分別使用6個檢測層實現了更準確的檢測[7]。SSD算法基本思想是以均勻的在圖片不同位置進行不同尺度和長寬比的密集采樣,利用CNN提取特征后進行分類與回歸,SSD框架如圖5所示。根據理論證明,在相對低的分辨率輸入可實現高精度,高檢測速度以及實時檢測的準確性。
我們選擇了vOc數據集中提取部分的人物和車輛圖片來訓練SSD算法,并添加了SSD權重文件和修改ssd_notebook.ipynb等多個文件,加載VGG模型訓練網絡。
4.5.2車牌識別
在智能監控中,車輛車牌號碼的識別是必不可少的。據統計,全國有27種車輛號牌,如新能源汽車、小型汽車、警車、消防車、摩托車、輕便摩托等。本文采用HyperLPR算法實現車牌識別,HyperLPR是一種專門針對多類型中文車牌識別的高性能高識別的深度學習方法,使用了opencv庫函數,易擴展,并支持Windows、Linux等多平臺。
5結束語
本文采用nodejs、javaee、winsocket等技術設計和實現了一種校園智能視頻監控系統,實現的監控界面如圖6所示。軟件設計采用模塊化編程,及面向對象的設計方法便于擴展與維護。用戶在電腦端和手機端均可遠程瀏覽監控畫面、查看統計數據、設置監控參數等功能,管理員能及時注冊用戶,管理監控畫面。系統滿足了校園智能監控、智能管理以及應急響應等功能。
參考文獻:
[1]宮世杰,王薇,郭喬進.視頻監控系統發展現狀與趨勢[J].科學技術創新,2018(29):81.
[2]胡祖輝,施儉,吳國慶.基于嵌入式以太網的遠程監控系統的設計與實現[J].計算機測量與控制,2019,27(10).
[3]全鳴.流媒體傳輸方式及相關技術[J].應用科技,2016(2):72.
[4]李丹清,韓利峰,李嘉曾.Nodejs平臺下遠程視頻和信號監控系統的融合[J].儀器儀表用戶,2019(3).
[5]黃文杰.基于UDP的可靠高效數據傳輸協議的研究[D].北京:北京郵電大學,2019.
[6]茆玉庭.基于Node.js和WebSocket的即時通信系統的設計與實現[D].南京:南京郵電大學,2018.
[7] Wei Liu, Dragomir Anguelov, Dumitru Erhan. Berg. SSD: Sin-gle Shot MultiBox Detector[Z].
【通聯編輯:謝媛媛】
收稿日期:2019-10-29
基金項目:湖北省大學生創新創業基金號(S201910519023)
作者簡介:何錫浩(199 8-),本科生;單玉剛(1971-),通信作者,講師,博士,研究方向為大數據處理和模式識別。