基于S3C6410处理器和Linux的家居监控运动目标检测系统

2022-12-20  

选用ARM11(S3C6410)处理器作为硬件平台,嵌入式Linux操作系统作为软件平台,综合运动图像检测的背景差分法和帧间差分法为算法,并与GSM模块相结合,设计并实现了一种应用于家居环境或私人办公室无人值守的运动目标检测系统。提出了系统设计的总体方案,并详细介绍了系统软硬件平台的设计流程,最后对系统进行了测试。


随着社会的发展和科技的进步,人们的安防意识越来越强,而计算机网络技术,通信技术,和数字视频编码技术的日益成熟,使基于计算机的多媒体视频监控系统成为可能。但是传统的视频监控系统因十分复杂,功耗和成本较高且需要值守,而无法应用于诸如家居或私人办公室等场所,为此,本文设计了一种以ARM11为核心处理器,嵌入式Linux为操作系统,在传统的视频监控的基础上加入了目标检测的算法,并与GSM模块相结合,已达到无人值守的目的。


1 系统总体设计

运动目标检测系统采用S/B(服务器/浏览器)工作模式,总体上分为服务器监控模块,短信通知模块(GSM)和客户查看模块。服务器监控模块采用三星公司的ARM11(S3C6410)微处理器,开源的Linux操作系统,GSM模块采用Q2403A芯片,当监控的画面发生变化,即检测到运动目标时,服务器会将发生变化的图像以图片的格式存储起来发送给客户端,与此同时2403A会以短信的方式通知客户,客户可以通过IE浏览器来查看图像的变化结果。系统的总体设计如图1所示。

基于S3C6410处理器和Linux的家居监控运动目标检测系统

2 硬件结构

本文采用广州友善之臂公司的TIny6410开发板,TIny6410是一款以ARM11(三星S3C6410)作为主处理器的嵌入式板,该CPU基于ARM11-76JZF-S核设计,内部集成了强大的多媒体处单元。硬件架构如图2所示。短信通知模块的Q2403A为WAVECOM公司推出的一款GSM GPRS模块,其体积较小,重量较轻,主要由射频天线,内部FLASH,SRAM和GSM基带处理器,匹配电源和一个40脚的ZIF插座组成。GSM基带处理器是核心部件,其作用相当于一个协处理器,用来处理外部系统通过串口发送过来的AT指令。


3 软件平台

 系统软件平台以Linux操作系统为基础,首先在宿主机上建立交叉编译环境,并安装交叉编译器arm-Linux-gCC。其次完成U-Boot以及Linux 2.6.33内核的移植和编译,构建基于busy-box1.13.3的根文件系统,由于嵌入式服务器资源的局限性,包括内存大小,CPU的处理能力等。因此,在设计过程中需要对内核进行裁剪,在提高系统性能的同时减少了系统资源的占用,在剪裁过的Linux操作系统上编写运动检测的应用程序和短信报警程序。

3.1 嵌入式Linux下的运动目标检测算法
目前,对运动物体的检测和运动参数测量的研究方向主要有2种,即:运用人工神经网络和运用图像处理的方法,大多数专家学者都把研究重点放在运用图像处理的方法进行运动目标检测和跟踪,现在的比较有效的图像运动目标检测的方法主要是光流法和差分图像法。一般来说光流发的时间开销很大,其实时性和实用性。相反,图像差分法比较简单,易于实现,图像差分法可分为2类:背景图像差分法和帧间差分法。背景图像差分法是传统运动目标检测方法中最直接最简序列图像当前帧与背景图像做减法运算。由于运动物体和背景在灰度或色彩上存在差别,相减后所得的结果中每一像素的值和一个预先设定的阈值相比较,如果这个像素的值大于设定的阈值,则判定被监控的场景中存在运动物体,总而得到运动的目标。背景图像差分法原理设计简单,但同时也存在受光线,天气等外界条件变化的影响较大。帧间差分法是一种通过对视频图像序列中相邻两帧做差分运算来获得运动目标轮廓的方法,它可以很好地适用于存在多个运动目标和摄像机移动的情况,当监控场景中出现异常物体运动时,帧与帧之间会出现较为明显的差别,两帧相减,得到两帧图像亮度的绝对值,判断它是否大于阈值来分析视频或图像序列的运动特性,确定图像序列中有无物体运动,图像序列逐帧的差分,相当于对图像序列进行时域上的高通滤波。帧间差分法对光线等场景变化不太敏感,能适应各种动态环境,稳定性较好,其缺点是:不能提取出对象的完整区域,只能提取出边界,当物体在前后两帧中几乎完全重叠时,则检测不到运动的物体。鉴于背景差分法和帧间差分法的优缺点,将两种方法结合起来,使它们优势互补。在视频图像序列中,利用已有的背景差分法和帧间差分法作为启示,将动态图像中连续两帧差图像和背景差图像直接进行与操作,再将结果进行二值化处理得到运动结果。


