嵌入式无线视频监控系统的设计与实现论文_江飞达,张倩盈

(广东电网有限责任公司惠州供电局 516003)

摘要:以搭载S3C2440微处理器的ARM9开发板为硬件平台,使用USB免驱摄像头作为视频图像采集设备,通过Linux内核提供的统一接口V4L2实现视频图像的采集。系统使用MJPEG算法压缩技术实现视频数据的编解码,使用无线WiFi技术将视频数据传输给客户端。嵌入式设备终端采集视频数据软件是基于Linux开源的MJPG-streamer软件,针对本系统的需要进行了重新编写,并使用多线程技术。PC机端的监控管理平台是基于Qt和OpenCV开发的一款具有友好图形用户界面的客户端软件。同时,在手机移动端基于Android开发了一款易安装、易操作的APP客户端。实验结果表明:该系统运行稳定,在视频监控客户端能获得清晰流畅的视频流数据。

关键词:嵌入式;Linux;视频监控

1.引言

传统的视频监控系统大多通过线缆或光纤将视频信号传输到监控中心。这种方式布线复杂,周期长、成本高,并且位置固定,没有灵活性。无线移动自组织网络(AdHoc)是由一组自治的无线移动通信节点组成的对等式网络,网络中的节点能互相作为其邻居的路由器,通过节点转发实现相互间的通信。它具有无中心、自组织、多跳路由、动态移动的特性。由于AdHoc网络的这些特性,使得网络部署方便、快捷、成本低。所以,在视频监控领域有着广泛的应用前景。

2.系统总体设计

系统主要包括基于ARM硬件平台的无线视频监控终端、PC机Windows系统下的Qt客户端和手机移动端的APP客户端。无线视频监控终端使用以S3C2440微处理器芯片为核心的ARM9开发板为硬件平台,并搭载所需的Linux操作系统。首先,使用开发板上连接的USB免驱摄像头采集视频数据,然后将采集到的数据传输到ARM开发板,由开发板上服务器端的图像采集处理软件对数据进行处理,最后通过开发板上连接的USB无线网卡发出的无线WiFi信号将视频数据传输给客户端。PC机Windows下的监控管理平台是基于Qt和OpenCV开发的一款具有友好图形用户界面的客户端,能实现实时监控、实时视频录像等功能;手机移动端是基于Android开发的一款易操作的APP客户端,能实现实时监控、实时录像、拍照等功能。二者通过特定客户端连接无线视频监控终端的无线WiFi后,均能获得清晰流畅的视频流数据,系统稳定性较好。无线视频监控系统框图见图1。

图1无线视频监控系统框图

3.系统的硬件设计

根据整体功能需求,要求所开发的系统硬件易于安装,并能用于AP、Router、WDS接入,符合IEEE802.11n标准,提高数据传输速率。在选择核心处理器时选用了雷凌科技(Ralink)公司的RT3052芯片,该芯片内置有5个10/100Mhz以太网交换/PHY设备,一个USBOTG接口和一个千兆以太网MAC,能提供300Mbps物理传输速率。只需要使用很少的外围器件RT3052芯片就可被应用于2.4G无线IEEE802.11n产品的设计。其中USBHOST接口可以方便接入外部存储器,系统中就是使用该接口为外部存储设备提供了可靠的保障,该接口的使用经常应用于数字家庭系统中。具体的系统硬件结构如图2所示。

图2系统硬件结构

4.系统软件设计与实现

4.1系统软件构成

本系统软件由设备驱动模块、图像采集模块、H.264图像压缩模块、无线视频传输模块组成.设备驱动模块实现摄像头、WIFI无线网卡在Linux操作系统下正常工作,并为应用程序提供接口.图像采集模块实现获取摄像头的图像并进行暂存.H.264图像压缩模块实现原始图像的编码处理.无线视频传输模块实现视频图像的网络传输.

4.2嵌入式工作平台的搭建

嵌入式工作平台的搭建主要是对Linux操作系统进行必要的修改和裁剪,使其能在选定的硬件平台上稳定高效的工作.ARM-Linux移植到本系统慨括起来主要有以下步骤。(1)建立ARM-Linux交叉编译环境.(2)BootloadeR的移植.移植、配置和编译u-boot,将可执行文件烧写到开发板NAND Flash中.(3)Linux内核的移植.(4)嵌入式文件系统的移植.

4.3图像采集模块

图像采集模块主要负责视频数据的采集,并将采集到的数据存放在缓存区中,供其它模块使用.视频采集在Linux下是基于V4L提供的函数接口来实现的。V4L是Linux内核中关于视频设备的API接口,它为视频设备的应用程序编程提供了一套接口规范.开发完摄像头的驱动程序后,就可以通过V4L提供的系统API来控制摄像头实现视频采集.Linux下通过V4L提供的编程接口,编写视频采集程序的流程如图3所示.

图3视频采集流程

4.4无线视频传输模块设计

