APP下载

基于OpenCV和GPS的安全设备综合监控系统研究*

2015-03-25唐中乾王运兵

通信技术 2015年11期
关键词:报警监控模块

唐中乾,王运兵,雷 波

(中国电子科技集团公司第三十研究所,四川 成都 610041)

基于OpenCV和GPS的安全设备综合监控系统研究*

唐中乾,王运兵,雷 波

(中国电子科技集团公司第三十研究所,四川 成都 610041)

随着信息化网络的发展,人们对网络和信息安全的需求日益增大,安全设备本身的安全状态也越来越受到关注。设计了一个基于OpenCV和GPS的安全设备综合监控系统。该系统不仅能够实时获取视频和GPS信息并显示监视画面,还可以根据视频信息检测设备是否被非法移动或拆卸,也可以根据GPS信息检测设备是否处于安全范围内。一旦发现异常,系统会向控制中心报警。文中的研究对加强安全设备周围环境和自身移动范围方面的安全状态监控具有一定的现实意义,也为安全设备监控管理的进一步研究奠定基础。

视频监控;安全设备;OpenCV;GPS

0 引 言

随着信息化网络的发展,人们对网络和信息安全的需求日益增大,特别是在金融行业、大型企业、政府部门和军队中,这一需求尤其突出。因此,在电子商务、电子政务、军事通信等众多网络系统的内部和边界,都部署有各种网络安全防御设施、多种用途的网络加密机以及多套密码管理设备和应用系统[1](本文中将这些安全设施、加密机、密码管理设备和应用系统统称为安全设备)。但是,现在针对网络和信息的攻击技术手段日益提高,安全设备本身的安全状态值得我们关注。本文基于OpenCV进行对安全设备所处环境的视频监控,结合GPS获取安全设备的位置信息,最后实现一套具有异常情况报警和远程控制功能的综合监控系统。

OpenCV(Open Source Computer Vision Library)是Intel公司开发的一个开源的跨平台计算机视觉库,可以运行在Windows/Linux/Mac等操作系统上。OpenCV源码使用C/C++语言编写,实现了图像处理和计算机视觉方面的很多通用算法。它具有免费、视觉处理算法丰富、图像处理功能强大以及轻量级且高效等众多优势,并因此在人脸识别、目标运动检测、图像处理等领域得到了广泛应用[2]。

GPS(Global Positioning System)全球定位系统可以为用户提供位置、速度、时间等信息,实现导航、定位与授时。它的主要特点包括:定位精度高、观测时间短、执行操作简单、全球全天候作业以及功能多应用广。

1 系统设计目标

安全设备综合监控系统基于监控视频进行自主分析,对视频的移动侦测,保护安全设备在其所处环境不受非法移动、拆卸、入侵等物理方面的攻击,从而达到对监管设备周边环境和安全态势的自动分析、判定,并采取相应的防护措施;结合基于GPS的监控技术,获取监管对象的地理位置,通过设定电子围栏使得监管对象越过安全范围则报警,从而实现对监管设备位置信息的实时掌控和依据策略的安全预警。

本系统的设计目标包括:

(1)通过摄像头采集视频,并进行实时显示;

(2)基于OpenCV实现对采集视频的移动侦测;

(3)获取设备GPS位置信息,检测其是否在安全范围内;

(4)监控信息上报控制中心,异常情况报警。

2 系统总体设计

安全设备综合监控系统由摄像设备、GPS模块、监控终端主机、显示设备组成,结构如图1所示。为了更好地对安全设备进行全程跟踪,将综合监控系统部署在安全设备旁边,其中GPS模块置于安全设备内部。摄像设备提供原始图像数据,GPS模块提供原始GPS数据,监控终端主机对数据进行处理,并进行显示以及通过Internet与控制中心进行通信。监控终端主机内主要包括视频监控模块、GPS监控模块,显示和通信模块。其中视频监控模块获取视频信息,对视频数据进行移动侦测,发现异常进行报警;GPS监控模块获取GPS信息,对GPS数据进行安全范围越界检测,发现异常进行报警;显示和通信模块主要显示当前实拍的图像或播放录制的视频,并通过有线或无线方式传输报警信息和视频文件。在存储和传输图像、视频和GPS信息时,系统对相应数据进行加密。

