基于嵌入式的移动图像监控系统设计

2018-04-25 07:35,
计算机测量与控制 2018年4期
关键词:开发板应用程序监控

,

(浙江工业大学 机械工程学院,杭州 310014)

0 引言

随着社会经济水平的提高和科技的快速发展,人们对于人身和经济财产的保护意识也在不断增强[1]。但是人们除了要加强主观意识之外,更多的还是需要一定的技术手段和设备以实现有效和科学的防范。图像监控就能够从容应对这些情况,它在预防犯罪、调查取证、公共财产保护等方面都起到了不可替代的作用[2],其应用范围主要体现在公共安全监控、工业现场监控、居民小区监控等各种监控场景中[3]。

同时随着嵌入式的发展、4G网络和Wi-Fi网络的普及,利用网络实现远程控制这个方式也已被人们广泛地接受,这些均为移动图像监控系统的远程控制功能提供了保障,使用户可以将PC端直接作为远程监控平台。

1 移动图像监控系统整体方案

本系统的总体方案设计如图1所示。在TQ210开发板上通过外接的图像采集模块来进行实时采集图像,通过背景减除法对采集到的连续两帧图片进行处理,从而实时地判断是否有移动物体的产生。

当检测到移动物体时,此时系统就会通过预警模块开启实时预警,并将采集到图像以及视频保存在开发板中,此时PC端用户可以通过网络连接到开发板上的Boa服务器,从而实现远程监控或者查看保存在开发板上的图像和视频。

图1 总体方案设计图

2 运动目标检测原理

运动目标检测是指在序列图像中检测出变化区域并将运动目标从背景图像中提取出来。一般通过以下四步来实现运动目标检测。

1)图像的二值化:由于USB摄像头采集到的图像为RGB格式的图像,该格式的图像每个像素需要用3个字节表示,而YUV格式的图像只需一个字节表示[4]。为了降低运算量,加快数据的传输速率,需要先把彩色(RGB)图像转化为黑白(YUV)图像。转换公式采用下式:

Gray(x,y)=0.299×R(x,y)+0.587×G(x,y)+

0.114×B

(1)

式中,Gray(x,y)为坐标(x,y)转化后的灰度值。

将转化后的图像进行二值化处理,即选取一个阈值thresh与各个像素点进行比较,如果小于阈值,则为黑色,否则为白色,具体公式如下:

(2)

式中,F(x,y)为坐标(x,y)像素的二值图值,thresh为二值图阈值。

2)滤波去噪:由于嵌入式平台对于算法的高度敏感性,去噪采用均值滤波。即对待处理的当前像素点(x,y),选择一个模版,该模版由相邻的8个像素组成,求模版中所有像素的均值作为该点像素的值,公式如下:

(3)

式中,f(x,y)—坐标(x,y)的像素值,g(x,y)—坐标(x,y)相邻坐标的像素值。

3)背景图像与当前图像相减,与阀值比较

由于图像中的所有像素已经灰度化,故它是一个0~255的数值,故可以将当前图像与背景图像相对应像素的值进行相减,并将这些值相加后与预设的阀值进行比较,如果该值大于阀值就认为有移动物体产生,其中阀值设置的越小越敏感。具体公式如下:

diffs=F(x,y)-B(x,y)

(4)

式中,—相减后的总值,F(x,y)—当前图像,B(x,y)—背景图像。

(5)

式中,thres—设置的阀值。

4)背景建模

在本系统中背景建模采用动态地去实时更新背景图像,通过当前背景图与当前图像进行对比判断是否需要更新背景模型,如果需要更新,则采用加权的当前背景图像与加权的当前图像之和作为更新后的背景图像,具体公式如下:

Bnew(x,y)=0.5×Bret(x,y)+(1-0.5)F(x,y)

(6)

式中,B(ret)—更新后的背景图像,B(ret)—当前背景图像,F(x,y)—当前图像

