基于nodejs的校园智能视频监控系统设计和实现

2019-03-07 05:22何锡浩单玉刚
电脑知识与技术 2019年36期

何锡浩 单玉刚

摘要:针对当前校园安防需要,开发了基于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-),通信作者,讲师,博士,研究方向为大数据处理和模式识别。