第三章 运动检测
视频图像中运动物体分析关键的一步就是从连续的视频图像中提取出运动目标,即运动目标检测。运动检测是指在指定区域能识别图像的变化,检测运动物体的存在并避免由光线变化带来的干扰。但是如何从实时的序列图像中将变化区域从背景图像中提取出来,还要考虑运动区域的有效分割对于目标分类、跟踪等后期处理是非常重要的,因为以后的处理过程仅仅考虑图像中对应于运动区域的像素。然而,由于背景图像的动态变化,如天气、光照、影子及混乱干扰等的影响,使得运动检测成为一项相当困难的工作。
通过对本系统的使用,可以了解图形图像处理的一些基本手段和方法,如细化、膨胀、灰度化、二值化、平滑、边缘提取等[4]。同时可以了解物体跟踪的实现算法,即背景图像差分法、时态差分法和光流法:等,可以将这些技术用在各种视频监控系统中[8]。
3.1 功能特点:
? 系统能够自动提取背景; ? 物体的识别准确率大于95%; ? 每张图片的处理时间不大于3s; ? 对图片噪声具有较强的适应性; ? 系统能够长时间无故障运行; ? 系统的操作简单。 ? 界面友好,简单易用
3..2 界面功能使用流程图
图3.2 界面功能流程图
3.3运动检测方法
早期的运动检测如MPEG1是对编码后产生的,帧进行比较分析,通过视频帧的比较来检测图像变化是一种可行的途径。原理如下:
MPEG1视频流由三类编码帧组成,它们分别是:关键帧(I帧),预测帧(P帧)和内插双向帧(B帧)。I帧JPEG标准编码,独立于其他编码帧,它是MPEGI 视频流中唯一可存取的帧,每12帧出现一次。截取连续的I帧,经过解码运算,以帧为单位连续存放在内存的缓冲区中,再利用函数在缓冲区中将连续的两帧转化为位图形式,存放在另外的内存空间以作比较之用,至于比较的方法有多种。此方法是对编码后的数据进行处理,而目前的MPEG1 /MPEG4编码都是有损压缩,对比原有的图像肯定存在误报和不准确的现象[9]。
目前运动目标检测方法有3种: 帧差法、减背景法和光流法
3.3.1光流法
光流是空间运动物体被观测面上的像素点运动产生的瞬时速度场,包含了物体3D表面结构和动态行为的重要信息错误!未找到引用源。。一般情况下,光流由相机运动、场景中目标运动,或两者的运动产生。当场景中有独立的运动目标时,通过光流分析可以确定运动目标的数目、运动速度、目标距离和目标的表面结构。对于光流的研究已经在环境建模、目标检测与跟踪、自动导航及视频事件分析中得到了广泛的应用错误!未找到引用源。错误!未找到引用源。。
在空间中,运动可以用运动场描述。而在一个图像平面上,物体的运动往往是通过图像序列中不同图象灰度分布的不同体现的。从而,空间中的运动场转移到图像上就表示为光流场,光流场反映了图像上每一点灰度的变化趋势。光流可以看作带有灰度的像素点在图像平面运动产生的瞬时速度场。
光流方程推导:假设E(x,y,t)为(x,y)点在时刻t的灰度。设t+dt时刻该点运动到(x+dx,y+dy)点,他的灰度为E(x?dx,y?dy,t?dt)。我们认为,由于对应同一个点,所以
E(x,y,t)?E(x?dx,y?dy,t?dt) (2-1)
将上面光流约束方程式右边做泰勒展开,并令dt->0,则得到:Exu?Eyv?Et?0,其中: Ex?dE/dx Ey?dE/dy Et?dE/dt u?dx/dt v?dy/dt
上面的Ex,Ey,Et的计算都很简单,用离散的差分代替导数就可以了。光流法的主要任务就是通过求解光流约束方程求出u,v。但是由于只有一个方程,所以这是个病态问题。故而
人们提出了各种其他的约束方程以联立求解。但是当用于摄像机固定的这一特定情况,问题可以大大简化。
在摄像机固定的情形下,运动物体的检测其实就是分离前景和背景的问题。对于背景理想情况下,其光流应当为0,只有前景才有光流。并不需要通过求解光流约束方程求出u,v。只要求出亮度梯度方向的速率就可以了,即求出u2?v2。而由光流约束方程可以很容易求得梯度方向的光流速度为:
V?Et/因此设定一个阈值T。
[9]
?Ex???Ey?22 (2-2)
(x,y)是前景?V(x,y)?T , (2-3) ?(x,y)是背景?V(x,y)?T ,光流计算方法大致可分为三类:基于匹配的、频域的或梯度的方法。
基于匹配的光流计算方法包括基于特征和区域的两种。基于特征的方法不断地对目标主要特征进行定位和跟踪,对目标大的运动和亮度变化具有鲁棒性。存在的问题是光流通常很稀疏,而且特征提取和精确匹配也十分困难。基于区域的方法先对类似的区域进行定位,然后通过相似区域的位移计算光流。这种方法在视频编码中得到了广泛的应用。然而,它计算的光流仍不稠密。另外,这两种方法估计像素精度的光流也较困难,计算量很大。在考虑光流精度和稠密性时,基于匹配的方法不如基于频域和梯度的方法。
基于频域的方法利用速度可调的滤波组输出的频率或相位信息。虽然能获得很高精度的初始光流估计,但往往涉及复杂的计算。另外,进行可靠性评价也十分困难错误!未找到引用源。。
基于梯度的方法利用图像序列的时空微分计算2D速度场(光流)。由于计算简单和较好的实验结果,基于梯度的方法得到了广泛研究。虽然很多基于梯度的光流估计方法取得了较好的光流估计,但由于在计算光流时涉及到可调参数的人工选取、可靠性评价因子的选择困难,以及预处理对光流计算结果的影响,在应用光流对目标进行实时检测与自动跟踪时仍存在很多问题错误!未找到引用源。。
光流法就是利用图像灰度在时间上的变化与景象中物体的结果和运动的关系,进行运动物体的检测,光流法的计算结果通常误差较大,分割结果的精确性依赖于估算的光流场的精确性,且计算复杂,如果没有硬件帮助的话,很难满足系统实时性的要求。 P.Bouthem
错误!
未找到引用源。
和 D.Murray
错误!未找到引用源。
等人采用了这种分析手段分割运动,
3.3.2帧差法
帧间差分法
错误!未找到引用源。
是以直接比较图像序列相邻对应像素点发生的相对变化为基础
进行运动目标检测的方法,可分为相邻两帧图像差分和连续三帧差分。在最简单的形式下,连续两相邻帧间采用基于像素的差分并且阈值化来提取图像中的运动区域。第t帧图像
f(x,y,t)与第t-1帧图像f(x,y,t?1)进行差分,得到差分后的二值图像 ,如下公式:
??1, iff(x,y,t)?f(x,y,t?1)?T fd(x,y,t,t?1)?? (2-4)
0, else??其中T是差分阈值,得到的二值图像中像素为1的区域被认为是运动目标区域[10]。
帧间差分易于实时监控、算法简单,如果相邻帧的时间间隔较短,该方法对场景光线的变化不太敏感,受目标阴影的影响也不大,因此这种方法具有很强的自适应性,无需获得背景图像,但是对做差分的连续帧的选择时机要求较高,而且有赖于运动物体的运动速度,如果运动速度较快,而选取的时间间隔过大,就会造成两帧之间无覆盖区域,从而无法分割出运动物体,而如果运动速度过慢,而选取的时间过小,则造成过度覆盖,最坏的情况就是物体几乎完全重叠,根本就检测不到物体。一种改进的方法是利用三帧差分代替,如VSAM开发了一种自适应背景减除与三帧差分相结合的混合算法,它能够快速有效地从背景中检测出运动目标;另一种改进方法是采用后处理的方法如形态滤波、区域连通或参数模型等方法提取完整的运动目标信息。帧间差分运动检测方法对于动态环境具有较强的自适应性,但一般不能完全提取出所有相关的特征像素点,在运动实体内部容易产生空洞现象,一直都没有很好的解决方法。
3.1.3 减背景法
目前,很多文献都采用减背景( background subtraction)思想来开展监控视频运动目标检测方法的研究,即将每个输入视频帧和一张背景图像相比较,如果同位置的像素特征、像素区域特征或其他特征存在一定程度的差别,则新视频帧中这些位置的像素点或像素区域就构成前景运动目标区域。若对这些前景像素点作进一步处理,即可得到运动目标位置、大小、形状等信息,以便进行目标跟踪和视频内容理解。
减背景的基本思想是用当前帧与背景帧进行差分,如果背景模型选取适当,能比较准确
的分割出运动物体。假设第t帧为当前帧,记为ft,背景图像为fbt
?ft(x,y)?ft(x,y)?fbt(x,y) (2-5)
其中?ft(x,y)为差分后的图像。
虽然已经有很多文献涉及到减背景算法,但是它们实现运动目标检测的过程大多遵循图2-1所示的流程,其中主要包含预处理、背景建模、前景检测和运动区域后处理四个步骤:
(1)预处理是对视频数据进行简单的空间或时间滤波,以消除摄像机噪声和雨雪等瞬时环境噪声,或者降低帧大小和帧率。如果发生摄像机抖动或在多摄像机的情况下,则在背景建模前还需要对获取的连续视频帧或由不同摄像机获取的视频进行图像综合。
预处理的另一个关键问题是将数据转换成适应特定减背景算法的格式。虽然以前大多数算法处理的都是像素的亮度,但越来越多的算法开始考虑颜色特征,并认为颜色比亮度更能确定低对比度区域中的目标,也能更好地抑制运动目标自身的阴影。
(2)背景建模就是构建背景图像或通过构建某种模型来表示背景,这是各种背景算法
的核心所在。
(3)前景检测,也就是阈值分割,利用当前视频帧与背景模型的差异来检测出运动区
域参考像素。不同的背景建模方法有不同的阈值分割规则,可以根据像素的亮度、颜色差异、分布密度,或者综合考虑多种因素。
(4)后处理就是去除不属于真实运动目标的参考像素,消除小而假的前景像素,以便
得到真正的前景运动目标。
该研究内容的主要流程图图3-3-3如下:
视频帧 去噪平滑等预处理 背景建模 背景实时更新 前景检测 运动目标区域 后处理