历史上的今天
返回首页

历史上的今天

今天是:2025年02月07日(星期五)

正在发生

2018年02月07日 | 基于Linux的无人值守的运动目标检测系统设计

2018-02-07 来源:eefocus

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

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

    1 系统总体设计

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

c.JPG

    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)数学形态学运算使得运动区域封闭,连续完整,并去掉背景中的噪声。
    其中:
   d.JPG
    式中T为阈值。对于给定视频序列的图像,假设像素点k处没有运动,其帧差也服从均值为0,方差为σ2的Gauss分布N(O,σ2):
    e.JPG
    式中:H0表示无运动假设;σ2是帧差得统计方差,通常认为他等于摄像头噪声方差的2倍。根据概率统计学假设检验“3σ”法则,并根据“正确的阈值T应该能消除大部分噪声”的原则。由实验测试的阈值T在本系统的应用背景下可以选在5~15之间。基于以上算法,系统的具体实现如图3所示。

a.JPG

    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文件中最端的浏览器可以访问服务器主目录下保存的图像。具体的格式为:超链接名称</A>,标签表示一个链接的开始,</A>表示链接的结束。

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

b.JPG

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


推荐阅读

史海拾趣

Akahane Electronics Ind Corp公司的发展小趣事

Akahane深知人才是企业发展的核心动力。因此,公司一直注重人才培养和引进。通过建立健全的培训机制和激励机制,Akahane吸引了一批批优秀的研发人才和管理人才。这些人才为公司的技术创新和市场拓展提供了有力支撑。同时,公司还积极与高校和研究机构合作,共同培养电子行业的后备力量。

台湾稳态公司的发展小趣事

随着企业规模的扩大和影响力的提升,台湾稳态公司开始积极承担社会责任,推动可持续发展。公司注重环保和节能技术的应用,致力于生产环保型电子产品,减少生产过程中的能源消耗和环境污染。同时,稳态公司还积极参与社会公益事业,为社会的发展贡献自己的力量。

这些故事虽然基于假设,但反映了电子行业企业普遍面临的挑战和机遇,以及台湾企业在该行业中的发展特点。如需了解台湾稳态公司的真实发展故事,建议查阅相关新闻报道或访问公司官方网站。

芯朋微电子(chipown)公司的发展小趣事

2020年7月22日,芯朋微电子在上交所科创板成功挂牌上市,这一里程碑事件标志着公司进入了全新的发展阶段。上市后,公司凭借资本市场的支持,加速了产品研发和市场拓展,品牌影响力得到进一步提升。

Aristo-Craft/ L M P Inc公司的发展小趣事

随着科技的进步,Aristo-Craft/L M P Inc公司意识到要想在行业中保持领先地位,必须不断进行技术创新和产品升级。公司投入大量资源进行研发,成功推出了一系列具有创新性的电子产品,如高性能的集成电路、先进的通信设备等。这些产品不仅提高了公司的市场竞争力,还为客户带来了更好的使用体验。

台湾岱恩(DAIN)公司的发展小趣事

面对未来电子行业的快速发展和变革,Aristo-Craft/L M P Inc制定了明确的战略规划。他们将继续加大在研发和创新方面的投入,推出更多具有创新性和竞争力的产品。同时,公司还将积极拓展新的应用领域和市场,寻求更多的合作机会,以实现更加广泛的发展。

请注意,这些故事仅为概述性的框架,并非具体的事实描述。如果您需要更详细、具体的故事内容,建议查阅Aristo-Craft/L M P Inc公司的官方资料、新闻报道或行业分析报告等,以获取更准确的信息。

High Voltage Power Solutions Inc公司的发展小趣事

面对未来电子行业的快速发展和变革,Aristo-Craft/L M P Inc制定了明确的战略规划。他们将继续加大在研发和创新方面的投入,推出更多具有创新性和竞争力的产品。同时,公司还将积极拓展新的应用领域和市场,寻求更多的合作机会,以实现更加广泛的发展。

请注意,这些故事仅为概述性的框架,并非具体的事实描述。如果您需要更详细、具体的故事内容,建议查阅Aristo-Craft/L M P Inc公司的官方资料、新闻报道或行业分析报告等,以获取更准确的信息。

问答坊 | AI 解惑

HSPICE仿真问题

如果四条传输线(攻击线)中间夹杂一条传输线(受害线),用HSPICE应该怎样仿真呢?…

查看全部问答>

ADI资料-模拟电路设计

ADI资料-模拟电路设计 Very useful for you whatever you are an expert or beginner!…

查看全部问答>

需不需要接外部存储器

弱弱地问:生成的hex大小是10.2KB,烧进89c52,是不是需要接外部存储器?…

查看全部问答>

求WinCE中的汇编指令集

有谁知道WinCE中汇编指令?分享一下详细的指令集,先谢谢了!!!!…

查看全部问答>

wince +evc 的数据库开发问题

马上要进行数据库方面的开发了。要求用SQL CE的数据库。 但从没接触过这方面的东西,下面是要问的几个问题:    先介绍下本机情况:Windows XP SP2系统,装的有WinCE 4.2版,EVC4.0. 如果要进行SQL CE的数据库开发,我要装哪些东西, ...…

查看全部问答>

LPC2119遇到的问题

我用LPC2119做一个数据采集器,用CAN通讯,用EEPROM存储参数。 现在我要实现两个不能同时运行的功能函数: 1)通过串口对EEPROM通过SPI设置参数,函数为ComCommunity(); 2)将采集到的数据通过CAN传递出去,函数为CanCommunity(); 由于(1)不 ...…

查看全部问答>

请问在PDA里如何用C#获取桌面的句柄

操作系统是WindowsMobile5.0 开发环境是.Net compact framework2.0 C#2005 我想知道当用户切换到桌面(即今日)超过1分钟时,自动将已经运行的我们程序切换回来,即让用户别在桌面上停留时间太长,请问如何实现?谢谢!…

查看全部问答>

哪位大虾有MSP430破解开发软件?

哪位大虾有MSP430破解开发软件? 不限制代码大小,不限制时间的,如果有,请传到论坛里给大家共享一下!…

查看全部问答>

STC89C54RD+该选哪种CPU?

大家好! 我是一个新手,刚刚接触到单片机,我手头上有一块STC89C54RD+的板,可是编写程序时,我却不知道该选择哪种CPU, 希望各位高手不吝赐教,领我入门, 您的一个答案,确是对一个新手的莫大鼓励,谢谢各位!!   [ 本帖最后由 zhan ...…

查看全部问答>