发明内容
本发明克服现有技术的缺点,提出了一种结合相邻帧差法和混合高斯模型的运动目标检测方法,结合两种方法的优点,既缓解了相邻帧差法产生的空洞问题,也消除了背景物体突然转为运动物体后产生的“影子”问题,可对检测区进行准确、实时的运动目标检测。
一种结合相邻帧差法和混合高斯模型的运动目标检测方法,包括以下步骤:
1)获取图像序列,包括当前帧和前一帧图像;
2)对当前帧利用改进的相邻帧差法划分为临时运动区域和临时背景区域;
3)对2)中产生的2个区域分别用混合高斯模型进行匹配,根据匹配结果再分成不同的区域;
4)不同区域内的高斯模型进行不同的更新;
5)根据3)中产生的区域确定最后运动目标区域;
所述步骤2)包括:
a)将当前帧和前一帧相减取绝对值,设fk(x,y)和fk+1(x,y)分别表示前一帧和当前帧中坐标点(x,y)的像素值,计算它们的差分结果dx(x,y):
dk(x,y)=|fk+1(x,y)-fk(x,y)|
b)计算当前帧的像素点在M×M窗口中的梯度值Gradk(x,y),当M=5:
c)比较相邻两帧相同坐标位置像素的梯度值,梯度相差越大在计算帧差时的权重系数就越大,令r表示梯度系数,Fdk(x,y)表示引入梯度系数的帧差值,计算Fdk(x,y):
Fdk(x,y)=dk(x,y)×r
r的值与相邻两帧相同坐标的像素点的梯度差别有关系,梯度相差越大,r的值也越大;
d)将Fdk(x,y)与前J帧的帧差数据进行排序,将中间的值作为新的帧差Fdk(x,y);
e)把新的帧差Fdk(x,y)与阈值T进行比较,如果大于阈值则把该点标为1,如果小于阈值则标为0;
f)对阈值化以后的二值图像进行连通分量处理,通过连通分量处理后图像被分为临时运动区域afg和临时背景区域abg,其中afg包括相邻帧差法计算出的运动物体和其内部空洞区域;
所述步骤3)包括:
g)混合高斯模型中包含N个高斯模型,对于第i个高斯模型,在t时刻其参数包括:平均值μ
i,t、方差
和权重w
i,t,参数在第一帧图像时设定初值;
h)对于像素值为Xt的像素点,判断其与某个高斯模型匹配的条件是:
|Xt-μi,t-1|<2.5σi,t-1
如果满足这个条件则该高斯模型与像素点匹配,如果不满足则没有匹配上,把高斯模型按照的大小顺序进行排序,排名前B个的高斯模型作为背景模型;对afg和abg区域像素点分别进行混合高斯模型匹配,根据匹配结果把图像分为4个区域:①afg内匹配上的区域afgm,②afg内没有匹配上的区域afgu,③abg内匹配上的区域abgm,④abg内没有匹配上的区域abgu;
所述步骤4)包括:
i)afgm区域内高斯模型的更新:
wi,t=(1-α)wi,t-1+αMi,t
μi,t=(1-ρ)μi,t-1+Mi,tρXt+ρμi,t-1(1-Mi,t)
其中,α为参数更新率,这里取较大的值(例如0.1),w
i,t、μ
i,t和
分别为第i个高斯模型在t时刻的权重、平均值和方差,
M
i,t的值与第i个高斯模型在t时刻是否与像素点匹配有关,如果匹配取1,不匹配取0;
j)afgu区域内的高斯模型不更新,也不建立新的高斯模型;
k)abgm区域内高斯模型更新方法和i)中类似,不同的是参数更新率α取比较适中的值(例如0.01);
l)abgu区域内除了权重最小的高斯模型之外,其余均按照i)中的公式进行更新,参数更新率α取值在0.01左右;新建一个高斯模型来替代权重最小的模型,新建的高斯模型的参数设置为:均值μt取当前的像素值Xt,方差σt取一个比较小的值,权重wt取值较大使得归一化以后该新建模型排名较高;
所述步骤5)包括:
m)综合考虑f)中计算出的运动像素点和afgu区域,重新标记连通分量后确定最终的运动目标区域。
本发明的优点是:对于相邻帧差法,增加了梯度比较和中值滤波,突出了运动目标边界和抗噪声干扰能力。通过结合相邻帧差法和混合高斯模型的检测结果,把图像分为4个区域,对每个区域内的混合高斯模型采用不同的参数更新率。和普通的混合高斯模型相比,减少了运动目标对背景模型的干扰,对于物体在运动与静止之间转换的情况也具有很好的适应性。最终运动物体的判定也是结合两种方法的检测结果,既缓解了相邻帧差法产生的空洞问题,也消除了背景物体突然转为运动物体后产生的“影子”问题。
具体实施方式
本发明提出的结合相邻帧差法和混合高斯模型的运动目标检测方法,其实施流程图如图1所示,通过获得的相邻2帧图像计算帧差和梯度差,把梯度差结果引入到帧差中,把当前帧差和前4帧的帧差数据进行排序,将中间的值作为新的帧差,帧差经过阈值比较后变为0或1的2进制数。2进制数表示的二值图像经过连通分量处理,分为前景区域和背景区域,分别对这2个区域使用混合高斯模型进行匹配,根据匹配结果把图像细分为4个区域,根据不同的区域对高斯模型采取不同的更新方法,结合相邻帧差法和混合高斯模型并重新进行连通分量处理得出运动目标区域。
下面结合说明书附图对本发明方法进行详细说明。
图1是本发明方法的实施流程图。首先获取相邻的2帧图像,此处的“相邻”既可以是连续的相邻2帧也可以是中间隔了一定帧数的2帧图像。这根据实际的情况而定,如果视频速度太快或是对监控的要求不是很高,可以不取连续帧而隔几帧获取一帧。
将当前帧和前一帧相减取绝对值,设fk(x,y)和fk+1(x,y)分别表示前一帧和当前帧中坐标点(x,y)的像素值,计算它们的差分结果dx(x,y):
dk(x,y)=|fk+1(x,y)-fk(x,y)|
计算第k帧图像中坐标为(x,y)的像素点在M×M窗口中的梯度值Gradk(x,y),当M=5:
如果相邻2帧相同坐标的像素点的梯度差值越大,则表明该像素点越有可能是运动点。所以梯度差越大,梯度差的权重r越大,一种确定r的方法如下:
其中Gradmin是Gradk和Gradk-1中的最小值,Gradmax是Gradk和Gradk-1中的最大值。
令Fdk(x,y)表示引入梯度系数的帧差值,计算Fdk(x,y):
Fdk(x,y)=dk(x,y)×r
引入梯度差能够很好的突出运动物体边界以及内部边缘,突出运动像素点,为后面的连通分量处理提供方便。但是因为采集到的图像中具有随机性的噪声,梯度系数也会将噪声的影响放大。为了消除噪声的影响,还需要将帧差通过中值滤波。把当前帧差Fdk(x,y)与前J帧的帧差数据进行排序,将中间的值输出作为新的帧差Fdk(x,y),J的取值视具体情况而定,例如为5。
经过阈值处理后的结果还是比较粗糙的,为了得到比较精确的运动物体的轮廓和大小,还需要对阈值化后的图像数据进行连通区域的标记。采用是8邻域求连通区域,如果当前点为1,则修改该点的值使之为0,并对其周围8个象素点进行搜索,如果周围8个点中有值为1的点,则修改这些点的值使其为0并记录这些点,然后再分别以这些点为中心进行搜索。重复上述过程,直至全部为0。标记过的连通分量都是用矩形框的形式表示的,矩形框内表示的是帧差大于阈值的像素。虽然连通分量不存在重叠,但是标记的矩形框却有可能存在重叠,如图2所示,所以就需要对重叠的连通分量进行合并,以取得更加准确的运动物体形状。通过连通分量处理后图像被分为临时运动区域afg和临时背景区域abg,其中afg包括相邻帧差法计算出的运动物体和其内部空洞区域。
对临时运动区域a
fg和临时背景区域a
bg分别用混合高斯模型进行匹配,根据匹配结果再分成不同的区域。混合高斯模型中模型的个数N的取值一般为5~7个,可以根据计算机的存储容量和运算能力进行调整。对于第i个高斯模型,在t时刻其参数包括:平均值μ
i,t、方差
和权重w
i,t,参数在第一帧图像时设定初值;初始化混合高斯模型参数时,平均值取第一帧图像的对应像素点值X
1,方差尽量取一个比较大的值。
对于像素值为Xt的像素点,判断其与某个高斯模型匹配的条件是:
|Xt-μi,t-1|<2.5σi,t-1
如果满足这个条件则该高斯模型与像素点匹配,如果不满足则没有匹配上,把高斯模型按照
的大小顺序进行排序,排名前B个的高斯模型作为背景模型,B的取值标准是:
即至少前B个高斯模型的权重w
i,t之和大于T,T的值在0~1之间。如果T比较大则有多个高斯分布模型来描述背景,这对于摇晃的树等这样的干扰背景处理效果较好,但是也有可能出现把运动物体当作背景的错误。如果T比较小则只有一个高斯分布模型来描述背景。
对afg和abg区域像素点分别进行混合高斯模型匹配,根据匹配结果把图像分为4个区域:①afg内匹配上的区域afgm,②afg内没有匹配上的区域afgu,③abg内匹配上的区域abgm,④abg内没有匹配上的区域abgu。
不同区域内的高斯模型进行不同的更新:
afgm区域内高斯模型的更新:
wi,t=(1-α)wi,t-1+αMi,t
μi,t=(1-ρ)μi,t-1+Mi,tρXt+ρμi,t-1(1-Mi,t)
其中,α为参数更新率,这里取较大的值(例如0.1),w
i,t、μ
i,t和
分别为第i个高斯模型在t时刻的权重、平均值和方差,
M
i,t的值与第i个高斯模型在t时刻是否与像素点匹配有关,如果匹配取1,不匹配取0;
afgu区域内的高斯模型不更新,也不建立新的高斯模型;
abgm区域内高斯模型更新方法和afgm区域中类似,不同的是参数更新率α取比较适中的值(例如0.01);
abgu区域内除了权重最小的高斯模型之外,其余均按照afgm区域中的公式进行更新,参数更新率α取值在0.01左右;新建一个高斯模型来替代权重最小的模型,新建的高斯模型的参数设置为:均值μt取当前的像素值Xt,方差σt取一个比较小的值,权重wt取值较大使得归一化以后该新建模型排名较高。
混合高斯分布模型虽然能够对环境背景的变化具有一定的适应性,但是其参数的更新率是固定的,如果参数更新率太小则背景更新太慢,对于背景的突然变化响应时间会比较慢,而如果参数更新率太快,就失去其描述复杂背景的能力。所以在本算法中,参数更新率α可以根据相邻帧差法的结果进行动态的调整:区域afgm内像素点的高斯模型赋予比较大的参数更新率(0.1);区域afgu内两种方法的结果比较一致,为了减少运动目标对背景的影响,不构建新的高斯分布;区域abgm内的高斯模型参数更新率采用比较适中的更新率(0.01),既能减少噪声的影响也能对背景进行适当的更新;区域abgu内像素点需要重新构造一个高斯模型,并且分配一个比较高的权重wt(如0.3)和比较小的方差σt。
最后,综合考虑相邻帧差法计算出的运动点和运动物体以及afgu区域,重新标记连通分量后确定最终的运动目标区域。
下面以一个例子来说明本发明方法处理结果的优越性。图3是采用Wallflower的5个测试视频序列作为测试源,采用本发明方法处理后得出的其中一帧的运动目标检测结果,并与基准结果进行比较。基准结果是手工得到的,能比较精确的表示运动物体。这5个测试视频分别表示不同的问题类型,能反映出本发明方法的综合处理能力。视频Bootstrap中一直都有多个物体在运动。视频Camouflage中一个人走进电脑并覆盖了电脑,并且人的衣服颜色和电脑颜色非常接近。视频LightSwitch中屋内的亮度有几次较大的变化,并且椅子会由静止变为运动。视频MovedObject中有一个人进入屋子里,移动电话和椅子后又离开,被移动的物体也会融入背景中。视频TimeOfDay中房间亮度突然变亮,并且有一个人走进来坐在沙发上。从图3可知本发明方法能够比较好的缓解相邻帧差法的空洞问题(见在视频Camouflage中的检测结果),对于背景和运动区域的突然转换问题也可以较好的解决(见视频LightSwitch和MovedObject中的检测结果)。本发明方法和其他方法的检测错误数目比较结果如表1所示,其中False neg表示的是基准结果里标注运动点而检测结果没有标出的错误,False pos表示的是基准结果中不是运动点却被检测结果标为运动点的错误。从表1中可见本发明方法的检测错误率较其他方法低,能较为精确地检测出运动物体。
表1
显而易见,在不偏离本发明的真实精神和范围的前提下,在此描述的本发明可以有许多变化。因此,所有对于本领域技术人员来说显而易见的改变,都应包括在本权利要求书所涵盖的范围之内。本发明所要求保护的范围仅由所述的权利要求书进行限定。