图1 安全设备综合监控系统结构

本系统硬件部分由摄像设备、GPS模块、显示设备、PC机构成。本文使用罗技C270USB摄像头,pl2303 USB GPS模块,PC机CPU I5-3470S 2.9GHz,内存4G。软件部分包括Linux操作系统(内核2.6),OpenCV2.4.9库和自主开发的监控软件。Linux操作系统(内核2.6)具备强大的多进程处理能力、出色的稳定性和良好的扩展性,易于安装各种应用软件和函数库。OpenCV2.4.9有强大的图像处理能力。

在日常工作生活中,各应用系统对安全设备的需求广泛,使安全设备的使用范围并不仅限于室内,也有大量车载、舰载等经常处于移动状态的安全设备。为此,我们在预设安全范围时将安全设备大体分为以下四类:高密级固定设备、低密级固定设备、形状区域移动设备、既定线路移动设备[3]。

其中,高密级的固定设备,由于其存储信息的敏感性,一般放置在具有安全防护措施的特定房间内,不允许随意搬动。而对于密级较低的固定设备,一般可以允许其在办公室内或办公楼内的搬动。总的来说,固定设备大多位于室内,这种情况下,光照条件较好而GPS信号较弱,相应地本系统的视频监控方面的功能作用较大而GPS分析方面的功能较小甚至失效。此时,对固定设备的监控主要关注视频图像是否发生变化。如果发现图像有变化且经过一定的平移可以大致与之前的图像重合,即图像发生整体移动,可以判断出设备正在被移动;如果发现有物体从图像边缘处进入,可以判断有异物入侵,设备可能会遭受非法敲击或拆卸。当设备遭遇到这些非法物理攻击时,需主动、迅速做出响应,低密级固定设备要进行报警、甚至设备禁用,高密级固定设备则要禁用、甚至销毁数据、设备自毁等。固定设备需要进行移动时,可提前由管理员限时解除系统对这一设备的监控。

对移动设备,本文主要考虑车载、舰载等应用环境,可以将综合监控系统部署在安全设备相邻的位置,使用车辆、舰船上的电源进行供电,并在通信模块中使用3G/4G技术来进行无线通信。然后,我们为移动设备设计一个电子围栏。电子围栏是指由控制中心预先设置的设备在某个时间段内的可移动范围的虚拟围栏。我们将这个范围视为设备移动的安全范围,对以上两类移动设备,安全范围的设置有相应的两种方式:形状区域和既定路线。形状区域可以是圆形区域,根据设备的初始状态和移动速度设置中心点和安全半径,设备可在区域内任意移动,条件较为宽松,多用于设备日常使用过程中;也可以是多边形区域,用于设备需要在尽可能精确指定的形状区域内移动时。既定路线是根据需要给设备设置一条规定路线,设备只能在规定路线上移动,多用于设备运输、设备拆卸维修、更换配置位置等场合。如果设备的移动不符合时间或位置要求,系统会进行报警,通知控制中心及时对设备中的敏感信息进行销毁。这样即使设备失控,由于其中的敏感信息已经销毁,其他人也不可能从中获得有关的敏感信息,增强了设备的安全保障。设备处于移动状态时,光线明暗变化和图像抖动都可能会增加,但室外GPS信号一般较好。所以此时需要重点关注GPS信息分析,监控设备移动状况,接近有效范围边缘时提出警告,尽可能保障设备在预设安全范围之内;也提高视频监控的图像变化报警阈值相应的设置,将视频监控作为辅助策略。

系统监控与设备响应流程如图2所示。系统首先从安全设备采集视频和GPS信息,结合策略进行移动侦测和越界检测,如果发现异常就向控制中心报警。控制中心收到报警信号后,向异常设备所在网段的安全设备管理设备发送控制指令,然后安全设备管理设备启动响应预案,进一步细化控制命令,管理控制安全设备做出响应。

图2 系统监控与设备响应流程

3 系统模块设计与实现

系统各个模块具体工作流程如图3所示。

图3 系统模块软件工作流程

3.1 视频监控模块

视频监控模块实现视频采集、图像拍照、压缩存储、移动侦测、异常报警功能。

