基于C#的视频监控系统的设计与实现.docx

上传人:b****5 文档编号:7354105 上传时间:2023-01-23 格式:DOCX 页数:56 大小:1.73MB
下载 相关 举报
基于C#的视频监控系统的设计与实现.docx_第1页
第1页 / 共56页
基于C#的视频监控系统的设计与实现.docx_第2页
第2页 / 共56页
基于C#的视频监控系统的设计与实现.docx_第3页
第3页 / 共56页
基于C#的视频监控系统的设计与实现.docx_第4页
第4页 / 共56页
基于C#的视频监控系统的设计与实现.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

基于C#的视频监控系统的设计与实现.docx

《基于C#的视频监控系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于C#的视频监控系统的设计与实现.docx(56页珍藏版)》请在冰豆网上搜索。

基于C#的视频监控系统的设计与实现.docx

基于C#的视频监控系统的设计与实现

基于C#的视频监控系统的设计与实现

AVideomonitoringsystem’sdesignandimplementation

BasedonC#

 

专业:

软件工程

姓名:

指导教师:

申请学位级别:

学士

论文提交日期:

2013年6月15日

学位授予单位:

 

摘要

随着计算机技术、通信技术以及数字视频技术的飞速发展,视频监控系统的发展将更加智能化,人性化。

智能化视频监控的方法是通过对摄像机拍录的图像序列进行自动分析来对动态场景中的目标进行定位、识别和跟踪,并在此基础上分析和判断目标的行为,从而做到即能完成日常管理,又能在异常情况发生的时候及时作出反应。

不仅可节省人力成本,而且它强大的预警功能可避免很多人为因素造成的灾害和损失。

本系统是基于C#的视频监控系统的设计与实现,具有视频实时查看、录制、回放、电视墙管理、服务配置管理、日程安排、报警管理等功能,具有实用性和可扩充性以及可靠性等特点。

本文主要分为五大部分,第一部分介绍了视频监控技术的发展历程,现状以及研究意义。

第二部分介绍了本系统的设计与实现过程中涉及到的各种技术,包括VS2010开发环境,C#开发语言,以及数据访问技术LINQ、EntityFramework框架等。

第三部分介绍了系统的分析与设计过程,包括本系统的功能需求分析,数据库设计以及UML系统建模,第四部分详细介绍了系统的最终实现。

最后一部分,对本论文进行了总结,并提出了对于本系统的展望。

 

关键词:

视频监控技术;Linq;UML

ABSTRACT

Alongwiththecomputertechnology,communicationtechnologyandtherapiddevelopmentofdigitalvideotechnology,videomonitoringsystemdevelopmentwillbemoreintelligentandhumane.Intelligentvideomonitoringcanlocate,identifyandtrackthetargetbyautomaticallyanalyzingtheimagesequencerecordedbycamera.Andbasedontheseresults,itanalyzesandjudgesthebehaviorofthetargettoaccomplishthedailymanagementandrespondtimelytoanabnormalsituation.

ThispaperismainlyaboutavideomonitoringsystembasedonC#’sdesignandimplementation.Ithasmanyfunction,suchasLiveViewr,Record,PlayBack,VideoWallConf,ServiceConf,etc.Thissystemhasmanyfeatures:

practicability,scalabilityandreliability.

Thispaperismainlydividedintofiveparts.Thefirstpartintroducesthehistory,presentsituationandresearchsignificanceofvideomonitoringtechnology.Inthesecondplace,itexplainsavarietyoftechnologiesinvolvedinthissystem’sdevelopmentprocess,includingVS2010,C#,dataaccesstechnology-LINQandtheEntityFramework,etc.Then,itelaboratesthesystem’sanalysisanddesignprocess,includingthedemandanalysis,databasedesign,UMLmodelingprocess.Thefourthpartintroducesthesystem’simplementation.Finally,itsummeduptheproblemsencounteredintheprocess,theharvestinginthedevelopmentandtheprospectofthevideomonitoringtechnology.

 

