融合单高斯模型的改进ViBE算法
2019-05-24支祖利高智勇
支祖利 高智勇
(1. 阜阳职业技术学院工程科技学院, 安徽 阜阳 236000;2. 中南民族大学生物医学工程学院, 武汉 430074)
运动目标检测在智能交通、视频监控智能分析等领域应用较为广泛,运动目标检测也是目前图像处理和计算机视觉研究的热点。常见的运动目标检测算法包括背景减除法、帧间差分法[1-2]、背景模型法[3-4]等。ViBE(Visual Background Extractor)算法是用于运动目标检测的典型算法,具有环境适应性好、运算速度快等特点,但用于检测运动量较小及运动速度较快的目标时,有可能出现漏检现象。针对此问题,我们提出一种融合单高斯模型的改进ViBE算法。单高斯模型具有灵敏度高、目标检测时间效率高等特点,有助于提升ViBE算法在检测运动目标时的准确性。
1 ViBE算法
ViBE算法针对视频帧的第1帧建立模型,可缩短背景模型建立的时间。其算法思想是:假设视频第1帧中的某像素与周围相邻的像素在空间域上具有分布相似性,此像素可用周围相邻像素表示,则此像素的背景模型可参照周围相邻像素来建立。背景模型的建立无需参数,将视频的第2帧与当前背景模型作差分,即可分割出前景。当像素被判断为背景时更新背景模型,反复不断更新,持续至视频结束。
ViBE算法建立背景模型的3个步骤如下:
步骤一,针对第1帧视频中的所有像素建立无参数背景模型。假设第1帧视频中的所有像素之间具有空间域的相似性,此时视频帧中的像素点可参照周围相邻像素来表示,建立此像素的背景模型。像素相邻邻域范围的选取是建立背景模型的关键。若像素相邻邻域选取范围过大,像素之间的空间相似性就会变小;若像素相邻邻域选取范围过小,建立像素背景模型的样本值不足,背景模型就无法建立。像素背景模型如式(1)所示:
M0(x)={v0(y)|y∈NG(x)}
(1)
式中:M0(x)为视频第1帧像素点x的背景模型;NG(x)为像素点x所选邻域内像素点的样本集合;v0(y)为NG(x)样本集合内第1帧时的像素灰度值。 第1帧像素内像素点x的背景模型为:
M0(x)={v1,v2,v3,…,vn}
(2)
步骤二,检测视频图像中的运动目标。设定前景分割的判断准则,通过判断准则对后续视频进行分割。当视频图像中的时间为k时,视频图像为F(x,y,k),背景模型为Mk-1(x)X,判断前景像素准则表述为式(3):
(3)
式中:R为像素点x在RGB颜色空间中以x为球心的半径。设定一个判断阈值Thresh,当背景模型中的像素点在RGB空间落入半径为R、以此像素点为球心的球体的个数大于设定的阈值Thresh时,则此像素点即为背景,反之像素点被判断为前景。通过判断准则对背景模型进行更新。
步骤三,更新背景模型。通过前景像素判断准则确定前景和背景时,对像素点在周围邻域内随机选择性进行更新。NG(x)为像素点的邻域像素样本集合,样本集合内的像素点在空间域内相似性较强。样本集合内的像素成为背景的概率偏大,在样本集合内,随机选择像素点更新背景模型。
ViBE算法的建模效率高,运行速度快,在背景建模中对视频的第1帧要求严格。当视频帧中存在运动量微小的目标时,像素之间差值较小,此像素点有可能被判断为背景像素而导致漏检。利用单高斯模型的灵敏性,可解决ViBE算法在运动目标检测中的漏检问题[4-5]。
2 单高斯背景模型算法
单高斯模型(Single Gaussian Background Model)常应用于单模态背景检测,即背景相对单一的环境[6-7]。单高斯模型算法的思想是:假设视频序列中像素点在颜色空间内符合高斯分布,则单高斯模型数学形式为参数Xt,μt∑t下的高斯分布η(Xt,μt∑t)。该算法如式(4)所示:
(4)
式中:Xt为视频序列t时刻某个像素点的像素值;μt为此像素点在t时刻所属的高斯分布的均值;Σt为此像素点在t时刻所属高斯分布的协方差。单高斯模型假设背景模型中的像素在颜色空间的分布符合高斯分布。假设视频图像t时刻像素点(x,y)的颜色分布满足均值为μ和协方差为d的高斯分布,即满足公式(5):
B(x,y)~N(μ,d)
(5)
单高斯背景模型中均值μ的初始化如式(6)所示:
(6)
协方差d的初始化如式(7)所示:
(7)
μ=(1-α)μt+αIt+1(x,y)
(8)
(9)
式中,α为背景模型更新速度,为取值0~1的给定常数。通过视频库对单高斯模型进行仿真,部分帧仿真效果展示如图1所示。
3 融合单高斯模型的改进ViBE算法
单高斯模型检测对运动量相对较小的目标比较敏感。应用ViBE算法建立模型时采用的是无参数形式,随机更新,因此,检测中常会将视频中运动微弱的目标误认为背景而导致漏检。受单高斯模型检测运动目标的敏感性启发[8],我们认为可将单高斯模型融合到ViBE算法中,改进ViBE算法,以解决漏检问题,提高ViBE检测结果的准确度。
改进后的算法描述如下:假设,视频t时刻的图像为F(x,y,t),将其作为单高斯模型的输入进行检测;将检测后得到的图像G(x,y,k)作为ViBE算法建立背景模型的视频帧,并进行运动目标检测,对检测后的图像进行形态学处理。
融合单高斯模型后的改进ViBE算法流程如图2所示,其具体实施步骤如下:
(1) 输入视频图像F(x,y,t),创建单高斯模型η(xt,μt,Σt)。
(2) 通过单高斯模型η(xt,μt,Σt)检测得到运动像素的图像G(x,y,k)。检测出图像G(x,y,k),将其作为ViBE算法的输入项。运动目标量较小的目标此时可被检测出。
(3) 将通过ViBE算法检测的图像进行形态学处理,得到最终检测结果。
图2 融合单高斯模型的改进ViBE算法流程
实验证实,改进后的算法具有可行性,在检测运动目标时能有效检测出运动量较小的运动目标,弥补了ViBE算法在检测运动量较小的运动目标产生的漏检缺陷。分别应用帧间差法、背景减除法、单高斯模型法、ViBE算法及本次改进ViBE算法,对图3所示视频帧进行检测,效果对比如图4所示。
图3 测试视频
视频帧中,1#轿车缓慢行驶,运动量较小,ViBE算法检测时并未检测到。单高斯模型利用其算法敏感性能优势检测到了1#轿车。背景减除法对光照变化敏感,实时性不强。帧间差分法检测运动目标时,目标区域出现空洞,运动量较小的运动目标在检测时出现拖影。ViBE算法检测完整度高于背景减除法和帧间差法,单高斯模型虽然对环境变化的适应性不强,但是能完整检测到运动的目标。改进后的ViBE算法能完整有效地检测出运动目标,实时性较强。
图4 各算法检测效果
4 结 语
为了比较算法的应用效果,对同一视频使用不同的算法进行测试,展示和对比检测结果。算法测试实验中,基于Windows 7操作系统,使用VS2010集成开发环境编写算法,搭载开放的视觉库OpenCV2.4.9运行。应用单高斯模型算法,假设像素点满足均值μ和均方差d的高斯分布,对运动的物体比较敏感,能有效地检测出运动量较小的目标,但对于复杂环境的适应性不强。应用ViBE算法,对视频图像中的像素建立不含参数的背景模型,可随机选取邻域内的像素以更新背景模型,对环境的适应性较强。但应用ViBE算法检测视频中运动量较小的运动目标时,容易将此目标误认为背景而导致漏检。本次研究提出的改进算法,将单高斯模型与ViBE算法相融合,可以避免原算法的漏检问题。
融合单高斯模型的改进ViBE算法,可以在一定程度上改善单高斯模型对于复杂环境的适应性,提升ViBE算法在检测微小运动量目标时的完整度。