视频采集由OpenCV库程序调用摄像设备读取数据完成。首先调用cvCreateCameraCapture获取摄像设备指针,然后用cvQueryFrame操作此指针读取摄像设备的一帧图像,用cvPutText写入时间和经纬度信息,再调用函数cvCreateVideoWriter指定视频压缩格式并获得视频文件指针。这样可得到一个接收从USB摄像头提取图像数据的视频缓冲区。此时可以通过调用cvWriteFrame将缓冲区数据按指定视频格式写入本地文件的方式来进行视频信息存储。通常视频完全存储下来会占据很大的存储空间,为了减少重复信息存储,减小视频文件占据的存储容量,提高存储空间利用率,系统可以仅在收到报警信息时调用cvWriteFrame进行存储,即节省存储模式[4]。同时,也可以根据需要采用完全存储模式将视频完整存储下来。

考虑到实时传输视频对带宽要求较高,在网络条件较差或需要减轻网络负载的时候,我们希望能够以传输图片的方式来代替。为此,该模块还实现图像拍照功能,即启动一个计时器,每当一轮计时(如1分钟)完成,就调用cvCreateImage初始化一张图片,并将当前cvQueryFrame读取的摄像设备的图像在写入时间和经纬度信息后用cvSaveImage保存下来,然后由通信模块发送此图片。视频图像采集的工作流程如图4所示。

图4 视频图像采集工作流程

采集到视频信息后,需对其进行移动侦测。一般来说,移动侦测主要有背景减除法、帧间差分法[5]和光流法三种方法。其中,背景减除法一般能够提供最完全的特征数据,但对于动态场景的变化,如光照和外来无关事件的干扰等特别敏感;帧间差分法对于动态环境具有较强的自适应性,但一般不能完全提取出所有相关的特征像素点,在运动实体内部容易产生空洞现象;光流法的优点是在摄像机运动存在的前提下也能检测出独立的运动目标,但计算方法相当复杂,且抗噪性能差[6]。

这里我们选用帧间差分法,该方法是在连续的图像序列中两个或三个相邻帧间于像素进行差分并且阈值化来提取出图像中的运动区域。它是通过比较图像序列中前后两帧图像对应像素点灰度值的不同,通过两帧相减,如果灰度值很小,可以认为该点无变化;反之,则认为该点有变化。当相邻两帧有变化的点多达一定数量时,我们认为设备发生移动或者有异物入侵。第k帧和k+1帧图像fk(x,y),fk+l(x,y)之间的变化用一个二值差分图像D(x,y)表示,如式:

D(x,y)=

二值图中0对应前后未变化的地方,1对应变化的地方。移动侦测报警工作流程如图5所示。首先,由cvQueryFrame获取摄像设备的一帧图像tempFrame,用cvCvtColor将其转化为单通道灰度图放入previousFrame,然后获取下一帧图像,灰度化后放入currentFrame。接着将两个Frame变量用cvConvert变换成Mat变量以便进行计算,下一步用cvAbsDiff计算前后两帧各像素点的差(这步之后将tempFrame灰度化后放入previousFrame作为下一次检测的前帧),然后用cvThreshold设定一个阈值将结果变换为二值图像。接着让cvCountNonZero统计二值图像的非零像素点,如果结果小于设定的报警阈值N_SET,就返回cvQueryFrame获取下一帧图像;否则,将进行alarm报警,然后经膨胀和腐蚀后由cvShowimage进行帧间差状态显示。

图5 移动侦测报警工作流程

3.2 GPS监控模块

GPS监控模块实现GPS信息采集、GPS信息写入视频、GPS越界检测、异常报警功能。

由于条件限制,本文使用外接USB接口的GPS模块来模拟功能实现。在进行GPS数据采集时,使用USB转串口从GPS模块读取数据。首先,用open(“/dev/ttyUSB0”,O_RDWR)打开串口,然后设置串口属性set_opt(fd,4800,8,'N',1)包括波特率、字符大小、奇偶校验位、停止位等,最后用read读取串口数据即可。读取的数据如图6所示。

图6 GPS数据信息

接着根据GPS数据格式,主要是$GPGGA语句得到时间、经纬度、海拔高度等信息。在图6中根据$GPGGA和$GPRMC语句,可以得到北京时间2015年7月27日20:32:26(UTC时间+8时),30.354317N,104.057391E,503.5米。然后可调用OpenCV库程序cvPutText将时间和经纬度信息以文本的形式写入视频帧或者图片之中。

