基于帧间差分法的ARM安防监测系统

2013-11-02 00:33杨,陈
关键词:差分法摄像头监控

俞 杨,陈 帅

(1.安徽大学 电子与信息工程学院,合肥230039;2.淮南师范学院电气信息工程学院,安徽淮南232038)

近年来,伴随着社会与经济的进步,我国的安防产业发展迅速,前景良好。与国外安防监测相比,仍存在核心技术缺乏,市场竞争混乱等问题。自1998年新加坡国际展览会之后,国外的安防产业迅速发展。面对恐怖活动、电脑黑客,安防监测成了不可缺少的一部分。总体来说,国外的安防产业起步更早,技术更好,应用更广[1]。现在主流的目标运动检测方法有光流法、背景差分法、帧间差分法。光流法:实际上就是时间序列上的帧与帧图像的像素级运动。若没有目标物体运动,那么整个区域的光流矢量变化是连续的,否则不连续,就可以判定是存在目标物体运动。缺点:计算复杂,时间开销大,不适合进行实时处理。背景差分法:将当前的帧图像同已知背景进行比较从而检测运动物体的方法。缺点:与背景图像的相关性较大,故对光照与外部条件的变化非常敏感。帧间差分法:一种通过对序列中相邻两帧或多帧图像作差分运算来识别是否有运动目标的方法。优点:易于实现,程序复杂度低,适应性良好,稳定性好[2]。

本文就是基于ARM图像处理实现一种安防监控,在嵌入式Linux系统平台上,利用CMOS摄像头采集图像,利用V4l2[3]的API接口函数,采集实时图像,再利用帧间差分法这一目标运动检测方法进行监控,检测是否安全。当监控到异样时,利用GSM模块把信息传送出去。

1 系统硬件设计

所设计的系统主要由S3C410处理器、CMOS摄像头、GSM模块TC35I、OK6410开发板和LCD显示屏构成。系统硬件组成如图1所示。系统功能示意图如图2所示。本设计采用了Sumsung公司的S3C6410处理器,另外配置了2 G的NAND Flash存储器和256 MB的内存。S3C6410是一个基于ARM11的16/32位的RISC微处理器,采用64/32位内部总线框架,拥有ARM1176JZF-S的核。内置强大的硬件加速器,集成了一个MFC支持MPEG4/H.263/H.264编解码和VCI的解码。

图1 系统硬件组成图

图2 系统功能示意图

CMOS摄像头采用的是130万像素的CMOS摄像头OV9650,20引脚封装。GSM模块使用的是德国西门子工业GSM模块TC35I。该模块支持语音和数据信号传输,利用AT指令可双向传输指令和数据,接口方式支持串口、USB,工作在EGSM900和GSM1800双频段。TC35I支持GSM 07.05所定义的AT指令集的指令,数据接口通过AT命令实现传输指令和数据,可以传输Text和PDU两种格式的短信。Text格式下只能发送ASCII码表中的前128个字符(也就是英文字母,英文标点符号,阿拉伯数字),此次设计要发送中文字符,故选择PDU格式。

该系统通过CMOS摄像头监控目标,采集图像,将图像数据送到缓冲区,对数据进行处理,将其转化为LCD可显示的格式。调用mmap()函数将数据映射到内存,经过帧间差分进行安全监控。检测到异样后,利用GSM模块把信息传送出去。

2 软件设计

2.1 软件流程

软件流程图如下,如图3所示。首先启动该系统。打开视频设备,进行初始化设置,包括摄像头的基本信息,所采集图像的各种属性,进行映射的帧信息等。然后开始采集实时图像,获取帧数据。对相邻的两帧图像进行逐点相减,判断是否异常。若异常,则通过GSM模块把信息传送出去;反之,则继续采集图像。最后监控结束时,关闭视频设备,关闭系统。

2.2 图像采集

本次设计主要利用V4l2的API接口函数,采集实时图像。V4l2是linux下用于获取视频和音频数据的API接口,配合适当的视频采集设备和相应的驱动程序,可以实现图像采集、广播等功能。Linux下,所有外设都被看成是一种特殊文件,即“设备文件”。可以像访问普通文件一样对其进行读写[3]。

首先利用open()函数打开视频设备。接着利用ioctl相关函数获取摄像头信息,包含摄像头名称,摄像头所支持的最大、最小分辨率等。该函数成功返回后,信息便从内核空间拷贝到用户空间。再读取摄像头缓冲中video_picture信息,包含摄像头采集图像的各种属性,如亮度、色调等。完成以上工作就可以对图像进行采集了。利用Video4 Linux2的API接口函数采集图像有两种典型方法。一种是read()直接读取,另一种是mmap()内存映射法。本次设计采用的是后者。函数原型是void mmap(void addr,size_t len,int prot,int flags,int fd,off_t offset)。mmap()内存映射法使得几个进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以向访问普通内存一样对文件进行访问[4]。该方法首先获取摄像头存储缓冲区的帧信息,之后利用mmap()函数将摄像头对应的设备文件映射到内存区。接着调用ioctl()相关函数进行采集截取。若成功,则开始一帧图像非阻塞的采集截取。接着再调用ioctl()相关函数判断该帧图像是否截取完毕,成功返回就表示截取完毕,再转换格式,转换成RGB格式,在LCD上显示。

