APP下载

一种鬼影及边缘传播抑制的ViBe目标检测算法

2020-04-01陈金戈李炎炎俞晓红杜玉龙

关键词:像素点阈值像素

陈金戈, 龙 伟, 李炎炎, 俞晓红, 杜玉龙

(四川大学机械工程学院, 成都 610065)

1 引 言

运动目标检测是计算机视觉中一项关键的预处理技术,为后续目标跟踪识别、动作行为分析等其他应用提供基础.传统的目标检测算法有:帧间差分法[1]、光流法[2]和背景减除法[3]、尺度不变特征变换[4]等.背景减除法是目前最常用的目标检测方法,其基本原理是通过建立背景模型,利用当前帧与其背景模型对比来确定前景目标[5].其中背景减除法所需要解决的关键问题是背景建模及其更新.常用的背景建模方式有:单高斯分布模型(single Gaussian model) 、混合高斯分布模型(Mixture of Gaussian, MOG)与Kalman滤波器 (Kalman filter)模型[6]等.单高斯分布模型与混合高斯分布模型计算复杂度高,且模型参数对背景提取影响很大, 缺乏鲁棒性.Kalman滤波器方法进行背景建模时,在目标运动缓慢情况下,背景模型会出现拖影的现象.

针对传统背景建模算法存在的问题,Olivier Barnich 2009年提出了视觉背景提取模型[7](Visual Background extractor)建模方法.该方法的创新之处在于将随机机制应用到了背景模型的建立和更新上,使得背景模型更符合实际分布规律,而且该方法不需要假定任何的概率模型,所以检测精度高,实时性较好,内存占用少.然而ViBe算法也存在着一些问题,首先该算法利用视频序列的第一帧完成背景建模,虽然响应速度快,能够完成实时性的需求,但是当第一帧图像包含运动物体时,该算法会将相应区域的背景误判断为前景,形成鬼影现象影响目标检测的准确性.其次,因为该算法的空间随机传播机制,缓慢运动的物体会融入背景库,产生侵蚀现象,造成检测的目标不完整.

针对出现的鬼影现象,文献[8]提出了一种动态阈值的改进算法, 使用大津算法计算每帧图像的分割阈值, 再对鬼影像素点进行判别,但当前景与背景的方差较小时,图像处理效果不佳.文献[9]通过比较直方图分布和像素变化率判断前景目标的目标相似性, 从而检测鬼影,但是其运算效率较低,不能保证监控系统的实时性需求.文献[10]提出了使用前n帧进行背景初始化的方法,虽然能有效去除鬼影,但是并不能使程序一开始就进行目标检测.

本文提出的改进方法能够在一定场景下抑制鬼影的出现,并且针对缓慢运动的目标也能保证较高的检测准确率.

2 ViBe算法

ViBe 算法是一种像素级别的视频前景提取算法,每个像素都建立一个包含N个样本的背景模型,前景的提取是用当前帧中的像素与像素对应的背景模型进行比较来确定.该算法主要步骤分为3个: 模型初始化、前景检测和模型更新.

2.1 模型初始化

由于第一帧图像没有可用的时间信息,可以被用来进行背景模型的初始化填充:对于每个像素点,随机选取它及其空间邻域的共N个值来建立N个样本模型,这样从第二帧图像开始就能进行前景目标检测.

2.2 前景检测

由于背景模型为每个背景点存储了N个样本模型,计算当前像素值和样本模型中每个样本值的欧式距离,如果距离小于相似度阈值,则近似样本点数增加.当近似样本点数大于匹配数目阈值,则认为当前素点为背景.否则判断当前像素点为前景.当前像素是否为被判断为背景主要由样本模型数目N,匹配数目阈值#min和相似度阈值R决定.根据经验一般取:N=20,#min=2,R=20.

2.3 模型的更新策略

