本发明属于计算机视觉领域,具体地说是一种运动目标检测方法,可用于智能监控、智能交通、人机交互、视觉导航、虚拟现实、医学诊断与可视化手术。
背景技术:
随着社会的发展和科技的进步,城市视频监控网络的发展越来越迅速,覆盖到了人类活动的各种场所。视频监控在很大程度上保障着城市的人员财产安全,极大地减少违法犯罪行为。视频监控主要关注的技术是对监控视频中的运动物体进行检测、跟踪、识别和分析等操作。利用这些技术,人们可以快速获得感兴趣目标的位置、轨迹以及行为等有效信息。运动目标检测是运动目标跟踪、行为识别和场景描述等技术的基础,检测的结果直接影响后续算法的准确性。因此,如何提高目标检测的准确性和鲁棒性,成为计算机视觉领域的主要研究方向之一。
目前,运动目标检测方法主要有:帧间差分法、背景减除法和光流法。其中,背景减除法是使用最广泛的方法,它通过比较当前帧和背景模型得到运动目标。因此,算法的性能高度取决于背景建模方法。高斯混合模型gmm因其简单性,多模性,实时性成为最受欢迎的背景减除算法。该算法可以较好地抑制动态背景干扰,但该方法对突然的光照变化和运动目标的阴影敏感,且初始化困难,收敛过程比较耗时。
在过去的20年里,大量文献致力于混合高斯模型的研究,主要包括模型初始化方法、模型更新方法和高斯模型个数估计等。在模型的初始化方法中,大部分的方法是基于stauffer和grimson提出的方法,该方法将每个像素的所有的高斯分量初始化为相同的分布,即均值设置为第一帧的相应像素的像素值,方差初始化为一个较大的值,初始权重为1。模型初始化方法也仅仅涉及到模型初始方差的计算,模型的初始均值和高斯模型权值仍然采用上述方法得到,使得模型需要较长时间才能达到稳定。模型更新方法只讨论了单个高斯模型的学习率,未考虑各高斯模型之间的关系。同时,大部分算法只能检测局部光照变化,而不能检测全局光照变化。在高斯模型个数估计上,一般采用分裂和合并的方式自适应调整高斯模型的个数,但这些算法收敛速度慢。
技术实现要素:
针对现有混合高斯模型的不足,本发明提出了一种基于改进混合高斯模型的运动目标检测方法,以提高复杂场景中模型的收敛速度,减少计算复杂度,提高运动目标的检测精度。
实现本发明的关键技术是:使用图像的空间信息来初始化混合高斯模型,以加快模型的收敛速度,自适应确定高斯模型的个数;对模型的权值进行分层次更新,以减缓暂时静止的物体融入背景;采用lambert光照模型检测全局光照变化,使得背景模型能快速从光照变化中恢复出来。其实现步骤包括如下:
(1)读入前两帧彩色图像i1和i2,利用高斯函数分别对两幅图像的r、g、b三个通道进行平滑,得到平滑后的彩色图像为l1和l2;
(2)初始化的混合高斯模型:
(2a)初始化方差:根据平滑后彩色图像l1和图像l2差分的绝对值矩阵得到初始模型的全局方差,将像素点(x,y)与其邻域像素绝对差分的最大值作为初始模型局部方差,对初始全局方差和初始局部方差进行加权平均,得到像素点(x,y)处各高斯模型的初始方差σ1(x,y);
(2b)初始化均值和高斯模型数目:根据像素(x,y)的邻域像素的分布情况确定像素(x,y)处高斯模型数目n1(x,y)和各高斯模型的均值μk,1(x,y);
(2c)分层次初始化像素(x,y)处高斯模型的权值ωk,1(x,y),将第一个高斯模型的权值ω1,1设置为w1,1=(1/n1(x,y))+0.1,其余高斯模型的权值设置为(1-w1,1)/(n1(x,y)-1);
(2d)根据高斯模型的初始均值、方差、权重和高斯模型数目,初始化高斯混合模型;
(3)读入第t帧彩色图像it,利用高斯函数对it进行平滑,得到平滑后的第t帧彩色图像lt;
(4)模型更新:
(4a)根据lambert光照模型,得到第t帧彩色图像lt的全局光照变化因子,根据全局光照变化因子改变第t-1帧构建的高斯混合模型的均值μk,t-1(x,y)和方差σk,t-1(x,y);
(4b)根据第t帧彩色图像lt与高斯混合模型的匹配情况,更新高斯模型的数目nt(x,y)、均值μk,t(x,y)和方差σk,t(x,y),分层次更新权重ωk,t(x,y),得到更新后的混合高斯模型;
(5)背景估计和前景检测:在像素(x,y)处,若存在高斯模型的权值ωk,t(x,y)大于门限thω,且|lt(x,y)-μk,t(x,y)|≤dσk,t(x,y),则像素(x,y)为背景,即fgt(x,y)=0;否则,像素(x,y)为运动目标,即fgt(x,y)=1,得到第t帧彩色图像的前景图像fgt;
(6)利用奇异值分解、中值滤波和形态学方法对上述得到的前景图像fgt进行后处理,输出处理后的前景图像fgt,即运动目标图像;
(7)重复(3-6),直到视频结束。
本发明具有如下优点:
本发明由于引入空间信息对混合高斯模型进行初始化,加快了模型的收敛速度,减少了高斯模型的数目,提高了运动目标检测的精度;同时由于本发明在混合高斯模型的更新阶段,采用分层次更新的方法更新高斯模型的权值,延缓了暂时静止的物体融入背景的速度;此外由于本发明对全局和局部光照变化情况进行判断,根据光照变化情况,改变高斯模型的均值和方差,有效降低了运动目标误检率。
附图说明
图1本发明的实现流程图;
图2用本发明与stauffer和grimson提出的方法在“wavingtrees”视频序列的前三帧彩色图像上进行运动目标检测的结果图;
图3为用本发明在“wavingtrees”视频序列上得到的混合高斯模型的初始高斯模型数目结果图;
图4为用本发明与gmm|rectgauss-tex算法对“wallflowerdataset”视频集的运动目标检测结果图。
具体实施方式
以下结合附图对本发明的技术方案和效果进行进一步说明:
参照图1,本发明的实现步骤如下:
步骤1,对输入的彩色图像进行平滑处理。
现有的图像平滑方法有:均值滤波,高斯滤波,中值滤波;本发明使用高斯滤波对输入的彩色图像进行平滑处理,具体步骤如下:
读入前两帧彩色图像i1和i2,利用高斯函数分别对两幅图像的r、g、b三个通道进行平滑,得到平滑后的彩色图像为l1和l2。
所述二维高斯函数g为:
其中,σ为标准差,取值为0.5;
用高斯函数g与图像it进行卷积,得到平滑后的彩色图像lt:
lt=g*it,t=1,2。
其中,符号*为卷积操作。
步骤2,初始化混合高斯模型。
2.1)初始化方差:
现有的初始化方差的方法有:stauffer和grimson提出的方法,evangelio和patzold提出的方法。其中stauffer和grimson提出的方法,是将每个像素的所有的高斯模型初始化为相同的分布,方差初始化为一个较大的值;evangelio和patzold提出的方法,是根据第一帧和第二帧的绝对差分的中值作为初始方差;本发明根据平滑后彩色图像l1和图像l2差分的绝对值矩阵得到初始模型的全局方差,将像素点(x,y)与其邻域像素绝对差分的最大值作为初始模型局部方差,对初始全局方差和初始局部方差进行加权平均,得到像素点(x,y)处各高斯模型的初始方差σ1(x,y),具体步骤如下:
2.1.1)计算高斯模型的全局方差
(2.1.1.1)计算平滑后第一帧彩色图像l1和平滑后第二帧彩色图像l2的差分的绝对值矩阵diff:
diff=|l2-l1|;
(2.1.1.2)将绝对值矩阵diff分别在r、g、b三个通道上等间隔量化为p个等级,得到量化后的彩色图像q:
其中,p=64,
(2.1.1.3)分别计算彩色图像q在r、g、b三个通道上的统计直方图分量:
其中,c={r,g,b},qc为彩色图像q的r、g、b三个通道之一的图像,hc(i)为qc在第i个量化等级上的直方图分量,p为最大量化等级,p个直方图分量构成qc的直方图hc,m,n表示彩色图像l1的行数和列数,δ(·)表示单位脉冲函数;
(2.1.1.4)对直方图hc的前a个直方图分量hc(i)求和,直到得到的和超过阈值t,得到背景变化均值ac:
其中,t=0.5;
(2.1.1.5)通过背景变化均值ac得到高斯模型在通道c上的全局方差
则初始高斯模型的全局方差
2.1.2)计算高斯模型的局部方差:
从平滑后第一帧彩色图像l1中选取像素(x,y)的n1×n1邻域像素(p,q),n1=5;将l1(p,q)与l1(x,y)的绝对差分的最大值作为局部方差
其中,
则初始高斯模型的局部方差
2.1.3)计算初始方差:
对全局方差和局部方差进行加权平均,得到像素点(x,y)处高斯模型的初始方差σ1(x,y):
其中,β=0.2表示加权系数,为了防止模型过拟合或欠拟合,设置方差的上限为40和下限为3,即初始方差值为:
2.2)初始化均值和高斯模型数目:
现有的初始化均值和高斯模型数目的方法有:stauffer和grimson提出的方法,该方法在每个像素点都使用相同的高斯模型数目,且每个像素处的所有高斯模型都将第一帧彩色图像在该像素点的像素值作为高斯模型的初始均值;本发明根据每个像素点的邻域像素的强度分布情况确定每个像素的初始高斯模型数目和各高斯模型的初始均值,具体步骤如下:
(2.2.1)初始化像素(x,y)处的高斯模型的个数n1(x,y)=1,将像素(x,y)对应彩色图像l1(x,y)的像素值作为第一个高斯模型的均值μ1,1(x,y),将该高斯模型的匹配次数η1,1(x,y)初始化为1;
(2.2.2)判断像素(x,y)的n1×n1邻域像素中是否存在一个像素点(p,q),且该像素点的像素值l1(p,q)与已有高斯模型均值的绝对差是否大于3倍的初始方差σ1(x,y):如果是,则在像素(x,y)处增加一个高斯模型,将像素点(p,q)的像素值l1(p,q)作为所增加的高斯模型的均值,该高斯模型的匹配次数初始化为1;否则,高斯模型的数目不变;
(2.2.3)判断高斯模型数目n1(x,y)是否小于最大高斯模型数目k=5,且像素(x,y)的n1×n1邻域像素中是否存在与已有高斯模型均值的绝对差大于3倍的初始方差σ1(x,y)的像素点,如果是,重复步骤(2.2.2);否则,循环结束,得到像素(x,y)处高斯混合模型的初始化均值μk,1(x,y)和初始化高斯模型数目n1(x,y);
2.3)初始化权值:
现有的方法有:stauffer和grimson提出的方法,该方法将每一个像素点处的所有高斯模型的权值初始化为相同的值;本发明采用分层次初始化高斯模型的权值ωk,1(x,y),即将第一个高斯模型的权值设置为一个较大的值,其余高斯模型的权值设置为一个较小的权值:
其中,w=(1/n1(x,y))+0.1为第一个高斯模型的权值;
2.4)根据高斯模型的初始均值、方差、权重和高斯模型数目,初始化高斯混合模型;在像素点(x,y)处的初始化高斯混合模型p(x,y)为:
其中,ωk,1(x,y)、μk,1(x,y)、
步骤3读入第t帧彩色图像it,t>1,利用高斯函数对it进行平滑,得到平滑后的第t帧彩色图像lt;
步骤4模型更新
现有的模型更新方法有:stauffer和grimson提出的方法,kaewtrakulpong和bowden提出的方法,zivkovic提出的方法和lee提出的方法。其中:
stauffer和grimson提出的方法选择混合高斯模型中与图像匹配的高斯模型,对该高斯模型的均值和方差进行更新,对应权值增加,其余高斯模型均值和方差保持不变,对应的权值减小;kaewtrakulpong和bowden提出的方法在不同的阶段使用不同的更新方程以提高模型学习速度和精度;zivkovic提出的方法使用先验信息动态估计高斯模型的数目;lee提出的方法根据高斯模型的匹配次数自适应确定学习率;本发明使用stauffer和grimson提出的方法对高斯模型的均值和方差进行更新,高斯模型权值采用分层次更新的方法,根据彩色图像与高斯混合模型的匹配情况,更新高斯模型的数目,其步骤如下:
4.1)检测全局光照变化:
(4.1.1)根据lambert光照模型,计算平滑后第t帧彩色图像lt和平滑后第t-1帧彩色图像lt-1对应像素点像素值的比值,得到比值矩阵r,选取比值矩阵r中所有元素的中值作为全局光照变化因子ratio;
(4.1.2)判断|ratio-1|的值是否大于设定门限0.2,如果是,表示出现了全局光照变化,对第t-1帧构建的高斯混合模型的均值μk,t-1(x,y)和方差σk,t-1(x,y)按照全局光照变化因子进行相应的变化;否则,保持第t-1帧的高斯混合模型不变,即:
其中,k为在像素(x,y)的第k个高斯模型,k=1,…,nt-1(x,y),nt-1(x,y)为第t-1帧在像素点(x,y)处构建的高斯混合模型的高斯模型数目,ηk,t-1(x,y)表示第t-1帧在像素点(x,y)处构建的高斯混合模型的第k个高斯模型的匹配次数。
4.2)将平滑后的第t帧彩色图像lt在像素点(x,y)处的像素值lt(x,y)与所对应的nt-1(x,y)个高斯模型的均值进行比较,判断在这nt-1(x,y)个高斯模型中是否存在满足条件:|lt(x,y)-μm,t-1(x,y)|<d·σm,t-1(x,y)的高斯模型m,其中,1≤m≤nt-1(x,y),d=3表示常系数:
如果是,则第m个高斯模型与像素值lt(x,y)匹配,更新第m个高斯模型的匹配次数ηm,t(x,y),均值μm,t(x,y),方差σm,t和权值ωm,t:
ηm,t(x,y)=ηm,t-1(x,y)+1
μm,t(x,y)=(1-ρm,t(x,y))μm,t-1(x,y)+ρm,tlt(x,y)
ωm,t=(1-α)ωm,t-1+α
其中,α=0.01表示权值的学习率,
保持高斯模型的数目不变,其余高斯模型k的均值,保持方差和匹配次数不变,将权值ωk,t更新为:
其中,thω=0.2表示设定阈值;
否则,新建第i个高斯模型,更新高斯模型的数目nt(x,y):
初始化第i个高斯模型均值μi,t(x,y)、方差σi,t(x,y)、权值ωi,t(x,y)和匹配次数ηi,t(x,y):
μi,t(x,y)=lt(x,y)
σi,t(x,y)=σ1(x,y)
ηi,t(x,y)=1
其中,初始方差σ1(x,y)由平滑后彩色图像lt和平滑后彩色图像lt-1按照步骤2.1)的方法计算得到。
4.3)归一化高斯模型的权值ωk,t(x,y):
步骤5背景估计和前景检测。
在像素(x,y)处,判断是否若存在高斯模型的权值ωk,t(x,y)大于设定门限thω=0.2,且是否满足|lt(x,y)-μk,t(x,y)|≤3σk,t(x,y),如果是,则像素点(x,y)为背景,即fgt(x,y)=0;否则,像素点(x,y)为运动目标,即fgt(x,y)=1;得到第t帧彩色图像的前景图像fgt。
步骤6对上述得到的前景图像fgt进行后处理。
现有的后处理方法有:高斯滤波,中值滤波,均值滤波,形态学方法;本发明使用利用现有奇异值分解的方法检测局部光照变化,去除由于局部光照引起的误检,利用中值滤波去除噪声,利用形态学方法的闭运算消除目标内部较小的“空洞”,具体步骤如下:
6.1)检测局部光照变化
首先,使用平滑后的第t帧彩色图像lt的像素点(x,y)的5×5邻域像素值构成邻域矩阵at(x,y),对邻域矩阵at(x,y)进行奇异值分解:
at(x,y)=utstvtt
其中,ut和vt表示矩阵at(x,y)的特征向量矩阵,st=diag(λt,1,λt,2,λt,3,λt,4,λt,5)为at(x,y)的特征值矩阵,λt,j表示at(x,y)的奇异值,1≤j≤5,且λt,1≥λt,2≥λt,3≥λt,4≥λt,5;
然后,将奇异值λt,2,λtf,3,λt,4,λt,5除以λt,1,并求和,得到光照不变性特征ft(x,y):
最后,判断第t帧光照不变性特征ft(x,y)与和第t-1帧光照不变性特征ft-1(x,y)绝对差是否小于阈值thsvd=0.05:如果是,则像素点(x,y)处发生了局部光照变化,像素点(x,y)应为背景,否则,像素点(x,y)处没有发生了局部光照变化;像素点(x,y)处前景图像fgt(x,y)为:
6.2)使用5×5的中值滤波去除在步骤6.1)所得到的前景图像fgt中的噪声,得到去除噪声后的前景图像fgt;
6.3)使用形态学的闭运算,填补轮廓线中的裂痕,消除目标内部较小的“空洞”,即先用模板矩阵b对去除噪声后的前景图像fgt进行膨胀运算;然后用模板矩阵b对膨胀后的结果进行腐蚀运算,得到预处理后的前景图像fgt,其中模板矩阵b为5×5单位矩阵;
6.4)输出处理后的前景图像fgt,即运动目标图像。
步骤7重复步骤3-步骤6,直到视频结束。
本发明的效果可通过以下实验进一步说明:
1.实验条件
实验环境:intelcorei7cpu2.00ghz,8gb内存,matlab2014b实验平台。
2.实验内容与结果
实验1:测试本发明的混合高斯模型初始化方法
采用本发明与stauffer和grimson提出的初始化方法对“wallflowerdataset”中“wavingtrees”视频序列的第1-3帧进行测试,结果如图2所示,其中:
图2第一行从左到右分别为原始图像的第1-3帧;
图2第二行为采用stauffer和grimson提出的方法得到第1-3帧前景图像fg;
图2第三行为采用本发明得到第1-3帧前景图像fg;
从图2中可以看出,本发明的混合高斯模型初始化方法能够在初始时刻建立起稳定的背景模型。同时,该初始化方法对背景干扰不敏感,能有效提高检测精度。
实验2:测试本发明的混合高斯模型的初始化高斯模型数目
采用本发明所提出的初始化高斯模型数目的方法对“wallflowerdataset”中“wavingtrees”视频序列进行测试,结果如图3所示:
图3中颜色越深代表该像素的高斯模型个数越少,如:蓝色代表1个高斯分布,青色代表2个高斯分布,黄色代表3个高斯分布。
从图3中可以看出,在大部分图像区域,只需要1个或2个高斯模型,只有极小的区域需要3个高斯模型;而现有的混合高斯模型会在每一个像素点设定3到5个高斯模型;表明本发明能够有效降低高斯模型的数目,减少计算复杂度。
实验3:测试本发明的检测精度
采用本发明,gmm|stauffer&grimson方法和gmm|rectgauss-tex方法对“wallflowerdataset”视频集进行测试,三种方法对视频集中各视频的正检率(tpr)如表1所示,三种方法对视频集中各视频的误检率(fpr)如表2所示。
表1三种算法的tpr
表2三种算法的fpr
由表1可知,在六种场景中本发明都具有相对较高的tpr值。
由表2可知,除了在camouflage和foregroundaperture场景中本发明的fpr略高于其他两种算法外,其余场景本发明的fpr都较低。尤其是发生全局光照变化时,本发明具有较低的误检率。
实验4:测试本发明对运动目标的检测效果
用本发明与gmm|rectgauss-tex算法对“wallflowerdataset”视频集进行运动目标检测结果图,结果如图4所示,其中:
图4第一列为六种场景的原始图像;
图4第二列为手动分割的前景图像;
图4第三列为本发明得到的前景图像;
图4第4列为gmm|rectgauss-tex算法得到的前景图像;
从图4可以看出,本发明不仅对阴影、光照变化不敏感,而且能延缓暂时静止的物体融入背景,能够得到更好的检测结果。
综上所述,本发明能够有效检测复杂场景中的运动目标。