当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]一种带有运动检测功能的无线图像监控终端

在需要数据传输的嵌入式系统上,无线传输方式已成为应用趋势,而GPRS(General Packet Radio Service)具有永远在线、快速登录、高速传输等优点[1],被广泛应用于通信系统、无线抄表、无线监控设备中。
  传统的无线图像监控系统,需要不间断地把监控图像传送至监控中心,而这些监控图像中的有用图像却只占少数,这就浪费了大量的数据流量,也增加了成本。同时,监控人员必须时刻注意监控画面,这不仅枯燥乏味,而且很容易忽略掉重要的监控画面。因此,开发一种能自动筛选出用户感兴趣的图像并发送至监控中心的监控终端具有重要意义。
  本无线监控终端以三星公司的S3C2440A为主控芯片,移植了Linux操作系统。系统对USB摄像头采集到的图像进行运动检测,如果有物体在监控区域内运动,则将监控图像通过GPRS传送至监控中心。由于只发送用户感兴趣的监控图像,从而大大降低了无线数据传输中的数据流量,避免了传统无线监控系统中因传输大量无用的监控图像而造成的数据流量浪费,同时也减轻了监控人员因长时间监视监控图像带来的工作强度。
1 系统构成
  本系统由硬件、底层软件和应用软件三部分组成,系统结构如图1所示。

  系统硬件的微处理器采用三星公司的S3C2440A处理器,该处理器内含一个ARM920T内核,标准工作频率为400 MHz,内嵌丰富的外围设备,片外扩展64 MB的Nandflash(型号:K9F1208D0A)和2片32 MB的SDRAM(型号为HY57V561620);摄像头采用基于ZC301器件的奥尼S888,采用CMOS感光器件,48万像素,最大分辨率为800×600,需要单独安装驱动程序。GPRS模块采用华为公司的GTM900双频段GSM/GPRS无线模块,它支持标准的AT命令及增强AT命令,内嵌TCP/IP协议,工作频段为800 MHz/900 MHz/1 800 MHz/850 MHz/1 900 MHz。本系统采用RS232串口与S3C2440相连,SIM卡电压为3 V。
 底层软件由BootLoader(vivi)、嵌入式Linux内核(版本为2.6.17)、设备驱动程序、文件系统组成。在内核配置中,需要添加对视频设备编程接口的支持,配置菜单路径选择Device Drivers->Multimedia device->Video for linux。
  应用软件主要包括数据采集、运动检测和图像传输三部分。
2 应用软件设计
2.1 基本流程
  应用软件的核心模块包括图像采集模块、运动检测模块和GPRS无线数据传输模块。首先图像采集模块用USB摄像头采集分辨率为320×240的图像,然后运动检测模块采用改进的帧差法对采集到的图像进行运动检测。如果运动检测模块检测出监控区域内有运动物体,则将有物体运动的图像添加到图像发送队列,并唤醒GPRS数据传输线程,将队列中的图像发送至监控中心。当图像发送队列中的图像全部被发送出去后,GPRS数据传输线程将置于休眠状态。
