基于背景差分法和光流法的视频动态目标检测与跟踪
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于背景差分法和光流法的视频动态目标检测与跟踪
摘要:视频运动目标检测和跟踪技术是智能视频监控的关键技术。基于这两方面展开研究,提出了自适应场境的运动目标跟踪方法。系统由背景差分实现目标检测,由目标区域LK光流预测实现目标跟踪,并融合了“运动”背景局部更新来实现跟踪系统对环境的自适应性。最后用VC\+\{++\}和OpenCV软件平台设计了监控系统的演示环境,在简单场景中实现了运动目标的检测和跟踪,初步验证了系统算法的可行性和可实现性。
关键词:智能视频监控;运动目标检测;混合高斯模型;背景差分检测;运动目标跟踪
0 引言
智能视频监控系统大致可分为4部分:目标检测、目标识别、目标跟踪和行为分析。其中目标检测是最基础的部分,其他部分都是以目标检测结果为基础的。目标跟踪是被应用得最多的,如在公共场合中对可疑人物的跟踪、机器人视觉中对物体的视觉追踪、交通监控中的违章车辆的跟踪等等。目标识别常用于辅助其他部分进行目标种类的区分。行为分析就是目标运动的理解。
在国内比较有代表的研究如清华大学计算机科学与技术
系的谢树煌教授等人在进行动态视频对象的识别与检测研究,对无规则行进队伍中的人员进行检测与统计的系统模型和算法设计。
国际上许多著名科研机构以及研究人员也对该领域存有浓厚的兴趣,在计算机视觉等领域取得了丰硕的成果。基于已有的研究,本文提出了自适应场境的运动目标跟踪方法并初步验证了系统算法的可行性。
1 基于背景差分法的视频运动目标检测
背景差分法是常用的运动目标检测方法之一,该方法实现简单,并能完整地分割出运动对象。关键是如何得到稳定、可靠的背景。本文采用的混合高斯模型,其关键是如何把新出现的数据引入到原有分布模型中,以及前景判断准则的选取。
如果能得到没有运动目标的一段帧序列,那么初始背景可从中直接抽取,最简单的方法是从中抽取出一帧作为背景。
系统使用混和高斯分布模型来描述每一个像素点上最近的变化{X\-1,…,X\-t}。则当前观测点的概率是:
随时间推移,背景是变化的,所以背景模型必须能自适应变化。背景模型的更新策略是背景模型设计中最关键的技术。在模
型更新时应注意如下原则:对背景变化的响应速度要足够快;对运动目标要有较强的抗干扰能力。
因此,本文采用Stauffer的方法来进行近似计算,将每一个新捕获的像素值X\-t与已知混合模型里的N个分布进行比较,直到找到一个与X\-t最匹配的分布。匹配的定义使用公式表示:
[JZ(]M\-k(t)=[JB({]1 |X\-t-μ\-k(t)|<λ[KF(]D\-k(t)[KF)]
0 其它[JB)][JZ)](4)
λ一般取3~7。根据ω\-k/D\-k对混合模型里的N个分布进行排序。使得可能性大的分布在序列前端,可能性小的在序列后端,逐渐被新加入的分布代替。
如果混合模型里的N个分布与X\-t都不匹配,说明X\-t是一个新的前景点,使用一个新的分布η(μ,D)来代替混合模型里优先权系数最小的那个,该新分布的均值μ=X\-t,方差D取D\-\{max\},优先权系数ω取一较小的值。t时刻混合模型里N 个分布的优先权系数使用下面的公式更新:
在,直到它成为分布序列里最后端的分布,当有新的前景点出现时,该分布模型才会被替换。
但该方法在优先权系数更新时,没有考虑初始化。一种改进的方法是设定一个常量β,则α变成一个关于t的函数,表示为
2 视频运动目标的跟踪
运动物体的跟踪是指通过对摄像头等设备所获得的图像序列进行分析,计算出目标在每帧图像上的二维位置坐标,并根据不同的特征值,将图像序列中不同帧内同一运动目标关联起来,得到各个运动目标完整的运动轨迹。
2.1 Lucas-Kanade算法
Lucas-Kanade方法是基于局部平滑性约束来求解的光流算法,算法假设在一个小空间邻域上运动矢量保持恒定,然后使用加权最小二乘法估计光流。在大小为的图像中,以点E(i,j)为中心的空间邻域上,光流估计误差定义如下:
依次对图像中每个点应用上式求得u和v光流值。LK算法较高效,其复杂度为O(N×N),且是以局部平滑为前提,避免了光流在全局平滑而导致物体边界间的模糊,但如果图像中有突变的区域或点,那么光流估计的误差也会很大。
2.2 光流的运动预测
在实验中采用目标区域LK算法来实现运动预测。如图2,假设第k帧中有目标A和B,A往右运动而B往左运动,目的是通过k和k+1帧得到A和B的运动参数,如运动方向和速度等,然后预测在第k+2帧A和B可能会出现的位置。
利用目标区域LK算法进行运动预测的具体实现如下:
①取第k帧,通过背景差分法得到k帧中的目标A和B;
②得到A和B的位置坐标;
③取第k+1帧,用LK算法计算k帧中在A、B的位置范围内的像素点的光流值,然后统计值不为零的像素点的平均光流值。实际应用中的目标大多不是刚性物体,所以在目标运动时存在局部异向运动的可能,所以目标区域中的光流可能存在方向上的不同。为了求得目标整体的主要光流值,首先统计得到占目标最大区域面积的u、v光流值方向(正或负),然后再计算光流方向为该方向的像素点的平均光流值,即目标的光流值(u,v);
④将第3步中得到的目标A和B的(u,v)值通过下面公式,估计A和B在k+2帧可能的位置:
X′=X+u
Y′=Y+v
在第k+2帧标记出估计的位置,再用①~②步得到k+2帧中的目标A和B的新的位置,以此来修正光流预测的误差。
3 系统设计
3.1 目标检测模块
目标检测的流程大致包含3个步骤:首先对输入的图像做背景差分得到目标的二值图像;紧接着做形态学去噪处理;最后在去噪后的二值图像中找到每个目标及其轮廓,将每个目标外围矩形框位置坐标信息记录到目标的MP中,然后进入背景更新模块。
3.2 背景更新模块
背景更新模块的实现流程如图4。
对输入的每个目标,先获取目标外围矩形框的位置坐标,在矩形区域内做帧间差分,如果有85%以上的区域没有灰度变化则用该区域替换背景。否则再判断该区域的面积是否大于目标的阀值,若小于则表示该目标是可以忽略的,否则该目标区域就是运动目标,输出该目标作为“特征提取模块”的输入。
3.3 光流计算模块
光流计算模块的输入为检测到的目标及其所在区域(由目标MP中的4个位置参数得到),通过该模块能得到目标的光流值并保存到目标MP中,还能通过光流值预测目标的运动。该模块使用目标区域LK算法来计算目标区域的光流值。
4 试验结果与分析
该跟踪系统是在Windows XP操作系统下,使用Visual