3.2 算法描述
    算法描述如下所示:
    (1)对序列图像进行3x3中值滤波预处理,去掉图像随即噪声。减少以后运算的复杂度,克服噪声对图像处理结果的干扰;
    (2)从视频图像序列中选取背景图像Bk(x,y),使其只包含固定的背景图像;
    (3)在视频图像序列中选取连续的两帧图像,其中前一帧图像Pk-1(x,y);
    (4)计算当前帧与背景帧差得FD(x,y),从图像中提取出完整的目标;
    (5)计算当前帧与前一帧的差得FD(x,y),得到目标的变化量;
    (6)求帧差FD(x,y)与FG(x,y)的交集得到运动目标粗糙的运动区域图像;
    (7)数学形态学运算使得运动区域封闭,连续完整,并去掉背景中的噪声。
    其中:
   
式中T为阈值。对于给定视频序列的图像,假设像素点k处没有运动,其帧差也服从均值为0,方差为σ2的Gauss分布N(O,σ2):
    
式中:H0表示无运动假设;σ2是帧差得统计方差,通常认为他等于摄像头噪声方差的2倍。根据概率统计学假设检验“3σ”法则,并根据“正确的阈值T应该能消除大部分噪声”的原则。由实验测试的阈值T在本系统的应用背景下可以选在5~15之间。基于以上算法,系统的具体实现如图3所示。

基于S3C6410处理器和Linux的家居监控运动目标检测系统

3.3 GSM模块的短信通知
对于GSM模块来说所有的操作都是通过AT命令(AT命令就是与MODEM相连的终端或计算机发出的以“AT”开始(除两个立即执行命令外),以回车结束执行的一套命令)来实现的。编程时先把AT命令作为数据通过数据串口发送给GSM模块,GSM模块把接收到的数据作为AL命令来解释,随后根据命令执行响应的操作。具体操作为:包含串口操作需要的头文件,打开串口,在linux下串口相关文件是位于/dev下,打开串口是通过使用标准的文件打开函数操作:fd=open(“/dev/ttySO”,O_RDWR);设置串口最基本的设置串口包括波特率,校验位和停止位设置。串口的设置主要是设置struct termios结构体的各成员值;设置短信发送格式(O_PDU,1_文本);发送短消息。例如短消息的内容为hel lo,则AT指令应为AT+CMGS=“139# # # # #2312”>hello^z(^z表示CTRl+z);关闭串口close(fd)。

3.4 图像的传输
实现流媒体网络传输的方法有很多,超文本传输协议(HyperText Transfer Protocol,HTTP)是用于从WWW服务器传输超文本到本地浏览器的传输协议,属于客户端浏览器与Web服务器之间的应用通信层协议,它可以使浏览器更加高效,使网络传输减少。HTTP协议采用了请求/响应模式,具体实现过程为:在嵌入式开发板S3C6410中植入嵌过人式Web服务器,在完成配置之后,用户先在地址栏里输入URL地址,此时客户端浏览器打开一个Socket文件,标志着成功的建立了连接,通过Socket客户端浏览器IE向Web服务器提交请求,Web服务器接收到请求后处理请求,并将结果通过HTTP送回给客户端浏览器IE。当浏览器IE与服务器建立了连接后,通过system(“tar”)和system(“cp”)将存储在开发板上的图片打包并拷贝到Web服务器的主目录下,并编写主目录下的超文本标记语言(Hypertext MarkedLanguage,HTML),是一种用来制作超文本文档的简单标记语言,超文本传输协议规定了测览器在运行HTML文档时所遵循的规则和进行的操作。HTML文件中最端的浏览器可以访问服务器主目录下保存的图像。具体的格式为:超链接名称,标签表示一个链接的开始,表示链接的结束。


4 实验结果

整套系统在模拟的环境下进行了测试,启动系统,等系统稳定后,移动摄像头视野中的某样物体,使监控的画面发生变化,此时系统会发短信给用户,当用户收到短信时,打开浏览器,在地址栏输入URL,下载存储在Web服务器主目录下的图片,便可以查看实验结果。显示的图片结果如图4所示,系统会将摄像头视野范围内的运动物体框起来,并记录下发现运动物体的时间。


5 结语

本文设计了一种以ARM11为核心芯片,嵌入式Linux为操作系统,采用背景差分法和帧间差分法相结合作为核心算法的运动检测系统。并与GSM模块相结合,已达到监控无人值守的目的,实验结果达到了预期的目的,该系统体积小,功耗低,成本低,使用方便灵活,功能可扩展等特点,可用于家居环境或是私人办公室等场所。具有较好的市场前景。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。