APP下载

基于视频动态检测的车库监控报警系统

2013-08-13凯,庄梁,张

电子技术应用 2013年11期
关键词:配置文件车库报警

张 凯,庄 梁,张 强

(南京信息工程大学 信息与控制学院,江苏 南京 210044)

随着人们生活水平的不断提高以及安全意识的不断增强,人们对小区安全也越来越重视,而小区车库安全是小区安全中必不可少的一部分[1]。但是由于小区入住率低、小区车库管理混乱、环境复杂,私家车在小区车库易遭受偷盗,甚至抢劫,导致车主遭受巨大损失。目前小区车库主要由监控人员通过视频监控。然而由于视频监控存在盲区、车库监控设备易遭破坏以及监控人员疏忽等问题,此种方式不能有效地保障私家车在小区车库的安全。相关文献介绍的当前车库的监控系统主要是基于PC平台的监控,是对整个小区车库的监控,并且不具备主动报警的功能。为此,设计了一种安装在私家车内的监控报警系统。该系统不同于一般的汽车防盗报警系统,可以通过对车内图像的检测来判断车辆是否被偷盗,并可进行邮件通知和实时监控,通过对摄像头的控制可更加直观地观察到现场的情况,对于提高私家车在小区车库的安全性具有很大帮助。

1 系统总体设计

图1 系统结构简图

系统的整体结构简图如图1所示,该系统由视频采集终端、无线网络端以及视频接收终端组成[2]。整个系统通过WiFi模块接入小区网络。视频采集终端将USB摄像头采集到的实时视频数据传输到系统中,然后由motion对采集到的视频进行处理。当检测到有物体进入车内时即发出报警,并通过邮件把车内实时图片发送出去;视频接收终端通过网络以及CGI脚本与嵌入式Boa服务器进行交互,可实现对车内视频的实时监控。

2 系统硬件设计

2.1 系统硬件平台设计

该系统硬件主要包括32位的嵌入式微处理器、WiFi无线模块、USB摄像头等。系统的硬件结构框图如图2所示,其核心部分为S3C6410微处理器和256 MB的SDRAM、1 GB的NAND Flash以及多种外设接口(包括USB接口、SDIO接口、网卡接口等)所组成的最小系统。

图2 系统硬件结构框图

2.2 USB摄像头

USB摄像头与微处理器的USB HOST接口直接相连。摄像头采用OV9650芯片,支持最大分辨率为1 300×1 028,可以输出 GRB4:2:2、YUV(4:2:2)和 YCbCr(4:2:2)三种视频格式,这三种格式均符合CCIR601和CCIR656标准。

2.3 WiFi无线模块接口电路

WiFi无线模块采用Marvell公司低成本、低功耗的88W8686芯片,它通过SDIO接口与主控设备相连。该模块遵循IEEE 802.11g标准,而且兼容802.11b协议标准,工作在 2.4 GHz频段,最高传输速率可达 54 Mb/s。内置天线,可适应不同的工作环境,设备可以方便地接入无线网络[3]。S3C6410带有2路SDIO接口,其中 SDIO0通常被用作SD卡接口使用,另一路在本系统中用于连接WiFi无线模块,其接口电路图如图3所示。

2.4 SD卡接口电路

SD存储卡用于对重要视频数据以及图片的存储。通过SDIO接口与系统相连,最大可支持32 GB。其接口电路图如图4所示。

图4 SD卡接口电路图

3 系统软件设计

3.1 软件开发环境介绍

本系统采用Linux操作系统,Linux系统具有开源、内核可裁剪、对网络的支持比较完善等特点,用户可以根据自己的需求对内核进行裁剪并重新编译。在开发阶段,采用挂载NFS根文件系统进行开发,以方便软件的调试。本文完成的工作有:(1)在前面所述的硬件平台上构建最小嵌入式Linux系统,包括对 UBOOT、内核、根文件系统的移植[4],在对内核进行移植时,将本系统所用到的USB摄像头和WiFi模块等相关的驱动编译到内核中。(2)在该系统平台上进行motion的移植及嵌入式Web服务器的搭建。编写基于motion的监控程序,通过CGI和motion中的Http API来编写Web控制页面并对该系统进行整体测试。

系统交叉编译环境:主机开发环境选择ubuntu9.10操作系统,主机工具链gcc-4.6.3,交叉编译工具链armlinux--gcc-4.3.2,内核版本采用Linux2.6.38内核。

3.2 移植motion到6410开发板

motion是一个用于移动图像监控的程序,本系统实现的视频动态检测功能就是基于motion的,使用的是motion-3.2.12版本。下面介绍motion的移植和相关的配置。

首先将motion-3.2.12源码解压到/work/tools目录下,接下来进行编译安装,进入解压后的目录,执行命令:./configure-prefix=${PWD}/_install-host=arm-linux,生成 Makefile文件,由make进行编译,make install将生成的库和头文件安装到指定的./_install目录下。然后拷贝./_install/bin/下的可执行程序motion到开发板根文件系统的/usr/sbin目录下。另外需在开发板根文件系统目录中创建/var/run/motion/目录,用于存放motion进程。

接着进行motion的配置,根据./_install/etc/下的参考配置文件进行配置,修改后将配置文件放在开发板根文件系统的/etc/motion目录下。配置文件的主要参数设置如表1所示。

表1 配置文件主要参数设置表

