APP下载

远程网络视觉监控系统设计与实现

2013-05-27莫晓齐林国汉

关键词:数据包客户端远程

万 琴,莫晓齐,林国汉,李 亚

(1.湖南工程学院 电气信息学院,湘潭 411101;2.三一重工股份有限公司,长沙 410100)

0 引 言

现在半人工式的传统模拟监控系统得到迅速普及,其特点是数据的采集、传输、显示和存贮大多是基于模拟信号,采用人工观察监视器画面,因此系统的鲁棒性、自动化程度低,人工判断引起的漏检和误警率仍然很高,数据往往仅作为事后的证据而失去了其主动实时的特点,无法做到异常事件预警[1].而基于计算机视觉的智能视觉监控系统,采用全数字、自动化程度高的视觉监控技术,能取代人工监视和传统模拟监控系统,是实现高速、高精度、大范围自动实时监控的必然发展方向[2,3].

图1 智能网络视觉监控系统总体结构图

由于在本地PC机上视觉监控系统只能实现目标检测、测试基本图像处理算法等简单功能,无法做到跟踪运动目标,并且硬件系统笨重不易于系统扩展、集成,只能用于本地监控,无法适应远程网络化的监控要求.因此我们研究开发了远程网络视觉监控系统(如图1所示),由嵌入式监控终端、网络中心服务器及远程监控客户端组成.嵌入式监控终端实时采集现场视频信号,压缩后通过局域网传送至网络服务器主机,并对采集的视频进行分析处理,完成对场景中多目标的检测、选定感兴趣目标及判定目标位置偏移,实现对感兴趣的运动目标的自动跟踪.根据系统需求,可设置多个监控终端,实现多监控点的大范围监控(本系统中设置了四个监控点).网络中心服务器显示监控终端的跟踪情况,同时还可手动控制球机,中心服务器建立视频流或图片的数据库来满足客户端实时浏览、查询的需要,同时远程客户端可将监控需求反馈给中心服务器.

本论文紧密结合安全防范场合的实际需求开发远程网络视觉监控系统,并能推广应用到智能交通、人机交互等领域.

1 系统模块间的网络传输

智能网络视觉监控系统由三部分组成[2]:嵌入式监控终端、中心服务器和远程客户端,系统模块及相互间的信息传递如图2所示.首先介绍系统模块间的网络传输方式.

图2 系统模块框图

(1)监控终端与中心服务器间的网络协议

目前网络传输方面使用的大部分是TCP/IP协议,在TCP/IP分层模型中,传输层建立在IP层之上,包含两种传输协议:传输控制协议TCP和用户数据报协议UDP.TCP是面向连接的传输协议,在传输数据前,必须在发送方和接收方间先建立通信通道,传输实时音频、视频数据的能力较差,它的重传机制和拥塞控制机制不适合用于实时多媒体传输.而UDP是无连接的数据报传输,它不需要建立连接和撤销连接,而直接把数据送到接收端,并且还取消了重发校验机制,能够达到较高的通信速率[3].UDP虽然无法保证实时业务的服务质量,但是由于UDP的传输时延低于TCP,能与音频和视频流很好匹配,达到较高的通信速率,虽然也许会出现少量的丢帧现象,但对数据量很大的视频图像的影响并不是很大,用户可以接受.因此,监控终端到中心服务器的视频数据传输采用UDP协议作为传输层协议.

(2)中心服务器与远程客户端间的网络协议

客户端需要访问中心服务器,接受并回放中心服务器上的监控视频及信息.如采用传统的TCP/IP协议,客户端必须将整个视频文件从中心服务器下载并存储在本地计算机上才能播放.与传统的播放方式不同,流媒体在播放前并不下载整个文件,只将部分内容缓存,使流媒体数据流边传送边播放,大大节省了下载等待时间和存储空间.因此,本系统中,在中心服务器与远程客户端之间采用流式传输方案,以保证监控视频传输的质量和实时性.在流式传输中,一般采用RTCP来传输控制信息,而用RTP来传输实时多媒体信息.

RTP和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化,因此适合传送实时视频数据.本系统中,在中心服务器与客户端之间的视频通信采用RTP/RTCP协议进行通信.

2 中心服务器和客户端的RTP/RTCP视频传输

RTP/RTCP网络传输是实现网络中心服务器、客户端的重要部分,因此在介绍网络中心服务器、客户端的开发之前,首先讨论介绍中心服务器和客户端间RTP/RTCP网络传输的实现.

开放源代码的RTP库,包括LIBRTP、JRTPLIB等.其中JRTPLIB是一个面向对象的用C++语言实现的RTP库,使用Socket机制实现网络通讯,类RTPSession是最主要的开发RTP/RTCP应用程序的类,可运行在 Windows、Linux、FreeBSD、Solaris、Unix和VxWorks等多种操作系统上,主要负责对话的建立,设定网络端口、多播地址,生成RTP数据包序列、时间戳和同步源标识(SSRC)等功能.

因为本系统的软件平台采用μClinux系统,所以必须把这个RTP/RTCP类库移植到μClinux系统下,在利用JRTPLIB做应用程序开发前,需要在宿主机开发平台上利用交叉编译器对JPTPLIB源码进行编译.系统中使用的JRTPLIB版本是jrtplib-3.7.1,视频传输程序包括:

