织梦CMS - 轻松建站从此开始!

罗索实验室

当前位置: 主页 > 流媒体开发 > 技术方案 >

智能视频监控关键技术

落鹤生 发布于 2012-11-09 09:59 点击:次 
在视觉和人脑的配合下,人类可以实现对极为复杂的运动目标的识别、精 确定位与跟踪。计算机视觉就是用各种成像系统代替视觉器官作为输入敏感手段,由计算机完成人类大脑所完成的处理和解释任务,它的最终研究目标就是使计算机 能象人一样通过视觉观察和理解世界,具有自
TAG:

智能视频监控技术能够可靠地、有效地完成对重要场所的监视保护任务,从而备受人们的关注。智能视频监控系统在银行、交通、军事、商业等部门都得到了 非常广泛的应用。随着计算机技术、硬件技术与通信技术的飞速发展,视频监控技术也得到了不断地发展。智能视频监控系统中的运动目标检测与跟踪为智能监控的 进一步的分析工作提供了数据支撑。人类获取的各种信息中有大约80%是来自于视觉的。在视觉和人脑的配合下,人类可以实现对极为复杂的运动目标的识别、精 确定位与跟踪。计算机视觉就是用各种成像系统代替视觉器官作为输入敏感手段,由计算机完成人类大脑所完成的处理和解释任务,它的最终研究目标就是使计算机 能象人一样通过视觉观察和理解世界,具有自主适应环境的能力。

作为计算机视觉研究的一个重要方面,智能视频监控以及运动目标检测与跟踪已经成为模式识别、图像处理、计算机视觉等领域的重要课题。智能视频监 控在不需要人为干预的情况下,利用计算机视觉和视频分析的方法对摄像机拍录的图像序列进行自动分析,实现动态场景中的目标的检测、识别和跟踪,并在此基础 上分析和判断目标的行为。传统的视频监控系统由连接到一套电视监视器上的一个或多个摄像机组成,分布在场景中的摄像头采集到的图像数据送入监控室,再通过 人工参与监控的方式来进行监控,在有异常情况发生的时候人工报警。这种方法利用了人眼强大的视觉能力和人脑强大的行为识别和分析能力,能够对场景里异常情 况的发生做出精确的判断。但是这种人工监控的方式也存在着明显的缺陷。它需要全天二十四小时的人工监控,这不仅需要投入大量的人力和财力,对于监控人员也 是一个很大地挑战。由于工作的单调枯燥,监控人员很难避免由于疲劳引起的“漏警”现象的发生。而当今社会日益流行的智能视频监控系统能够弥补传统视频监控 的这一缺陷。它利用计算机来分析采集到的视频数据,监视场景里是否存在异常情况,核心就是利用运动目标的检测与跟踪技术提取出运动目标并跟踪其轨迹,再根 据具体的场合应用人工设置的一些场景规则,对目标进行相关的行为分析,达到无人值守智能监控的目的,可以减少人员参与,提高工作效率。智能视频监控技术通 常包括运动检测、目标分类和识别、目标跟踪以及行为理解与描述几个部分。其中运动检测和目标分类识别属于低级处理部分,目标跟踪属于中级处理部分,而行为 理解和描述则属于高级处理部分。在智能视频监控系统中,运动目标的检测和跟踪是目标行为理解的前提,其性能直接影响监控系统的有效性,是智能视频监控系统 的关键组成部分。

