融合多尺度变换的改进Vibe算法 下载: 1149次
1 引言
运动目标检测在计算机视觉领域一直是一个比较前沿的研究课题,在视频监控中应用广泛。目前常用的目标检测方法有:帧间差分法[1]、光流法[2]和背景差分法[3]。帧间差分法是指在视频图像序列相邻的两帧或者三帧间的图像来进行差分,从而提取运动目标的信息,该方法虽然实时性好,但检测效率不高,一般难以获得完整的运动目标的轮廓。光流法是通过计算图像光流场,然后根据图像的光流分布特性来进行聚类处理,虽然检测精度较高,但计算量大,实时性不好。背景差分法利用当前图片序列和背景的差分,通过阈值分割使前景和背景分离,得到运动的物体,其算法比较简单,在简单环境下能够很好地分割出前景。Barnich等[4]提出了快速的视觉背景提取差分法,即Vibe算法,这是一种像素级的前景检测算法。该算法利用像素邻域空间信息建立相应的像素信息传播机制,其主要创新之处在于背景模型的更新策略,可以随机选择需要替换的像素样本和更新邻域像素,在静态环境下优于其他算法,但在复杂的动态环境下则容易出现错检和漏检,难以获得完整的前景。为了提高检测算法在动态环境下的性能,国内外许多学者提出了许多改进方法,Liu[5]在Vibe算法的基础上提出了一种基于时空梯度的改进算法,算法根据背景的复杂性和变化情况,通过计算出空间梯度的平均值调整检测半径,再根据空间梯度的照度不变性减少阴影的干扰,因此改进后的算法在去除阴影和消除“鬼影”方面具有较好的效果。莫邵文等[6]在Vibe算法基础上提出了一种改进算法,结合视觉显著性判断背景模型中存在的鬼影,并通过建立闪烁矩阵自适应调节匹配阈值,取得了较好的效果。
在传统Vibe算法的基础上,本文提出了一种改进的算法。通过对输入的图像序列进行多尺度高斯分解,得到不同分辨率下的图像;然后在不同尺度空间下对其进行Vibe前景检测,并结合帧间信息,加快消除鬼影;同时为了更好地适应环境变化,提出了一种背景复杂度量,并根据背景的复杂程度动态地调整匹配阈值。
2 Vibe算法分析
2.1 Vibe算法
Vibe算法是一种像素级的背景建模算法,算法过程主要包括3个部分:背景建模、前景检测和模型更新。
1) 背景建模
在Vibe模型中,背景模型只需一帧就可完成模型初始化,为每一个像素点存储了一个样本集,样本集大小为
式中
2) 前景检测
Vibe算法从第二帧开始进行前景检测,通过对每个新的像素值与样本集的比较区分背景和前景。设在当前帧中像素
3) 模型更新
Vibe算法采用随机更新的策略,当某个像素点
2.2 Vibe算法存在的问题
若第一帧存在目标,检测结果会出现鬼影区域,如
当背景较为复杂时,如背景中存在晃动的树叶、水波纹等,易受动态背景的干扰,如
图 3. 动态背景干扰。(a)视频帧;(b)检测结果
Fig. 3. Dynamic background disturbance. (a) Video frame; (b) test result
图 4. 不同分辨率下的灰度值分布。(a) 320 pixel×240 pixel;(b) 160 pixel×120 pixel;(c) 80 pixel×60 pixel
Fig. 4. Gray value distributions at different resolutions. (a) 320 pixel×240 pixel; (b) 160 pixel×120 pixel; (c) 80 pixel×60 pixel
3 改进的Vibe算法
考虑到Vibe算法所存在的问题,在建立背景模型前,对图像序列进行图像金字塔变换,在不同尺度下进行Vibe前景检测,再对检测的结果进行融合,减少了动态背景的影响。同时,提出了一种鬼影抑制策略,加快了鬼影的消除。为了更有效地应对复杂环境,根据背景复杂程度,动态地调整阈值
3.1 多尺度融合
通过上述分析,在建立背景模型前,先对图像进行金字塔变换。金字塔变换是一种以多分辨率来解释图像的方法,采用对原始图像进行多尺度像素采样的方式,以生成多个不同分辨率的图像,并以金字塔形式排列,层级越高,图像越小,分辨率越低。该模型利用低通滤波器平滑图像,然后对平滑图像进行抽样,从而得到不同分辨率的图像,其公式表示为
式中
对输入图片序列进行二级金字塔变换,得到了3种不同分辨率的图像。假设原始图像分辨率为
通过高斯金字塔分解得到不同尺度的图像后,在相应层进行Vibe前景检测,就会得到3帧不同分辨率的差分图像,分别记为
1) 先对
2) 将
3) 将融合后的掩模
3.2 鬼影抑制
由于鬼影在相邻帧间变化不大,而目标一直在运动,所以当长时间检测某个区域为前景而没有发生较大变化时,可以认为该区域为鬼影区域。本文在原算法的基础上结合帧间信息,加入二次判断策略,统计前
3.3 自适应阈值
阈值在背景差分中一直扮演着重要作用,阈值直接影响最终检测的结果[8]。传统的Vibe算法在检测过程中一直采用固定的模型来更新半径
式中:
Ñ
式中
为了防止阈值波动幅度较大,对更新阈值
3.4 形态学处理
Vibe前景检测后,检测的结果并不是完整清晰的,会出现空洞残缺等现象,这时需对其进行形态学处理。形态学运算包括开运算、闭运算、腐蚀和膨胀。本文通过闭运算连接目标,填充空洞,再采用开运算,去除细小的目标,最后结合区域生长算法完整的分割出目标。
4 实验结果与分析
为了验证本文算法的效果,本文采用www.changedetection.net网站提供的视频序列进行测试,并与Vibe原始算法以及经典的混合高斯模型(GMM)进行对比实验。实验过程中,采用的部分参数与原Vibe算法[4]一致,其中背景样本数
4.1 对于鬼影的实验
针对鬼影的消除,选取highway图片数据集第400~800帧进行测试,图片的分辨率为320 pixel×240 pixel,实验结果如
图 5. 本文算法与原Vibe算法鬼影消除对比图。(a)第432帧;(b) Vibe算法结果;(c)本文算法结果;(d)第536帧;(e) Vibe算法结果;(f)本文算法结果
Fig. 5. Comparison of ghost elimination for proposed algorithm and original Vibe algorithm. (a) 432nd frame; (b) result by Vibe algorithm; (c) result by proposed algorithm; (d) 536th frame; (e) result by Vibe algorithm; (f) result by proposed algorithm
由于此次实验采用第400帧对背景模型进行初始化,而在第400帧中存在目标车辆,所以检测的结果会存在鬼影区域,鬼影区域采用红色矩形框进行标记,目标的检测及鬼影消除结果如
4.2 复杂背景下的实验
为了验证本文算法在动态背景下的性能,选取changedetection.net上提供的overpass 和canoe两组包含动态背景的视频序列进行测试,视频序列的分辨率为320 pixel×240 pixel;与原Vibe算法和GMM进行比较,其中overpass中含有大量的抖动树叶, canoe背景中含有大量水波纹,测试结果如
图 6. overpass的检测结果。(a)第2377帧;(b)真值图;(c) Vibe算法;(d) GMM;(e)本文算法
Fig. 6. Detection results of overpass. (a) 2377th frame; (b) truth map; (c) Vibe algorithm; (d) GMM; (e) proposed algorithm
图 7. canoe的检测结果。(a)第961帧;(b)真值图;(c) Vibe算法;(d) GMM;(e)本文算法
Fig. 7. Detection results of canoe. (a) 961st frame; (b) truth map; (c) Vibe algorithm; (d) GMM; (e) proposed algorithm
为了定量地分析本文算法的性能,采用了受试者工作特征(ROC)、精确率
式中:
通过记录实验数据,绘制ROC曲线,并与原Vibe算法和混合高斯GMM进行比较,结果如
图 8. 算法对比ROC曲线图。(a) Traffic序列;(b) overpass序列;(c) canoe序列
Fig. 8. Comparison among ROC curves by algorithm; (a) Traffic sequence; (b) overpass sequence; (c) canoe sequence
表 1. 不同算法的精确率、召回率和检测时间对比
Table 1. Comparison among precision rate, recall rate and time by different algorithms
|
由
5 结论
在原Vibe算法的基础上,融合帧间信息和多尺度变换,提出了一种在复杂环境下的运动目标检测算法。利用二次判断策略,快速地消除鬼影的干扰;引入多尺度空间,在多分辨率下进行检测,并通过设置自适应阈值,有效地克服了动态背景引入的噪声。在3组视频序列下进行对比实验,实验结果表明,相比于GMM和传统的Vibe算法,本文算法能够更快地消除鬼影,在复杂环境下能更好地去除动态背景的干扰。
[1] ChenY, Dong JW. Target detection based on the interframe difference of block and graph-based[C]∥Proceedings of IEEE International Conference of Computational Intelligence and Design, 2016: 467- 470.
[2] ManchandaS, SharmaS. Identifying moving objects in a video using modified background subtraction and optical flow method[C]∥Proceedings of IEEE International Conference on Computing for Sustainable Global Development, 2016: 129- 133.
[3] HanG, Li XF, SunN, et al. A robust object detection algorithm based on background difference and LK optical flow[C]∥Proceedings of IEEE International Conference on Fuzzy Systems and Knowledge Discovery, 2014: 554- 559.
[5] Liu SY. An improved ViBe moving object detection algorithm based on spatial-temporal gradient of image[C]∥Proceedings of International Conference on Progress in Informatics and Computing, 2016: 192- 197.
[6] 莫邵文, 邓新蒲, 王帅, 等. 基于改进视觉背景提取的运动目标检测算法[J]. 光学学报, 2016, 36(6): 0615001.
[7] 陈星明, 廖娟, 李勃, 等. 动态背景下基于改进视觉背景提取的前景检测[J]. 光学精密工程, 2014, 22(9): 2545-2552.
[8] 丁祺, 顾国华, 徐富元, 等. 强视差下的移动相机运动目标检测[J]. 激光与光电子学进展, 2015, 52(9): 091501.
[9] 田毅龙, 周伟, 王卫华, 等. 一种由粗到精的大视场弱小目标检测方法[J]. 激光与光电子学进展, 2013, 50(1): 011104.
[10] 闵卫东, 郭晓光, 韩清. 改进的ViBe算法及其在交通视频处理中的应用[J]. 光学精密工程, 2017, 25(3): 806-811.
[11] 宋志勤, 路锦正, 聂诗良. 改进的时空背景差分目标检测[J]. 光电工程, 2016, 43(2): 27-32,39.
[12] 陈树, 丁保阔. 动态背景下自适应LOBSTER算法的前景检测[J]. 中国图象图形学报, 2017, 22(2): 161-169.
[14] ZhangD, XuA, ZhangJ, et al. The improvement of VIBE foreground detection algorithm[C]∥Proceedings of International Conference on Automatic Target Recognition and Navigation, 2018, 10608: 1060802.
[15] WuS, ChenD, WangX. Moving target detection based on improved three frame difference and visual background extractor[C]∥Proceedings of IEEE International Congress on Image and Signal Processing, 2017: 1- 5.
Article Outline
茅正冲, 沈雪松. 融合多尺度变换的改进Vibe算法[J]. 激光与光电子学进展, 2018, 55(11): 111501. Zhengchong Mao, Xuesong Shen. Improved Vibe Algorithm Integrated with Multiscale Transformation[J]. Laser & Optoelectronics Progress, 2018, 55(11): 111501.