在本系统的检测移动图像过程中首先判断当前输入的图像帧是否为第一帧采集图像。如果是第一帧采集图像,在对其经过图像的二值化、滤波去噪后将其作为背景图像,如果不是第一帧图像,则对其经过图像的二值化、滤波去噪后与系统中的背景图像进行对比,如果得到的值大于等于预设的阀值时,则判断为检测到运动目标,此时将该帧图像作为系统的背景图像并将其储存下来,具体处理过程如图2所示。

图2 运动目标检测流程图

3 硬件平台搭建

系统的终端硬件结构主要可以分为以下四部分:核心控制器、图像采集模块、报警模块、Wi-Fi模块。

3.1 核心控制器

核心控制器采用TQ210开发板,该开发板使用了Samsung Cortex-A8 S5PV210芯片,该CPU采用45 nm工艺制程,处理器内部为64/32位总线结构,32 KB数据缓存和32 KB指令缓存,512 KB二级缓存,处理器主频最高可达到1 GHz,拥有2 000 DMIPS的高性能运算能力,保证即时而顺畅的执行应用程序,并且包含了很多强大的硬件编解码功能[5]。TQ210核心版采用高密度10层的沉金工艺,尺寸为63×53×7 mm,并配置了1 G主频、1 G DDR2 RAM、1 G SLC NandFLASH(可扩展至2 G),采用5 V供电,并且引出了各种常用的接口资源。如本系统中需要用到的4路USB_HOST 2.0输出口,1路USB_OTG 2.0下载接口等。

3.2 图像采集模块

图像采集模块采用中星微ZC301P摄像头。这款摄像头采用CMOS图像感光芯片,内置JPEG硬件压缩引擎,具有USB1.0接口。其最大分辨率可达VGA分辨率即640×480,最大帧频可达30 fps,并且支持静态与动态视频的采集。同时该芯片在自动曝光、增益、白平衡、色彩、噪点控制、动态缩放以及边缘抗锯齿算法等方面都有独到之处,可以获得清晰度很高的视频图像[6]。

3.3 报警模块

报警模块采用Wolfson Microelectronics音频转换芯片WM8960,WM8960是一款低功耗、高质量的立体编码解码器,专为便携式数字音频应用设计。S5PV210芯片通过I2S和I2C与音频编解码芯片WM8960进行交互,其中I2S只负责传输声音数据,而I2C负责传输控制信息(如音量调节、静音等),WM8960负责编解码[7]。WM8960芯片对外引出了1个驻极体话筒、2个功放接口、1个3.5 mm接口的PHONE、1个3.5 mm接口的MIC。

3.4 Wi-Fi模块

Wi-Fi模块采用一款基于美国Atheros AR9271为控制器芯片的无线网卡,该网卡具有超强的稳定性,完美解决信号虚高、掉线、连接不上等问题[8]。AR9271 WLAN USB单芯片采用全新的架构,集成了可运行更多片上无线LAN功能的CPU与存储器。同时该网卡外置高增益6dbi全向天线,轻松实现了远距离传输,并且符合IEEE802.11g、IEEE802.11b、IEEE802.11n标准,无线传输速率可达150 MBPS;支持WEP、WPA/WPA2、WPA-PSK/WPA2-PSK等高级加密与安全机制;提供简便的配置、监控程序;支持Linux操作系统。

4 系统软件的设计

4.1 嵌入式软件平台的搭建

开发板采用的是嵌入式Linux系统作为操作系统平台。该系统具有模块化程度高、源码公开、安全性及可靠性好、拥有较多的优秀开发工具、有很好的网络文件系统支持、能支持x86、ARM等多种体系结构的微处理器等优点[9]。Linux系统由bootloader、kernel、rootfs这三部分组成,所以搭建嵌入式Linux操作系统需要完成交叉编译环境的搭建、U-Boot的移植、Linux内核的裁剪与编译、文件系统的制作,然后在Linux开发环境上完成了系统的应用程序设计。其中在内核的裁剪与编译过程中,为了能够实现警报声的播放、图像的采集以及连接无线网络的功能,需要将内核配置中声卡、摄像头以及无线网卡的相关选项进行配置。之后需要编写这些模块的应用程序,但由于Linux系统的开源性,很多模块的应用程序只需通过移植就可以直接使用。