进行GPS位置越界检测时,首先需要获取设备预设的安全范围。预设范围是圆形区域时,需要获取预设中心点和安全半径,可将系统初始化时的经纬度设置为中心点,也可以根据这一位置进行一定调整重新指定一个经纬度作为中心点,安全半径由设备载体的平均时速相关,取其一定时间内所移动的最大距离,中心点和安全半径具体数据均由控制中心确定并传送到监控终端主机通信模块。然后根据得到的GPS经纬度计算其与中心点的距离,如果此距离达到安全半径的80%和90%,分别发出不同的提示信息;当此距离大于等于安全半径时,发出GPS位置越界报警信息。

预设范围是既定路线时,考虑路线由线段和弧线组成(以下只基于经纬度考虑点在二维平面上的位置,不考虑高度的影响)。对于线段,由XOY坐标系上的线段方程和目标点(设备GPS坐标)可计算设备是否在线段上。对于弧线,可以考虑根据弧线的长度等距划分出若干中间点将弧线划为弧度较小的多段;对每段弧线,先判断目标点与弧线是否在弦的同侧,如果是,则计算出弧线到弦(弧线端点连线)的最大距离dm,然后计算目标点与弦的距离d,若d

预设范围是多边形区域时,使用射线法判断目标点与指定多边形的位置关系。射线法的基本思想是从目标点P向X轴正向引射线,计算P和多边形各边交点的个数和,如果是奇数则P在形内,否则P在形外,见图7(a)。其中有三种特殊情况:(1)P在多边形边界时,视为在形内,见图7(b);(2)射线经过顶点时,规定 多边形边的两个端点,相对于另一个端点在上面的顶点称为上端点,下面的称为下端点,只有射线经过边的下端点以外的点时,才认为射线和边相交,见图7(c) ,A为上端点,B为下端点;(3)当P点引出的射线经过多边形的水平边时,计算交点个数时忽略水平边,见图7(d)[7],P1与多边形无交点,P2与多边形有一个交点C。如果判断出设备不在指定多边形内,发出报警信息。

图7 射线法判断点与多边形关系

3.3 显示和通信模块

显示模块有两种工作模式:实时监控模式和视频回放模式。在实时监控模式下,本模块启动后也会检测与摄像头是否连接,如果没有检测到摄像头则会报错退出。检测通过后,来自摄像头的图像被实时显示在显示设备上。在视频回放模式下,用户选择以前记录的视频文件播放,播放的画面显示在显示设备上,播放时可以根据用户需要随时暂停播放或调整播放进度。

显示模块实现时,用cvCreateCameraCapture或者cvCreateFileCapture 获取摄像设备或者打开文件,接着用cvQureyFrame获取图像,经cvPutText写入GPS信息后用cvNamedWindow建立窗口再用cvShowImage显示即可。显示效果如图8所示。

(a)视频监控显示画面

(b)有入侵时的视频监控显示画面

(c)有入侵时的帧间差状态显示画面

通信模块使用多线程机制通过socket与控制中心进行通信,一个server线程以长连接的方式等待接收控制中心下发的信息,多个按需要创建和销毁的client线程向控制中心发送视频信息、图片信息、GPS信息、报警信息。传输视频信息时,client线程首先获取被传输视频文件指针,即之前采集视频信息时用cvCreateVideoWriter获取的视频文件指针,然后建立数据报socket,复制视频文件中的信息到缓存区向控制中心进行发送。重复以上过程,将持续发送实时视频信息。同时,一个client线程定时获取图片信息和GPS信息进行发送,另一个client线程在系统报警时被创建来发送报警信息。

4 结 语

本文设计了一种安全设备综合监控系统,简要介绍了系统的结构和各模块的工作流程,实现了信息采集、检测报警、显示和通信各种功能,对加强安全设备周围环境和自身移动范围方面的安全状态监控具有一定的现实意义,也为安全设备监控管理的进一步研究奠定基础。