在本方法实现静止平台下智能视频监控主要划分为以下几个步骤:背景建模与运动目标检测;运动目标分类与跟踪。

  1 监控场景背景建模

  1.1 背景建模算法

  从图像序列中分割出运动区域是许多计算机视觉系统的关键的第一步,运动区域能否准确地分割出来决定了运动检测结果的好坏,直接关系到后续的运动 目标识别及跟踪,并影响系统的性能和实用性。在许多场合下,采集图像数据的监控摄像机一般固定某处不动,针对这种静止成像平台下的应用场景,目前主要有三 类运动检测的方法:时间差分法(又称序列帧间差分)、背景建模法(又称背景相减)和光流场法。光流场由于算法复杂度高,实现难度大,若没有专门的硬件辅助 实现难以应用于实时应用场合。这里主要介绍时间差分法和背景相减法。

  目前常用的运动目标检测技术分为以下三类[6][7]:

  1)帧间差分法:利用视频序列中相邻的帧的图像具有连续性的特性,通过计算连续图像序列中的两个或三个相邻帧间的基于像素的时间差分,并且阈值化来提取运动区域的一种方法。

  2)背景差分法:用当前的帧和背景图像做差分来检测场景中的运动目标的。背景图像是预存的,它可以根据场景的变化不断地进行更新,也是背景差分法的主要影响因素。

  3)光流法:利用运动目标随着时间变化的光流特征,通过计算光流来检测运动。

  这三类运动目标检测技术都存在着各自的优缺点。这三类技术的比较如表 2-1所示。帧间差分法的算法复杂度较低,易于实现,而且运算量小。但是它一般不能完全提取出所有相关的特征像素点,在运动实体内部容易产生空洞现象。这 会影响到后续的跟踪以及行为分析等的有效性和正确性。

  背景差分法能够提取出比较完整的运动目标的区域信息。对于室内的场景检测,检测算法相对户外来说容易设计。对于户外的场景,受影响因素较多,如 天气变化,太阳光照变化及场景中某些背景的干扰(摇曳的树,池塘表面的水波纹,飘扬的旗帜),要排除这些背景干扰准确检测出场景中的有效运动还是比较复杂 的。背景差分中背景模型的建立和更新影响着算法的准确性。

  光流法能够检测出独立运动的对象,不需要预先知道场景的任何信息,而且在摄像机运动的情况下也可以检测出运动目标。但是大多数的光流法计算过程相当复杂,抗噪性能差。如果没有特别的硬件支持是不能被应用到实时处理中的。

  

  表 1-1 运动目标检测技术比较

  场景中目标的运动势必会在时间轴上使图像数据发生变化,显然我们可以通过检测这种时间上的变化来分析出场景中的运动。原理如下图2-1,虽然时间差分算法简单,也有一些监控场合使用多帧时间差分方法做运动检测。

  
图2-1  时间差分法原理

  时间差分法可以选择间隔一帧或多帧图像做图像差分,以相邻两帧做差分为例。设t-1时刻收到的图像为,t时刻收到的图像为,则定义差分图像为:

  利用图像分割技术选取合适的门限T,对差分图像进行图像二值化分割处理得到运动前景像素:

  由以上过程可知,时间差分法只需要两幅不同时刻的图像在每个像素点进行简单的像素值相减和判决操作,其复杂度是很低的,而且易于实现,运算量 小,速度快,在性能较差的硬件平台也能达到较高的处理效率。此外由于时间差分法做差分的两幅图像时间间隔很短,差分图像受光照条件的影响小,也能够在一定 程度上适应动态变化的场景。时间差分法缺点也很明显,它无法完整提取出运动区域,只能检测出运动区域周围的轮廓,当目标运动速度较慢时,如果选取间隔帧数 太小,甚至有可能无法检测出目标运动。

  背景建模法又称背景相减法,即利用当前收到的帧图像与预存的一副背景参考图像做差分来检测场景中运动目标的技术。这类方法的核心是如何建立背景模型以及选择背景模型的随着时间变化的更新策略。算法原理如下图2-2所示:

  
图2-2  背景相减法原理

  通过计算出当前收到的帧图像与参考背景图像的差,再对差分图像进行二值分割操作得到场景的运动像素:

