结合模糊熵和学习率自适应的GMM目标检测算法
2022-09-07王德忠
王德忠 李 睿
(兰州理工大学计算机与通信学院 甘肃 兰州 730000)
0 引 言
目标检测是计算机视觉领域中的重点研究课题,将视频中的运动目标完整、准确地检测出来是当前研究的难点[1]。在智能监控视频和无人机驾驶中目标检测应用更加广泛[2-3]。目前,比较完善的目标检测算法有帧差法[4]、光流法[5]、背景建模法[6]。其中,背景建模法中的GMM算法相较于其他算法检测更完整,实时性更好,许多研究人员基于GMM算法进行了改进。文献[7]引入双极学习率和组合权重区分背景和运动区域,并通过颜色特征和空间连通性消除阴影;文献[8]针对抗噪性能差、易受动态背景干扰等问题,提出GMM算法结合超像素马尔可夫随机场(MRF)的检测算法;文献[9]用样本有效因子的历史累加量反映背景模型的质量,并用于动态调整模型更新速度,同时对检测出的前景区域进行目标分析,由分析结果间接控制模型更新。
以上算法虽然对GMM算法进行了改进,但是,仍然没有解决以下两个问题:1) GMM算法采用固定的高斯个数描述像素点的状态;2) 检测不同视频帧均采用固定的学习率更新,不能适应场景外部环境的变化。本文针对以上两个不足之处提出基于模糊熵和学习率自适应的GMM目标检测算法。首先,将检测视频帧分割为三个模糊子集,计算出每个模糊子集的模糊熵,通过确定熵函数的最大值确定最佳阈值并选取高斯个数。然后计算出检测帧与参考帧之间相关性,通过对比背景变化因子和背景变化系数确定不同场景下选择不同的学习率。
1 GMM算法
1.1 背景建模
GMM算法针对图像中的每一个像素点建立K高斯分布,计算出每个像素点的灰度值μ0和方差σ0,通过加权和描述像素点的状态。各项表达式如下:
(1)
(2)
(3)
(4)
1.2 匹配与更新
在t时刻,新观测值xt需要与当前存在的k(1≤k≤K)个高斯模型进行匹配,当满足式(5)时,当前像素点与高斯分布模型匹配,否则不匹配。
|xt-μi,t-1|≤2.5σi,t-1
(5)
式中:μi,t-1、σi,t-1分别为第i个高斯分布在t-1时刻的均值和方差。
(1) 若匹配,将匹配的高斯分布参数按式(6)-式(8)进行更新。
ωi,t=(1-α)ωi,t-1+αMi,t
(6)
μi,t=(1-β)μi,t-1+βxt
(7)
(8)
(2) 对于没有匹配成功的模型,用当前帧的均值、初始化一个较大方差、较小权重的高斯模型,对于其他高斯模型,均值μ0和方差σ0均不变。
1.3 背景估计与前景分割
参数更新完成后,把K个高斯分布按ρi,t降序排列。选取前B个高斯分布作为背景像素的最佳描述模型。
(9)
式中:T为背景选取的阈值,一般取0.7~0.8。运动目标检测时,当前帧的像素值与B个高斯背景模型分别进行比较,若像素值与任何一个模型匹配,该像素点为背景点,若不匹配,则为前景运动目标。
在视频帧中,不同区域的变化状态也是不同的,变化较大的区域呈现多峰状态,需要较多的高斯分布描述,变化较小的区域可能出现单峰状态,需要更少的高斯分布个数。固定的高斯分布描述不同区域的像素点,浪费了计算机的运算资源,提高了检测耗时。高斯分布个数与阈值T有关,因此,实现阈值自适应,就能根据不同区域选择合适的高斯分布个数。
2 模糊熵自适应选取模型个数
在集合论中,对象x与集合A的关系是“属于”与“不属于”[10],描述了确定的概念。Zadth为了描述“亦彼亦此”的模糊概念,提出了模糊集合概念[11]。按照模糊子集的理论,隶属度函数μΩ(x)表征观测空间Ω的模糊集合,μΩ(x)的大小反映了元素属于模糊集的程度[12]。本文中,图像X的灰度值x(x∈[0,255])为观测空间,将图像X划分三个模糊子集A1、A2、A3,采用Logistic函数[13]描述三个模糊子集的隶属度函数,分别为:
(10)
(11)
(12)
式中:xA1(xi)、xA2(xi)、xA3(xi)分别为模糊子集A1、A2、A3中像素灰度值;L和k实验取值为1和12;a的取值为[0,1],不同的取值会影响Logistic函数作为模糊算子时信息的丢失情况。当x为无穷时,值域在有限区间内,避免了过度增强和过度抑制,在参数上也易于获取,本文选取a值为0.5。不同取值的Logistic函数图像如图1所示。
图1 不同a值的Logistic函数曲线图
在信息论中,熵的概念描述了研究对象的平均信息量[14]。在模糊领域中,度量模糊集合的信息量就是模糊熵,由于模糊子集的不同,图像在不同模糊子集空间中的信息量存在差异[15]。通过最大模糊熵准则,可以确定在不同模糊子集划分下保留图像的最大信息量。故选用最大模熵准则确定阈值,自适应选取高斯模型个数。
假设观测空间X上的模糊集合为Ω,根据Zadth将模糊集合Ω的模糊熵定义为:
(13)
Zadth定义的模糊熵反映了灰度直方图和隶属度对模糊熵的影响,对图像的模糊度量较准确。
根据式(13)将观测空间X的模糊熵和三个模糊子集的模糊熵分别定义为:
H(A)=H(A1)+H(A2)+H(A3)
(14)
(15)
(16)
(17)
通过式(15)-式(17)可知,模糊子集A1、A2、A3由参数t1、t2唯一确定。t1、t2将视频帧划分为不同变化的三个区域,分别为背景区域、噪声区域、前景区域。其中:背景区域变化较小,甚至无变化,采用较少的高斯模型个数;前景区域变化较大,需要较多的模型个数;噪声区域变化介于背景变化与目标变化区域之间,因此,模型个数的选取要按照不同区域像素点平均灰度值的关系确定。关系式如下:
(18)
(19)
当满足式(18)时,噪声区域模型个数在背景区域模型个数基础上增加1;当满足式(19)时,模型个数增加2,噪声区域的模型个数大于背景区域模型个数,小于前景区域模型个数。式(13)取得最大值时,t1、t2为最佳分割阈值,通过阈值分割的不同区域选取合适模型个数。
3 学习率自适应环境变化
混合高斯采用固定的学习率更新背景。当学习率选择较小时,抗干扰能力强,但是背景更新时需要更多的时间适应外部环境的变化;当学习率选择较大时,虽然能够快速适应外部环境的变化,但是很容易映入噪声,降低了检测的准确性,提高了检测的误检性[16]。合适的学习率能够适应外部环境的变化和抑制噪声的干扰。为解决上述学习率自适应的问题,本文提出一种自适应选取学习率的方法。通过计算参考帧与检测帧的相关系数作为学习率调整的参数,然后引入背景变化因子和背景变化系数,表征参考帧与检测帧之间的背景变化和整个视频中背景变化的情况,视频帧相关系数为:
(20)
检测帧动态背景变化因子为:
(21)
背景变化系数为:
(22)
相关系数C(I1,I2)的取值越小,表明检测帧与相关帧之间的相关性越弱,视频帧中背景的动态变化较大,选用较大的学习率快速适应背景的变化,C(I1,I2)的取值越大,表明两帧之间相关性越强,背景动态变化较小,选取较小的学习率即可。本文考虑到满足快速适应背景动态变化的同时还要抑制噪声的引入,故最终学习率的定义如下:
(23)
式中:a1、a2、a3是调节因子,根据实验调整得出。
算法的步骤如下:
(1) 输入参考帧进行模型初建,计算出前视频帧的各项参数,对像素点构造K个高斯模型。
(2) 通过模糊熵确定每一个像素点需要的高斯模型个数,对已经建立的高斯模型进行更新。
(3) 模型匹配为前景点,计算出视频相关系数C、检测帧动态背景变化因子γ、背景变化平均系数ζ,判断γ和ζ的关系,如式(23)所示。模型匹配不是为前景点时,当前像素取代权值最小的高斯分布。
(4) 更新权值、方差、均值。获得前景图像以及权值最高的高斯模型组成背景图像,经过填充处理获得前景运动目标,对检测结果进行处理完善。算法流程如图2所示。
图2 改进算法流程
4 实验结果
文中α取值为0.017 5,实验环境:Windows7 Inter(R) core(TM) i3 CPU M380@2.53 GHz,内存为2 GB的PC,编程软件为MATLAB(2015b),高斯模型的最大个数为k=5,控制参ε0为0.01。调节因子a1、a2、a3的取值分别为0.31、0.46、0.50。不同a值对处理速度和精度对比如图3所示。
图3 不同a值对处理速度和精度对比
选取不同的模型个数对视频进行检测,结果如图4所示,可以看出:当K=3时,背景对检测结果影响较大,GMM算法的误检率也比较高;K=4时,运动目标轮廓比较完整,也能够抑制背景的影响;当K=5时,抑制背景影响效果较好,但是目标轮廓不完整;本文算法检测出的运动目标轮廓较完整,内部没有出现空洞,运动目标完全检测出的情况下很好地抑制了背景的影响。
(a) 原图
(b) K=3时GMM检测结果
(c) K=4时GMM检测结果
(d) K=5时GMM检测结果
(e) 本文算法检测结果图4 视频1检测结果对比
视频中,水面的流动使得背景一直处于动态变化之中,GMM算法在学习率分别为0.001 34和0.003 52时进行检测,由图5可以看出:当学习率为0.001 34时,GMM算法能够检测出运动目标轮廓,但无法完全抑制水面波动的影响;当学习为0.003 52时,目标轮廓空洞较多,水面波动对检测影响较大。文献[9]中的学习率检测时,效果均优于以上两种检测结果,但是运动目标还是受到背景变化的影响。本文算法在背景波动的情况下检测出运动目标,并且克服了水面波动对检测结果的影响。
(a) 原图
(b) β=0.001 34时GMM检测结果
(c) β=0.003 52时GMM检测结果
(d) 文献[9]算法学习率检测结果
(e) 本文算法检测结果图5 视频2检测结果对比
验证算法的评价标准有很多,为了直观地分析本文算法的各项检测性能,针对不同视频采取不同性能指标。视频1采用识别率DR、误检率FAR、每帧节省的高斯分布个数、检测耗时验证算法性能。视频2在不同学习率下采用识别率DR、误检率FAR、背景更新耗时三个指标对检测结果进行定量分析。识别率DR和误检率FAR的表达式如下:
(24)
(25)
式中:TP为检测出属于真实前景的像素数;FN和FP为未检测出和错误检测出前景像素数。对每一帧图像进行多次检测后,不同模型个数在视频1上的识别率DR、误检率FAR、平均每帧节省的高斯分布个数、检测耗时如表1所示;不同学习率在视频2上的识别率DR、误检率FAR、背景更新耗时如表2所示。
表1 不同模型个数检测性能
表2 不同学习率检测性能
通过表1数据分析发现,GMM算法在不同K值下识别率和误检率均不同。K为3时,模型个数较少,计算机耗时较低,但是运动目标误检率较高;K为4时,误检率较高,耗时增加;K为5时,检测耗时明显增加,识别率较低。本文算法有效地降低了检测耗时和误检率,提高了识别率,节省了较多的高斯分布个数。通过表2数据发现,学习率不同时,检测各项性能有较大差别。当学习率为0.001 34,识别率较高,误检率较低,但是背景更新耗时更长;当学习率为0.003 52时,识别率降低、误检率提高,但是背景更新时间降低。文献[9]算法的检测效果均优于以上两种,但是性能方面还没有达到最优。通过本文学习率进行检测时,识别率提高,误检率降低,背景更新时间能够满足实时性的要求。
5 结 语
本文针对GMM算法采用固定的模型个数,利用模糊子集将视频帧分割为三部分,不同区域选择不同个数的模型,节省每帧中高斯模型分布的个数,降低计算量,提高了检测实时性。同时为了实现自适应学习率,计算出检测帧与参考帧之间的相关性,引入参考帧与检测帧之间的背景变化因子,与视频帧背景变化系数作对比,从而选择不同的学习率,不仅能够有效地抑制噪声干扰,还能实时地更新背景,提高检测的准确率和实时性。接下来工作的研究重点就是在远距离无人机拍摄的视频下准确、完整地检测出运动目标,并且提高算法在恶劣环境下小目标以及隐藏目标的识别率。