毕业设计(论文)视频在微机检测中的应用.doc
视频在微机检测中的应用摘要:本课题以微机检测应用为背景,构建了一个基于Client/Server结构的视频监控系统。本系统综合利用嵌入式开发技术、视频压缩技术、网络通信技术以及多媒体技术,实现了网络视频监控系统。关键字:视频压缩;微机检测;监控Abstract: This subject to testing computer applications as the background, building on a Client / Server structure of the video surveillance system. The comprehensive utilization of embedded systems development technology, video compression technology, network communications technology and multimedia technology, and the network video surveillance system. Keyword: video compression; Computer detection, monitoring and control目 录第一章绪论31.1视频监控系统的发展31.1.1引言31.1.2视频监控系统的发展和国内外现状31.1.3视频监控系统的发展趋势41.2本文的主要内容6第二章 视频监控系统的关键技术72.1嵌入式技术72.1.1嵌入式系统72.1.2嵌入式微处理器82.1.3嵌入式操作系统92.2视频压缩技术102.3流媒体技术112.3.1流式传输122.3.2流媒体播放方式122.3.3 QoS122.3.4流媒体传输协议132.4运动目标检测与跟踪技术14第三章 网络视频监控系统的总体设计173.1系统总体结构173.2服务器端设计183.3客户端设计203.4系统总体设计方案总结21第四章 视频监控系统的网络传输机制224.1网络视频传输的性能要求224.2.1TCP/IP协议234.2.2 RTP/RTCP协议244.2.3网络协议的选择294.3网络传输的实现304.3.1 TCP/UDP协议的实现314.3.2 RTP/RTCP协议的实现34第一章绪论1.1视频监控系统的发展1.1.1引言通过摄像机监控动态场景,早己被广泛应用于社会生活的方方面面。从社区和重要设施的保安监控到城市和高速公路上的交通监控,从军事目标的检测到智能武器,摄像机作为人类视觉的延伸起着非常重要的作用。随着电子技术、计算机技术和通信技术的发展,视频技术在国民经济的各个领域获得了广泛的应用。美国的911事件之后,人们越来越关注自己生存环境的安全,重视突发灾害的预警与紧急应对措施的建立,迫切希望提高生产和生活管理的智能化水平,视频监控系统作为主要的安全防范手段更是越来越受到重视。随着高度传染性的SARS病毒的席卷全球,远程视频医疗和诊断技术成了迫切需求,视频通信技术也成为了病毒横行之时的唯一安全的通信手段。视频监控技术在这些强烈的需求下得到了长足的发展和广泛的应用。视频监控的应用范围囊括安全防范、信息获取和指挥调度等多个方面,在各行各业都得到了广泛的应用。1.1.2视频监控系统的发展和国内外现状视频监控系统经历了本地模拟信号监控系统,基于PC插卡的数字监控系统,基于嵌入式技术的网络数字监控系统等发展过程。1.本地模拟信号监控系统本地图像监控系统主要由摄像机、视频矩阵、监视器、录像机等组成,利用模拟视频线将来自摄像机的视频连接到监视器上,利用视频矩阵主机,采用键盘进行切换和控制,录像采用使用磁带的长时间录像机;远距离图像传输采用模拟光纤,利用光端机进行视频的传输。传统的模拟闭路电视监控系统有很多局限性:首先,有线模拟视频信号的传输对距离十分敏感;其次,有线模拟视频监控无法联网,只能以点对点的方式监视现场,并且使得布线工程量极大;另外,有线模拟视频信号数据的存储会耗费大量的存储介质(如录像带),查询取证时十分烦琐。2.基于PC插卡的数字监控系统基于PC机的远程图像监控系统由PC机插视频卡构成,在监控现场,有若干个摄像机,各种检测、报警探头与数据设备,通过各自的传输线路,汇接到监控终端机上,该终端可以是一台PC机,也可以是专用的工控机。基于PC的视频监控系统终端功能较强,便于现场操作。但稳定性不好,视频前管理,特别是在环境或空间不适宜的监控点,这种方式不理想。3.基于嵌入式技术的网络数字监控系统基于嵌入技术的监控系统不需处理模拟视频信号的PC,而是把摄像机输出的模拟视频信号通过嵌入式视频编码器直接转换成数字信号。嵌入式视频编码器具备视频编码处理、网络通信、自动控制等强大功能,直接支持网络视频传输和网络管理,使得监控范围达到前所未有的广度。除了编码器外,还有嵌入式解码器、控制器、录像服务器等独立的硬件模块,它们可单独安装,不同厂家设备可实现互连。基于嵌入式设备的监控系统的优点是:由于这种系统的硬件是一个同处理器和操作系统捆绑较为紧密、功能专一、专门设计的独立的设备,不像插卡系统那样受通用计算机系统中其它软件硬件的影响,因此性能上更稳定,且便于安装、维护,易于实现系统的模块化设计,便于管理、维护。嵌入式远程视频监控系统的国内外研究现况如下:国外起步较早,并处于领先水平,已有成熟的嵌入式WEB摄像机产品。除了索尼公司的SVC-VL10N之外,还有松下公司的KX-HCM130,三星公司的SNC-100P、安特公司的ANT-NWC10/50/100,瑞典的端(如CCD等视频信号的采集、压缩、通讯)较为复杂,可靠性不高,PC机也需专人AXIX系列等,性能普遍较好,但价格也很昂贵,国内用户大多无法承受。国内在这方面的研究刚起步,大多数是代理国外厂商的现成产品,从事实际研究的单位不多。国内同类产品大多为一到两路输入,功能较少。播放速度较慢,播放效果较差,性能有待于进一步提高。1.1.3视频监控系统的发展趋势视频监控发展经历了模拟视频监控、半数字监控、数字监控三个阶段。数字化视频监控克服了模拟闭路电视监控的局限性,它可以在计算机网络(局域网或广域网)上传输图像数据,基本上不受距离限制,信号不易受干扰,可大幅度提高图像品质和稳定性。数字视频可利用计算机网络联网,网络带宽可复用,无须重复布线。另外,数字化存储成为可能,经过压缩的视频数据可存储在磁盘阵列中或保存在光盘中,查询十分简便快捷。数字化是21世纪的时代特征,视频监控的数字化是监控技术的必然趋势。智能化是视频监控技术发展比较高级的层次。由于视频监控的数据量非常大,而用户真正需要的信息只是少部分,或者说真正需要监视的只是发生概率很少的某些事件,如何通过海量数据获取有价值的信息或者说如何从目视解释变为机器自动解释是视频监控技术发展的一个新方向。因为能把视频监控从静态的、事后取证变成动态的、实时预防和告警对用户来说显得更加重要。实际上现有的监控系统都配置有如自动位移侦测、昼夜自适应切换存储、预警设置(如可疑人物照片、指纹等)等一些低级形式的智能化功能。随着技术的发展,全智能的监控系统将要求事发前能够识别并作出正确的判断,为人们提供最为有效、及时的快速反应措施。无线化包括两方面内容:一是监控中心的移动,通常情况下,被监控对象或是摄像机往往是固定的。而作为监控系统的使用者(监控中心)则可以是动态的,当公司领导出差在外,需了解公司生产情况时,可使用笔记本随时随地访问摄像机的IP获取信息。二是视频监控网络的无线化,随着无线宽带网络发展,基于3G的无线视频应用备受关注。当监控点分散且与监控中心距离较远,或被监控对象不固定(如出租车、运钞车等)时,利用传统有线网络的视频监控对象往往成本高且难以实现,而基于多种无线传输手段的移动视频监控实现了不可替代的优势。视频网络、IPTV等都是网络快速发展的重要应用。随着Internet技术的发展,基于IP的视频监控更能被人们所接受,网络摄像机把压缩的视频信息通过TCP/IP协议,采用流媒体技术实现视频在网上的多路复用传输,拥有授权的用户可以随时访问互联网,实现对整个监控系统的指挥、调度、存储、授权控制等功能。鉴于IPv6在服务质量、网络性能、安全性上的改善提高以及IPv6对下一代Internet网络的影响,基于IP的视频监控将会成为主流。1.2本文的主要内容本课题的网络视频监控系统由软件和硬件两大部分组成,硬件由摄像头、云台控制器和网络视频服务器、客户机组成。视频服务器是一块包含ARM微处理器的硬件系统,放在现场;客户机是指远端的PC机,负责进行监控;云台控制器负责控制摄像头的转动。应用软件分为客户端和服务器端两个组成部分,客户端软件运行于PC机上,既可工作在Windows环境下,也可以在Linux环境下。服务器端基于嵌入式技术开发,软件平台为armlinux。视频采用JPEG标准编码压缩,视频数据的网络传输采用TCP/IP协议和RTP/RTCP协议。在客户端接收视频数据流然后解码,实时播放现场场景,并在客户端实现运动目标检测以及跟踪功能,将报警信息及时传递到用户界面。该课题是由本人和本组的同学共同完成的,本人主要负责网络传输部分,客户端的实现,运动目标检测以及跟踪功能。全文的内容安排如下:第一章绪论。介绍了课题背景以及视频监控系统的发展过程和趋势。第二章嵌入式网络视频监控系统中的主要技术。介绍了系统中的主要技术,如嵌入式系统技术、视频压缩编码技术、流媒体技术、运动目标检测与跟踪技术。第三章嵌入式网络视频监控系统的总体方案设计。介绍了本系统的总体结构,并详细介绍了系统的服务器端和客户端的设计。第四章嵌入式网络视频监控系统的网络传输机制。介绍TCP/IP协议和RTP/RTCP协议,采用JRTPLIB软件开发包来实现,保证了服务质量。第五章运动目标检测。介绍了运动目标检测方法,通过算法实现运动目标检测技术,分割出完整的目标区域。第六章运动目标跟踪。介绍了卡尔曼滤波器原理,提出了一种基于卡尔曼滤波器的跟踪算法。第七章系统总体测试。介绍了该系统的测试环境和测试结果。第八章总结了整个项目取得的成果和系统的特点,并且对本系统下一步要进行的扩展、改进工作和进一步的研究发展方向进行了介绍和展望。第二章 视频监控系统的关键技术2.1嵌入式技术2.1.1嵌入式系统嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应于特定应用系统,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统(Embeded System)其实可以看作一种专用的计算机,其应有范围包括从汽车、火车到飞机,从摄像机、机器工具到办公仪器,从PDA、移动电话到机器人等。和通常意义下的计算机(PC)有很大差别:1.嵌入式系统功能在设计时已经制定好,在开发完成投入使用后就不再变化,系统将反复执行这些预订好的任务,而不像通用计算机那样可以随时执行新的任务,这种变化对嵌入式系统而言是关键变化,有可能会对整个系统行为产生影响。因此在任务变更后使用之前要对整个系统进行详细的验证和精密的测试。2.嵌入式系统要求实时响应,具有严格的实时性。这种系统通常称作Real timeSystem大部分实时系统都属于嵌入式系统。同时,嵌入式系统还要求非常可靠的稳定性,在设计时要充分考虑目标系统的工作环境,合理选择硬件和保护措施。软件稳定也是一个重要特征,软件系统要经过多次测试达到预先规定才能真正投入使用。从组成来看,嵌入式系统包括硬件和软件两个组成部分,是两者的高度紧密结合。整个系统可以看成有嵌入式处理器、存储器、系统输入/输出和软件(嵌入式操作系统及其应用软件)四个部分。嵌入式系统的结构框图如图2.1所示。图2.1嵌入式系统的结构框图2.1.2嵌入式微处理器系统的核心是嵌入式微处理器。目前,市场上嵌入式处理器的种类繁多,典型芯片型号主要有ARM/StrongARM,MIPS,PowerPC等。(1)MIPS(Microprocessor without Interlocked Pipeline Stages)。MIPS是MIPS公司开发的一种处理器内核标准,其定位很广,产品线非常丰富,覆盖从低端到高端。MIPS公司陆续开发了高性能、低功耗的32位处理器内核(core)MIPS 32 4Kc与高性能64位处理器内核MIPS 64 5Kc。2000年,MIPS公司发布了针对MIPS 32 4Kc的新版本以及未来64位MIPS 64 20Kc处理器内核。(2)PowerPC。PowerPC架构的特点是可伸缩性好,方便灵活。PowerPC处理器品种很多,既有通用的处理器,又有嵌入式控制器和内核,应用范围非常广泛,从高端的工作站、服务器到桌面计算机系统,从消费类电子产品到大型通信设备,无所不包。目前基于Power PC架构的嵌入式处理器包含:主频350MHZ-700MHZ的PowerPC 750CX和750Cxe,主频400MHZ的PowerPC440GP等(3)ARM/StrongARM(Advanced RISC Machines)。ARM处理器具有三大特点:体积小、功耗低、性价比高;16/32位双指令集;全球众多的合作伙伴。ARM处理器本身是32位设计,但也配备16位指令集,以允许软件编码为更短的16位指令。与等价的32位代码相比,占用的存储器空间节省达35%,然而保留了32位系统所有的优势(例如访问一个32位地址空间)。Thumb状态与正常的ARM状态之间的切换是零开销的。如果需要,可逐个例程使用切换。这允许设计者完全控制其软件的优化。ARM处理器当前有5个产品系列:ARM7,ARM9,ARM9E,ARM10和SecurCoree。ARM7,ARM9,ARM9E和ARM10是4个通用处理器系列。每个系列提供一套特定的性能来满足设计者对性能和体积的需求。2.1.3嵌入式操作系统嵌入式操作系统的实质是嵌入式系统启动后首先执行的一段程序,相当于用户的主程序,控制着应用程序与硬件的运行。它为多任务创建运行环境,并完成任务的切换和调度。嵌入式操作系统是嵌入式应用软件的基础和开发平台,向应用程序提供编程接口(API),并提供硬件的设备驱动程序。根据各个任务的要求,给各个任务分配CPU时间,确保任务的时间要求得到满足,分配系统资源(包括存储器、外设等)、管理任务调度、任务间通信,并支持网络协议。目前的嵌入式操作系统有好几百种,其中最常见的也有十几种,如Linux,Qnx,Vxworks,WinCE,pSOS,Hopen,Nucleus,Pa1mOS,LynxOS等。大多数嵌入式操作系统采用了微内核结构,内核只提供基本的功能,如:任务的调度、任务之间的通信与同步、内存管理、时钟管理等。其它的应用组件,如网络功能、文件系统、GUI系统等均工作在用户态,以系统进程或函数调用的方式工作。系统都是可裁减的,用户可以根据自己的需要选用相应的组件。在同一个硬件平台上可以嵌入不同的嵌入式操作系统,比如ARM7TDMI内核,可以嵌入Nucleus,VxWorks,uCLinux等嵌入式操作系统。同一种嵌入式操作系统也可以运行于各种不同类型的微处理器上,兼容性和移植性好。Linux自身具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,并且可以跨越嵌入式系统开发中的仿真工具(ICE)的障碍。Linux具有内核小,效率高,源代码开放,微内核直接提供网络支持等优点。但嵌入式系统的硬件资源毕竟有限,不能直接把Linux作为嵌入式硬件平台上的操作系统,需要针对具体的应用通过配置内核、裁剪shell和嵌入式c库对系统定制,使整个系统能够存放到容量较小的Flash中。Linux的动态模块加载使Linux的裁剪极为方便,高度模块化的部件使添加非常容易。正因为Linux的上述优点,在本系统平台上使用的操作系统是对Linux进行了定制的armlinux。2.2视频压缩技术视频数据是多媒体数据的一种,它占用相当大的存储空间,这对于计算机的存储、访问、处理以及在通信线路上的传输都带来巨大的负担。但视频信息冗余度大,具有压缩潜能,可以采用各种方法进行压缩。压缩方法也分为两种:有损压缩和无损压缩。数字视频压缩技术是在数据压缩、数据编码的基础上发展起来的,已经取得了许多成果,并逐步走向成熟,开始了实用化进程。视频压缩的一个重要标准是MPEG(MotionPicture Experts Group),已推出了MPEG-1、MPEG-2、MPEG-4等系列标准,新的标准MPEG-7、MPEG-21等也在酝酿之中。另一个重要的压缩标准是H系列,包括H.261、H.263等标准。此外还有运动静止图像专家组的M-JPEG。1.MPEG系列标准MPEG-1:是针对1.5Mbps以下数据传输率的数字存储媒体运动图像及其伴音编码设计的国际标准,它针对SIF(标准交换格式)标准分辨率(NTSC制为352×240,PAL制为352×288)的图像进行压缩,相当于VCD格式的播放质量。同时使用帧内和帧间压缩技术,有三种帧类型:I帧、B帧、P帧。MPEG1实时性高,图像质量稳定,适用于实时监控和远程监控。MPEG-2:其视频体系的视频分量的位速率范围大约为215Mbps,MPEG-2增加了隔行扫描电视的编码,提供了位速率的可变性功能,以适应不同画面质量、存储容量和带宽的要求。MPEG-4:具有高速压缩、基于内容交互和基于内容分级扩展等特点,并具有基于内容的编码表示的视频数据。它是一个数据速率很低(在480064000bits/sec之间)的多媒体通信标准。MPEG-4标准的目标是要在异构网络环境下能够高度可靠的工作,并且具有很强的交互功能。MPEG-7和MPEG-21:MPEG-7的正式名称为多媒体描述接口,为各种类型的多媒体信息规定一种标准化描述,为多媒体的查询定义了一系列的方法和工具,提供了一个灵活可扩展的视听内容描述框架。MPEG-21是一个刚开始制定的国际标准,其正式名称是多媒体框架,制定它的目的是将不同的协议、标准集成起来支持和谐的技术以管理多媒体商务。2.H.26X系列标准H.26X系列,包括H.261、H.263等标准。H.261:使用p*64kbps的传输速率,其中P是取值为1到30的可变参数,最初是针对ISDN上传输视频数据而设计的,主要应用于可视电话和视频会议。实际的编码算法和MPEG相似,实时编码时占用的CPU资源比MPEG少得多。算法为了优化带宽占用量,在图像质量与运动幅度之间采用平衡折衷机制剧烈运动的图像质量会比静态图像低。H.263:是国际电联ITU-T为低带宽通讯设计的一种标准。它的编码方式与H.261的几乎相同,但做了改善,有更好的纠错能力。在低码率下能够提供比H.261更好的图像效果。3.JPEG标准JPEG标准是“联合图像专家组”(Joint photographic Expert Group)为连续色调(即灰度级或彩色)静态图像压缩制定的通用国际标准,包括无损模式和多种类型的有损模式,非常适用于那些不太复杂或一般取自真实景象的图像的压缩。它是一种混合编码标准,使用离散余弦变换、量化、行程和霍夫曼编码等技术。如果硬件处理的速度足够快,则数字动态视频可由JPEG图像标准实现。但是JPEG不能充分利用冗余空间,所以不能挖掘最大的压缩潜力。JPEG2000放弃了JPEG所采用的以离散余弦变换算法为主的区块编码方式,而改用以离散小波变换算法为主的多解析编码方式。该编码方式有很多优点,如高压缩率、渐进传输、感兴趣区域压缩、图像处理简单等。MJPEG是“Motion JPEG”的缩写,是利用JPEG标准定义图像压缩,从而可以生成序列化运动图像,是全动的JPEG影像。它的主要特点是基本不考虑视频流中不同帧之间的变化,只单独对某一帧进行压缩。目前基于该技术的视频卡也主要是完成数字视频捕获功能,在后台由CPU或专用芯片完成压缩工作。2.3流媒体技术流媒体是通过网络传输的、能够在本地终端实时回放的、具有实时特征的媒体内容编码数据流,它最大的特点在于互动性。流媒体在播放前并不下载整个文件,只将开始部分内容存入内存,流媒体的数据流随时传送随时播放,只是开始时有一些延时。2.3.1流式传输流媒体实现的关键技术就是流式传输,即通过网络获得平滑的数据流。流式传输有两种方法:实时流式传输和顺序流式传输。顺序流式传输是顺序下载,在下载文件的同时用户可观看在线媒体,且用户只能观看已下载的那部分,而不能跳到还未下载的部分。而实时流式传输保证媒体信号带宽与网络连接配匹,使媒体可被实时观看到。2.3.2流媒体播放方式单播是指两个IP地址间进行的数据通信,即在客户端与媒体服务器之间需要建立一个单独的数据通道,从一台服务器送出的每个数据包只能传送给一个客户机。点播是一种特殊的单播方式,此方式下客户端主动连接到服务器端,即客户通过主动选取播放内容来初始化的连接方式。广播是指在IP子网内向所有网内IP地址以广播的方式发送数据包,所有子网内的IP站点都能收到数据包。数据包的单独一个拷贝将发送给网络上的所有用户,非常浪费带宽,而且用户被动接收流,不能控制流。组播指的是在Internet网上对一组特定IP地址(224.0.0.0-239.255.255.255)进行数据发送,每一个IP站点都可以动态地加入或者退出这个组。显然,与单播和广播相比,由于组播使用较少的网络带宽,对于连续媒体流的多点通信,它是一种非常高效的方式。IP组播协议与传统的点到点协议不同的是,在传输层,它只使用面向无连接的不可靠的UDP数据报传输。2.3.3 QoS服务质量(QoS,Quality Of Service)是指用户要求网络传输系统所必须保证的关于信息传输的质和量的特征集,它反映服务提供者和服务使用者之间的能力和需求关系,是用来描述网络性能的。网络系统通过QoS体系来支持多媒体应用,提供服务质量保证。QoS所追求的传输质量是:数据包不仅要到达其欲传输的目的地址,而且要保证数据包的顺序性、完整性和实时性。QoS参数包括:连接建立时延、连接故障率、数据吞吐量、传输时延、残留差错率、授权保护、优先等级和自恢复连接能力等。提高实时应用服务质量的策略包括以下几种(1)增加带宽。增加网络带宽对改善服务质量的作用显而易见。(2)根据优先级进行通路优先选择。该方法将服务分为固定分类,设立简单的优先级,服务类型信息由数据包的包头携带,整个通路上不保留状态信息.(3)静态资源分配。该方法主要是利用共享的网络为所需要的服务静态地分配资源。(4)动态资源分配。主要实现方法有:STH(修订Internet流协议)和RSVP(资源预留协议)。(5)差错控制。通过在信息码元中增加冗余码元,并使信息码元和冗余码元之间构成一定的关系,接收端可以通过检验这种关系发现差错并自动纠正差错。2.3.4流媒体传输协议1.流媒体实时传输协议RTPRTP协议是IETF在1996年提出的适合实时数据传输的新型协议。RTP协议实际上是由实时传输协议RTP(Real-time Transport Protocol)和实时传输控制协议RTCP(Real-time Transport Control Protocol)两部分组成。RTP协议基于组播或单播网络为用户提供连续媒体数据的实时传输服务;RTCP协议是RTP协议的控制部分,用于实时监控数据传输质量,为系统提供拥塞控制和流控制。RTP协议主要应用在UDP上。所以,它并不需要直接保证传输的实时性,而只需要依赖底层网络提供的QoS服务来真正达到实时性的要求。RTP协议的应用可以不仅仅局限在多媒体传输领域,还可以应用于其它领域。虽然在特殊领域应用RTP协议只需在原来的基础上根据领域的特定应用做进一步限定,但到目前为止,除了一些研究项目以外,RTP协议主要还是应用于音频/视频传输方面。由于RTP协议本身是一个通用协议,并且根据不同的领域,要对RTP协议本身做进一步的限定和扩充。RTP的音频/视频适用领域对RTP协议做了进一步的规定,所有报文没有头扩展(即X位始终为0),采用固定RTP报文头,并定义了不同类型的媒体。对于RTCP,音频/视频适用领域也没有定义扩充部分,适用RTP协议定义的固定部分。总之,音频/视频适用领域沿用RTP协议定义的固定、没有定义扩展部分。2.实时流协议RTSPRTSP是实时流协议的缩写,它是由Progressive Networks公司和NetscapeCommunications公司在1996年10月公布的,有超过40家公司准备支持这一协议,它们包括Apple Computer,Autodesk/Kinetix,Cisco System,Microsoft等等。RTSP是一个用来控制实时多媒体传输的通信协议,它能够对多媒体流提供VCR网络的远端控制功能,如播放、停止等。更形象的说就是,RTSP协议是多媒体服务器的“网络遥控器”,它定义了播放媒体流一般所需要的控制动作。RTSP协议仅完成客户和服务器之间的控制传输,至于多媒体数据的传输则是由RTP或其它协议完成的。3.资源预留协议RSVPRSVP(资源预留协议)是由IETF制定的,在互联网这种IP网络上请求某种QoS级别的协议标准。该协议允许给某些“流”应用分配一定的优先级,这些“流”一般包括音频和视频流,它们能够产生持续的数据流,并且有可以预测的发送时间。RSVP可以保证网络的一定带宽专门预留给某一应用。它定义两种预留类型:一种是受控负载预留,在没有负载的情况下,它提供一种类似于“Best effort”的服务:另一种是保证服务预留,它可保证应用所需要的带宽和延迟。2.4运动目标检测与跟踪技术视频运动目标检测与跟踪就是对视场内的运动目标,如人或车辆等,进行实时的观测,并在此基础上对被观测对象进行分类,然后分析它们的行为。这种技术的研究主要涉及到运动目标的检测与提取(视频分割),运动目标跟踪,运动目标识别,运动目标行为分析和理解等诸多内容。图2.2运动目标检测与跟踪流程视频运动目标检测与跟踪的主要工作可以分为两方面如图2.2所示,运动目标的检测和运动目标的跟踪,这两方面工作是一个承接的关系,但同时也相互影响。运动目标检测是视频运动目标检测与跟踪的第一部分,它就是实时的在被监视的场景中检测运动目标,并将其提取出来。视频图像序列中的运动目标跟踪一直是计算机视觉、数字视频与图像处理和模式识别领域中一个重要的研究课题,运动目标跟踪同样也是衔接运动目标检测和目标行为分析和理解的一个重要环节。所谓运动目标跟踪,就是在运动目标检测的基础上,利用目标有效特征,使用适当的匹配算法,在序列图像中寻找与目标模板最相似的图像的位置,简单的说就是给目标定位。在实际应用中,运动目标跟踪不仅可以提供目标的运动轨迹和准确定位目标,为下一步的目标行为分析与理解提供了可靠的数据来源,而且也可以为运动目标检测提供帮助,从而形成一个良性的循环。视觉研究发展至今,人们己经设计出很多检测跟踪系统和算法,根据不同的标准有不同的划分。根据对图像所含信息的利用程度来分类的标准,可以将现有的运动分析方法大体分为基于频域的方法、基于特征的方法和基于像素的方法等三类。按照这种分类方法,基于频域的分析方法对图像所含信息的利用程度最低;基于特征的分析方法对图像所含信息的利用程度;居中基于像素的分析方法对图像所含信息的利用程度最高,它是根据图像中像素灰度模式的变化来检测运动、识别目标的,它对图像中每个像素点上的信息都分别加以利用。由于运动检测与跟踪问题的复杂性,无论哪一类方法都无法适应所有的应用场合,一般都是针对运动目标检测与跟踪领域内某个或某些特定问题提出的。1)基于频域的方法基于频域的方法最开始是对采集到的图像序列进行傅立叶变换,通过目标运动在频域中幅值不变而相位变化的特性计算相邻帧间的相位角差来估计空间域中目标的位移。它要求背景均匀且只有一个运动目标,因而其应用显然受到限制。2)基于特征的方法基于特征的方法是根据图像特征或由特征组成的模型来检测运动或识别运动目标。由序列图像进行基于特征的运动检测方法分为以下三个步骤:(1)对变化图像的逐帧分割和目标特征的提取;(2)所选目标特征的帧间对应关系确立;(3)用特征相关量计算运动参数。当把图像的分割看作图像预处理的内容后,基于特征的运动检测方法的关键步骤是目标特征的抽取和特征的相关计算。在一般情况下,主要被利用的目标特征有:角点、直边缘、曲边缘等局部特征和形心、表面积、惯量矩的长短轴等全局特征。在具体问题中,采用什么特征主要取决于目标具有哪些特性以及算法实现的具体要求。在运动目标的检测、识别与跟踪的研究中所面临的一个严重问题是:在真实场景中,运动目标所处的环境往往十分复杂,其中经常有各种各样的干扰,如:目标的遮挡、景物的阴影、背景的变化等,这样就使得目标的检测、识别与跟踪这一任务变得十分困难。但是,如果事先对要处理的目标的某些信息(如几何结构信息)有所了解的话,就能使在实际条件下的运动目标检测、识别与跟踪这一难题变得比较简单而可靠。这便是人们提出用特征进行目标检测、识别与跟踪的原因。第三章 网络视频监控系统的总体设计本文软件结构采用的是客户机/服务器Client/Server)网络模型,即由客户端向服务器提出请求,服务器对请求做出确认响应并执行相应的任务,建立连接后计算机用户就可在客户终端监控各个远程被监测点,客户终端接收远程被监控点传来的视频信息并可以向运行在被监控点的服务器传送控制命令(如云台转动等),服务器根据用户要求向当前设备状态发出控制命令,从而实现远程监控。3.1系统总体结构整个网络视频监控系统主要由两部分组成:一部分是前端网络视频服务器部分,另一部分是远程客户端部分。前端网络视频服务器通过摄像头采集现场图像得到数字信号,然后对采集到的图像数据进行压缩编码,得到便于在网络上传输的压缩视频流,再通过Internet或局域网传送到本地或远程监控客户端。本地或远程监控客户端软件接收多路网络视频服务器传输来的压缩视频数据流,进行实时解码并显示。如果有异常情况,对运动目标进行检测跟踪并报警,还可对前端服务器进行远程配置和云台控制。系统总体框架如图3.1所示:图3.1监控系统总体框图整个系统软件遵从模块化的设计原则。模块之间具有相对的独立性,它们通过接口(函数调用)传递数据。模块之间可以通过增加或替换模块,对系统进行扩展;另外,利用关键模块可以开发新的视频应用系统,避免了重复开发的麻烦,使系统具有良好的可重用性。3.2服务器端设计服务器端是一台完全脱离PC机的嵌入式智能设备终端,主要采用嵌入式处理器ARM和嵌入式操作系统Linux。图3.2是服务器端系统框图,其工作原理是:首先移植嵌入式Linux操作系统到系统平台中,操作系统启动后加载针对使用的数码摄像头控制器芯片的驱动程序来实现对摄像头的驱动,接着图像采集应用程序实现对图像信号的采集,S3C2410再对采集到的图像数据进行JPEG压缩,压缩后的图像数据通过基于RTP/RTCP协议的网络通信程序发送出去,远端主机接收到图像数据后可实时解压并显示。图3.2服务器端系统框图本系统的中央处理器是三星公司的S3C2410X。S3C2410X是使用ARM920T核、采用0.18um工艺CMOS标准宏单元和存储编译器开发而成的。由于采用了由ARM公司设计的16/32位ARM920T RISC处理器,因此S3C2410X实现了MMU和独立的16KB指令和16KB数据哈佛结构的缓存,且每个缓存均为8个字长度的流水线。它的低功耗、精简而出色的全静态设计特别适用于对成本和功耗敏感的领域。服务器端硬件系统如图3.3所示。图3.3服务器端硬件系统服务器端软件主要包括系统初始化、视频采集、视频压缩、视频发送、云台控制等模块。(1)系统初始化模块包括系统初始化代码和外设驱动程序两部分组成。系统的初始化工作由系统引导程序bootloader完成。它主要是将系统、初始化存储系统、配置ARM各种模式下的数据栈、使能屏蔽中断、根据需要切换处理器模式和状态。在bootloader完成系统初始化工作后,把内核的映像文件由Flash拷贝到SDRAM中,再从SDRAM中执行armlinux内核自带的引导程序来加载armlinux内核。armlinux已经提供了串口和网络控制器驱动。(2)视频采集模块主要功能是采集数字化的视频数据,然后输入到视频压缩模块。(3)视频压缩模块主要负责按照指定压缩模式完成视频数据的压缩。(4)视频发送模块是对经过压缩编码后的视频数据进行封装,封装成RTP协议的音视频帧,同时根据客户指定的不同传输方式向客户端软件发送RTP协议视频帧。(5)云台与镜头控制模块是对接收到由客户端发送过来的控制信息帧进行判断解析,并送入各个相应的控制部件接口,以实现云台转动等控制。3.3客户端设计本远程监控系统采用服务器/客户端(C/S)模式,多个用户可以通过多台装有客户端软件的PC机远程访问和控制服务器,操作简单方便。客户端软件是本文主要的内容,其客户端软件结构如图3.4所示。图3.4客户端软件结构客户端软件主要包括用户登录与管理、网络接收、视频解码、视频实时播放、运动检测跟踪、云台远程控制等模块。(1)用户登录与管理模块主要是基于安全控制方面的考虑而设计的,管理员用户具有最高权限,他可以使用该软件的所有功能,一般普通用户只能使用部分功能,非法用户不能进入系统。用户身份由管理员定义分配。(2)网络接收模块主要是负责和服务器的连接工作,包括通信的建立、数据格式的约定以及视频信号和控制信息的传递。接收服务器端发送来的特定大小视频数据包,然后根据打在数据包上的包头信息,进行组帧,其中加入了帧缓冲、排序、抛弃等机制,用户可以选择单播、组播等多种传输方式。该模块功能的实现由网络接收线程完成。(3)视频解码模块位于网络接收模块之后,主要是将接收到的视频编码压缩帧数据进行软件解码。(4)视频实时播放模块紧接在视频解码模块之后,播放解码后的视频数据。(5)运动检测跟踪模块主要负责监控实时图像,将报警信息及时传递到用户界面。首先,通过目标检测算法判断是否有物体闯入,有异物就预报警并开始保存图片;找到目标,对目标特征进行描述,初步估计目标的运动矢量;根据运动状态,进入目标跟踪,跟踪到目标后,对目标特征进行更新,并对目标的运动进行预测后,进入下一轮的跟踪;描述目标的运动轨迹,从而排除错误报警。(6)云台远程控制模块主要是实现用户在客户监控终端对监控现场云台的控制。服务器端在接收到由客户监控终端发送过来的控制信息帧后,对其进行判断解析,并通过串口送入各个相应的控制部件接口,以实现相应的控制,如控制云台的上、下、左、右、自动转动等。3.4系统总体设计方案总结在确定系统的总体设计方案后,经过仔细分析,决定在关键技术上采用如下方案实现,以期在先进性、易用性、扩展性上有较好的表现:服务器端应用软件在armlinux操作系统下采用C语言开发。客户端软件