Keywords:

videomonitoringtechnology;LINQ;UML

第一章前言

随着计算机和网络技术的发展,通过网络采集数据来监测和控制相关的工作,既可以提高工作效率又节省大量人力物力。

利用成熟的网络及数据库技术实现了一个工业自动化系统,并利用网上采集数据及监测控制的技术支撑,设计与开发了“基于c#的视频监控系统”。

一、视频监控技术的发展

至今为止,视频监控技术已经经历了三个阶段的发展:

第一、模拟阶段:

七十年代末到九十年代中期,处于此阶段的视频监控系统是通过模拟信号实现传输的。

此阶段的视频监控系统主要由四部分组成,分别是摄像机、监视器、视频切换矩阵、录像机等,通过控制线、视频线连接,主要用在安保以及生产管理的场合[1]。

这种视频监控系统的特点是价格比较低廉,建设比较方便;但是这种方式也产生了不可避免地缺点,即只能实现短距离的传输,另外安全性方面也比较差,监控的方式比较单一。

第二、半数字阶段:

九十年代中期至九十年代末期,这个阶段的视频监控系统是基于数字化的本地视频监控系统。

这种类型的视频监控系统主要由摄像机、采集卡、视频压缩卡、各类采集设备、PC监控设备、通信接口卡、PC机/工控机、模拟的或数字式的录像机等组成[1]。

整个视频监控系统的构成依赖于通信网络。

这种方式的视频监控系统的特点是功能比较强大,灵活性也很高;但是这就导致了这种视频监控系统的缺点是功耗相对比较大,对于环境的适应能力比较差,可靠性也比较低。

第三、网络阶段,二十一世纪初开始,随着计算机以及网络技术的不断发展,跟随我们一起进入网络化的时代的还有视频监控系统。

在网络视频监控的领域里,集中了数字图像处理、多媒体技术以及远程网络传输等最新技术[1]。

随着各种技术的不断成熟,人们对进入网络时代的视频监控系统的关注也越来越多。

2、视频监控技术的现状

现在使用的视频监控系统都是网络视频监控系统,与模拟阶段的视频监控系统相比,网络阶段的视频监控系统具有很多优点:

第一,便于统一化管理。

对于一些大型的,分布式的监控系统,网络视频监控系统将发挥其巨大优势。

不管前端有多少点,都可以通过一台PC机进行统一的维护和管理。

第二,适合远距离传输。

数字信息抗干扰能力强,不易受传输线路信号衰减的影响,而且能够进行加密传输,增加了系统的安全性。

不受距离的限制,方便查看。

就算在几千公里以外可以随时查看任何一路图像。

第三,安装简单,方便。

由于网络视频服务器只要通过一根网线就能连接到整个系统中。

所以施工的时候省去了很多布线的工作,有些特殊的地方可以采用无线信号进行视频的传输,大大减少了施工成本。

第四,可组成非常复杂的监控网络。

由于网络视频服务器输出已完成模拟到数字的转换并压缩,采用统一的协议在网络上传输,支持跨网关、跨路由器的远程视频传输,所以其在组网方式上和基于PC平台的监控方式有极大的不同,能支持更为复杂的监控网络[1]。

第五,便于录像的查找。

由于网络视频监控系统可以在数据中心对录像进行集中存储和保管。

所以在查看录像时利用相应软件的索引就能很快的找到录像。

三、研究意义

随着计算机性能以及各项技术的飞速发展,利用计算机视觉技术对监控系统中的视频信息进行分析,从而使视频监控系统向智能化方向发展成为可能[2]。

它的方法是通过对摄像机拍录的图像序列进行自动分析来对动态场景中的目标进行定位、识别和跟踪,并在此基础上分析和判断目标的行为,从而做到即能完成日常管理,又能在异常情况发生的时候及时作出反应[2]。