背景建模法能够提取出比较完整的运动目标的区域信息,对于复杂的户外场景,由于存在光照等各种外部条件的变化,构造出好的自适应场景变化的背景模型对运动目标的精确提取至关重要。

  对于室内的运动目标检测,因为场景的环境变化较小,影响因素少,检测算法相对户外来说易于设计一些。对于户外的场景,受影响因素较多,如一年四 季天气变化,一天中太阳光照变化及场景中某些多模态背景的干扰(摇曳的树,池塘表面的水波纹,飘扬的旗帜),要排除这些干扰背景准确检测出场景中的有效运 动还是比较复杂的。目前大部分实现的监控系统都使用了背景建模的算法来分割运动区域,并通过一些图像处理的技术对后期的检测结果图像进行处理,提取出场景 中我们感兴趣的目标。目前常用的背景建模算法有高斯混合模型[7](Gaussian Mixture Model)和码书模型(CodeBook Model)等。本章重点研究了混合高斯背景建模算法。

  1.2 混合高斯背景建模

  在静止成像平台下,背景建模(背景相减)是运动目标检测最常用的方法。背景相减法的核心在于生成一副场景的参考图像,并能自动更新。

  Stauffer等[7]提出的混合高斯模型作为一种像素级建模的算法,能够适应背景重复性运动和照明缓慢变化,取得了较大的成功。我们本节看一下混合高斯背景建模的基本原理。

  混合高斯模型算法对场景中每个像素点值的分布维护了一个概率密度函数,将场景中每个特定的像素点的值用若干个(一般取3~5个)高斯分布去拟 合,每个高斯分布具有自己的权重,因此它能处理多模态背景分布的情况。另一方面,混合高斯模型是参数化的,模型的参数会自适应更新,而且不用缓存过去的视 频帧。在算法处理的过程中,随着新图像的到来,我们去更新每个像素点各个高斯分布的权重、均值和方差。

  在时刻t,某特定像素点像素值为的概率是:

  这里K代表我们取的分布的个数,它由我们硬件计算能力和可用的内存决定,取值小运算量小计算速度快,但难以去拟合背景的多模分布;取值大则计算耗时太大。目前,现有的系统大都取值为3~5。是在时刻t第n个高斯模型分量的权重,是高斯概率密度函数:

  这里和是t时刻第n个高斯模型分量的均值和方差。

  在线估计中,每个新到来的像素值与它对应的K个高斯分布去匹配。如果在某个分布的倍的标准差内,即:

  我们认为匹配上了该分布。我们称为偏差系数。对匹配上的模型分量,它的参数按以下等式更新:

  这里和分别是模型分量权重学习率和模型参数学习率,由用户定义。

  如果当前新到来的像素值和该像素点的任何一个高斯模型分量都未匹配上,我们将以当前观测值为均值,给定一个较大值为初始方差和一个初始较低的权 重来构造一个新的模型来替换当前置信度(定义为)最低的模型分量。剩余的模型分量保持原来的均值方差不变,但它们的权重按以下等式衰减:

  为了确定是否为前景运动像素,我们先按照模型置信度()对该像素点的K个高斯模型分量进行排序,排序靠前的分量有较低的方差和较高的权重,它们能很好地反映背景的特性。我们选取前面的B个分布作为背景模型,B的取值满足以下准则:

  这里T是背景的度量比例阈值,根据场景情况具体调整,一般取值0.7左右。如果匹配上这B个分布中任何一个分布,我们认为当前为背景像素,否则为前景运动像素。以上的原理很容易就可以扩展到处理多通道图像数据。

  

图1-1背景训练过程(混合高斯算法)

  1.3 目标前景二值图像形态学处理

  经过前面的运动检测与阴影抑制,我们可以得到一副前景二值图像。因为视频图像的噪声和轻微抖动无法避免,而且混合高斯背景建模算法作为一种像素 级的算法,目标与背景之间颜色和灰度相似的情况也时有发生,最后得到的二值图像里前景区域不一定是完整的运动对象,往往有许多孤立的噪声白点、孤立的小区 域和小间隙。因此必须对前景图像进行后处理,消除噪声并连接空洞,便于后期通过标记统计目标参数。

  目前一般使用数学形态学的方法来处理前景图像。数学形态学有膨胀、腐蚀、开/闭运算四个基本操作。

  1.4.1  二值图像膨胀

  膨胀算符为,图像X与结构元素B膨胀定义如下:

  其中是结构元素B关于原点对称的映射。X被B膨胀的结果由所有位移x后并能击中图像X的所有像素点的集合构成,也就是说和A至少有一个像素是重叠的,示意图如图2-3:

  

