论文部分内容阅读
摘要:视频监控系统随着嵌入式技术、多媒体技术、计算机网络技术的快速发展也在不断地更新。本文设计实现了一个基于嵌入式处理器ARM9的网络视频监控系统。利用linux操作系统提供的V4L2 API实现对视频设备的视频数据采集;使用Libjpeg进行视频压缩,实现了视频数据的网络传送和远程监控。基于嵌入式技术的网络视频监控系统与传统的视频监控系统相比具有体积小、成本低、稳定性高、实时性好等优点,具有广阔的应用前景。
关键词:ARM9;Linux;视频监控;WEB服务器
中图分类号:TP277 文献标识码:A 文章编号:1007-9599 (2012) 23-0000-02
1 前言
随着网络带宽的提高和成本的降低以及各种实用视频处理技术的出现,视频监控步入了全数字化的网络时代。近两年随着远程监控系统应用于各个领域,对视频监控系统的要求也更高:操作简单、实时可靠、多功能、数字化、经济实用的视频监控系统的开发和设计越来越多地受到人们的瞩目。基于嵌入式技术的网络化视频监控系统应运而生。基于嵌入式WEB监控系统由于把视频处理和WEB功能集成到一个体积很小的设备内,能连入以太网,达到即插即看,安装方便,用户界面通过WWW浏览器实现,不必是专门的网络硬件环境也无需专用软件。
2 系统硬件设计
系统拓扑结构如图1。系统采用B/S架构。视频由USB摄像头输入,支持YUYV和MJPEG的摄像头。视频数据通过USB传输到arm开发板。开发板与客户端通过互联网连通。用户在浏览器地址栏输入网址和端口,登录后可以在浏览器页面看到监控的视频画面,同时支持多个浏览器同时显示。
3 视频采集的实现
3.1 视频采集。摄像头采集到的视频数据并不能直接发送给浏览器显示,需要进行图像格式,文件格式等转换后才能传送给浏览器显示,为了减少码流通常还需要图像压缩。大多数摄像头都是以MJPG/YUV格式输出视频。本设计中需要将摄像头输出的YUV格式的图像数据,通过libjpeg压缩为JPEG。libjpeg 是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现。但是libjpeg不支持直接压缩YUV,因此先将YUV数据转换成RGB再调用libjpeg库来压缩成JPEG。
3.2 Socket编程。视频的传送需要遵照一定的协议才能正确实现数据发送,包括网络通信协议TCP/IP,以及Linux操作系统中的网络编程即Socket编程。
在Linux中的网络编程是通过Socket接口来进行的。它是一种特殊的I/O接口,也是一种常用的进程之间的通信机制,通过它不仅能实现本地机器上的进程之间的通信,而且通过网络能够实现在不同机器上不同进程之间进行通信。
Socket信息保存在sockaddr_in结构中。在Linux中所有设备都看作文件,创建Socket后,返回描文件描述符,随后的连接、数据收发等操作都是通过该文件描述符操作的。本系统使用TCP协议作为传输层协议。
TCP协议socket编程流程如图2。首先服务器端和客户端都必须创建Socket,它是通信的基础。服务器绑定了IP和端口等之后,执行监听,接着调用accept等待客户端发送连接请求。此时,客户端可以跳过绑定,直接向服务器发送连接请求connect,双方便建立通信连接。若连接成功,双方就可以实现收发数据。通信结束后双方都要关闭Socket,并释放Socket结构。
3.3 测试结果。(1)在浏览器地址栏输入:http://172.16.64.119:8080/,其中172.16.64.119为arm的IP地址,8080为端口号,在output_init函数中指定。输入用户名和密码,如图3。(2)登录后即可看到摄像头捕获的图像,效果如图4。
4 结束语
上述基于ARM的远程视频监控系统的设计,获得了较好的图像和视频的监控效果,在图像压缩时采用的Libjpeg的压缩效率不是很高,今后考虑移植效率更高的压缩库。
智能监控是视频监控未来的发展方向。下一步考虑通过ARM的远程视频监控,对视频进行智能行为识别算法的研究,对监控场景中的人或车辆的行为进行识别、判断,从而实现智能化。
参考文献:
[1]周立功.ARM嵌入式系统基础教程[M].北京:北京航空航天大学出版社.2005.
[2]田泽.嵌入式系统开发与应用[M].北京:北京航空航大人学出版社.2004.
[3]周强,费章君,王强,杨仕友.基于H.264的嵌入式网络视频服务器的设计与开发[J].计算机应用.2010(02)
[4]陈炳文,王文伟,秦前清.多摄像机目标跟踪系统综述[J].微型机与应用.2010(17)
*基金项目:湖南省高等学校科学研究项目(11C0368)资助。
[作者简介]
吴乐(1981-),女,湖南人,硕士研究生,讲师。研究方向:计算机应用技术。
关键词:ARM9;Linux;视频监控;WEB服务器
中图分类号:TP277 文献标识码:A 文章编号:1007-9599 (2012) 23-0000-02
1 前言
随着网络带宽的提高和成本的降低以及各种实用视频处理技术的出现,视频监控步入了全数字化的网络时代。近两年随着远程监控系统应用于各个领域,对视频监控系统的要求也更高:操作简单、实时可靠、多功能、数字化、经济实用的视频监控系统的开发和设计越来越多地受到人们的瞩目。基于嵌入式技术的网络化视频监控系统应运而生。基于嵌入式WEB监控系统由于把视频处理和WEB功能集成到一个体积很小的设备内,能连入以太网,达到即插即看,安装方便,用户界面通过WWW浏览器实现,不必是专门的网络硬件环境也无需专用软件。
2 系统硬件设计
系统拓扑结构如图1。系统采用B/S架构。视频由USB摄像头输入,支持YUYV和MJPEG的摄像头。视频数据通过USB传输到arm开发板。开发板与客户端通过互联网连通。用户在浏览器地址栏输入网址和端口,登录后可以在浏览器页面看到监控的视频画面,同时支持多个浏览器同时显示。
3 视频采集的实现
3.1 视频采集。摄像头采集到的视频数据并不能直接发送给浏览器显示,需要进行图像格式,文件格式等转换后才能传送给浏览器显示,为了减少码流通常还需要图像压缩。大多数摄像头都是以MJPG/YUV格式输出视频。本设计中需要将摄像头输出的YUV格式的图像数据,通过libjpeg压缩为JPEG。libjpeg 是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现。但是libjpeg不支持直接压缩YUV,因此先将YUV数据转换成RGB再调用libjpeg库来压缩成JPEG。
3.2 Socket编程。视频的传送需要遵照一定的协议才能正确实现数据发送,包括网络通信协议TCP/IP,以及Linux操作系统中的网络编程即Socket编程。
在Linux中的网络编程是通过Socket接口来进行的。它是一种特殊的I/O接口,也是一种常用的进程之间的通信机制,通过它不仅能实现本地机器上的进程之间的通信,而且通过网络能够实现在不同机器上不同进程之间进行通信。
Socket信息保存在sockaddr_in结构中。在Linux中所有设备都看作文件,创建Socket后,返回描文件描述符,随后的连接、数据收发等操作都是通过该文件描述符操作的。本系统使用TCP协议作为传输层协议。
TCP协议socket编程流程如图2。首先服务器端和客户端都必须创建Socket,它是通信的基础。服务器绑定了IP和端口等之后,执行监听,接着调用accept等待客户端发送连接请求。此时,客户端可以跳过绑定,直接向服务器发送连接请求connect,双方便建立通信连接。若连接成功,双方就可以实现收发数据。通信结束后双方都要关闭Socket,并释放Socket结构。
3.3 测试结果。(1)在浏览器地址栏输入:http://172.16.64.119:8080/,其中172.16.64.119为arm的IP地址,8080为端口号,在output_init函数中指定。输入用户名和密码,如图3。(2)登录后即可看到摄像头捕获的图像,效果如图4。
4 结束语
上述基于ARM的远程视频监控系统的设计,获得了较好的图像和视频的监控效果,在图像压缩时采用的Libjpeg的压缩效率不是很高,今后考虑移植效率更高的压缩库。
智能监控是视频监控未来的发展方向。下一步考虑通过ARM的远程视频监控,对视频进行智能行为识别算法的研究,对监控场景中的人或车辆的行为进行识别、判断,从而实现智能化。
参考文献:
[1]周立功.ARM嵌入式系统基础教程[M].北京:北京航空航天大学出版社.2005.
[2]田泽.嵌入式系统开发与应用[M].北京:北京航空航大人学出版社.2004.
[3]周强,费章君,王强,杨仕友.基于H.264的嵌入式网络视频服务器的设计与开发[J].计算机应用.2010(02)
[4]陈炳文,王文伟,秦前清.多摄像机目标跟踪系统综述[J].微型机与应用.2010(17)
*基金项目:湖南省高等学校科学研究项目(11C0368)资助。
[作者简介]
吴乐(1981-),女,湖南人,硕士研究生,讲师。研究方向:计算机应用技术。