智能化的视频监控系统是一个涉及多学科的系统工程,包括到计算机视觉、模式分析、人工智能、自动化控制、计算机网络等。

特别适合在一些大型的、重要的场所使用。

如机场、火车站、博物馆或者监狱等场所。

它强大的预警功能可避免很多人为因素造成的灾害和损失。

纵观整个监控行业,未来的监控系统将发展的更加智能化、人性化。

智能化将是监控系统的必然趋势。

它的作用在大型的监控系统中将凸现出来,不仅可节省人力成本,而且可预防很多人为因素造成的后果。

所以智能化的发展将会给监控行业带来一场巨大的变革!

第二章系统开发理论基础

综合分析确定了本系统的开发语言使用C#,本系统为Windows窗体应用程序。

以VisualStudio2010作为开发平台,应用了EntityFramework框架,SQLServer2008R2为后台数据库,运用了很多C#语言的高级特性,如事件、委托、泛型等,也使用了大量的自定义控件。

另外,还简要介绍了几个技术在视频监控中的应用情况和视频监控的组成和原理。

下面将详细介绍这些技术的使用情况。

第一节开发平台简介

一、EntityFramework简介

EntityFramework利用了抽象化数据结构的方式,将每个数据库对象都转换成应用程序对象(entity),而数据字段都转换为属性(property),关系则转换为结合属性(association),让数据库的E/R模型完全的转成对象模型,如此让程序设计能用最熟悉的编程语言来调用访问[3]。

而在抽象化的结构之下,则是高度集成与对应结构的概念层、对应层和储存层,以及支持EntityFramework的数据提供者(provider),让数据访问的工作得以顺利与完整的进行[4]。

概念层:

负责向上的对象与属性显露与访问。

对应层:

将上方的概念层和底下的储存层的数据结构对应在一起。

储存层:

依不同数据库与数据结构,而显露出实体的数据结构体,和Provider一起,负责实际对数据库的访问和SQL的产生[5]。

EntityFramework的整体结构如图2-1所示:

图2-1entityframework整体结构图

图中,EntityDataModel(EDM)是类和数据库之间的映射模型,包含三个映射文件,是EntityFramework的核心。

LINQtoEntities是查询对象模型的一种语言。

首先,介绍EntityFramework的核心——EDM(EntityDataModel)

实体数据模型(EDM)是一种实体关系模型。

EDM以与语言无关的格式定义数据,这种格式不受编程语言或关系数据库的结构所约束。

EDM架构用于指定实体和关系的详细信息并将它们作为数据结构实现。

实体是应用程序域中必须由数据表示的容[6]。

EDMEntityType是在应用程序域中表示实体的数据类型的规。

关系是实体之间的逻辑连接EDM通过使用两种基本类型对实体及其关系进行建模。

EntityType:

应用程序域中数据结构的详细信息的抽象规。

AssociationType:

类型之间的逻辑连接[7]。

EDM设计架构在应用程序域中定义实体的结构、语义、约束和关系。

在对象服务的EDM实现中,概念架构映射到包含描述存储模型(通常是数据库中的表)的元数据的另一个架构。

概念架构用于生成将在应用程序代码中使用的可编程对象模型的类。

此外,实体框架也使用此概念架构和存储架构在运行时验证、查询和更新应用程序数据[8]。

最后,通过一个具体例子更明确地解释该模型。

如图2-2所示:

图2-2entityframework中的各层

在EF中,数据库表被一对一地映射到逻辑层的实体中。

逻辑层实体是通过基于XML的存储架构定义语言(StoreSchemaDefinitionLanguage,SSDL)文件来定义的。

其映射文件的结构与LINQtoSQL的映射文件非常类似。

EF比LINQtoSQL多走的一步就是它接下来使用了另一个基于XML的映射文件(MappingSchemaLanguage,MSL)将逻辑模型与概念模型映射了起来。