图1-4 图像膨胀操作示意图

  上图中X是我们要处理的图像,B是结构元,又称刷子,是一副比较小的图像。对于任意一个在上图中阴影部分的点a, 击中X,所以X经过结构元B膨胀后的结果就是上图阴影部分,包括了原来X的所有范围以及X周围的一圈,这也是这一操作得名的原因。

  1.4.2  二值图像腐蚀

  腐蚀运算可以看做膨胀运算的对偶运算,运算符为,定义如下:

  腐蚀运算即结构单元B位移x后得到,若在X的范围之内,我们记下这个点x,所有满足上述条件的x点的集合构成了X被B腐蚀的结果,示意图如下图2-4:



图1-5 图像腐蚀操作示意图

  X是我们要处理的图像,B是结构元,可以看到对于任意一个在阴影部分的点x都有 包含于X,所以阴影部分就是X被B腐蚀的结果。阴影部分只是在X的范围之内的一个部分,就像X的周围被剥掉了一些,这也是腐蚀得名的原因。

  1.4.3  二值图像开操作

  开/闭运算其实是膨胀和腐蚀操作的组合[21]。将腐蚀和膨胀级联使用,给定目标图像X和结构元素B,X对B的开运算定义为:

(2.22)

  可以看到,开运算其实就是X被结构元素B先腐蚀后膨胀。开运算操作可以去除一些孤立的小点、毛刺和小桥,且不会影响区域总的位置和形状。如下图 2-5是我们对一副运动检测后二值前景图像进行形态学开运算处理的效果,右边图像为左边图像开操作处理后得到的图像。可以看到左边图像中间的一个孤立的小 斑点,运算后得到了去除,但图像下方人的前景掩码经过操作后头部也丢失了。

 

图1-6 前景图像开操作示意图

  1.4.4  二值图像闭操作

  如果X被结构元素B先膨胀,然后再腐蚀,这个运算就称为X对B的闭运算,用表示:

  闭运算能够填平前景区域小孔,对较小的裂缝也能有效弥合。如下图2-6所示,可以看到左边图像里两个靠得比较近的人的前景掩码,经过闭运算操作后就完全连接在一起成了一个区域,如右图所示。



图1-7 前景图像闭操作示意图

  2 运动目标跟踪

  在前面通过目标检测在序列图像中分割出属于运动目标的图像区域,接下来需要对运动目标进行跟踪。目标跟踪就是在序列图像不同时刻检测到的目标之 间根据目标的某些特征在时间上建立起联系,通俗一点说就是跟踪上的目标在图像序列的不同帧里,始终赋予稳定一致的编号。目标跟踪在计算机视觉领域里是一个 充满挑战的问题。在视频分析领域,对多个目标跟踪的主要困难是在相邻两帧间建立起目标正确的关联关系,尤其是在复杂场景里多个相似目标之间存在遮挡、合并 分离等情况时,确定目标之间的正确对应关系变得很困难。

  2.1  多目标跟踪关联

  2.1.1  特征代价函数

  为了降低系统的复杂度,使系统具备实时处理性能。运动检测阶段得到的目标我们使用它们的外接矩形来表征。在跟踪阶段,相邻两帧的目标链间进行匹 配关联,建立匹配矩阵。这里我们采取了一种简单的特征融合代价函数来度量两个目标的相似性。经过运动检测、分割、形态学滤波去噪、标记等过程后,我们统计 各个检测到的团块的信息,可以得到团块的形心坐标,外接矩形区域。利用这些信息我们计算代价函数。

  2.1.2  跟踪流程

  (1)跟踪启动并整理已捕获目标链

  (1.1)如果当前帧号是第一帧,所有检测到的目标都被认为是新目标,设置一个初始的置信度。

  (1.2)如果不是第一帧,检查已捕获目标列表。对目标做线性滤波,预测其在当前帧的位置。目标的位置用其连通区域外接矩形中心表示,令为第i个目标在第K帧里的位置。

  (2)目标关联:这部分也是多目标跟踪的核心,我们建立了一个代价函数矩阵记录已捕获链中各个目标和当前帧检测目标链中各个目标的代价函数值, 同时建立一个关联矩阵确定目标最优的对应关系。对于捕获链中的第i个目标,我们能够在当前检测链中找到使得代价函数最小的检测目标j。同时进一步比较形心 距离和一个距离门限。

  (2.1)如果,我们认为当前检测到的第j个目标是已捕获链中第i个目标时间上的后续对应。增加第i个已捕获目标的置信度并更新它的特性参数。

  (2.2)如果,我们认为第i个已捕获目标没有在当前帧里找到时间上的后续对应。它的置信度会降低,如果它的位置已经接近了场景的边缘,我们认 为它已经走出了场景,将其从已捕获链表中移除。如果它置信度降低了后仍然较高,且它的位置在场景观测区中,我们仍然使用(1)中的线性滤波去预测它的下一 帧位置。

  (2.3)当前检测到的目标,若在已捕获目标链里未找到合适的关联目标,将其作为新目标添加进已捕获目标链表,并赋予一个初始的置信度。

  (3)按照(1)和(2)的过程处理下一帧视频直到图像序列结束。

  