为了能随时间的推移获得准确的检测结果并处理场景中出现的新对象,背景模型的更新就显得尤为重要.ViBe 算法的更新策略与传统的先进先出的更新策略不同,因为当背景图像经过掩膜处理过后,便不再需要像素点的时间信息,所以从理论上说,背景样本模型中的每个像素点的生命周期最好能呈单调衰减的趋势.ViBe算法通过随机选择更新样本模型时要替换的样本来实现这个目的.一旦选择了要被替代的样本,新值将与之替换.ViBe算法使用了“随机子采样策略”的方法来更新像素点.即当一个像素点被判别为背景时,它有 1 /φ的概率更新背景模型样本模型,在对应背景模型中随机选择一个样本用这个像素进行更新.为保证样本的空间一致性,同时也有1/φ的概率去更新它的邻域点的背景模型样本值,方法也是在它的邻域点的背景模型中随机地选择一个样本,用它的邻域点的像素值进行更新.其中φ的默认值为16.

3 改进的ViBe算法

本文提出的ViBe改进算法引入了基于迭代自组织分析算法阈值分割的鬼影抑制以及基于边缘特征延长缓慢目标融入背景样本模型.本文算法鬼影抑制引入Ridler[11]提出的迭代自组织分析算法(ISODATA).通过ISODATA算法计算当前帧的最佳分割阈值,在ViBe算法判别的基础上,对前景像素点进行二次判别,来抑制鬼影的出现.对于缓慢融入背景样本模型的对象,通过计算图像的边缘特征来改进ViBe算法空间随机传播机制,解决算法对缓慢移动的目标检测不完整问题.最后通过形态学处理完成对目标的检测.

3.1 基于ISODATA算法的鬼影抑制

已被判定为背景的目标突然发生移动就会导致鬼影的出现.通常抑制鬼影的方法有两种:(1) 优化背景模型的建立;(2) 监测出鬼影的位置,进而实现鬼影的抑制.本文基于后者的思想实现鬼影的抑制.ISODATA算法计算简单,计算速度快,大约四次迭代就能得到最佳分割阈值,而且对于一些模糊的边界也有较好的分割效果.鬼影抑制过程如下:

图1 假定检测目标Fig.1 Assumed detection target

(a) 计算当前帧的最佳分割阈值.首先假定图像的四个角仅包含背景而剩余部分则是检测目标,如图1所示,该图作为初始阈值分割模板,黑色部分为背景,白色部分为检测目标.将此模板作为检测函数将图像分割为背景区域和目标区域,然后计算背景区域的像素平均值Ab以及目标区域的像素平均值Ao.这时阈值T0如公式(1)所示.然后使用阈值T0对图像进行分割,从而获得图像的背景区域与目标区域.重复上述过程,直到获取最佳阈值Tk.

(1)

(b) 鬼影的判别.求取被ViBe算法判断为目标点的每个像素点于样本模型中的灰度像素平均值,与阈值Tk比较,如果当前点的灰度像素平均值小于阈值Tk且当前点的灰度值大于最佳阈值Tk,则就认为该目标点为背景点.然后更新该点的背景模型,此时鬼影区域就能有效地被去除,使得后续的检测过程更加精准.

3.2 边缘传播抑制

因为ViBe算法的随机空间传播机制,缓慢运动的检测目标会加速融入背景样本模型,从而导致检测目标的不完整.针对这一情况,本文提出一种延长慢速移动目标融入背景样本模型的方法.在传统ViBe算法中,当一个像素点被判断为背景点时,其8邻域中的像素点也有一定概率被判断为背景点,这一特点让缓慢移动的目标加速融入背景样本模型.由于被检测目标一般都含有明显的边缘特征,所以通过寻找图片的边缘特征,在更新背景点的时候如果该点是边缘点则跳过该点的邻域更新,通过这样的操作可以延长缓慢移动目标在前景停留的时间.

Canny算法与其他边缘检测算法相比,其边缘检测更为严格.Canny算法提出边缘检测标准[12]:(1) 好的信噪比;(2) 高的定位精度;(3) 单边缘响应.根据以上三个准则,Canny算法推导出最优边缘检测算子的一个近似实现,即边界点位于图像被高斯函数平滑后的梯度幅度极大值点上.由于传统Canny算子的高低阈值是人为确定的,不具有一般适用性.本算法首先运用Otsu算法[13]确定Canny算子的高阈值,再用此高阈值乘以比例因子σ求得算子的低阈值,σ的值为0.5.通过边缘传播抑制能延长缓慢移动目标融入背景样本模型的时间.