4.2 应用程序移植

首先移植的是报警模块中的声音播放程序,选用了Madplay音乐播放程序。移植该程序需要用到以下源码包libid3tag-0.15.1b.tar.gz、zlib-1.1.4.tar.gz、madplay-0.15.2b.tar.gz、libmad-0.15.1b.tar.gz。由于libid3tag库的编译过程中需要依赖zlib库文件,所以必须先对zlib源码包通过解压、配置、编译、安装4个步骤进行编译。但由于程序的编译与运行在两个不同架构的平台上实现,所以通过修改解压目录中的Makefile文件实现交叉编译的功能。然后按照相同的步骤编译另外3个源码包,但在编译libmad源码包的过程中需要将Makefile文件第129行中fforce-mem指令删掉。最后将编译好的库文件和Madplay应用程序分别复制到开发板的/lib目录和/sbin目录中。

其次移植Wi-Fi模块中用于连接无线网络的wpa_supplicant应用程序。移植该程序需要用到wpa_supplicant-2.0.tar.gz、openssl-1.0.1d.tar.gz这两个源码包以及AR9271芯片需要的固件htc_9271.fw。由于wpa_supplicant源码包的编译需要依赖openssl库,因此需要先编译openssl源码包。在对openssl库进行编译的过程中,同样需要修改Makefile文件使其实现交叉编译。然后将编译出来的头文件和库文件分别复制到虚拟机交叉编译工具链的头文件和库文件中,同时将库文件复制到开发板的/lib目录中。接着对wpa_supplicant源码包进行编译,在编译过程中需要在配置文件.config内加上一行命令代码:CONFIG_LIBNL32=y,并修改Makefile文件中的一些内容。编译完成后将usr/local/sbin目录中所有生成的文件都复制到开发板的/bin目录内,并将生成的应用程序wpa_supplicant复制到开发板/var/run/目录中,以及下载的固件htc_9271.fw复制到开发板的/lib/firmware目录中,最后在开发板的/etc目录中创建配置文件wpa_wpa2.conf,配置文件具体内容如下:

ctrl_interface=/var/run/wpa_supplicant

network={

ssid="Wi-Fi账户名"

psk="Wi-Fi密码"}

然后移植用于检测是否有移动物体产生的Motion算法应用程序。移植该程序需要用到motion-3.2.12.tar.gz和ffmpeg-0.5.1.tar.gz这两个源码包。为了使其支持录制视频功能,所以需要先对ffmpeg源码包编译。在对ffmpeg-0.5.1.tar.gz源码包的编译过程中,需要在配置生成Makefile文件时额外输入以下命令代码:cross-prefix=arm-linux-、arch=arm、enable-shared。在编译完成后,将/lib目录中的库文件复制到开发板的/lib目录下。接着移植motion应用程序,由于本系统中motion程序需要使用录制视频功能,但不需要使用数据库,所以在配置生成Makefile文件时需要输入without-mysql、with-ffmpeg=ffmpeg/_install和without-pgsql这三条命令代码。将编译好的motion应用程序和配置文件motion-dist.conf分别复制到开发板/sbin目录和/etc目录中。并通过修改配置文件motion-dist.conf中的关键参数threshold、videodevice以及target_dir来配置motion的使用方式。

最后移植用于远程管理和查看监控系统的Boa服务器。移植该程序需要用到boa-0.94.13.tar.gz源码包,在对Boa编译的过程中,需要将util.c文件中第100行指令代码修改为time_offset=0,并修改生成的Makefile文件中一些内容,使其进行交叉编译。最后编译完成后将生成的Boa应用程序复制到开发板的/sbin目录内,同时将配置文件boa.conf复制到开发板的/etc/boa目录下。

4.3 WEB客户端的设计

