基于帧差法和混合高斯的海上运动目标检测∗
2019-06-01高海壮段先华
高海壮 段先华
(江苏科技大学计算机学院 镇江 212000)
1 引言
在计算机视觉和图像处理领域中,海上运动目标追踪是一个重要的研究课题。海上运动目标的自动检测技术在海防安全、海关管理、海上缉私以及港口船只调度等场合有重要的用途和意义。
海上运动目标的自动检测在雷达以及红外成像的图像序列中,开展较为顺利,但在最为普遍的可见光视频图像序列中,开展的比较困难。这是因为海上存在大量的波浪噪声,因此若直接采用传统的运动检测技术,往往会将这些波浪也检测为运动物体,导致大量的误检。常用的运动目标检测方法有光流法[1]、帧间差分法[2]、背景减除法[3]。其中,背景减除法是目前最常见的方法。光流法算法复杂、需要特殊的硬件支持、实时性较差。帧间差分法是将相邻的两帧图像对应像素点进行相减而得到运动目标,能够适应光照突变,具有较小的计算量,但抗噪声性能较差、易出现空洞现象。背景差分法是将当前帧与背景模型进行差分操作来实现对运动目标的检测,该算法准确性高、易于实现、检测速度快,但是由于实际场景的复杂多变,而且存在着各种噪声干扰,造成背景建模的难度增加。文献[4]提出了在混合高斯建立背景模型时对方差更新作了修改和用采取自适应阈值的连续三帧差分的结果融合并作形态学处理提取目标,算法能有效抑制噪声和空洞,适应性强;文献[5]提出了一种基于高斯混合模型和邻域信息项融合的海面运动目标检测算法,在对强光和不同气候环境有较好的鲁棒性;文献[6]提出了利用前n帧视频图像的中值构造海面背景图像,并提出相应的背景更新策略,实现了海水养殖海域非法侵入目标的自动检测;文献[4~6]都提出了改进的方法,但也存在一些缺点:1)对每个点孤立地建立多个模型,忽视了点的空间位置,导致算法复杂,计算量大,不利于实时处理;2)没有对学习率进行改进,使得固定的学习率对复杂场景的适应能力较差。文献[7]提出了在静态图像中分割出感兴趣区域(ROI),继而仅在感兴趣区域中应用变形的时间差分法来检测运动目标,由于粗分辨率上的平滑作用,使得该方法不利于海上场景中小目标的检测;文献[8]提出在提出在单帧图像中采用Sobel算子计算梯度图像从而分割出感兴趣区域,然后从感兴趣区域出发,根据连续帧间的感兴趣区域的中心点是否移动来判断物体是否运动,从而找出运动的目标,但由于八连通分析的时间复杂度较大,比较难实现实时检测。
在前人的基础上,本文从提出了一种把三帧差分法和改进的混合高斯背景模型结合起来,用三帧差分法代替两帧差分法,提高检测的灵敏度和一定程度上消除“空洞”;再根据相邻像素之间的相似性进行区域分块,并使用自适应的学习率。通过上述步骤,本文算法能较好地检测运动目标并具有较强的鲁棒性。
2 背景知识介绍
2.1 混合高斯背景模型
2.1.1 模型建立
混合高斯模型是由 Stauffer[9]等提出,它对图像中的每个像素点用Κ个多维高斯分布组成的混合高斯模型来建模,即:式中,μk,t为t时刻第k个高斯分布的均值;∑k,t为t时刻第k个高斯分布的协方差矩阵;|Σ|是Σ的行列式;ωk,t为t时刻第k个高斯分布的权重,且有权重;Κ取值越大,越能描述更复杂的背景,背景模型的抗干扰能力越强,但也增加了计算量,影响力实时的效果。Κ一般取值3~5之间,本文取3;η为第k个高斯分布在t时刻的高斯密度函数;n为像素It的变量的维数,灰色图像一般用灰度值描述每个像素,此时取n=1。
2.1.2 模型匹配和参数更新
当t+1时刻新一帧图像的像素点到来时,将It+1分别与Κ个高斯分布的均值 μk,t做匹配,匹配的规则为:
式中:μk,t和 σk,t分别为第k个高斯分布在t时刻的均值和标准差。λ是一个根据经验自定义的参数,在实际应用中一般取2.5。若满足上述规则,则认为It+1与第k个高斯函数匹配,否则,不匹配。
匹配会出现两种情况:1)当高斯混合模型的k个高斯模型中的一个或几个与像素It+1相匹配时,则按照如下方法更新该高斯分布的参数:
式中:α为学习速率,其值在0~1之间;Z为偏置,对于与当前像素值匹配的高斯分布,Z=1,否则Z=0。通过这个式子将导致匹配的高斯分布权重值增加,而不匹配的高斯分布权重值减小。β为均值和方差的更新速率。
2)当像素It+1与k个高斯模型都不匹配时,则将其混合高斯模型中权重最小的那个模型用一个新的模型取代。新模型以It+1为均值,并初始化一个较大的标准差和一个较小的权重。其中不匹配的高斯模型保持均值和方差不变,权重按式(4)更新。
2.1.3 权重的归一化和背景估计
为提高背景模型的可靠程度,需要对权重进行归一化处理,即:
将高斯分布按照ωσ的值从大到小排列,取优先级较高的前B个分布作为混合高斯的背景模型:
式中:T为阈值,代表背景模型占所有高斯分布的最小比例,一般取值为0.7~0.8。
2.1.4 前景分割
在进行前景检测时,选取的B个高斯分布作为背景模型后,将t+1时刻的像素值It+1与B个高斯背景模型做匹配,匹配规则按照式(3),如果像素值It+1与背景模型中的任何一个分布相匹配,则该像素点为背景点,否则为前景点。
2.2 帧间差分法
帧间差分法是把相邻连续的两帧或者三帧图像做差分处理,通过阈值比较,从而获得运动目标。差分规则如下:
式中:dt为二值图像;T1为分割阈值。像素值为0被认背景点,像素值为1被认为前景点。T1的取值影响到对后续运动目标的处理。若差分图像的某点像素值小于设定的阈值,就认为该点是静止的;否则,就认为该点是运动的。
3 本文算法
3.1 三帧差分法检测变化区域
由于用连续两帧进行差分,存在如下两个缺点:1)检测结果是两帧图像中变化的信息,检测出来的目标点要比实际的目标范围要大;2)差分结果会导致两帧重叠的部分被减掉,从而会出现运动目标的“空洞”。
三帧差分法[10]算法简单,运算速度快,灵敏度高,能快速的检测出运动区域,消除背景显露区域[11],比连续两帧差分法有明显改进。三帧差分法的运算规则如下:将连续相邻的三帧图像 ft-1,ft,ft+1两两做差分,通过阈值比较得到二值图像d1,d2,最后再对二值图像做与操作,从而可以检测出变化的区域。具体计算公式如下:
阈值的选取直接影响到运动目标的提取和分割,T2的选值过小,会引入大量的噪声点,T2的选值过大,会导致小的运动目标漏检。同时复杂的自适应阈值会造成计算上的负担。通常背景区域的像素值变化较小同时受噪声的影响满足高斯分布,对于满足高斯分布的数据服从3σ准则,所以阈值可以设定为T2=3σ+μ,其中σ和μ分别表示差分背景图像的方差和均值。
3.2 不同区域的区分
由于三帧差分法是对两两差分图像进行与运算,它能够自动消除上一帧被运动目标覆盖而在下一帧显露出来的背景区域。通常场景中往往会存在一些周期性反复运动的干扰物体,比如水面的波动、摇摆的树枝和飘动的旗帜等[12]。所以在运动目标出现时,检测到的目标通常包含运动目标自身和由干扰物体引起的变化区域。传统的混合高斯背景模型因采用固定学习率,不能有效消除此类干扰。为解决此类问题,将存在干扰物体的区域从变化区域中消除,可以把当前帧分为背景区域、干扰区域和目标区域。
3.2.1 背景区域的区分
在相对固定的场景下,很多相邻像素点的像素值相同或者相近,其对应的模型参数也相同或者相近,所以可以用一个模型代替这些相邻像素点。文献[13]中证明了利用相邻像素间的相关性提取运动目标是一条有效途径。通过引入分块模型的思想,对t时刻大小为h×g的图像 ft,从左到右,从上到下,分成大小为 h′×g′的 h″×g″个区域 OX。
对三帧差分法得到的二值图像dt中区域进行统计,其方法如下:对二值图像dt中的区域OX进行逐行扫描,统计OX中值为1像素点的个数nk,再用nk除以OX区域像素点的总个数h′×g′,就可以得到变化区域占区域面积的近似比值。通过阈值比较可以判定该区域属于背景区域还是变化区域。判断准则如下:
其中:Obg,Obh分别表示背景区域和变化区域。区域OX如果选取过小,将会增加计算量,选取过大,则会将较小的目标错误地判别为背景区域,容易造成漏检。阈值T3的选取越小,对检测结果的精度会有所提高。
3.2.2 变化区域的区分
可以取视频图像的前M帧,然后统计变化区域Obh在M帧出现的次数nl,通过阈值的比较,可以判定此区域为干扰区域还是目标区域,判别规则如下:
其中:Omb,Ogr分别表示目标区域和干扰区域。
3.2.3 自适应学习率的选取
由前面介绍的混合高斯背景模型可知,更新率β的大小由学习率α的大小决定。传统模型中固定的学习率对复杂场景的适应能力较差。如果α取值过小,适应环境的变化能力较低,不能迅速跟上实际背景的变化;如果α取值过大,适应环境的变化能力较强,但很容易引入大量的噪声。综上所述,需要对不同的区域采取不同的更新策略来应对复杂场景的变化[14~16]。
1)赋予背景区域中像素点对应的多维混合高斯分布模型较小的学习率αbg,可以保持背景区域的稳定性,以免引入噪声。
2)赋予目标区域极低的学习率αmb,减少运动目标对背景的影响。
3)赋予干扰区域较大的学习率αgr,这样匹配的高斯分布将获得较大的权值和较小的方差,其优先级迅速提高,而其他的高斯分布权值将会减小,优先级也相应地降低,所以匹配的高斯分布影响背景的权重将加大,使干扰区域迅速跟上背景的变化。学习率αgr更新策略如下:
式中:γ为偏置系数,取1.5;n为当前通过的帧数。
3.3 运动目标提取
将目标区域中像素点与各自的高斯分布模型进行匹配,如果匹配,则认为该变化点是由背景扰动引起的;如与所有的高斯模型都不匹配,则认为该变化点是由运动物体本身引起的,是前景点;最后再对提取出的运动目标进行后续处理(如去噪、形态学处理)工作,就可以得到完整的运动目标。
4 实验结果及分析
实验使用的是摄像机在室外采集的两组海面视频图像作为实验素材,为了验证本文算法的有效性,实验平台为VC++2012和OpenCV3.0。混合高斯背景模型的参数K为3;初始方差为30;α为0.02。实验对混合高斯模型、两帧差分法、三帧差分法和本文方法做了对比。图1(a)为原始视频的第257帧的图像。
图1(b)是混合高斯背景模型对原始视频的第257帧处理的结果。实验表明,由于海上存在较大风浪,高斯模型对场景中周期性反复运动的干扰物,有一定的适应能力,且运动目标检测轮廓较完整,但对这较大的干扰也会存在误检。
图1(c)是两帧差分法对原始视频的第257帧处理的结果。可以看出不仅存在很多的噪声干扰,抗干扰能力较低,而且运动目标轮廓非常稀疏。
图1(d)是三帧差分法对原始视频的第257帧处理的结果。可以看出检测效果灵敏度提高,能检测到目标的大部分,有效地消除两帧差分法带来的“空洞”现象。
图1(e)是本文方法对原始视频的第257帧处理的结果。涉及到实验的几个参数:1)阈值T3的选取:阈值越小,运动目标属于变化区域的像素点就越多,这样可以提高检测精度,本文阈值选取0.4合适,检测效果较好。2)变化区域M和T4的选取:过多的帧数会加大计算的量,对检测的精度没有明显的提高,通常实验M取值为10,T4为5即可。3)学习率的选取:αbg=0.01,αmb=0.002。实验结果表明,本文算法对干扰区域进行了判断,没有产生误检,很好地消除了虚假的干扰目标,正确检测出了运动目标。
图1 实验结果
5 结语
针对复杂背景下的海上视频图像运动目标的检测问题,首先对混合高斯背景模型法和帧间差分法进行分析,探讨了他们各自存在的检测缺点。提出了一种三帧差分法和改进的混合高斯背景模型相结合的算法。利用相邻像素间的相关性,把每帧图像划分为背景区域、干扰区域和目标区域,对不同的区域采取不同的更新策略,从而实现模型的自适应学习。实验表明,该算法对海面场景中的复杂噪声也有良好的去噪效果,同时对环境有较好的鲁棒性。