视频采集编码完成后,需要通过无线网络传输,目前网络传输协议主要有TCP(传输控制协议)和UDP(用户数据报协议)两种,而流媒体的实时传输对带宽和延时比较敏感,它要求一定的服务质量且可以容忍一定程度的丢包。TCP每次都有通过3次握手建立连接,在等待乱序及重传丢失数据时产生了较大时延,不适合实时数据传输.UDP协议时面向无链接、不可靠的传输协议,具有消耗资源小、传输速度快等特点,在视频传输过程中偶尔丢包不会对监控画面产生较大影响.但UDP无法提供差错控制,也不适合.在这种情况下,运行于UDP之上的RTP(实时传输协议)则有很大优势.RTP提供了为数据包编号,加载时间信息等功能,能有效的反馈和最小的开销使传输效率最佳化,RTCP周期性的向会话的所以者进行通信,来监视服务质量.视频数据首先封装在RTP信息包中,每个信息包又封装在UDP消息段中,最后封装在IP数据包中进行传输.基于RTP/UDP/IP协议的传输视频流封装格式如图4所示。

图4视频封装格式

服务器端利用UDP的网络socket编程实现视频的传输.实现流程如图5所示.

图5视频发送流程

5.无线视频监控客户端实现

完成开发板上视频监控服务器端的搭建后,即可实现视频数据的采集和TCP协议无线网络传输。由于在客户端通过网页显示视频流延迟明显,实时传输效果差,故在PC机的Windows系统下基于Qt和OpenCV开发了一款可移植性好、可操作性强的客户端,实现实时监控、实时视频录像等功能。在手机移动端基于Android系统开发了一款易安装、易操作的手机APP客户端,实现实时监控、拍照、实时视频录像等功能。

图6服务器与客户端TCP网络通信流程

5.1PC客户端实现

OpenCV是开源的计算机视觉库,包含一系列C函数和少量C++类库,可实现图像处理和计算机视觉方面的很多通用算法。本文主要采用OpenCV中广泛使用的图形交互和媒体接口High-GUI库对图像和视频进行读写处理。Qt是用C++编写,支持多操作系统平台的应用程序开发框架。Qt与其他GUI开发工具最大的不同在于它自行定义了信号与槽这种通信机制,该通信机制独立于标准的C/C++语言。在传统的GUI工具包中,窗口部件一般通过指向某个函数指针的回调函数来响应它们所触发的每个动作。但是,在Qt中信号与槽取代了这些复杂的函数指针,使得编写的这些通信程序更为明了。信号可以与槽进行单个连接,也可以将多个信号与单个槽进行连接,还可以将单个信号与多个槽进行连接。系统调用connect()函数将信号与槽连接起来。当信号被某一对象发射后,与其相关联的槽将被立刻执行,类似普通的函数调用。当槽函数执行结束后,系统将调用disconnect()函数断开发射者中的信号与接收者中的槽函数之间的关联。

5.2手机APP客户端实现

Android是以Linux为基础的开源的移动设备操作系统,目前广泛应用于智能手机和平板电脑。本研究基于Android开发了一款手机APP客户端,用来实现实时监控、实时录像、拍照、浏览图片等功能。1个Android应用通常会包含多个Activity,但只有1个Activity会作为程序的入口。在Android中,通常使用Intent作为连接不同组件的通信载体。在本系统中,当打开App客户端时会首先执行FlashActivity作为程序的入口。在FlashActivity的界面布局文件flash.xml中放置2个EditText,一个用于填写服务器的IP,另一个用于填写服务器Port。1个Button按钮用于与服务器建立连接。连接成功后,执行startActivity(newIntent(FlashAc-tivity.this,MainActivity.class)),启动MainActivity进入视频监控主界面。在MainActivity的界面布局文件main.xml中使用相对布局RelativeLayout进行UI布局。在Palette的CustomViews文件夹下创建一个本系统中使用名为MjpegView的View,并将MjpegView放置在main.xml中,同时放置与RadioGroup一起使用的一组RadioButton。RadioGroup有OnCheckedChangeListener事件,而对于该事件的处理则使用onCheckedChanged()方法。在该方法中,根据RadioButton所分配的值来判断是执行拍照、录像还是浏览等操作。

结语

本系统在CDMA网络环境下已经通过了测试,MJPEG编码方式的实时监控功能基本符合设计要求。每帧图像大小约为4KB,在CDMA网络中可以连续不丢帧的传送,坏帧率在5%以下。单帧图像的放大也不会出现明显失真。系统无需布线,使用安装方便、成本低、监控不受距离、地域以及时间的限制。尤其是在3G网络普及以后,无线传输速度将成倍增长,借助于无线公网实现的视频监控系统将会有很好的应用前景。

参考文献:

[1]李文博.基于ARM9和嵌入式Linux的无线视频监控系统[D].西安电子科技大学,2010.

[2]丁鹤洋,李太君,徐瑛.3G无线视频监控系统的设计与实现[J].通信技术,2012,45(02):71-72+80.

[3]任黎明,孙玲玲.基于Linux的无线视频监控系统[J].物联网技术,2015,5(02):24-25+28.

[4]王健,王林惠,岳学军,刘永鑫,全东平,瞿祥明,甘海明,王举.基于WiFi的无人机视频传输系统设计与试验[J].农业工程学报,2015,31(S2):47-51.

基金项目:广东电网有限责任公司职工技术创新项目:031300KK52180039

论文作者:江飞达,张倩盈

论文发表刊物:《电力设备》2018年第15期

论文发表时间:2018/8/17

标签:;  ;  ;  ;  ;  ;  ;  ;  

嵌入式无线视频监控系统的设计与实现论文_江飞达,张倩盈
下载Doc文档

猜你喜欢