WEB客户端用户界面在如图3所示。该网页可以网络连接开发板上BOA服务器。BOA服务器是一个小巧高效的WEB服务器,但其只能进行一些简单的网页请求[10],而一些更复杂的设备操作无法实现,故浏览器端口的网页为了能够进行复杂的设备操作需要通过BOA服务器与外部应用程序之间的接口标准CGI来实现[11]。具体实现过程如图4所示。

图3 WEB客户端界面 图4 WEB客户端操作实现过程

5 实验测试及分析

由于该系统针对的是家居室内移动物体的检测,所以本实验在室内进行测试。将已经连接好摄像头的开发板放置于室内的某个地方,当有物体进入摄像头的拍摄区域时,系统会检测到有移动物体产生,就会开始发出警报声,用户可以如图5所示的页面进行实时查看监控情况并进行相应的处理,而如果用户无法及时进行监控时,则在如图6所示的页面可以在事后查看开发板保存下来的图片以及视频。

在本系统中,影响检测正确率的主要是对于阀值的选取,选取不同的阀值阀值,对于系统的敏感性有很大的差别,即能

图5 实时监控页面 图6 移动图像查看页面

检测到物体的大小。由于实验环境处于室内,所以将阀值选取为1500,此时系统检测的目标大小正好适合人类。系统经过100次测试后发现,此时系统运动物体检测也不是100%正确的,会产生一定的漏检和误检,具体情况如下表1所示。

表1 实验检测结果

经过分析,发现漏检产生的因素主要是:运动物体偏小以及运动速度较快;运动物体颜色与背景颜色较接近以及室内光线偏暗。误检产生的原因主要是摄像头产生移动。

6 结束语

本文针对入室盗窃,非法入侵等违法行为,设计了一种移动图像监控系统。该系统不仅实现了传统的视频实时监控功能,还实现了自动预警以及图像、视频保存功能,并且在图像内将移动物体通过方框标记出来,让用户更加容易辨识或者事后取证。整个系统具有体积小、功耗低、系统稳定,具有一定的智能性,拥有良好的应用前景。

参考文献:

[1] 蒋 坤. 智能家居关键技术研究[D]. 宁波:宁波大学, 2015.

[2] 苏凡江. 基于Linux的动态图像监控系统的设计与实现[D]. 北京:中国地质大学(北京), 2012.

[3] 黄凯奇, 陈晓棠, 康运锋,等. 智能视频监控技术综述[J]. 计算机学报, 2015(6):1093-1118.

[4] 杨 耿,和卫星. 运动目标图像识别与跟踪系统的研究[J]. 计算机测量与控制, 2005, 13(3):267-269.

[5] 徐 超. 三星与Intrinsotu公司联手打造ARM CORTEX-A8处理器[J]. 通信世界, 2009(29).

[6] 杨 振, 徐爱钧, 吴子平. 基于S3C6410的图像采集与无线传输系统的设计[J]. 电脑开发与应用, 2011, 24(10):20-22.

[7] 刘 丽. 嵌入式WM8960音频驱动及多线程播放器的设计[D].哈尔滨: 哈尔滨工业大学, 2015.

[8] Curtis J W, Parks R A. Using the TP-LINK TL-WN722N on CentOS 6.2 x86_64[J]. 2015.

[9] 宋宝华. Linux设备驱动开发详解[M]. 北京:机械工业出版社, 2015.

[10] 金 勇. 基于ARM9的Web服务器Boa的软、硬件设计[J]. 电子世界, 2013(13):83-84.

[11] 黄高见, 陈名松. 基于Linux Web服务器的远程控制系统[J]. 桂林电子科技大学学报, 2017, 37(1):25-30.

猜你喜欢
开发板应用程序监控
The Great Barrier Reef shows coral comeback
基于无人机的监控系统设计
基于STM32H7的FDCAN通信系统设计与实现∗
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
开发板在单片机原理及接口技术课程教学中的应用
ARM宣布mbed Enabled Freescale FRDM—K64F开发板通过微软认证
科学训练监控新趋势——适时监控
提高体育教师教学监控力的有效途径
三星电子将开设应用程序下载商店