一种智能视频监控系统架构方案设计

2018-03-29 05:12王显龙方明
关键词:视频流线程解码

王显龙,方明

(长春理工大学 计算机科学技术学院,长春 130022)

视频监控的智能化表现为计算机视觉算法在视频分析中的应用[1]。智能视频监控区别于传统监控系统的地方在于变被动监控为主动监控(自动检测、识别潜在入侵者、可疑目标和突发事件),即它的智能性。简单而言,不仅用摄像头代替人眼,而且用计算机代替人、协助人来完成监视或控制的任务,从而减轻人的负担[2]。

目前的视频监控系统主要为人工实时监控,或存储后进行事后回放取证,而且系统的架构设计比较单一,不能远程实时监控,不能及时应对类似于打架、火灾、偷盗等紧急事件,具有时效性差、过度依赖人工监控以及需要事后进行繁琐回放取证等特点,无法有效地保证人们的人身财产安全,也极大地造成了人力和时间成本的浪费[3]。

本文提出了一种自动实时监控、自动报警的智能视频监控系统架构设计方案。利用流媒体技术和计算机视觉技术把当前数据源和智能视频分析算法有机结合起来,能够实时智能分析监控中的视频内容,能够及时发现监控中的异常事件;同时利用网络通信机制及时发送报警信息,能够让监控人员第一时间发现异常情况,及时处理突发状况。

1 智能视频监控系统总体架构

整个智能视频监控系统主要体现在远程监控、自动监控、自动报警。三个方面利用现有网络,满足监控人员远程查看监控场景、远程设置智能监控、随时随地接收报警信息等,如图1所示,系统总体架构主要分为三层,分别为数据采集端、数据处理单元、报警输出端。

图1 系统架构图

数据采集端融合了多种视频流解码技术,支持不同的视频流输入,包括基于NVR(Network Video Recorder)硬件架构的视频源、基于NVS(Network Video System)系统软件的视频源、基于RTSP协议的视频源[4],易于连接多个、多种相机,实时远程监控多种场景。数据处理单元是整个系统的核心部分,可以由一组服务器和硬件的算法处理卡及智能监控软件构成。硬件图像处理卡主要实现监控系统的智能化,包括多路监控视频的智能分析、异常事件帧的捕获与推送;智能监控软件主要实现监控系统的自动化,包括监控算法和监控时间的智能设置、视频帧的实时推送、异常事件的自动报警等。报警输出端支持不同的网络通信机制,根据用户不同的需求,可以搭建不同的消息推送平台,能够及时有效地把报警信息推送给客户端。

1.1 数据采集端

数据采集端作为整个监控系统的输入端,通过不同的方式和流媒体传输协议为系统提供视频流。NVR设备或NVS软件通过网络连接相机,系统软件通过NVR或NVS获取各个相机的视频流;RTSP则是通过网络直接连接相机,系统软件通过多个RTSP地址获取各个相机的视频流。因此,本文提出的监控系统可以连接不同厂家的相机,可以通过不同的方式获取视频源。

视频源主要用于两个方面,一是用于监控软件用户界面的视频播放,实现实时播放,二是用于向硬件处理卡推送视频帧,实现智能监控。

1.2 数据处理单元

数据处理单元包括两大部分,分别为用户界面操作和后台处理,如图2所示,用户界面操作是通过智能监控软件和数据库实现,后台处理是通过硬件处理卡实现。

图2 数据处理

智能监控软件通过接收视频流实现监控场景的实时播放,通过设置智能监控算法和监控时间实现监控系统的自动化,实时把监控视频帧推送给硬件处理卡。另外,智能监控软件根据接收的事件帧会及时向报警输出端发送报警信息,监控人员通过智能监控软件可以及时从数据库查询历史事件,及时应对突发状况。

硬件处理卡利用图像处理与识别算法实时智能分析视频帧,实现监控系统的智能化,能够及时发现异常事件,并把事件帧及时推送给智能监控软件。硬件处理卡集成了多种图像处理与识别算法,利用多线程机制实现了多路监控的智能管理,并且处理卡的选择方式有多种,例如DSP、FPGA以及ARM[5],均易于扩展新的图像处理与识别算法。

1.3 报警输出端

报警输出端支持三种消息传输机制,分别为Socket通信机制[6]、HTTP通信机制[7]、邮箱通信机制[8]。其中,Socket通信机制是基于TCP的网络应用开发,是一种流的机制,线程通过Socket进行数据流的读取和发送;而HTTP通信机制是基于Web的开发,构建在HTTP协议之上,使服务器(智能监控软件)与客户端(报警输出端)可以进行远程传输报警信息;邮箱通信机制是利用现在已有的邮箱通信协议(比如163邮箱通信协议)进行发送报警信息,能够让管理人员利用邮箱终端远程及时接收报警信息。

2 关键技术

本文提出的监控系统架构方案融合了多种技术,以下主要是对视频流稳定流与解码、多种智能监控算法集中管理、多线程控制进行技术分析。

2.1 视频流稳定流与解码技术

RTSP是用来控制声音或影像的多媒体串流协议,并允许同时多个串流需求控制,能够容忍网络延迟,可以降低服务器端的网络用量[9]。所以,该软件系统主要通过RTSP直连获取相机的视频流,对于网络波动情况,采用缓冲机制,如图3所示。

图3 RTSP视频流解码

