摘要:该监控系统使用jz2440开发板, 采用UVC摄像头对图像进行采集, 然后通过Wi Fi无线网卡实现视频数据的传输, 并且通过mjpgstreamer软件进行视频流的传输, 最终在PC机和手机两个客户端实时的显示监控画面。经测试结果表明:该远程监控系统能够提高监控系统的稳定性、高效性, 可以实现视频图像的实时传输。
关键词:UVC摄像头; 无线传输; 图像压缩; 远程监控;
远程监控系统包括嵌入式技术、计算机网络技术、多媒体技术、计算机视觉技术等信息技术, 各种先进技术的结合使得监控系统的整体效率越来越高, 让这些技术更好的结合并应用到现实的监控中是现在应该去解决的问题。[1-3]在实现远程监控的过程当中, 视频图像的处理和传输是比较关键的技术。现在的监控系统多采用嵌入式Linux操作系统, 该系统是一个开源的操作系统, 这一点就会使得它的更新发展速度大大提高[4-5]。
1、系统的整体设计方案
本系统是在Linux操作系统下实现的, 系统整体设计方案如下: (1) 在搭建的Linux操作系统的基础上实现采集和传输的软件设计。 (2) 在嵌入式平台下利用USB摄像头和Wi Fi无线网卡实现对图像的采集及传输。 (3) 通过mjpg_streamer软件将摄像头采集到的视频图像传给用户。系统的整体方案如图1所示。
图1 监控系统整体方案示意图
2、系统软件的设计
2.1、USB摄像头驱动
本系统所用的摄像头是中星微zc301p摄像头, 需要在内核中配置它才能够使用, 然后重新编译烧写内核即可。
从上面到就能看到UVC和GSPCA两者的驱动支持了, 它们两个是两种摄像标准, 一般的操作系统都会提供UVC标准的驱动程序, 不需要安装任何的驱动就可以运行, 早期的很多摄像头用的就是GSPCA标准, ZC301p就属于这一类型, 在GSPCA based webcams下最后能够找到ZC3XX的驱动支持。配置成功后USB摄像头就可以像普通文件一样被访问, 对它进行读、写操作等。
2.2、WIFI无线网卡驱动的配置
本系统使用的是RT3070芯片的Wi Fi无线网卡, 它的ID信息是:USB\VID_148F&PID_3070, 要想使用网卡需要去配置内核。在虚拟机上执行以下命令cd drivers/net/wireless;grep"3070"*-n R。根据搜索到的结果确定使用哪一个源码, 打开源码所在目录的Makefile进而确定配置项CONFIG_RT2800USB, 然后在内核目录下执行make menuconfig命令, 对内核进行如下配置:
配置完之后执行make u Image, 用新内核重新启动开发板, 插上Wi Fi无线网卡。根据打印信息知道要想使用该网卡, 还需要添加固件, 执行sudo cp rt2870.bin/work/nfs_root/fs_mini_mdev_new/lib/firmware命令把固件rt2870.bin放到根文件目录下。然后重新插上网卡, 在虚拟机上执行ifconfig wlan0 up启动网卡, 再执行命令ifconifg会打印出网卡的信息, 说明该网卡成功使用。
3、视频图像的终端显示测试
3.1、手机客户端显示
要想实现视频流的传输需要移植mjpg-streamer软件, 在移植之前, 首先要对libjpeg进行移植, 因为mjpg-streamer是会依赖于libjpeg库。这些工作完成之后启动开发板连接上USB HUB, 然后插上wifi无线网卡和UVC摄像头, 在虚拟机上进行测试, 执行mjpg_streamer-i"input_uvc.so-f 10-r 640*480"-o"output_http.so-w www"命令启动mjpeg-stream软件。手机连接上无线网卡发出来的Wi Fi热点, 运行编写的手机Android软件, 输入开发板的IP, 进入监控界面。手机监控如图2所示。
图2 手机监控界面
3.2、PC机客户端显示
PC客户端可以直接在浏览器上看到监控界面, 实现跨平台、即插即用的效果。它是通过IP地址和端口号创建Socket对象, 并创建此Socket对象的输入、输出流。最后PC机连接上无线网卡所发出来的Wi Fi热点, 然后在google浏览器上输入:192.168.1.17:8080/?action=stream, 就可以浏览监控界面, 如图3所示。
图3 PC机监控界面
4、总结
本系统以ARM9开发板为平台, 在Linux操作系统下实现远程监控, 由于嵌入式技术在监控系统中的应用, 使得监控系统的灵活性大大提高, 解决了传统监控系统不能够灵活的添加模块的不足。使用UVC摄像头进行图像的采集, 且简化UVC摄像头驱动的代码, 应用Wi Fi无线传输的技术可以达到对视频图像实时传输的目的。
参考文献
[1]周立功等.ARM嵌入式系统基础教程[M].北京航空航天大学出版社, 2005.
[2]韦东山.嵌入式Linux应用开发手册[M].北京:人民邮电出版社, 2008 (246) .
[3]马强.基于嵌入式Linux的视频采集系统设计与实现[D].西安电子科技大学, 2011.
[4]LU T, ZANG H H, LI X J.Embedded video monitoring system on ARM and linux[C].Electrical and Control Engineering (ICECE) , 2011.
[5]李保国.基于嵌入式ARM的远程视频监控系统研究[D].南京理工大学, 2009.