图3 软件流程图

2.3 帧间差分法

本次设计采用的是帧间差分法。当摄像头所监控的场景中出现异常物体运动时,相邻两帧或多帧图像的灰度值会出现较为明显的变化。两帧相减,得到两帧图像灰度值的的差值,再通过与阈值的比较来分析图像中是否有异常物体运动。

帧间差分的数学表达式如下,其中fk(x,y)与fk-1(x,y)为连续的两帧图像,Dk(x,y)为它们的差值:

由式(2)得出的R(x,y)实际上是由0或1组成的矩阵。当矩阵中元素1的个数超过截取的帧图像像素点个数的一半时,处理器就判定发生了异常情况。本系统所截取的帧图像大小为320×240。故当矩阵R(x,y)中元素1的个数超过3 940时,处理器便判定监控发生了异常,本次设计中阈值T的选取为10。

2.4 GSM通信程序

使用GSM模块,首先在TC35I背面的SIM卡槽中插入SIM卡,上电复位后,对TC35I进行参数设置,包括波特率,校验位,停止位,短信发送格式,短消息中心号码等。本次设计选择PDU格式。当处理器S3C6410检测到异常情况时,将指令通过串口发送给TC35I,TC35I再发送信息出去。此次设计选择发送的中文代码是“有异样”。通过Unicode码转换软件得到其Unicode代码。为“67095F026837”。下面为GSM模块主要程序段。

void GSM_Sent_PDU_Message3(void)

{

unsigned char j;

char code str1[]="0891683108501505F011000D9168";∥str1为手机卡所在地短信中心号码变换后的号码

char code str11[]="000800"; ∥固定要加的部分

char code str21[]="67095F026837"; ∥“有异样”的Unicode代码

char code Phone_num[]="5158452580F5"; ∥为要接受信息的号码

Delay_ms(Delay_Time); ∥延时

Send_ASCII("AT+CMGS=19"); ∥AT指令,设定为PDU模式

Send_Hex(0x0d); ∥发送回车符

Send_Hex(0x0a); ∥发送换行符

Delay_ms(1000); ∥延时

CLR_Buf1(); ∥清除缓存函数

Send_ASCII(str1);

for(j=0;j<12;j++)

Send_Hex(Phone_num[j]);

Send_ASCII(str11); ∥str11为“00800”,

固定要加的部分Send_ASCII(str21);”

Send_Hex(0x1A);

Send_Hex(0x0d); ∥发送回车符

Send_Hex(0x0a); ∥发送换行符

Delay_ms(1000); ∥延时

while(!Hand("OK"));

CLR_Buf1(); ∥清除缓存函数

}

3 实验结果及分析

该系统设计在家居环境中进行了模拟测试。启动该系统,待系统稳定后,便开始监控。当有陌生人接近大门,也就是监控环境发生变化时,系统会捕捉到这一信息,会发短消息给预先设定好的号码。实验结果如下图。图4为监测结果,图5为手机接收到的有异常的消息。本设计利用R(x,y)矩阵很好的避开了由于光线变化,小鸟干扰等造成的误判问题。但该算法仍存在缺点,不能提取监控环境中新增加对象的完整区域,只能提取出该对象边界。检测出的目标轮廓可能存在空洞现象[2]。

4 结论

本文主要设计了一种基于S3C6410处理器,以嵌入式linux为软件平台,利用帧间差分算法,结合GSM模块,实现对安防环境的监控。该设计硬件简单,体积小,效率高,可扩展性强,可靠性良好,算法易于实现。不仅适用于家居环境,也可在私人办公室等需要监控的地方灵活运用,市场前景良好。

图4 模拟实验结果图

图5 手机接收到的消息

[1]杨国斌.基于嵌入式的智能安防系统的设计与研究[D].长沙:湖南大学,2012

[2]张剑林,王青狮,贾昊君.基于帧间差分的运动目标检测[J].中国科技博览,2012(6):46-46

[3]唐人财,刘连浩.基于嵌入式linux远程图像监控系统的设计[J].计算机与现代化,2010(11):31-34

[4]李锋,杨延强.基于嵌入式Linux的运动目标检测系统[J].现代电子技术,2013,36(2):62-64

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

[6]杜春雷.ARM体系结构与编程[M].北京:清华大学出版社,2003

[7]韩斌杰.GSM原理及其网络优化[M].北京:机械工业出版社,2001

[8]吴玉田,王瑞光,郑喜凤,等.GSM 模块TC35及其应用[J].计算机测量与控制,2012,10(8):557-560

猜你喜欢
差分法摄像头监控
浙江首试公路非现场执法新型摄像头
二维粘弹性棒和板问题ADI有限差分法
摄像头连接器可提供360°视角图像
The Great Barrier Reef shows coral comeback
你被监控了吗?
Zabbix在ATS系统集中监控中的应用
奔驰360°摄像头系统介绍
PDCA循环法在多重耐药菌感染监控中的应用
基于SQMR方法的三维CSAMT有限差分法数值模拟
有限差分法模拟电梯悬挂系统横向受迫振动