远程视频监控系统的研究与设计
2014-11-23杨赛女
杨赛女 裘 君
(浙江大学宁波理工学院信息科学与工程学院 宁波 315100)
1 引 言
视频监控在安防领域,如在保障人们日常生产和生活的安全中具有重要意义。其在这些领域的应用时间较长且实践经验已较成熟,而将其应用在工业生产中还未得到广泛的推广。这主要是因为生产车间环境比较复杂,传统的模拟设备使监控系统很容易受到干扰,难以发挥其作用[1]。随着微处理器技术、计算机网络技术的发展,以及网络协议的改善、网络基础设施和压缩技术的发展,视频监控也从早期的模拟闭路电视监控系统逐渐地向数字视频监控系统演变,而且要求也越来越高,能够完成音视频信号的采集、压缩以及网络传输。数字通讯技术通过加密解密可以实现通信的保密性;通过门限电压技术、检验纠正方法等可以提高信号的抗干扰能力,实现较远距离的传输,也适用于性能较差的线路;通过分时交换技术,将传输和交换进行统一,形成一个综合数字通信网,提高了系统的可靠性以及实时性,同时配置也更加灵活,使得信息的实时传输更加流畅,应用范围更广[2,3]。以网络为基础的视频监控突破了时间、地域的限制,只要有网络的地方就可以搭建视频监控系统。
本文用到的摄像机是海康 DS-2DE7174-A,其自带软件可以实现视频监控;或在网页输入默认管理地址:192.168.0.164,输入默认账户名、密码也可登录监控界面实现视频监控。但这种方法的局限在于只能在连着摄像机的电脑上实行监控,外网的用户看不到监控画面。本文的工作就是基于 C# 来编写视频监控系统,实现远程多客户端视频监控功能。
2 视频监控系统发展历史
视频监控技术的发展大致经历了三个阶段:
第一阶段,1984 年到 1996 年,为起步阶段。该阶段以闭路电视监控系统为主,即第一代模拟电视监控系统。其传输媒介为视频线,由控制主机进行模拟处理,主要应用于银行、政府机关等高档场所。
第二阶段,二十世纪九十年代中期至九十年代末,为初步发展阶段。该阶段以基于电脑插卡式的视频监控系统为主,也被业内人士称为半数字时代。其传输媒介依然是视频线缆,由多媒体控制主机或硬盘录像主机(DVR)进行数字处理和存储。这个阶段的应用也多限于对安全程度要求较高的场所。
第三阶段,二十世纪九十年代末至今,为数字时代阶段。该阶段以嵌入式技术为依托,以网络、通信技术为平台,以智能图像分析为特色的网络视频监控系统为主。此时,网络视频监控的应用不再局限于安全防护,逐渐也被用于远程办公、远程医疗、远程教学等领域。其中,2005 年至今为高速发展阶段。
由此可见,视频监控的发展经历了:模拟视频监控、半数字监控和 IP 数字监控三个阶段。数字化和网络化是视频监控技术发展的必然趋势[4]。
3 视频监控系统的设计
3.1 视频监控系统功能
本文旨在设计一个远程视频监控系统,把摄像机采集到的视频信息发送到远程电脑上,实现外网实时观看工业现场环境,并且能对摄像机进行远程监控。系统组成框架[5]如图 1 所示。
图1 系统组成框架Fig. 1. The framework of system
3.2 设计思路
本系统总体模式采用的是服务器/客户端(Server/Client)模式,其具体工作如下:
显示部分:
(1)现场上位机通过网络向远程服务器发送连接请求,建立连接;
(2)现场采集到的视频信息发送到远程服务器的数据库中;
(3)远程客户端通过调用 WCF 中的函数,读取服务器数据库中的数据;
(4)远程客户端把读取到的数据通过 picture box 控件显示出来。
控制部分:
(1)现场上位机通过网络向远程客户端发送连接请求,建立连接;
(2)通过发送方向标志位到现场上位机来调用摄像机 SDK 函数包里对应的控制函数来达到远程控制摄像机。
由于要实行远程计算机控制,信号的传输需建立在网络的基础上,因此系统的第一个要解决的问题就是数据通讯传输。在 UDP 协议、TCP/IP 协议和 HTTP 协议等众多通讯协议中,由于UDP 协议采用了无连接的传输策略,在正式通讯前不必与对方先建立连接,即直接向接收方发送数据,所以传输不可靠;TCP/IP 是面向连接的传输协议,通讯前需先建立连接,才能保证数据的可靠传输;HTTP 协议虽然可靠,但它是超文本协议,故不如 TCP/IP 高效[6,7]。本系统采用 TCP/IP 协议来实现网络的实时通信。系统通讯过程流程图如图 2 所示。
图2 系统通讯过程流程图Fig. 2. The system communication process flow chart
图3 系统功能模块框架Fig. 3. The system function module frame
3.3 系统组成
系统主要由三部分组成:现场上位机、远程服务器和远程客户端[8]。系统功能模块框架如图 3 所示。
现场上位机:主要由视频采集模块、客户端网络功能模块、摄像机云台的控制模块三部分组成。其中,视频采集模块主要对海康摄像机的SDK 函数包进行二次开发,实时截取当前视频为JPEG 图片,并保存在本地文件夹中;客户端网络功能模块主要负责监控前端视频数据的网上发送:首先通过文件流 FileStream 打开保存在本地的图片,然后把读取到的图片内容保存到字节数组中,最后通过套接字发送给远程服务器以及对服务器的请求连接等;摄像机云台的控制模块也是通过二次开发 SDK 函数包、调用控制命令函数来控制摄像机。
远程服务器:主要负责监听监控前端的连接请求及响应和实时接收视频信息并存储到本地数据库中。
远程客户端:主要用于远程监控摄像机。
4 实现的关键技术
4.1 服务器动态域名的实现
为了实现客户机访问处于不同局域网中的服务器,需要将 TCP/IP 协议和该服务器的外网 IP地址和端口进行绑定。其中,有两种实现方式:第一种方法是通过软件来建立虚拟局域网,虽然它能实现外网连接的功能,但是传输速度不理想;第二种方法是借助花生壳第三方软件的域名绑定功能——现场上位机通过解析花生壳域名获得外网 IP,利用 TCP/IP 网络传输协议绑定解析后的 IP 和端口,实现连接。由于第二种方法传输速度较稳定,因此本文采用第二种方法。
4.2 外网接收完整数据
外网通过 Socket 接收数据,但接收端并不像局域网那样可以一次性接收完发送端所发送的全部数据。本系统通过自定义数据帧通讯协议,将图片分成多帧数据接收,并实现图片信息的拼接,实现了大数据的完整接收。
4.3 多个客户机观看视频
由于套接字外网实现的是点对点的数据传输,一个套接字只能绑定一个域名,所以它的弊端是不能把现场的视频信息传送给多个客户机。本文采用的方法先通过套接字把数据传到远程服务器的数据库中,服务器把读取数据库数据功能的函数通过 WCF 发布到本地 IIS 上,然后通过花生壳映射功能,实现外网调用函数,使多个客户机都能读取到视频数据,实现实时显示的功能。图 4 为 WCF 中服务器与客户端的关系图。
图4 WCF 中服务器与客户端的关系Fig. 4. The relationship between the server and client in WCF
服务端是一组向客户端提供可用功能的端点(Endpoints)。而端点(终结点)则是网络上的一个能将消息送达的资源。在服务端,定义一个接口,它通过 OperationContract 公开了获得图片的方法 GetDate_jpeg()。客户端应用程序使用标准的 Internet 协议向这些方法发送请求并调用这个web 方法,从而获得服务器端数据库中的视频数据。
4.4 远程控制摄像机的实现
基本思路是远程客户机与现场视频采集 PC 机建立 Socket 连接,远程客户机把“上”“下”“左”“右”“缩放”“调焦”“光圈”的标志位写到本地 XML 文件中;然后通过 Socket 发送到现场视频采集 PC 机上,通过这些标志位来调用相对应的控制函数来达到远程控制摄像机的功能。基本结构如图 5 所示。
图5 远程控制摄像机结构Fig. 5. Remote control camera structure
具体操作如下:
(1)定义现场模式和远程模式的标志位,远程模式=“0”,现场模式=“1”,写入本地XML 文件;
(2)确定各项动作的标志位。如“上”的标志位,鼠标向上时为“4”,向下时为“3”,依次设置好其他六个动作标志位,写入本地 XML文件;
(3)从本地 XML 文件读取模式和动作标志位,组成一个 string 类型的字符串,并把字符串转化为 byte[],通过 Socket 发送到现场视频采集PC 机;
(4)现场上位机解析接收到的 byte[];
(5)分别判断各个标志位,例如“上”操作,如果“上”的标志位为“3”,则调用 SDK函数包里的 PtzControl(CHCNetSDK.TILT_UP, 0)函数,使摄像机向下运动;如果“上”的标志位为“4”,则调用 SDK 函数包里的PtzControl(CHCNetSDK.TILT_UP, 1)函数,使摄像机停止向下运动。
XML 用来传送及携带数据信息,即说明数据是什么以及携带数据信息。XML 处理指令以 开始,以 ?> 结束。元素的基本结构由开始标记,数据内容和结束标记组成。本文的 XML 信息如下所示:
表示的是远程模式,正在进行向“上”操作。
5 具体系统实现
5.1 主要流程图
5.1.1 视频采集和发送
视频的采集主要采用二次开发 SDK 函数包来实现。采集到的视频通过 TCP/IP 协议进行传输。而通过读取保存在本地的视频图片,用Timer 控件,即可实时传输当前视频数据到远程服务器。视频采集和发送的流程图[9,10]如图 6 和图 7 所示。
图6 视频采集流程图Fig. 6. Video capture flow chart
图7 视频发送流程图Fig. 7. Video transmission flow chart
现场监控运行界面如图 8 所示。
图8 现场监控运行界面Fig. 8. The interface of on-site monitoring operation
5.1.2 视频接收
由于外网通过 Socket 接收数据,每次只能接收 1024 个字节的数据,所以需要循环接收数据。首先定义发送端发送的 byte[]数组,下标值为 2~7 的元素用来存放图片大小,下标值为 8以后的元素用来存放图片内容;然后通过 Socket发送至服务器后,把图片长度转换为 int 类型读取出来,之后循环接收图片数据,直到接收到的数据大小等于实际图片的大小为止。
数据接收和存储流程图见图 9。
图9 数据接收及存储流程图Fig. 9. The data receiving and storing flow chart
远程服务器的运行界面如图 10 所示。
图10 远程服务器运行界面Fig. 10. The remote server operating interface
远程监控端通过 WCF 来调用 GetDate_jpeg()函数,读取远程服务器中的视频数据,然后通过 PictureBox 控件把视频数据以图片的形式显示出来。远程监控端的运行界面如图 11 所示。该监控界面有四个监控窗口,可以进行摄像机的扩展,同时显示多个地区摄像机采集的视频信息,实现同时监控多个摄像机。
图11 远程客户端运行界面Fig. 11. The remote client operating interface
5.2 监控系统运行结果分析
安装在工业现场的摄像机将现场采集到的视频信息,通过本文设计的监控系统,实时地显示到外网的客户端上,实时性较好。并且外网的客户端也可以对现场的摄像机进行上下左右全方位的远程控制,实现了远程监控功能。而当今大部分用户采用的摄像机自带的客户端软件,只能实现在局域网下的视频监控,比如在一个小区内进行视频监控,这具有区域局限性。而本系统能实现外网视频监控,摄像机安装在工业现场,处于异地的用户也能监控,具有实际应用价值。本文采用的传输协议是 TCP/IP 协议,与一些其他监控系统相同。但是不同的一点是,其他监控系统是现场端与远程端直接进行套接字连接,点对点的传输,这样只有和监控端连接的远程端可以实现监控功能,扩展性不好。而本系统现场端和远程服务器建立连接,把现场端的视频数据存放在服务器数据库中,多个远程端通过 WCF 调用读取视频数据的函数,实现多个监控端监控。
6 结 论
远程视频监控技术,已经广泛应用于各行各业,起着非常重要的作用。本文主要完成了视频监控系统的设计,实现外网多台电脑远程监控的功能,针对视频传输的关键技术展开了重点深入的研究。本文研究的重点集中在网络数字视频监控系统中的实时数据传输与监控,实现了多工业现场下位机—服务器—多客户机的视频传输和监控系统设计。经过实际验证,系统搭建简单,数据传输稳定可靠,达到了客户的监控需求。如何提高多客户端数据传输的同步性、引入高性能的视频数据压缩技术是后续进一步研究的重点。
[1]宋艳玲. 一种工业视频监控系统的实现 [J]. 工矿自动化, 2010, (9): 123-125.
[2]张营凯, 候俊, 雷蕾, 等. 基于 Web 的远程视频监控系统的设计 [J]. 微计算机信息, 2012, 28(6):34-36.
[3]孙晓波, 王荣浩, 季新年, 等. 基于 Web 视频监控系统的设计方案 [J]. 电脑编程技巧与维护, 2011,2: 61-62.
[4]王玮. 基于运营商网络的无线视频监控新方法[J]. 电子技术, 2012, 10: 49-52.
[5]贾林浩. 基于 Web 的 DVR 监控管理系统的设计与实现 [J]. 电脑知识与技术, 2011, 7(21): 5217-5218.
[6]刘步中, 高毅. 基于 UDP 协议的视频图像传输研究与实现 [J]. 电脑知识与技术, 2011, 7(6): 1419-1424.
[7]Wang H, Zhao S. The predigest project of TCP/IP protocol communication system based on dsp technology and ethernet [J]. Physics Procedia,2012, 25: 1253-1257.
[8]李玲玲. 基于 Web 服务器的视频监控系统 [J]. 信息通信, 2014, (4): 121-122.
[9]李成国, 宋伟伟, 高中文. 基于嵌入式 Web 服务器家居视频监控的研究 [J]. 自动化技术与应用,2013, 32(4): 77-78.
[10]庞淑蓉, 岳利军. 基于运动检测的低码率视频监控系统 [J]. 集成技术, 2013, 2(3): 37-40.