(1)初始化

在进行实时流媒体数据传输之前,需要创建一个RTP会话,因此需定义一个RTPSession类的一个实例来表示(如RTPSession my_session),并调用成员函数Create()完成RTP对话的创建、初始化传输参数及检验数据包大小.

RTP会话初始化过程中还需要设置恰当的时间戳单元,通过调用RTPSession类的成员函数SetTimestampUnit()实现,该函数的参数表示以秒为单位的时间戳单元.本系统的时间戳单元设置成1/25,以传输25帧/秒的视频数据:my_session.SetTimestampUnit(1.0/25.0).

另外,由于同一个RTP会话的负载类型、标志位和时间戳增量是相同的,可以均设置为默认参数,通过RTPSession类的成员函数设置来简化后续的数据发送,这些成员函数包括:SetDefatlltPayload-Type()、SetDefatlltMark()、SetDefatlltTimestampIncrement().

对于错误处理:如调用的JRTPLIB库中的所有返回值为整形的成员函数返回负数,表明RTP会议过程出现了异常,出错信息通过调用RTPGetErrorString()成员函数得到,该函数的参数为错误代码,可返回该错误代码所对应的错误信息.

(2)发送数据包

在发送数据之前,需要先确定数据包发送的目的地址和端口.RTPSession的成员函数AddDestination(),DeleteDestinatio()和 ClearDestinations(),它们的功能分别为添加、删除和清空目的地址.

当确认RTP包发送的目的地址后,调用RTPSession的成员函数SendPacket()完成发送数据包的操作.SendPacket()成员函数的一个重载函数为:int SendPacket(void *data,int len,unsigned char payload_type,bool mark,unsigned long timestampinc),其参数依次表示要发送的数据流、发送数据的长度、载荷类型、标志位的值、时间戳单位.由于在本系统中只是传输MPEG-4的视频码流,因而在一个RTP会话中,载荷类型、标志位和时间戳单位在初始化中都设为一个固定值,因此,可采用简化数据发送的重载函数int SendPacket(void*data,int len).

(3)接收数据包

接受数据包一共有三种接收模式,通过RTPSession的成员函数SetReceiveMode()设置,在本系统中采用的是RECEIVEMODE_ALL模式,这是默认接收模式,该模式将对到达的RTP包全部接收.

在接收RTP包之前,需要使用RTPSession的成员函数PoIlData()将传来的数据包放到接收队列上,用于处理发送来的RTP和RTCP包;还需要使用GotoFirstSourceWithData()和 GotoNextSourceWith-Data()函数从接收队列中接收数据;如数据有效,则采用GetNextPacket()成员函数来取得数据包,最后通过RTPPacket类对这些包进行处理.

(4)控制信息设置

JRTPLIB库能够自动地对RTCP数据进行处理、判断数据传输状况、发送相应的RTCP数据包,从而保证整个RTP会话过程的正确性.另一方面,JRTPLIB还允许程序员对RTP会话的控制信息进行设置.这些控制信息有:本地名称,本地EMAIL、本地位置,本地电话等.

图3所示为用JRTPLIB库实现RTP传输的基本过程及其用到的成员函数.

图3 JRTPLIB库实现RTP传输的基本过程及成员函数

3 软件界面及应用

网络中心服务器包括流媒体服务器、数据库服务器.网络中心服务器显示监控终端目标跟踪结果,通过与嵌入式终端和远程客户端的通信,完成音频、视频等监控数据的上传、汇聚、转发功能,将多媒体数据流集成到计算机网络上,实现集散式监控、报警、录像、检索回放、系统管理、日志管理等功能.

图4所示为网络中心服务器界面,显示的是四个监控点的监控图像.

图4 中心服务器软件界面

基于流媒体技术的远程客户端的主要功能有:网络通信功能、视音频编解码功能、控制调度功能、查询回放功能等.其软件界面如图5所示,显示的是回放四个监控点的监控图像.

图5 远程客户端软件界面

[1]国内安防行业现状[EB/OL].http://www.anfangnet.com/gushi/20090119/5221.html,2009-1-19.

[2]张克新.新一代远程网络视频监控系统的设计与实现[J].微计算机信息,2010,8(26):129-131.

[3]李世军,周惠芳,李 强.视频图像采集平台的研制[J],湖南工程学院学报,2010,20(3):6-11.

[4]王耀南,王 磊,陈斯斯,万 琴,崔波亮.智能视觉监控方法和装置[P].中国专利.发明专利申请号:200710035636.X.

[5]王 磊.网络视频监控系统的关键设备研究[D]:湖南大学硕士学位论文,2008:18-78.

猜你喜欢

数据包客户端远程
让人胆寒的“远程杀手”:弹道导弹
远程工作狂综合征
如何看待传统媒体新闻客户端的“断舍离”?
SmartSniff
远程诈骗
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
视觉注意的数据包优先级排序策略研究
客户端空间数据缓存策略
移动IPV6在改进数据包发送路径模型下性能分析