2.2 Video4Linux的图像采集
  Video4Linux是Linux中关于视频设备的内核驱动,它为针对视频设备(常见的电视捕获卡及USB口的摄像头)的应用程序编程提供一系列接口函数,同时也提供无线电通信和文字电视广播解码和垂直消隐的数据接口[2]。本文主要针对USB摄像头设备文件/dev/video0进行图像采集方面的程序设计。下面介绍主要步骤及部分代码:
  (1)打开视频设备
  int fd;  //为视频设备的文件描述符
  fd=(open(“dev/video0”,O_RDWR));
  if(fd<0){  //打开失败
  printf(“No Camera found!n”);
  exit(-1);
  }
  (2)读取设备信息
  ioctl函数将摄像头的信息存放到结构videocap中,摄像头信息主要包含名称、类型、通道数、图像宽度、图像高度等。
  struct video_capability videocap;
  if(ioctl (fd,VIDIOCGCAP,&videocap) == -1){
  printf(″Couldn′t get videodevice capability″);
  exit(-1);
  }
  (3)更改设备当前设置
  设置图像帧的属性,将需要设置的属性保存在结构体videopict中,主要包含图像亮度、色彩、对比度、调色板参数等。
  if (ioctl (fd,VIDIOCSPICT,&videopict) < 0){
      printf(″Couldnt set videopict params with VIDIOCSPICT″);
          exit(-1);
  }
  (4)图像采集
  图像采集主要有2种方式:read()直接读取和mmap()内存映射。本系统采用mmap()内存映射方式。
  vmmap.height=240;
  vmmap.width=320;
  vmmap.format=vd-> VIDEO_PALETTE_JPEG;
  ioctl (vd->fd,VIDIOCMCAPTURE,&(vd->vmmap);
  ioctl (vd->fd,VIDIOCSYNC,0);
  pFramebuffer=(unsigned char*) mmap(0,vd->videombuf.size,
  PROT_READ | PROT_WRITE,MAP_SHARED,vd->fd,0);
  第一个ioctl()设置了采集的图像大小为320×240,图像格式为JPEG;第二个ioctl()设置为单帧采集,再用mmap()函数将图像数据映射到pFramebuffer指针所指的内存中。
2.3 运动检测
  采集到监控图像之后,就可进行运动检测了。视频图像处理中,运动目标检测方法主要有背景差分法、帧差法和光流法。本系统采用帧差法。其原理是:当监控区域内有物体运动时,在采集的图像帧中,对应区域的像素值会发生明显变化,这时只需将两帧差分,得到两帧图像亮度差的绝对值。如果绝对值比所设定的阈值大,则区域内存在运动物体;反之,则不存在运动物体。用公式表达如下[3]:
 

 [!--empirenews.page--] 实际应用中,阈值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个核心模块的实现方法。试验运行结果表明,本系统实现了将有运动物体的监控画面传输至监控中心的要求,具有成本低、结构简单等特点。与传统的无线监控系统相比,本系统可大大降低无线数据传输中的数据流量,同时也省去了监控人员长时间监视监控图像的工作。此外,本系统在软硬件设计时充分考虑了不同用户的需求,只需对软硬件稍加扩展,就可实现将监控画面或报警短信传送至用户的彩信手机,具有很好的使用和推广价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在全球数字化浪潮的推动下,大健康行业正迎来前所未有的变革。 北京2024年6月18日 /美通社/ -- 在全球数字化浪潮的推动下,大健康行业正迎来前所未有的变革。随着技术的不断进步,数字化不仅改变了医药行业的运营模式,...

关键字: 数字化 BSP 终端 IP

北京2024年6月17日 /美通社/ -- 6月13日,2024 IAI传鉴国际创意节第二天,来自网易传媒、小红书、智度股份、知乎、Google、易平方科技、迪思传媒等嘉宾进行了演讲与分享,IAI全场大奖PK创意赛、第2...

关键字: AI BSP GOOGLE 小红书

北京2024年6月14日 /美通社/ -- 2024年6月12日,2024 IAI传鉴国际创意节在北京盛大开幕。在AI浪潮的涌动下,本届盛会在时代的前沿,以"鉴势新动力"为主题,聚焦新智能如何深度赋能品牌营销,共谋产业创...

关键字: AI BSP AI技术 IP

伊斯坦布尔2024年6月12日 /美通社/ -- 近日,"领启未来"华为游戏行业沙龙•欧洲出海专场在土耳其顺利举行,华为游戏中心与点触游戏、FunPlus、沐瞳、NEOCRAFT、网易游戏等合作伙伴围绕欧洲市场环境、出海...

关键字: 华为 终端 云服务 数字经济

摘要:群星闪耀,亚洲科技FF盛宴 澳门2024年6月12日 /美通社/ -- 5月25日,第四届BEYOND国际科技创新博览会(BEYOND Expo 2024)以"Embracing the Uncertaintie...

关键字: 创始人 AN STAGE BSP

其中囊括迈阿密站和摩纳哥赛车史上首次双赛 英国伦敦2024年6月11日 /美通社/ -- FE 今天宣布了ABB 国际汽联电动方程式世界锦标赛第11赛季的暂定赛历,这将是其历史上首次完成17场比赛,跨越几个大洲在11个...

关键字: 电动 BSP ABB GEN

北京2024年6月11日 /美通社/ -- 6月6日-8日,2024中国汽车重庆论坛举行。论坛以"在变革的时代 塑造行业的未来"为主题,吸引全球行业精英,重点关注新能源、智能...

关键字: 中国汽车 数字化 BSP AN

柏林2024年6月11日 /美通社/ -- 据德国汽车行业协会(VDA)的最新消息,去年德国生产了127万量电动汽车(BEV和PHEV),其中95.5万辆是纯电动汽车。这使得德国成为欧洲生产电动汽车最多的国家。预计今年德...

关键字: 电动汽车 BSP 纯电动汽车 AI

作者 Mohamad Ali| IBM咨询首席运营官 北京2024年5月24日 /美通社/ -- 生成式AI的兴起几乎在所有面向上给业务带来改变。根据 IBM 商业价值研究院最新的年度 CEO 研究,近60%...

关键字: IBM AI BSP 模型

台北2024年5月21日 /美通社/ -- 提供针对AMD WRX90和TRX50主板优化的DDR5 OC R-DIMM 提供容量128GB(16GBx8)到768GB(96GBx8),速度5600MHz到8...

关键字: AMD 内存 BSP GB
关闭
关闭