概念模型是通过同样基于XML的概念架构定义语言(ConceptualSchemaDefinitionLanguage,CSDL)文件来定义的。

如果需要的话,这些概念模型能够进一步被转化成强类型的对象。

建立好EDM关系之后,程序即可使用一种基于字符串的、名为EntitySQL的语言对EDM进行查询。

我们也能够使用LINQtoEntities将LINQ的相关知识应用到EDM之上。

因为EDM已经将应用程序与数据库完全分离开来,所以对数据库的修改并不需要重新编译应用程序,而只需修改EDM映射文件即可。

这种结构提高了物理层和逻辑层之间的分离程度,进而允许我们在修改数据模型以及映射结构时无需对应用程序进行改动。

此外,因为EF建立于现有的ADO模型之上,所以该框架也能够很容易地与其他的非SQLServer数据库配合使用。

因此,若你需要在其他数据库上使用LINQ,那么就可以使用LINQtoEntities和EF作为数据访问层的实现。

第二节系统相关技术介绍

一、流媒体技术

视频监控的两大关键的基本功能是在线视频监视与录像回放,其根本功能就是将视频源上的数字信息传送到视频接收端。

在线视频监视需要完成视频数据的同步传输,具有很大的同步性;而录像回放同VOD功能的基本原理相似,具有某种程度上的同步性,即不是很强的同步性,它需要视频界面既要清晰又要有一定的流畅性,同时还要有能控制不同的播放控制命令[14]。

如果我们将工作现场的摄像头看成是在线的A/V源,那么录像文件则是经过存储的A/V文件,而当前实现这个功能最好的技术手段就是流媒体技术[14]。

众所周知,基于解决信息传输实时性的不完善而研发出了流式传输及流媒体(StreamingMedia)。

流式传输是一系列技术手段的总称,包括音频、视频等通过网络传输媒介数据等,其特殊的概念意义实现了通过网络传输的音视频等信息在客户端播放时,边传输边播放的功能,基本作用机理就是在服务器中压缩连续的音视频信息,而客户端只需要将开始部分的数据存入其存就可实现播放,剩下的数据流由用客户端在后台继续接收并解压直到全部播放完毕或用户停止播放[14]。

这样的好处是可以大幅度的降低播放时数据解压的等待时间,并且客户端的实时存不需要很大就可以实现。

流媒体实际上就是利用流式传输技术方法的一种连续的在线实时媒体技术[14]。

流式传输是一种有别于传统的下载传输的技术手段[14]。

下载传输技术有两个基本特点是基于文件操作和文件要全部下载后才能使用。

对于在线视频监视,由于其不存在传统的文件概念,因此也不像以往的靠“下载”的方式实现。

而对于录像功能,录像的实时视频数据可以形成一种数据文件存储,然而在录像的实时视频数据播放时如果必须全部下载后才能使用,就会产生很长的解压时间,对用户产生很大的困扰[14]。

综上而言采用流式传输技术是一种比较可靠的方法。

流式传输的基本种类有顺序流式传输(ProgressiveStreaming)和实时流式传输(RealtimeStreaming)两种[14]。

而视频监控功能应用最广泛的就是采用实时流式传输。

二、智能视频技术

智能视频(IV,IntelligentVideo)是从计算机视觉(CV,ComputerVision)技术研发而来的[15]。

而计算机视觉技术则是人工智能(AI,ArtificialIntelligent)的多个研究方向之一,它的基本容就是通过在数据及数据表述之间建立的映射关系使计算依靠数据处理和分析来了解视频画面中的容[15]。

智能视频技术应用广泛。

比如:

1.复杂视频动态侦测:

在复杂的雨雪雾霾风向等天气预测中准确地侦测和分析出单个对象或多对象的动态情况,比如运动的方向和特征等性质[15]。

2.对象追踪:

侦测到动态对象之后,根据对象的运动情况,实时依靠PTZ控制指令控制摄像头使其自动跟踪对象,在对象越出该摄像头监控围之后,自动通知此时对象所在区域的摄像头继续进行追踪[15]。

