郭家良
广东鼎华科技股份有限公司 广东佛山 528000
摘要: 视频监控防盗报警系统被广泛应用于各种公共场所中,对保障人们的财产安全起到重要的作用。本文设计了一种视频监控防盗报警系统,对其基本设计思路及软件设计进行了详细的介绍,旨在为类似系统设计提供参考。
引言
随着视频监控技术的快速发展以及人们安全防范意识的日益提高,视频监控防盗报警系统得到了广泛的应用,并对保障公共场所及人们的财产安全起到重要的作用。而传统的视频监控系统需要工作人员进行实时监控,极大地浪费了人力资源。基于此,笔者设计了一种视频监控防盗报警系统。
1.基本思路
基于GUI 视频监控报警系统最终实现视频录像,用户远程通过手机短信或电话准确能及时获知报警信息,并保留现场信息. 系统框图如图1 所示.
图1 GUI 视频监控系统框图
系统功能如下:
(1) 界面友好且易操作的GUI 环境,实现视频录像;
(2) 对摄像头采集来的图像信息进行精准的数据处理,并将处理的结果输出到PC 机串口;
(3) 将所处理的图像数据通过串口通信准确传给单片机;
(4) 针对得到的数据,单片机进行运算和处理,以命令的形式通过串口发送到GSM;
(5) GSM 给用户发短信,准确告知用户报警信息.
2.系统软件
本系统的软件主要分为两个方面,分别是视频数据的采集和运动的目标检测. 在视频采集方面,系统使用了getCameraInfo 函数、videoTimerFcn 函数,其中getCameraInfo 函数的函数作用是打开系统摄像头,而videoTimerFcn 函数则用来获取视频流,还利用tts 函数来实现报警语音播放. 在运动目标检测方面,系统采用帧间差分法,该方法简单易操作,并且能够有效地提高检测概率. 该程序完全由m 文件进行编程. 如果有东西经过摄像头,就进行语音报警,并且人机界面显示红色,表示异常状态,并将拍摄者的画面保存下来.若没有目标经过摄像头的监控区域,那么人机界面显示灰色,表示正常状态. 系统软件界面和硬件屏幕显示如图2、图3 所示
图2 系统软件界面
图3 系统的硬件
2.1 获取监控区域的动态画面
该系统是基于MATLAB 的防盗监控系统,首先从系统摄像头获得监控画面,进而依据获得的画面进行监控分析. 调用getCameraInfo 函数打开系统的摄像头.获取监控画面的MATLAB 实现如下:
function [camera_name,camera_id,resolution] = getCameraInfo( a)camera_name = char( a.InstalledAdaptors( end) ) ;
camera_info = imaqhwinfo( camera_name) ;
camera_id = camera_info.DeviceInfo.DeviceID( end) ;
resolution = char( camera_info.DeviceInfo.SupportedFormats( end) ) ;
2.2 运动目标检测
运动目标检测的目的是从一帧帧的视频图像中检测出运动目标的具体信息. 运动目标检测有三种方法,分别是背景差法( background subtraction ) 、帧间差分法( temporal differencing ) 、光流法( opticalflow) . 其中背景差法应用最为广泛,运算速度快,但要求前景和背景的灰度存在一定的差别,并要求摄像机处于静止状态. 帧间差分法是对动态图像边缘的运算,更适用于运动的物体. 光流法通过计算光流场近似模拟物体的运动过程,能代表目标的部分运动信息. 帧间差分法不仅运算速度较快,而且容易实现,还具有检测完整性,所以选择帧间差法分作为检测目标的实际应用方案.运动目标检测MATLAB 实现如下:
function videoTimerFcn( vid,event)
Try
imageCurrent = getsnapshot( vid) ;
timeCurrent = now;
Catch
% getsnapshot can fail if object is deleted while we are waiting.
return;
End
imageDifference = abs( imagePrevious - imageCurrent) ;
imageMax = max( imageDifference( : ) ) ;
imagePrevious = imageCurrent;figOld = get( 0,'CurrentFigure' ) ;
if fig ~ = figOldset( 0,' CurrentFigure' ,fig) ;
endimage( imageCurrent) ;
label = datestr( timeCurrent,'HH: MM: SS: FFF' ) ;xlabel( label) ;
set( gca,'XTick' ,[],'YTick' ,[]) ;if imageMax > motionThresholdmotion = true;else motion = false;
End
End
2.3 语音报警的实现
上述监控分析系统通过一系列的计算和分析,最终得出两种结果: 有闯入者,没有闯入者. 若结果为闯入者,系统则调用语音报警函数进行报警,并且人机界面变为红色,并将经过者拍摄下来保存. 若结果为没有闯入者,系统则处于正常监控中,灰色正常显示,不会调用报警函数.
语音报警的MATLAB 实现如下:
if ~ islogging( vid)
% 如果有东西闯入,进行响应
if motion
% 将figure 变红
set( gcf,' Color',[1 0 0]) ;
str =[' theif.jpg' ];
imwrite( imageCurrent, str,'jpg' ) ;
%保存拍下来的图像
customIntruderAction( str) ;
else
set( gcf,' Color',[.5 .5 .5]) ;
end;
if fig ~ = figOld
set( 0,' CurrentFigure' ,figOld) ;
end
endfunction customIntruderAction( str)
tts( ) ;
其中声音函数的实现代码为:
function tts( )
fileName = ' 报警.wav' ;
[y, fs]= wavread( fileName) ;
sound( y, fs) ;
end
3.系统的调试及运行
通过MATLAB 制作出视频防盗监控系统,对设计需求进行分析,从而得出该系统需要实现的功能,最终利用MATLAB 中提供的各种函数实现了功能. 即: 打开系统摄像头,开启视频,利用帧间差分的方法对图像进行分析监控,当结果大于某一值时报警,人机画面将变成红色,表示异常状态,并且将当前图像保存下来,用于异常分析.
从项目需求中获得了要实现的基本功能,进而分析出程序思路及逻辑,从功能上出发,即打开摄像头,开启视频流,利用帧作差的方法对图像进行分析监控,这些功能用MATLAB 函数实现. 一共需要建立3 个m文件,获取摄像头的get CameraInfo.m; 用于播放声音的tts.m; 用于综合控制监控的intruderdetecting.m,各个m 文件之间都要相互依存,相互影响. 根据这一原则,调试程序. 程序能够正常打开、退出和运行,并且轻松实现预先设计的功能.
4.结语
综上所述,视频监控防盗报警系统在社会各个情景场所中得到应用,与此同时,人们对视频监控防盗报警系统的要求也越来越高。本文设计了一种视频监控防盗报警系统,该系统能够在出现异常情况时进行反馈,使得用户获得具体的报警信息,具有简单、高效等优点。
参考文献:
[1]柯菁,张加海,韩冬军,孙国栋,王贵现,刘春.基于Linux的视频监控报警系统[J].中国科技信息,2017(06):78-79.
[2]杨宗衡.基于嵌入式系统的智能视频监控报警系统设计应用[J].无线互联科技,2017(04):4-5.
[3]刘楠,陈万忠,王秋爽,郎一宁.基于Android平台的远程视频监控报警系统[J].吉林大学学报(信息科学版),2016,34(02):283-288.
论文作者:郭家良
论文发表刊物:《防护工程》2018年第16期
论文发表时间:2018/10/22
标签:系统论文; 函数论文; 视频监控论文; 目标论文; 摄像头论文; 防盗报警系统论文; 图像论文; 《防护工程》2018年第16期论文;