发明内容
本发明提供一种分布式网络视觉监控系统,以解决上述背景技术中现有技术存在由于应用环境对系统的体积、成本、功耗、处理能力都有特殊的要求,而如何在保证识别跟踪效率的同时,提高嵌入式视觉系统的实时性,是其走向应用的关键问题。
本发明所解决的技术问题采用以下技术方案来实现:分布式网络视觉监控系统,包括客户端和服务器端,所述服务器端包括视频流采集模块、帧差图像处理模块、网络视频传输模块;
所述帧差图像处理模块用于将监控终端拾取的图像进行图像前景分割且形成前景图像,将前景图像进行帧间RGB空间相似度处理和帧间前景像素面积差处理并将帧间RGB空间相似度的统计数据和前景像素面积差数据的统计数据共同形成帧差图像处理数据,将帧差图像处理数据与帧差图像阈值分析处理形成运动目标检测结果。
所述帧差图像处理模块包括帧间RGB空间相似度处理子模块;
所述帧间RGB空间相似度处理子模块用于基于图像的颜色直方图的数学模型建立前景图像颜色直方图矩阵,再将两组前景图像颜色直方图矩阵基于空间距离计算数学模型进行空间距离的计算;
所述帧差图像处理模块包括前景像素面积差处理模块;
所述前景像素面积差处理模块用于通过阈值分割对连续图像提取前景进行像素面积的计算且计算连续前景像素面积差,通过面积差阈值设定判断是否存在运动目标。
进一步,所述图像的颜色直方图的数学模型包括:
hA,B,C(a,b,c)=N·Prob(A=a,B=b,C=c);
其中:
所述A、B、C分别表示在前景图像所有像素中三基色所占的比例;
所述N表示图像像素数;
hA,B,C(a,b,c)表示前景图像的m×n像素中所包含三基色m×n×3的三维矩阵。
进一步,所述空间距离计算数学模型包括欧几里德距离数学模型、交集距离数学模型以及二次型距离数学模型;
所述欧几里德距离数学模型包括:
d2(h,g)=∑∑∑(h(a,b,c)-g(a,b,c))2;
其中:
所述h和g分别代表两幅图像的颜色直方图;
所述交集距离数学模型包括:
∑∑∑min(h(a,b,c),g(a,b,c));
其中:
所述|h|,|g|分别代表两幅图像的颜色直方图的模;
所述二次型距离数学模型包括:
d(h,g)=(h-g)tA(h-g);
其中:
所述A表示h和g的互相关矩阵;
进一步,所述前景像素面积差处理模块的处理包括如下步骤:S1.基于像素总数计算模型计算像素总数;
所述像素总数计算模型包括:
所述m表示灰度级别;
所述ni表示灰度级别i的像素个数;
所述N表示像素总数;
S2.基于概率计算数学模型计算各灰度级在图像中出现的概率;
所述pi表示灰度级i在图像中出现的概率;
S3.将各级灰度根据参数T分成两组,包括:
C0={1~T} C1={T+1~m};
所述T为灰度级别阈值;
S4.计算C0组,C1组各灰度级出现的总概率,包括:
所述ω0为C0组各灰度级出现的概率;
所述ω1为C1组各灰度级出现的概率;
S5.C0,C1概率的平均值,包括:
S6.计算两组之间的方差,包括:
进一步,所述客户端包括播放服务模块;
进一步,所述播放服务模块用于接收并抓取服务器端发送的图片帧,接收的图片帧经解码用于显示和保存。
进一步,所述视频流采集模块用于采集视频终端的前端视频数据,判断前端视频数据是否采集完成,若完成,则关闭视频终端,否则转入采集视频终端的前端视频数据。
进一步,所述网络视频传输模块用于将帧差图像处理数据发送至客户端。
进一步,所述分布式网络视觉监控系统的硬件系统采用核心CPU板和接口板组合的形式。
进一步,所述分布式网络视觉监控系统还包括自动报警处理模块。
本发明的有益效果为:
1本发明采用分布式网络视觉监控系统,包括客户端和服务器端,所述服务器端包括视频流采集模块、帧差图像处理模块、网络视频传输模块,所述帧差图像处理模块用于将监控终端拾取的图像进行图像前景分割且形成前景图像,将前景图像进行帧间RGB空间相似度处理和帧间前景像素面积差处理并将帧间RGB空间相似度的统计数据和前景像素面积差数据的统计数据共同形成帧差图像处理数据,将帧差图像处理数据与帧差图像阈值分析处理形成运动目标检测结果,所述帧差图像处理模块包括帧间RGB空间相似度处理子模块,所述帧间RGB空间相似度处理子模块用于基于图像的颜色直方图的数学模型建立前景图像颜色直方图矩阵,再将两组前景图像颜色直方图矩阵基于空间距离计算数学模型进行空间距离的计算,所述帧差图像处理模块包括前景像素面积差处理模块,所述前景像素面积差处理模块用于通过阈值分割对连续图像提取前景进行像素面积的计算且计算连续前景像素面积差,通过面积差阈值设定判断是否存在运动目标,由于智能视频监控技术对视频画面中的海量数据进行快速分析,过滤掉监控者不关心的信息,仅仅为监控者提供有用的关键信息,大大提高了视频监控在实时发现异常行为、及时传输报警信息方面的功能,例如对人员聚集的情况进行自动报警处理,进而及时疏导,避免危险事件的发生;对重要场所如戒严区域、银行、库房、博物馆、珠宝店等存放贵重物品区域的监控等。智能视频监控技术为普通监控设备加上了具有对观测到的事物进行分析和判断能力的大脑,拥有更强大的视频监控功能,其进一步深入广泛应用为社会安全撑起一把更加严密、稳固的保护伞,以有效遏制影响秩序和安全的异常事件的发生,不仅能极大节约人力成本,也将产生良好的经济社会效益,系统目前以投入用户产品仓库的夜间无人值守的应用,在规定时段内检测重要区域运动目标的存在情况,并以此作为报警依据,节约了人力成本、提高了安防监控的效率。
实施例:
本实施例包括:如图1所示,分布式网络视觉监控系统,包括客户端和服务器端,所述服务器端包括视频流采集模块、帧差图像处理模块、网络视频传输模块;
所述帧差图像处理模块用于将监控终端拾取的图像进行图像前景分割且形成前景图像S101,将前景图像进行帧间RGB空间相似度处理和帧间前景像素面积差处理并将帧间RGB空间相似度的统计数据和前景像素面积差数据的统计数据共同形成帧差图像处理数据S104,将帧差图像处理数据与帧差图像阈值分析处理S105形成运动目标检测结果S106。
所述帧差图像处理模块包括帧间RGB空间相似度处理子模块;
所述帧间RGB空间相似度处理子模块用于基于图像的颜色直方图的数学模型建立前景图像颜色直方图矩阵,再将两组前景图像颜色直方图矩阵基于空间距离计算数学模型进行空间距离的计算S102;
所述帧差图像处理模块包括前景像素面积差处理模块;
所述前景像素面积差处理模块用于通过阈值分割对连续图像提取前景进行像素面积的计算且计算连续前景像素面积差,通过面积差阈值设定判断是否存在运动目标S103。
如图1、2所示,帧间差分法是一种通过对视频图像序列中相邻两帧作差分运算来获得运动目标轮廓的方法,它可以很好地适用于存在多个运动目标和摄像机移动的情况。当监控场景中出现异常物体运动时,帧与帧之间会出现较为明显的差别,两帧相减,得到两帧图像亮度差的绝对值,在环境亮度变化不大的情况下,如果对应像素值相差很小,则认为此处景物是静止的,如果图像区域某处的像素值变化很大,可认为这是由于图像中运动物体引起的。例如,在序列图像中,第k帧图像fk(x,y)和第k+1帧图像fk+1(x,y)之间的变化可用二值差分图像D(x,y)表示:
直接基于图像帧亮度或灰度的帧差算法,算法实现简单,程序复杂度低;对光线等场景变化不太敏感,能适应各种动态环境,稳定性较好,但具有以下缺点:
要求背景绝对静止或基本无变化(噪声较小),因而适用场合有限。
快速运动的物体,需要选择较小的时间间隔,如果选择不合适,当物体在前后两帧中没有重叠时,会被检测为两个分开的物体。
对慢速运动的物体,应该选择较大的时间差,如果时间选择不适当,当物体在前后两帧中几乎完全重叠时,则检测不到物体。
造成以上问题的主要原因是由于帧差法仅依据图像的全局亮度为特征进行帧间相似度的阈值计算,而图像的全局亮度不仅包含了图像前景,同时也包含了背景的亮度信息,易受噪声干扰,且将前景和背景灰度信息同时用于帧间差分的运算对前景目标变化的检测将带来很大的不确定性,这种不确定性与帧差时间、运动目标的速度、遮挡、变形均有关系。帧差算法的实质是两幅连续图像基于亮度的帧间相似度阈值分析。基于此思想,本系统所采用的目标检测算法采用两幅图像基于前景特征的帧间相似度分析,在连续图像中提取前景特征并设计度量参数进行帧间相似度的阈值检测,由于这种方法基于图像前景的特征提取和相似度分析,相对于基于图像全局亮度的帧差算法具有更强的容错性,且本系统仅涉及有无运动目标的检测,不涉及目标的跟踪,所以该算法对背景的变化具有较好的适应性和稳定性,利于长期检测。
所述图像的颜色直方图的数学模型包括:
其中:
所述N表示图像像素数;
hA,B,C(a,b,c)表示前景图像的m×n像素中所包含三基色m×n×3的三维矩阵。
如图3所示,由于基于图像颜色的相似度分析,运动目标的图像序列在RGB颜色空间中R、G、B三个分量产生变化。因此,图像颜色的变化可作为监控区域是否存在运动目标的重要依据之一。可根据三个分量的统计直方图对图像前景各种颜色所占的成份比例进行统计分析,并对多幅图像的颜色分析结果进行对比,得到图像的颜色相似度参数,并根据阈值设定判断是否存在运动变化的目标
如图3所示,RGB颜色空间,RGB颜色空间是大多数彩色图像显示器与彩色图像传感器所采用的色彩表达与存储方式,它由“红、绿、蓝”三基色为基本色,不同颜色由三基色按照不同比例混合形成。
由于基于彩色图像直方图的图像颜色分析,图像的颜色直方图表示为:
hA,B,C(a,b,c)=N·Prob(A=a,B=b,C=c)
其中:A、B、C在RGB空间中分别表示所有像素中三基色所占的比例。N表示图像像素数。所得到RGB图像(又称真彩色图像)是以m×n×3的3D矩阵的方式存储,分别定义了m×n图像的每个像素中所包含三基色各自的强度。因此RGB直方是对“色阶-像素数”的归一化统计结果。
两幅彩色图像的直方图统计结果,可认为是矢量。比较两幅图像的颜色相似度,可转化为对矢量空间中两个点空间距离的计算。
如图4、5所示,实验中,连续80帧图像的帧间RGB相似度计算结果,从图5的对比可以看出,静止图像及时考虑随机噪声的影响,连续帧间基于RGB直方图的相似度距离存在较大的相关性(图中虚线),而在存在运动目标的情况下连续帧间基于RGB直方图的相似度距离明显大于静止图像的情况(图中实线),算法对图像中目标的运动敏感性较好,可用于运动目标是否存在的检测。
所述空间距离计算数学模型包括欧几里德距离数学模型、交集距离数学模型以及二次型距离数学模型;
所述欧几里德距离数学模型包括:
d2(h,g)=∑∑∑(h(a,b,c)-g(a,b,c))2;
其中:
所述h和g分别代表两幅图像的颜色直方图;
所述交集距离数学模型包括:
∑∑∑min(h(a,b,c),g(a,b,c));
其中:
所述|h|,|g|分别代表两幅图像的颜色直方图的模;
所述二次型距离数学模型包括:
d(h,g)=(h-g)tA(h-g);
其中:
所述A表示h和g的互相关矩阵;
距离包含以下三种常用定义:
欧几里德距离(euclidean distance)
其中:h和g分别代表两幅图像的颜色直方图。
交集距离(intersection distance)
其中:|h|,|g|为矢量的模。交集距离所需计算量较小,可减小背景颜色对图像匹配的影响。二次型距离(quadratic(cross)distance)
d(h,g)=(h-g)tA(h-g)
其中:A为h和g的互相关矩阵。二次型距离较适合人类视觉。
所述前景像素面积差处理模块的处理包括如下步骤:
S1.基于像素总数计算模型计算像素总数;
所述像素总数计算模型包括:
所述m表示灰度级别;
所述i表示像素个数;
S2.基于概率计算数学模型计算各灰度级在图像中出现的概率;
S3.将各级灰度根据参数T分成两组,包括:
C0={1~T} C1={T+1~m};
S4.计算C0组,C1组各灰度级出现的总概率,包括:
S5.C0,C1概率的平均值,包括:
S6.计算各灰度级的概率凭据值,包括:
S7.计算两组之间的方差,包括:
由于基于区域面积的相似度分析,运动目标的存在反映在图像序列上会造成前景像素面积的变化。因此,对序列图像前景像素面积的检测也是判断运动目标是否存在的重要依据之一。通过阈值分割对连续图像提取前景进行像素面积的计算,计算连续前景像素面积差,通过面积差阈值设定判断是否存在运动目标。
前景目标的提取:利用最大类间方差(OTSU)对灰度图像进行自适应阈值分割,实现目标的提取。它是按图像的灰度特性,将图像分成背景和目标两部分。背景和目标之间的类间方差大,说明构成图像的这两部分的差别越大.当部分目标错分为背景或部分背景错分为目标都会导致图像这两部分差别变小。因此,使类间方差最大的分割意味着错分概率最小。设所得到的灰度图像,有m级灰度,且灰度值为i的像素个数为ni。计算步骤如下:
像素总数:
各灰度级在图像中出现的概率:
将各级灰度根据参数T分成两组:C0={1~T} C1={T+1~m}
C0组,C1组各灰度级出现的总概率:
C0,C1概率的平均值:
其中:各灰度级的概率凭据值
图像整体灰度点采样的平均值为μ=ω0μ0+ω1μ1
两组之间的方差
上式称为阈值选择函数,从1~m改变T的值,上式最大时T的取值就是阈值计算结果。OTSU方法的优点是:不论图像的直方图有无明显的双峰,都能得到较为满意的结果,是图像分割中阈值自动选择的最优方法。
如图6、7所示,根据二值图像编写函数直接计算二值图像所包含灰度值为255的像素个数,实验中,连续图像的阈值分割及前景像素面积计算,图7放映了图像前景二值化提取的效果,以及在连续图像中图像前景像素面积变化的趋势,趋势图由140帧左右的连续图像计算得到,根据趋势图可看到在前15帧图像像素面积有较大的变化,也就是说当前景目标开始变化时算法有较为敏感的反映,算法对图像前景的初始变化较为敏感,符合运动目标的检测要求。
所述客户端包括播放服务模块;
所述播放服务模块用于接收并抓取服务器端发送的图片帧,接收的图片帧经解码用于显示和保存。
由于PC客户端软件基于开源Spcaview软件进行改写,该软件底层由多媒体开发包SDL(SimpleDirectMedia Layer)支持,通过改写实现以下功能:
播放服务端软件servfox采集的视频图像,调用spacclient()函数。
调用Encoder编码器将多幅JPEG格式的图像合成为AVI视频流,进行视频历史回放,调用spacplay()函数。
自动定时获取一帧图片,并保存在指定目录中,调用spacgrab()函数。
实现上述功能的关键步骤是:
main函数调用spcaclient()、spcaGrab()、spcaPlay()。
Spcaview创建多线程,通过pthread函数来创建多个子线程,实现一帧图片的抓取、解码,显示、保存的并行工作
spcaClient()通过socket程序接收serfox发送过来的图像数据,然后jpeg解码。
spcagrab()的功能抓取并显示图像。
所述视频流采集模块用于采集视频终端的前端视频数据,判断前端视频数据是否采集完成,若完成,则关闭视频终端,否则转入采集视频终端的前端视频数据。
如图10所示,由于Linux系统中Video4Linux函数库为视频应用程序提供了一套统一的API函数集,视频应用程序通过标准的系统调用即可操作视频捕获设备。Video4Linux向虚拟文件系统注册视频设备文件,应用程序通过操作视频设备文件实现对视频设备的访问,在此采用USB摄像头设备文件/dev/v41/video0为操作对象。
如图11所示,为了对ZC301USB摄像头所采集的图像进行处理,需对图像帧进行缓存,采取对Frame Buffer操作进行图像暂存和处理。FrameBuffer是linux2.2xx内核当中的一种驱动程序接口,可将它看成是显示内存的一个映像,将其映射到图像处理进程的地址空间,则图像处理进程可对之直接进行读写操作以获得帧图像。ZC301USB摄像头将从FrameBuffer读出的图像存放在本地文件夹,即连续地从摄像头采集到图片存储在/tmp/1.jpg和/tmp/2.jpg,然后调用帧差处理算法处理帧图像,并在程序中设定计时器,每隔100ms刷新一次报警状态标志供图像报警进程查询。
所述网络视频传输模块用于将帧差图像处理数据发送至客户端。
如图12所示,基于Servfox的嵌入式视频终端的网络视频传输。
基于服务端嵌入式硬件,视频采集端软件的实现主要包含以下功能模块模块:ZC301USB摄像头驱动加载、基于Video4Linux的视频采集、帧差图像算法的实现、ZC301USB摄像头视频发送程序、ZC301USB摄像头驱动加载、Linux内核里有OV511USB芯片的摄像头驱动程序,市场上应用最广泛的USB摄像头是中星微公司生产的ZC301USB芯片的摄像头,对于ZC301USB摄像头芯片的驱动,在linux内核原有驱动程序基础上添加linux2.6.12的USB摄像驱动补丁:具体操作步骤:1)把linux2.6.12的USB摄像驱动补丁放到/kemel/river/usb目录下,解压缩,运行命令patch-pl<USB.2.6.12.patch,在该目录下生成spca5xx文件夹。编译内核,在此采用静态加载模式2)运行命令make menuconfig,静态加载USB SPCA5XXSunplus/Vimicro/Sonix jpegcamera选项3)依次运稼命令Make、make zlmage和makemodules完成静态加载,USB摄像头驱动程序加载成功后,可以根据Linux提供的Vide04Linux的API函数编写视频采集程序。
所述分布式网络视觉监控系统的硬件系统采用核心CPU板和接口板组合的形式。
所述分布式网络视觉监控系统还包括自动报警处理模块。
如图8、9所示,由于模拟监控系统一般设置监控中心,由矩阵系统和电视墙构成,监控系统一般层次划分为现监控现场、智能管理终端、一级管理中心、二级管理中心等复杂的系统结构。本系统采用分布式接入方案,每个前端设备和后端终端设备,从物理上讲都是平等的,如果不考虑人为划分访问权限,所有监控点的设备都是即插即用的,系统扁平化,远程管理中间环节的消除,网络结构简单,保证了系统故障率的降低。
现有的数字化监控系统往往是由一个大型管理软件平台担负所有重要任务,例如对前端图像浏览,存储分配,数据转发,控制视频解码器到电视墙,都是由某个计算机终端完成。由于大型管理软件的复杂程度和成本,用户不可能购置多个高配置的终端和多套软件进行管理的冗余备份,系统显得较为脆弱。此外中心管理软件的运算量较大,在图像浏览和存储数据分配时,视频管理服务器的硬件承担着繁重的负担,加上操作系统本身的可靠性问题,任何一个微小的问题都会诱发整个系统的瘫痪。而本系统由前端嵌入式监控终端承担图像采集、编码压缩、图像处理,后端PC仅执行视频浏览及报警信息显示的功能,系统将后端的PC监控与前端图像采集处理分离开来,将智能图像处理算法在前端嵌入式设备上实现,如存在更求的模式识别也可在后端计算机平台上完成,淡化监控中心概念,防止中心发生致命故障,提高防破坏能力,降低运行风险,可提高系统的容错能力和稳定性。
采用开放源码的ucLinux和RedHat Linux为系统操作系统平台,软件系统具有较强的可扩展性和可维护性。
嵌入式硬件系统采用核心CPU板和接口板形式,硬件接口易于扩展,核心板可互换。
采用图像直方图相似度和前景像素面积作为特征参数进行帧间差分计算,进行阈值检测,算法对运动目标的存在较为敏感。
由嵌入式系统承担帧差算法,系统具有一定的分布计算能力。
智能视觉监控的研究一直是近年来国内外研究的热点,如对车辆和行人的跟踪及其交互作用识别、人脸识别、手势识别、目标跟踪等,国内中科院北京自动化研究所研制的基于扩展卡尔曼滤波器的交通场景的视觉监控本、基于步态的远距离身份识别等。目前国内外研究的重点多在于对模式识别算法本身的研究,由于一般的模式识别算法本身具有计算密集型的特点,在单个摄像头配合高性能计算机的情况下,能够得到较好的智能处理结果,但一般的视频监控系统的应用场合为多点大范围的监控应用,网络化的视频采集所带来的大量视频数据带来的计算负荷将导致成熟的模式识别算法无法应用于多点网络化的视频监控,此瓶颈问题在目前的研究中尚未得到充分的重视。
解决这一问题的有效方法之一就是将采用分布式的视频采集和分布式的数据处理相结合,而具备一定计算能力的嵌入式系统由于其接口资源丰富、具备操作系统的多任务支持、算法编写规范等优点,是解决这一问题的优选平台,本发明所做的工作以此为出发点。
本发明的具体技术效果还包括:
分布式网络视频采集:
硬件系统采用核心CPU板和接口板组合的形式,同系列CPU板可互换,接口板可定制,节约了系统资源、降低了系统成本、提高了系统维护能力。分布式图像处理计算:
由嵌入式系统进行图像特征的提取和帧差相似度计算识别运动目标,分散了后端监控PC的数据处理负担。
图像特征的提取与运动目标基于特征间相似度比对的检测:
一方面考虑到嵌入式系统计算能力有限,不适合应用复杂模式识别算法,另一方面基于图像灰度或亮度的帧差算法虽然计算过程简单,但对运动目标的识别效果不佳,实验中将基于图像RGB/HSV颜色模型以及图像前景像素面积的相似度比对和帧差算法相结合,实验表明该算法本身对运动目标的存在与否较为敏感,且算法复杂度不高,可在嵌入式系统上实现,且随着嵌入式系统CPU主频的提高将更利于算法的硬件式实现。
本发明解决了现有技术存在由于应用环境对系统的体积、成本、功耗、处理能力都有特殊的要求,而如何在保证识别跟踪效率的同时,提高嵌入式视觉系统的实时性,是其走向应用的关键问题,具有提高了视频监控在实时发现异常行为且及时传输报警信息方面的能力、极大节约人力成本,也将产生良好的经济社会效益、提高了安防监控的效率的有益技术效果。
利用本发明的技术方案,或本领域的技术人员在本发明技术方案的启发下,设计出类似的技术方案,而达到上述技术效果的,均是落入本发明的保护范围。