3.人物面部识别:

通过自动识别人物的脸部特征和通过同数据库档案进行对比来识别或验证人物的身份信息。

这种功能又有“合作型”和“非合作型”两种类型。

前者通常与门禁系统配合使用,并需要监控对象在摄像头前静止片刻。

“非合作型”则可以在众多对象中识别出特定的对象,此类功能通常在需要安全检查的场合,如机场、火车站、体育场馆等群体活动场合[15]。

4.车辆识别:

识别车辆的外形、颜色、车牌等特征,并反馈给监控系统。

此类应用可以用在被盗车辆追踪等场合中[15]。

5.不正常滞留:

当一个对象(如箱子、包裹、车辆、人物等)在需要安全包围的敏感区域停留的时间超过正常情况就向相关人员发出警示信息。

通常也是在需要安全检查的场合,如机场、火车站、体育场馆等群体活动场合[15]。

6.预防交通拥堵控制:

用于在交通繁华地段上监视车辆情况,统计车流量、平均车速、是否有非法停靠、是否有故障车辆等等[15]。

三、无线传输技术

在通常监控一片较大的围时,设立的分散式的监控点和中央控制中心往往相距较远,如果采用有线传输就要布置大量的环形数据传输线,不仅成本高而且安装维护受制于地形因素。

在这种情况下,无线网络的数据传输就能发挥出有线传输不具有的优势。

利用无线网桥系统手段,将设立的分散式的监控点与中央控制中心实现无线连接,就可以在短时间形成覆盖网络,不仅简单易行,而且可以客服无数传统有线传输的缺点[16]。

在无线监控系统中,无线网络的主要作用就是在分散式的监控点和监控中心之间负责数据传输的作用。

通过无线网络可以将不同地点的分散式的监控点设备联系成一个整体,进行实时数据传输;同时,由于监控系统对视频的清晰度需求较高,因此解决依靠无线网络传输稳定高清晰的视频数据也是无线数字监控系统中需要解决的重要突破之一;

四、红外热成像技术

人的视力能够感知到的可见光波长大约在0.38~0.78微米之间。

红外线是一种人眼无法识别的不可见电磁波。

在宇宙中,一切物体由于其热力学温度的不同而会辐射不同波长的电磁波,因此根据其波长不同而采用不同的感应设备分别检测出监控对象本身和背景之间的波长差异,从而形成不同的红外图像,统称为热图像[17]。

红外热成像仪是一种基于红外热成像技术,利用探测对象的红外辐射差异,通过光电转换、信号处理等技术手段,将目标对象的温度差异的分布图像转换成视频图像的设备[17]。

红外热成像仪在视频监控中的应用广泛:

1.黑暗环境及恶劣天气条件下的目标对象监控

在黑暗的环境中由于需可见光工作的设备和微光夜视设备无法工作,特殊环境下又由于工作容的要求而无法采用人工照明,即它们是一种主动的工作原理,但是这种主动在特殊情况下会影响工作对象。

而红外热成像仪则是一种完全相反的工作设备,通过被动感受目标对象与大环境的红外热辐射差异来工作。

从某种意义上讲,它是一种全天候的工作设备,不仅能够克服白天黑夜的可见光不同造成的困难,并且由于红外线的波长比一般可见光的波长长,特别是工作在8~14um的热成像仪,穿透雨、雾的能力较强,对于雨、雾等恶劣的气候条件下也可以正常工作,更重要的是也不会暴露自己。

因此,采用红外成像仪是一种技术上的进步[17]。

2.防火监控

由于物体表面的热力学温度的差异导致辐射的光谱存在差异,而红外热成像仪就是利用这一差异而工作的,所以它不仅仅可以作为夜晚工作现场的监控工具,还可以作为一种预防火灾的有效的提示报警工具。