图2-1 绿茵场上对球员跟踪

  2.2基于卡尔曼滤波的运动目标跟踪

  卡尔曼滤波是以最小均方误差作为估计的最佳准则,来寻找一套递推估计的算法,其基本实现是:采用信号与噪声的状态空间模型,利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值。卡尔曼滤波方法流程分为预测和更新两个部分。

  在运动目标跟踪中采用卡尔曼滤波的方法,就是要合适地运用卡尔曼滤波的预测和更新方程。在本系统中的卡尔曼滤波跟踪中,将目标块的状态用两个位置变量和,以及两个速度变量和表示。这四个变量组成状态向量的元素。认为目标块的运动为线性的,则传递矩阵和状态向量表示为:

  ,

  目标块测量向量只包括测量到的目标块的位置信息,也就是:

  得到了运动目标块以后,为运动目标块的状态向量、过程噪声、测量值和最重要的传递矩阵进行初始化,然后就可以按照卡尔曼滤波的预测和更新两个过程对运动目标块的运动进行跟踪了。

  在本算法中采用最近邻匹配法和卡尔曼滤波法相融合的方法来进行运动目标跟踪。由于最近邻匹配法依靠与前景检测的结果,在前景中存在噪声或者是前 景检测结果不佳的情况下无法对运动目标块进行准确的跟踪,可能会造成目标块丢失等情况的发生。在这种情况下可以采用基于卡尔曼滤波的方法,根据目标块的历 史记录信息来预测运动目标块可能存在的位置,从而进行跟踪。

  本算法的流程如下:

  1、对目标链中的目标块与候选链进行最近邻匹配法。若通过最近邻法,在候选链中找到了与此目标块相匹配的目标块,则进行2。否则,执行第3步。

  2、将相匹配的候选链中的块的位置信息当作目标链中此目标块在当前时刻的位置。若此目标块之前进行过卡尔曼滤波,则删除该目标块的卡尔曼滤波相关结构。

  3、对未找到匹配的运动目标块进行卡尔曼滤波。若此运动目标块之前进行了卡尔曼滤波没有超过阈值,则继续进行卡尔曼滤波。若此运动目标块之前没有进行过卡尔曼滤波则初始化该块的卡尔曼滤波参数,进行卡尔曼滤波。除此以外,执行第4步。

  4、若此运动目标块进行卡尔曼滤波次数超过了预设的阈值,还未通过最近邻法找到匹配块,则认为此块丢失。

(秩名)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www1.rosoo.net/a/201211/16357.html]
本文出处:深圳辉锐天眼科技有限公司 作者:秩名
顶一下
(2)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容