最后,经过形态学图像处理,清除检测时出现的孔洞以及一些轻微闪烁点.算法流程图如图2所示.

图2 算法流程图Fig.2 Algorithm flowchart

4 实验结果与分析

为了验证本文算法对鬼影的抑制效果,以及延长缓慢运动目标融入背景时间,本文主要采用两组测试视频.第一组采用的是Change Detection数据集[14]中的Highway视频序列.第二组采用的是Change Detection数据集中的office视频序列.运行环境为:Win10 64位操作系统;处理器为:Intel©Corei7-7600U CPU;内存 16.00 GB.使用VS 2017、OpenCV 3.4.2编写算法.

4.1 鬼影的抑制

本组实验选取Highway 视频序列第601帧为初始帧.如图所示,图a)为第635帧原图,图b)为ViBe算法检测图,图中有明显的鬼影残留,图c)为本文改进算法,可以明显看出鬼影已经消失, 图d)为真实的前景.然而ViBe算法鬼影的消失在第680帧左右,本文算法有明显的鬼影消除能力.

a)视频第635帧

b)ViBe算法

c)本文算法

d)真实前景

图3 鬼影抑制结果

Fig.3 Shadow removal result

4.2 缓慢运动目标检测

本组实验选取office视频序列,对比检测缓慢运动目标延长融入背景的情况.视频中人物站立在原地取书,身体的绝大部分处于静止状态.图a)为第720帧原图,图b)为ViBe算法检测图,因为检

a) 视频第720帧

b)ViBe算法

c) 本文算法

d)真实前景

图4 边缘抑制结果

Fig.4 Edge propagation suppress result

测目标停留在原地,已经有部分显示不完整,图c)为本文改进算法,图d)为真实的前景,可以看出检测目标与传统ViBe算法相比较为完整.

为进一步验证本文算法,本文借鉴文献[15]定义的目标检测率:

(2)

图5 Highway视频序列检测结果Fig.5 Result of Highway video

图6 Office视频序列检测结果Fig.6 Result of Office video

Highway视频序列有鬼影的出现,所以一开始检测率较低,但是由于本文的二次鬼影检测,所以相比于传统ViBe算法,更快获得了较高的检测率.Office视频序列较为简单,只有一个运动目标,可以从视频序列检测曲线中看出改进ViBe算法的检测率下降的时间点在传统ViBe算法之后,使缓慢移动目标融入背景的时间变得更长,检测效果更好.实验说明本文提出的算法能够快速地提高目标检测的准确率,同时对于缓慢移动的目标也能在一定时间内保持较高的检测准确率.

ViBe算法是目前流行的目标检测算法,但是由于其背景初始化的特殊性容易出现鬼影现象,并且由于ViBe算法的空间随机传播机制,缓慢移动的目标会加速融入背景样本模型.针对上述问题,本文提出一种基于迭代自组织分析算法的阈值分割来进行鬼影抑制,并且根据图像的边缘特征改进ViBe算法的空间随机传播机制,使得算法能够延长缓慢移动目标融入背景的时间.通过两组不同的视频序列进行实验验证,结果表明,本文的改进算法能有效地加快鬼影的消除,并且推迟缓慢运动目标融入背景样本模型,使识别准确率下降的时间向后延长,保持了算法较高的识别准确率.

猜你喜欢

像素点阈值像素
像素前线之“幻影”2000
图像二值化处理硬件加速引擎的设计
土石坝坝体失稳破坏降水阈值的确定方法
基于小波变换阈值去噪算法的改进
基于局部相似性的特征匹配筛选算法
采用红细胞沉降率和C-反应蛋白作为假体周围感染的阈值
“像素”仙人掌
一种X射线图像白点噪声去除算法
基于canvas的前端数据加密
高像素不是全部