RTSP视频流解码的流程分为input、decode、output三个过程。其中input利用live555库获取RTSP视频流;decode利用FFmpeg库解码、转码视频数据,并输出解码、转码后的视频数据;output利用D3D显示视频数据。为了抑制网络波动造成的视频流延迟与失帧,设计了缓冲机制,包括回环数据缓冲机制、directbuffer机制、数据缓冲池。采用回环数据缓冲机制对输入的视频数据高效缓存,在传入decode模块时,避免了数据拷贝;同时在数据解码时采用FFmpeg的directbuffer机制,进一步避免了数据拷贝的动作;在低延时和流畅的平衡上,通过设置最大缓冲帧数和最小缓冲帧数来实现控制,通过比较待解码缓冲区和解码后还未来得及显示缓冲区的数据包个数差值,如果该值大于最大缓冲帧数,说明有很多数据在缓存里,延迟大了,这时就要加快显示速度(减小output模块的休眠时间),最大缓冲帧数就是影响延迟的;反之一样,最小缓冲帧数就是流畅的保证,该值越大就越流畅,所以,通过改变这个最大值、最小值可以平衡延迟与流畅。

2.2 多种智能监控算法的集中管理

一个硬件处理卡可以加载1~4个智能监控算法,包括客流统计、遗失检测、遗留检测、闯入检测等;通过在服务器上嵌入多个硬件处理卡,可以实现集中管理多个、多种智能监控算法。

硬件处理卡集中管理智能监控算法的工作流程如图4所示。首先,硬件处理卡根据分配的算法通道匹配服务器传来的视频帧,然后经过相应图像处理与识别算法的智能分析,捕获事件帧。最后,把异常事件信息发送给服务器。通过硬件处理卡实现了多路监控的集中管理、智能分析,能够智能处理多种异常情况。

图4 多种算法集中管理

2.3 多线程控制技术

数据处理单元采用单进程多线程管理机制,主线程创建了视频帧采集线程、视频帧处理线程,如图5所示。视频流采集线程主要负责对多路视频信号进行采集,将采集到的视频数据放入缓存区,供视频帧处理线程调用。视频帧处理线程主要用于视频帧的智能分析,及时发现异常事件。

图5 数据处理单元多线程机制

为了保证视频帧采集线程、视频帧处理线程不被并发调用,防止它们之间由于竞争资源发生死锁现象,通过创建信号量VI进行调度控制。VI初始值为0,视频帧采集线程在向缓冲区输出视频帧时释放信号量VI,VI值加1;视频帧处理线程在从缓冲区读取视频帧时请求信号量VI,当VI为0时,继续等待,当VI大于等于1时,根据视频帧监控类型匹配算法通道,然后智能分析视频帧,VI值减1。如果有异常事件帧,捕获事件帧并存入数据库,如果没有异常事件帧,继续读取视频帧进行智能分析。

3 结论

本文提出的智能视频监控系统架构方案根据不同功能划分为三个模块,每种模块融合了多种技术。数据采集端通过不同的方式获取视频源,并着重分析了RTSP视频流稳定流与解码技术,实现了视频流的实时播放,并有效抑制了网络波动;数据处理单元把服务器与硬件处理卡有机结合起来,利用多线程管理机制实现了多种智能监控处理算法的集中管理,提高了系统的实时性、高效性。报警输出端支持多种网络通信机制,可以根据不同需求搭建不同的消息推送平台,能够让监控人员在不同的地方及时收到报警消息,及时应对突发状况。所以,本文提出的架构方案具有可靠性高、通用性好、功能齐全、抗干扰能力强等特点,具有较高的推广价值。

[1]李琰婷,刘智,张冰川,等.基于3G网络的远程多功能视频监控系统[J].长春理工大学学报:自然科学版,2014,37(1):138-141.

[2]Nakashima Y,Babaguchi N,Fan J.Intended human object detection for automatically protecting privacy inmobilevideosurveillance[J].MultimediaSystems,2012,18(2):157-173.

[3]吴群,王田,王汉武,等.现代智能视频监控研究综述[J].计算机应用研究,2016,33(06):1601-1606.

[4]Hu W C,Chen C H,Chen T Y,et al.Moving object detection and tracking from video captured by moving camera[J].Journal of Visual Communication&Image Representation,2015,30(7):164-180.

[5]刘胜楠,汪恭焰,李京,等.嵌入式视频摘要及智能视频监控系统设计[J].长春理工大学学报:自然科学版,2017,40(1):119-122.

[6]罗亚非.基于TCP的Socket多线程通信[J].电脑知识与技术:学术交流,2009,5(3):563-565.

[7]祝瑞,车敏.基于HTTP协议的服务器程序分析[J].现代电子技术,2012,35(4):117-119.

[8]常朝稳,司志刚,王潜.基于邮箱的移动Agent域通信机制[J].计算机工程,2008,34(16):125-128.

[9]茅炎菲,黄忠东.基于RTSP协议网络监控系统的研究与实现[J].计算机工程与设计,2011,32(07):2523-2526.

猜你喜欢
视频流线程解码
边缘实时视频流分析系统配置动态调整算法研究
《解码万吨站》
基于C#线程实验探究
基于视频流传输中的拥塞控制研究
基于国产化环境的线程池模型研究与实现
解码eUCP2.0
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
铁路货场智能大门集装箱全景图像采集方法研究
浅谈linux多线程协作