一种带有运动检测功能的无线图像监控终端
2.3 运动检测
采集到监控图像之后,就可进行运动检测了。视频图像处理中,运动目标检测方法主要有背景差分法、帧差法和光流法。本系统采用帧差法。其原理是:当监控区域内有物体运动时,在采集的图像帧中,对应区域的像素值会发生明显变化,这时只需将两帧差分,得到两帧图像亮度差的绝对值。如果绝对值比所设定的阈值大,则区域内存在运动物体;反之,则不存在运动物体。用公式表达如下[3]:
实际应用中,阈值T的选择相当关键。如果阈值过低,则不能有效地抑制图像中的噪声;反之将抑制图像中有用的变化信息。通常阈值的选择与监控场景的光照和摄像头位置等外界具体环境条件有关,不可能对不同监控环境设置相同的阈值。本文采用对不同的监控环境自动计算阈值,方法是在开始采集图像前,先采集N幅背景图像,将这些图像亮度分量的平均值作为该监控环境的阈值。公式如下:
本系统只需检测出监控区域内有无物体运动,无需提取出对象的完整区域,因此只需在图像差分时,统计大于阈值T的像素点数。如果像素点数超过报警阈值,表明有物体运动;反之则可能是光线变化或噪声干扰。这样不仅避免帧差法无法精确计算运动区域的缺点,同时也减轻了处理器的运算压力。程序流程如图2所示。
2.4 GPRS无线数据传输
本系统的GPRS模块主要用于将送入图像发送队列中的有运动物体的监控图像传输至监控中心。数据的发送流程图如图3所示。
GPRS模块GTM900B的主要初始化流程为:配置APN->进入TCPIP功能->打开一条TCP链接,由于该模块内嵌TCP/IP协议,直接操作AT指令就可实现数据传输,主要初始化部分代码如下:
SendData(″AT+CGDCONT=1,″IP″,″CMNET″″,13);
…//检查是否配置成功
SendData(″AT%ETCPIP″,13);
…//检查是否进入tcpip
SendData(″AT%IPOPEN=″TCP″,″202.206.1.26″,23″,13);
…
函数SendData()的功能是向串口设备发送数据。
初始化时需注意两点:
(1)模块上电20 s~30 s后再进行TCPIP相关命令的使用,因为模块需要时间搜索网络,以及相关信息初始化等。
(2)使用AT%ETCPIP命令,当命令还没有返回时,串口有任何输入都会导致该命令强制结束,有%IPCLOSE:5的返回,表明模块退出TCPIP功能,这时必须重新使用AT%ETCPIP进行TCPIP功能的打开操作。
当GPRS模块初始化成功后,模块就已经接入Internet,此时就可进行无线数据传输了,主要操作AT指令:AT%IPSEND。需要注意的是,在设置AT%IOMODE=1的数据传输模式下,数据包大小不能超过1 024 K,因此一幅图像须分割成多个数据包进行传送,而且数据收发时需要进行ASCII和HEX的格式转换。
3 测试结果
实际测试时,监控环境的阈值计算值为11,报警阈值取1 000,灰度值转换公式为gray=r×0.3+g×0.6+b×0.1,计算出的大于阈值的像素点有13 562个,大于报警阈值,GPRS模块开始传送图像。试验图像如图4所示。
S3C2440A的核心工作频率为406.425 MHz,当GPRS模块空闲时,从采集两幅320×240分辨率的图像开始到运动检测结束,时间约为55 ms,当GPRS忙时,时间约为115 ms,基本可以实现对有运动物体的监控图像的捕捉。GPRS模块发送一幅采集的JPEG图像,在网络正常情况下,系统延时通常不超过5 s。
本文简要介绍了无线监控终端的系统构成,详细阐述了应用软件的3个核心模块的实现方法。试验运行结果表明,本系统实现了将有运动物体的监控画面传输至监控中心的要求,具有成本低、结构简单等特点。与传统的无线监控系统相比,本系统可大大降低无线数据传输中的数据流量,同时也省去了监控人员长时间监视监控图像的工作。此外,本系统在软硬件设计时充分考虑了不同用户的需求,只需对软硬件稍加扩展,就可实现将监控画面或报警短信传送至用户的彩信手机,具有很好的使用和推广价值。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
- 12位串行A/D转换器MAX187的应用(10-06)
- AGC中频放大器设计(下)(10-07)
- 低功耗、3V工作电压、精度0.05% 的A/D变换器(10-09)
- PIC16C5X单片机睡眠状态的键唤醒方法(11-16)
- 用简化方法对高可用性系统中的电源进行数字化管理(10-02)
- 利用GM6801实现智能快速充电器设计(11-20)