同时,需要说明的是,该系统目前仅实现了基本的监控功能,仍然需要进行后续的开发来增加新的功能、提高运行效率和检测准确性等,具体包括:摄像设备的云台控制,结合电子地图的GPS位置显示,视频文件的不同速率播放;从PC机移向嵌入式,使系统更加精简;检测算法的优化,提高检测效率和准确性;视频传输协议的优化,提高实时视频信息传输效率。

[1] 周长春,欧海文.密码设备安全性能在线测评方法[J].北京电子科技学院学报,2007,15(02):1-4. ZHOU Chang-chun, OU Hai-wen. On-Line Test and Evaluation Methods of Cryptographic Device Security Performance [J]. Journal of Beijing Electronic Science and Technology Institute, 2007,15(02):1-4.

[2] Gary Bradski, Adrian Kaehler.学习OpenCV[M].于仕琪,刘瑞祯,译.北京:清华大学出版社,2009:4-12. Gary Bradski, Adrian Kaehler. Learning OpenCV [M]. YU Shi-qi, LIU Rui-zhen, translated. Beijing: Tsinghua University Press, 2009:4-12.

[3] 马媛.基于远程可控的保密系统资源保障增值技术研究[D].成都:西南通信研究所,2013. MA Yuan. Studies on Secure System Resource Protection Increment Technology based on Long-distance Control [D]. Chengdu, Southwest Communications Institute, 2013.

[4] 刘冬.基于Qt4和OpenCV的嵌入式视频监控系统[J].现代电子技术,2013,36(08):104-108. LIU Dong. Embedded Video Surveillance System based on Qt4 and OpenCV [J]. Modern Electronics Technique, 2013,36(08):104-108.

[5] Zarka Niza,Alhalah Ziad,Deeb Rada. Real-Time Human Motion Detection and Tracking 2008 3rd International Conference on Information and Communication Technologies:From Theory to Applications,ICTTA,2008:4530098.

[6] 夏勇泉,李卫丽,甘勇等.智能视频监控中的运动目标检测技术研究[J].通信技术,2009,42(06):185-187. XIA Yong-quan, LI Wei-li, GAN Yong, et al.Studies on Moving Objects Detection Technology in Intelligent Video Surveillance [J].Communications Technology, 2009,42(06):185-187.

[7] 杨雅军,段明义.判断点与指定多边形区域的关系的改进算法[J].电脑知识与技术,2014,10(22): 5362-5364. YANG Ya-jun, DUAN Ming-yi. The Improved Algorithm for Determining Position Relation between Point and Polygon[J]. Computer Knowledge and Technology, 2014,10(22):5362-5364.

Integrated Surveillance System for Secure Equipment based on OpenCV and GPS

TANG Zhong-qian, WANG Yun-bing, LEI Bo

(No.30 Institute of CETC,Chengdu Sichuan 610041,China)

With the development of IT technology and network, the demand for network and information security increases rapidly, the security status of secure equipment itself is also increasingly concerned. An integrated surveillance system for secure equipment based on OpenCV and GPS is designed in this paper. The system could in real-time acquire video and GPS information, display monitoring frames, and based on video information detect whether the equipment is moved or dismantled illegally, and also based on the GPS information,test whether the equipment is in secure range. Once there is any abnormal phenomenon, the system will alarm the control center. The research in this paper is of certain practical significance in strengthening monitoring of security status of secure equipment environment around and moving range, and also lays the foundation for the further research of secure equipment monitoring and management.

video surveillance; secure equipment; OpenCV; GPS

10.3969/j.issn.1002-0802.2015.11.022

2015-06-06;

2015-09-16 Received date:2015-06-06;Revised date:2015-09-16

TN915

A

1002-0802(2015)11-1315-06

唐中乾(1991—),男,硕士研究生,主要研究方向为保密通信;

王运兵(1980—),男,高级工程师,主要研究方向为密码学及其应用;

雷 波(1975—),男,工程师,研究方向为信息安全、虚拟化。

猜你喜欢

报警监控模块
28通道收发处理模块设计
“选修3—3”模块的复习备考
The Great Barrier Reef shows coral comeback
你被监控了吗?
Zabbix在ATS系统集中监控中的应用
LKD2-HS型列控中心驱采不一致报警处理
2015款奔驰E180车安全气囊报警
死于密室的租住者
PDCA循环法在多重耐药菌感染监控中的应用
奔驰E260车安全气囊报警