历史上的今天
返回首页

历史上的今天

今天是:2025年12月20日(星期六)

2022年12月20日 | 基于S3C6410处理器和Linux的家居监控运动目标检测系统

2022-12-20 来源:elecfans

选用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模块相结合,已达到监控无人值守的目的,实验结果达到了预期的目的,该系统体积小,功耗低,成本低,使用方便灵活,功能可扩展等特点,可用于家居环境或是私人办公室等场所。具有较好的市场前景。


推荐阅读

史海拾趣

Helium_Systems__Inc.公司的发展小趣事

为了更好地适应全球市场的变化,海曼电子不断深化其国际化战略。公司在全球范围内建立了完善的研发、生产和销售网络,确保能够快速响应客户需求。同时,公司还加大了对海外市场的投入,通过本地化运营和定制化服务,赢得了更多海外客户的信赖和支持。此外,海曼电子还积极参与国际标准的制定和推广工作,提升了公司在全球电子行业的影响力。

Arcolectric公司的发展小趣事

Arcolectric深知合作伙伴的重要性,因此一直致力于与全球各地的优质企业建立紧密的合作关系。通过与这些合作伙伴的深入合作,Arcolectric不仅获得了更多的市场机会和资源支持,还不断吸收和借鉴先进的经验和技术,推动公司的持续发展和创新。

Cystech公司的发展小趣事

为了进一步拓展全球市场,C-TECH Co., Ltd在2009年相继成立了香港分公司和中国(深圳)分公司。通过这两家分公司,公司能够更好地了解当地市场需求,提供更加贴近客户的服务。同时,公司还积极参加国际电子展会,与国际同行交流合作,不断提升自身的品牌影响力和市场竞争力。在国际化战略的推动下,C-TECH Co., Ltd的海外市场不断拓展,为公司的发展注入了新的动力。

富捷(FOJAN)公司的发展小趣事

随着电子元器件市场的不断扩大,富捷电子积极实施产能扩张计划。自2020年起,公司相继启动了多个扩产项目,包括一期100亿产能生产基地项目建设和二期车规电阻产能扩充项目。这些项目的顺利实施,极大地提升了公司的生产能力和市场响应速度,有效满足了智能终端、5G、工业互联网等重要行业对电子元器件的旺盛需求。同时,富捷电子还通过优化生产流程、提升设备自动化水平等措施,进一步提高了生产效率和产品质量。

Alliance Fiber Optics Products Inc公司的发展小趣事

近年来,AFOP的发展取得了显著成就,其产品在光网通信领域处于领先地位。202X年,世界500强康宁公司看中了AFOP的技术实力和市场潜力,决定对其进行收购。这一收购使得AFOP获得了更多的资源和支持,加速了公司的技术创新和市场拓展步伐。同时,康宁公司也通过收购AFOP进一步巩固了其在光纤通信领域的领先地位。

中微股份(Cmsemicon)公司的发展小趣事

在品牌建设方面,中微股份(Cmsemicon)同样取得了显著成果。公司注重品牌形象的塑造和传播,通过参加国内外行业展会、发布新产品、加强与客户和合作伙伴的沟通等方式,不断提升品牌知名度和美誉度。同时,公司还积极拓展市场,与全球众多知名企业建立了长期稳定的合作关系。这些努力不仅为公司带来了更多的商业机会,也为公司的长远发展奠定了坚实基础。

问答坊 | AI 解惑

虚拟技术在新产品开发中的应用1

 一、前言     随着科技的飞速发展,企业间的竞争日趋激烈,市场的变化不断加快。企业的新产品开发也随之出现一些新的特点:     (1) 产品生命周期明显缩短。以汽车为例,新产品的生命周期从20世纪90年代的5~8 ...…

查看全部问答>

个人电源管理示例

#1  电源管理如图 附件 1: 1111111.jpg (2006-5-30 01:29 PM, 60.4 K) screen.width*0.5) {this.resized=true; this.width=screen.width*0.6; this.alt=\'点击查看全图\';}\" border=0> 附件 2: 2222222222.jpg (2006-5-30 01:29 PM,&n ...…

查看全部问答>

电赛练习题

本帖最后由 paulhyde 于 2014-9-15 08:56 编辑 电赛练习题  …

查看全部问答>

学单片机的历程

以前我学习单片机时感觉很难,总想用最快的方法学会它于是四处搜集相关的资料下载了很多,现在总算是找到了方法,就是不断编写程序根据IC引脚输出高电频低电频来定。最难的地方如何编写程序,很需要时间去想怎样去运走流程顺序,是一个非常重要关键 ...…

查看全部问答>

编程修养

什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比 较快?我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料 就能找到,对于速度快,只要编得多也就熟能生巧了。 我认为好的程序员应该有以下几方面 ...…

查看全部问答>

求延时或移相电路!急!

延时电路,需要延时200ns左右 或者移相电路,40°相移左右 信号频率500KHz 急! 各位赶紧指导下!谢谢各位了…

查看全部问答>

利用高速FPGA设计PCB的要点及相关指导原则

随着现场可编程门阵列(FPGA)已发展成为真正的可编程系统级芯片,利用这些芯片设计印制电路板(PCB)的任务变得愈加复杂。目前动辄数百万门的电路密度和6Gbps以上的收发器数据传输率及其它考虑事项影响着系统开发人员在机械和电气方面的板级设计工作。 ...…

查看全部问答>

求助关于pwm周期的问题

刚开始以为调个小小的pwm周期就像张飞吃豆芽--小菜,可是调了几天各种无奈,各种无语。实在没办法了,求助高手们麻烦给点指导。我想调出20ms的pwm, SysCtlClockSet(SYSCTL_SYSDIV_1|SYSCTL_USE_OSC|SYSCTL_OSC_MAIN|SYSCTL_XTAL_6MHZ);配置8MHz外 ...…

查看全部问答>