3.3 动态视频检测算法及报警实现

目前,在静态背景下,主要有三类运动目标检测算法:帧差法、背景减法和光流法。本系统调用的motion采用帧差法[5]。该方法基于图像序列中相邻图像中较强的空间相关性,直接将相邻两帧或多帧图像中对应的像素点逐一相减,各个像素对之间都会得到一个数值,如果这个数值的绝对值小于指定的阈值,则认为该点为背景像素点,反之为运动目标中的像素点。帧差法最大的特点在于算法实现简单,程序设计复杂度低,实时性好。此外,由于相邻帧的时间间隔比较短,因此该方法对光线的变化具有较强的鲁棒性,帧差法流程图如图5所示。

图5 帧差法流程图

设 Fi(x,y)和 Fi-1(x,y)为图像序列中连续的两幅图像,Di(x,y)为二值化后的差值图像,其中(x,y)表示像素点的位置,帧差法的表示如下:

其中 T为二值化阈值,Di(x,y)中的 1表示运动目标,0表示背景。本系统的motion动态视频检测通过帧差法来判断是否有物体入侵,并通过2个脚本来响应motion事件,以实现监控报警和邮件通知。监控报警脚本通过判断motion配置文件中的参数设置决定在on_motion_detected事件触发时播放报警声。邮件通知脚本通过判断motion配置文件中的参数设置决定在on_event_start事件触发时发送最新捕获到的图片信息到指定的邮箱来通知用户。

3.4 Web服务器的搭建

为了方便服务器和浏览器通信,需要进行Boa服务器移植以及CGI程序编写和HTML网页设计。

Boa服务器通过建立http请求列表来响应多路http连接请求,可以大大节约系统资源,非常适用于嵌入式系统[6]。这里主要介绍 Boa服务器的移植过程。首先将下载的Boa源码包解压到/work/boa目录下,进入解压后的目录/work/boa/boa-0.94.13/src执行./configure生成Makefile文件;接下来修改生成的Makefile文件,将 CC=gcc改为 CC=arm-linux-gcc,将CPP=gcc-E改成CPP=arm-linuxgcc-E,保存后进行 make;之后执行arm-linux-strip boa,可以去掉调试信息并进行优化,最终会在src目录下生成boa可执行文件。然后对Boa的配置文件boa.conf修改如下:

接着在开发板上创建/etc/boa和其他相关的目录并将前面生成的boa和boa.conf拷贝过来,步骤如下:

接下来进行CGI程序的编写,其编程原理主要为:通过GET或者POST等方法获取表单中的数据,激活URL所指定的CGI应用程序,CGI应用程序将处理好的结果传送给服务器,服务器再把结果返回到浏览器。

系统的HTML页面包括4个界面,即系统设置、网页监控、查看图片和查看视频。将设计好的index.html页面拷贝到开发板www目录下,打开浏览器输入开发板地址,如http://172.16.72.93/index.html,可看到设计好的网页。

3.5 基于TCP/IP协议的视频流传输

本系统的视频实时传输是基于TCP/IP协议的流式套接字接口编程方式[7]。实现的该协议的设计基于分层模型,包括网络接口层、网络层、传输层、应用层,每一层都封装来自上一层的消息,加上自己的数据头和数据尾。它实现了网络中不同主机间的通信,属于典型的B/S模式。面向TCP的网络通信流程如图6所示。数据传输的步骤如下:首先服务器端创建Socket函数进行初始化并建立流式套接字,之后调用Bind函数进行端口绑定,接着调用Listen函数等待浏览器的请求。当浏览器向服务器发送连接请求时,通过Accept和Connet函数来建立连接,接着通过Send和Recv函数实现数据的通信功能,最后通过Close函数关闭套接字。

图6 TCP网络通信流程图

本文提出了基于视频动态检测的小区车库私家车监控报警系统。主要从motion移植、视频动态检测及报警、Web服务器搭建和视频传输等方面阐述了系统的设计思路。实验测试表明,系统运行稳定可靠,视频传输的清晰度高,传输流畅,能够满足需求,可以极大地提高私家车在小区车库的安全性。

[1]李红刚,张素萍,方佳,等.基于 ARM的智能家居远程监控系统设计[J].现代电子技术,2009(5):134-128.

[2]李昂,送海声,苏小芸.基于Android的视频监控系统设计与实现[J].电子技术应用,2012,38(7):138-140.

[3]曹理发,尹勇,刘恒辉.基于ARM和DSP的视频监控系统设计与实现[J].电子器件,2009,32(1):213-217.

[4]韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2008.

[5]徐腾飞.视频序列中基于检测的多目标跟踪研究[D].南京:南京邮电大学,2011.

[6]陈荣军,罗文聪.基于无线的物联智能家居控制系统设计[J].电子技术应用,2012,38(5):142-144.

[7]代治国,李兴霞.基于ARM的智能小区远程视频监控系统[J].电子设计工程,2013(2):70-72.

猜你喜欢

配置文件车库报警
某住宅小区地下车库结构设计
互不干涉混用Chromium Edge
基于Zookeeper的配置管理中心设计与实现
忘记ESXi主机root密码怎么办
LKD2-HS型列控中心驱采不一致报警处理
为View桌面准备父虚拟机
妙趣车库门
2015款奔驰E180车安全气囊报警
死于密室的租住者
奔驰E260车安全气囊报警