据统计,相当一部分火灾的发生是由于人类不会轻易发现的隐火导致的。

现在较为成熟的普通方法,对于这种类型的隐火的及时发现起到的作用有限。

但是利用新的作用机理的热红外成像仪可以及时快速的发现这些隐患,同时还可以准确定位容易发生火灾的的位置和大体围,并且它可以穿透遮蔽视线的烟雾发现导致火灾的着火点,视线及时发现、及时预防、及时消灭[17]。

3.伪装及隐蔽目标的识别

一切有温度的物体都能发出红外线,红外热成像仪接收这些红外线,并借助有颜色的图显示物体表面的温度分布,一般情况下,根据温度的不同,物体的轮廓由不同的颜色显示。

犯罪分子往往都爱挑选茂密的树林作为作案地点,因为这些地点有很好的隐蔽性,容易让人产生视觉上的错觉,从而影响判断。

由于植物的温度通常远远小于人和车的温度,因此他们的红外辐射也不相同。

利用红外热成像技术可以很容易地识别这种伪装,一般不会出现判断失误的情况[17]。

五、集中存储技术

集中存储、统一管理。

在监控中心后端采用磁盘阵列海量存储系统,系统可以对所有的视频录像进行集中存储,有效地降低了前端监控视频被人为破坏所带来的损失,有利于提高录像保存的安全性;同时,对所有的视频和录像数据进行统一的管理,实现视频的灵活调度和应急指挥,能够最大程度地发挥监控系统纵观全局的作用[18]。

  录像存储安全可靠,系统运行稳定。

传统的DVR录像存储方式缺乏技术冗余或数据备份手段,DVR的硬盘出现故障后相关录像数据会丢失;同时,DVR设备故障后,上级主管部门缺乏及时发现设备故障的手段,无法保证监控录像一直被正常记录。

磁盘阵列作为专业存储设备,可靠性要远高于DVR,其RAID的冗余数据保护、硬盘热备、在线维护和电源冗余等技术可大大提高图像存储的安全性和系统的稳定性[18]。

  录像时间不受限制,扩容简便。

长期保存录像是保证事故发生后为调查事件提供有力的佐证,而DVR置的硬盘进行录像存储可存储的空间有限,无法满足海量的视频存储要求。

而磁盘阵列单台设备就提供几十T的存储空间,通过扩展的方式,容量扩展非常方便,能满足超大型视频监控系统长时间的录像存储的需求[18]。

第三节开发语言以及数据库平台

一、C#语言的特性:

自定义控件

在.NET常可以实现3种自定义控件:

扩展控件、复合控件和自定义控件。

扩展控件:

从现有的微软提供的.NET类库控件中,直接继承和扩展而得的窗体控件。

这种窗体控件既保留了Windows窗体控件的原有功能,又通过添加自定义属性、方法和事件等方式为新控件增加新的功能[9]。

用户控件:

.NET类库提供UserControl类,它表示一个空间的公共容器,通过窗体设计器,可以添加一个或多个现有控件,将这些控件作为整体进行访问。

委托

在C#里,委托机制能够实现一个类的方法让另一个类使用,就像一个类的方法传递给了另一个类,此外,静态的方法也可以被传递。

该机制和将函数指针作为参数的功能是相似的。

VisualJ++中首次使用委托,如今该机制也在C#中得到了使用,在C#里,通过继承System.Delegate实现委托,该机制的使用步骤如下:

首先,需要定义委托类型,由关键字delegate定义。

其次,需要定义一个该委托类型的变量。

再次,为刚定义的变量赋值,使用该变量。

最后,调用委托中的函数。

事件

事件,是C#编程模型中重要的一个概念,通过对事件的理解,可以更好的了解C#程序运行机制[10]。

C#中的事件,可以简单的理解为类或者对象发生了一件事,并且把这件事通知给了其他的类或者对象,其他的类或者对象可以根据事件的消息有所反应。

这非常

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1