论文精读 MOG2 阴影检测

An Improved Adaptive Background Mixture Model for Real-time Tracking with Shadow Detection 

一种用于阴影检测实时跟踪的改进自适应背景混合模型

承接上一篇博客:论文精读 && MOG && 埃里克·格里姆森-CSDN博客 

目录

一、摘要

二、结论

三、介绍

四、背景模型

(1)自适应高斯混合模型

(2)在线EM算法

(3)阴影检测与颜色模型

五、实验


一、摘要

图像序列中运动区域的实时分割是许多视觉系统的基本步骤,包括自动视觉监视、人机界面和低频电信号。一种典型的方法是背景减法(background subtraction)。

问题:

许多背景模型被引入来处理不同的问题。这些问题的成功解决方案之一是使用Grimson等人[1,2,3]提出的每像素多色背景模型。然而,该方法在开始时学习缓慢,尤其是在繁忙的环境中。此外,它无法区分移动阴影和移动对象。

解决方案:

  • 本文提出了一种改进这种自适应背景混合模型的方法。通过重新研究更新方程,我们在不同的阶段使用不同的方程。这使我们的系统能够更快、更准确地学习,并有效地适应不断变化的环境。
  • 本文还介绍了一种阴影检测方案。它是基于利用我们的背景模型的计算颜色空间。对这两种算法进行了比较。

结果显示了在Grimson等人的跟踪器上使用我们的更新算法的学习速度和模型的准确性。当与阴影检测相结合时,我们的方法比Grimson等人的方法分割效果好得多。

关键词:背景减法,阴影抑制,期望最大化算法,高斯混合模型。

W. Eric L. Grimson(埃里克·格里姆森),麻省理工学院前校长

  • [1] Grimson, W. E. L., Stauffer, C., Romano, R., Lee, L. Using adaptive tracking to c1assify and monitor activities in a site. in Proceedings. 1998 iEEE Computer Society Conference on Computer Vision and Pattern Recognition. IEEE Computer. Soc. 1998. 1998.
  • [2] Stauffer, C., Grimson, W. E. L. Adaptive background mixture modelsfor real-time tracking. in Proceedings. i 999 iEEE Computer Society Conference on Computer Vision and Pattern Recognition. IEEE Computer. Soc. Part Vol. 2, 1999.
  • [3] Stauffer, C., Grimson, W. E. L., Learning patterns ofa ctivity using real-time tracking. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2000. 22(8): p. 747-57. 

二、结论

我们提出了新的更新算法,用于学习背景场景的自适应混合模型,以实时跟踪运动对象。该算法在Grimson等人提出的实时鲁棒跟踪器框架下运行,并对两种算法进行了比较。结果显示了在Grimson等人的跟踪器上使用我们的更新算法的学习速度和模型的准确性。我们提出了一种使用现有混合模型检测运动阴影的方法。这大大减少了额外的计算负担。阴影检测只需要在标记为前景的像素上执行,因此计算开销可以忽略不计。可以成功检测到移动的阴影。阴影检测还减少了背景场景中小的重复运动的影响。

  1. 顶行分别在第15帧、第105帧、第290帧和第1200帧显示原始序列。
  2. 第二行显示了Grimson等人的结果。
  3. 最后两行是我们提出的方法在图像中显示和不显示移动阴影的情况下的结果。阴影显示为灰色。

三、介绍

背景减法包括计算参考图像,从该图像中减去每个新帧,并对结果进行阈值处理。结果是图像的二值分割,其突出非平稳对象的区域。参考图像的最简单形式是时间平均的背景图像。这种方法存在许多问题,并且需要没有前景对象的训练期。背景对象在训练期之后的运动和前景对象在训练期间不动将被视为永久前景对象。此外,该方法无法应对场景中的逐渐照明变化。

这些问题导致要求任何解决方案都必须不断地重新估计背景模型,已经提出了许多自适应背景建模方法来处理这些缓慢变化的平稳信号。比如:

  1. Friedman和Russell通过三个高斯分布的自适应参数混合模型对相机场景中的每个像素进行建模[4]。他们还根据充分的统计数据对在线更新方程进行了一些简短的讨论。
  2. Koller等人使用KaI-man滤波器来跟踪每个像素的背景照明变化[5]。他们应用了一种选择性更新方案,只将可能的背景值包括在背景估计中。该方法能够很好地应对光照的变化;但是不能处理对象被引入或从场景中移除的问题。其中的一个解决方案是每个像素使用多色背景模型。
  3. Grimson等人采用自适应非参数高斯混合模型来解决这些问题[1,2,3]。他们的模型还可以减少小的重复运动的影响;例如,移动树木和灌木等植被,就像移动小的相机位移一样。
  4. Eigammal等人对每个像素使用了核估计器[6]。内核示例取自移动窗口。他们还介绍了一种通过使用空间相干性来减少小运动结果的方法。这是通过将简单连接的组件与其圆形邻域的背景模型进行比较来实现的。尽管作者提出了许多加速例程,但该方法仍然具有较高的计算复杂性。
  5. 使用高级处理来辅助背景建模的其他技术;例如,Wallflower跟踪器[7],它使用高级处理而不是解决背景模型的不足之处来规避其中的一些问题。

我们的方法基于Grimson等人的框架[1,2,3],不同之处在于更新方程、初始化方法和引入阴影检测算法。

  • [1] Grimson, W. E. L., Stauffer, C., Romano, R., Lee, L. Using adaptive tracking to classify and monitor activities in a site. in Proceedings. 1998 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. IEEE Computer. Soc. 1998. 1998.(CVPR,顶会)
  • [2] Stauffer, C., Grimson, W. E. L. Adaptive background mixture modelsfor real-time tracking. in Proceedings. 1999 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. IEEE Computer. Soc. Part Vol. 2, 1999.(CVPR,顶会)
  • [3] Stauffer, C., Grimson, W. E. L., Learning patterns of activity using real-time tracking. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2000. 22(8): p. 747-57. (PAMI,一区Top)

用于拟合高斯混合模型的常见优化方案是期望最大化(EM)算法。EM算法是一种迭代方法,它保证在搜索空间中收敛到局部最大值。由于对背景图像的每个像素建模的时空要求,需要在线EM算法。许多学者已经引入了许多在线EM算法,它们可以分为两组:

  • 第一组是概率密度函数的参数估计领域。换句话说,在不修改先前模型的结构的情况下,在更新先前估计时使用新数据。该程序由Nowlan[8]介绍,并根据Neal和Hinton[9]的结果进行了解释。Traven导出了该程序的N个最新窗口版本[10]。McKenna等人[11,12,13]将Traven[10]的结果扩展到L批EM运行结果的L个最新窗口,并将其用于跟踪多色前景对象。如果没有良好的初始估计(通常通过运行批处理EM算法找到),这种参数估计方法就无法有效运行。
  • 第二组是非参数方法。Priebe等人引入了一种具有随机阈值的自适应混合模型,用于在现有混合模型中生成新的高斯核[14,15]。

然而,Grimson和Stauffer[2,3]应用了具有确定性阈值的相同方案。

除了Grimson等人,许多其他作者已经应用混合模型对相机场景中的每个像素进行建模。Rowe和Blake将批处理EM算法应用于他们的虚拟图像平面中的离线训练[16]。但是,模型不会随时间更新,因此会导致场景照明随时间变化的外部环境出现故障。Friedman和Russell模式使用三种高斯分布的自适应混合,为每个像素绘制道路、阴影和车辆分布[4]。该分类基于强度空间中相对距离的启发式方法。他们报告了使用期望的充分统计公式进行的良好分割。然而,这仍然需要预处理初始化,以使用批处理EM算法学习初始模型。

发现问题 >>> 解决方案 >>> 实验证明

  1. 我们在第4.1节中解释了Grimson和Stauffer[2,3]的背景模型及其不足。
  2. 我们对这个问题提出的解决方案见第4.2节。
  3. 第4.3节解释了我们的阴影检测。每种方法的结果在第5节中显示和比较。

四、背景模型

在本节中,我们将讨论Grimson和Stauffer[2,3]的工作及其缺点。作者介绍了一种通过混合K个高斯分布(K是从3到5的一个小数字)对每个背景像素进行建模的方法。假设不同的高斯表示不同的颜色,混合物的权重参数表示这些颜色在场景中停留的时间比例。与Friedman等人的工作不同,背景成分是通过假设背景包含B最高可能的颜色来确定的。可能的背景颜色是那些停留时间更长、更静止的颜色。静止的单色物体倾向于在颜色空间中形成紧密的簇,而运动的物体由于运动过程中反射表面的不同而形成加宽的簇。在他们的论文中,这种衡量标准被称为适应度值。为了使模型能够适应照明的变化并实时运行,应用了更新方案。它基于选择性更新。每个新的像素值都按照适合度的顺序对照现有的模型组件进行检查。将更新第一个匹配的模型组件。如果找不到匹配,则将添加一个新的高斯分量,其中包含该点的平均值、一个大的协方差矩阵和一个小的加权参数值。

(1)自适应高斯混合模型

场景中的每个像素都由 K 个高斯分布的混合物建模。某个像素在时间 N 具有 X_{N} 值的概率可以写为:

K 分布是基于适应度值 W_{k}\sqrt{\sigma _{k}} 排序的,并且 first B 分布被用作场景背景的模型,其中 B 被估计为

阈值T是背景模型的最小分数。换句话说,背景在场景中是最小的先验概率。背景相减是通过将前景像素标记为与任何B分布相距超过2.5标准偏差的任何像素来执行的。匹配测试值的第一高斯分量将由以下更新方程更新,

如果K个分布中没有一个与该像素值匹配,则最不可能的分量被以当前值为其平均值、初始高方差和低权重参数的分布所代替。

根据他们的论文[1,2,3],系统只需要设置两个参数,\alphaT。在他们的论文[1,2,3]中解释了其稳健性的细节;但是,通过简单的讨论,我们可以看出它的缺点。首先,如果给定像素的第一个值是前景对象,则只有一个高斯权重等于1。只有一种颜色的后续背景值,需要log_{(1-\alpha)}(T)帧,直到真正的背景可以被视为背景,需要 log_{(1-\alpha)}(0.5) 个帧,直到它成为主要的背景成分。例如,如果我们假设至少60%的时间背景存在,并且 \alpha = 0.002(500个最近帧),则该分量将分别需要255帧和346帧才能被包括为背景和主要背景分量的一部分。在繁忙的环境中,情况可能会更糟,因为那里很少有干净的背景。本文在下一节中提出了该问题的解决方案。其次,由于可能性因素,\rho 太小。这导致均值和协方差矩阵的自适应太慢,因此跟踪器可能在初始化后几秒钟内失败。对此的一个解决方案是简单地从 \rho 中去掉似然项。

(2)在线EM算法

我们通过期望的足够的统计更新方程开始估计高斯混合模型,然后在处理前 L 个样本时,切换到 L-recent 窗口版本。在可以收集所有L个样本之前,期望的充分统计更新方程在开始时提供了良好的估计。该初始估计提高了估计的准确性,也提高了跟踪器的性能,从而允许在稳定的背景模型上快速收敛。L-recent 的窗口更新方程优先于百分比数据,因此跟踪器可以适应环境的变化。

公式左侧显示了预期足够统计的在线EM算法,而公式右侧显示了 L-recent 窗口版本。

(3)阴影检测与颜色模型

正如他们的论文[1,2,3]中的证据所示,Grimson等人的跟踪器无法从投射阴影的物体中识别出移动的阴影。这背后的原因是,不存在将高斯分量标记为移动阴影的启发式方法。一种解决方案是使用降低易感性的彩色颜色空间表示。由于许多颜色空间可以分离色度和照明分量,因此无论亮度如何,保持色度模型都可能导致模型不稳定,尤其是对于非常亮或暗的对象。这种转换还需要计算资源,特别是在大图像中。保留强度分量和节省计算成本的想法将我们带回RGB空间。作为识别移动阴影的要求,我们需要考虑一个可以分离色度和亮度分量的颜色模型。它应该是兼容的,并使用我们的混合模型。这是通过将非背景像素与当前背景分量进行比较来实现的。如果色度和亮度分量的差异在某些阈值内,则像素被视为阴影。我们使用了一个有效的计算颜色模型,类似于Horprasert等人[17]提出的模型来满足这些需求。它由像素背景RGB平均值处的位置矢量E、预期色度精细度 ||E||、色度失真 d 和亮度阈值 \tau 组成。对于给定的观测像素值 I,来自背景模型的亮度失真 \alpha 和颜色失真 c 可以计算为:

在假设每个混合物成分中存在球形高斯分布的情况下,第 k^{th} 个成分 \sigma _{k} 的标准偏差可以设置为等于 d 。使用向量点积计算 a 和 c 是琐碎的。在我们的情况下,如果 a 在 2.5 标准偏差以内,并且 \tau <c<1,则非背景观测样本被视为移动阴影。

五、实验

本节演示了Grimson模型[2,3]和我们提出的算法在图像序列上的性能。这里显示的序列是192x144的图像。我们使用了个高斯分量的自适应混合。L被设置为500帧(在Grimson等人中的\alpha = 0.002),并且阈值 T 被设置为0.6。在阴影检测模块中,使用了0.7的亮度阈值 \tau。为了显示背景模型的性能,没有在背景减法的结果中引入更高级别的过程,如噪声清理或连接分量分析算法。下面这张结果图显示了一系列繁忙的户外场景,其中包括人们在公共通道中行走。这个序列包括强烈的阳光,巨大的阴影区域,树木,眼镜反射和长时间移动的阴影。我们展示了最初阶段、繁忙场景和长期运行的图像。由于一开始没有干净的图像,Grimson等人的跟踪器中留下的初始图像的伪影持续了100多帧。从我们的方法中可以看到更好的分割。阴影检测模块大大提高了性能。

  1. 顶行分别在第15帧、第105帧、第290帧和第1200帧显示原始序列。
  2. 第二行显示了Grimson等人的结果。
  3. 最后两行是我们提出的方法在图像中显示和不显示移动阴影的情况下的结果。阴影显示为灰色。

>>>> 如有疑问,欢迎评论区一起探讨!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/227380.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot HTTP 400 错误的日志信息在哪里查看 ?

HTTP 400 一般来说是入参的某些字段的格式不对 Spring Boot项目启动后默认是不会把相应的日志打印在控制台的 需要在logback.xml里面做相关的配置才会打印出来 具体配置如下 <configuration><appender name"stdout" class"ch.qos.logback.core.Con…

西南科技大学C++程序设计实验九(多态二)

Point operator++ (int) { // 后置自增运算符重载 Point temp(*this); ++(*this); return temp; } void print() { cout << "x=" << x << ", y=" << y << endl; } private: int x; int y; }; int main() { P…

谷歌Gemini AI模型使用指南

引言 2023年12月7日&#xff0c;谷歌宣布推出其迄今为止功能最强大、最通用的多模态人工智能&#xff08;AI&#xff09;大模型&#xff1a;Gemini。根据最新的性能评估&#xff0c;Gemini在多项指标上已经超越了ChatGPT 4。 Gemini的使用教程 Gemini 模型从大到小分为Ultra…

[Linux] nginx配置的主配置文件

一、六个模块的作用 全局块&#xff1a;全局配置&#xff0c;对全局生效&#xff1b; events块&#xff1a;配置影响 Nginx 服务器与用户的网络连接&#xff1b; http块&#xff1a;配置代理&#xff0c;缓存&#xff0c;日志定义等绝大多数功能和第三方模块的配置&#xff1b;…

【VRTK】【VR开发】【Unity】11-甩臂移动

课程配套学习资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【概述】 除了一般的移动能力,VRTK还提供更为沉浸的甩臂移动。 【设定摇杆输入中间件】 在Hierarchy中展开Button Input Actions,其下生成两个新的空子对象…

【Flink系列四】Window及Watermark

3.1、window 在 Flink 中 Window 可以将无限流切分成有限流&#xff0c;是处理有限流的核心组件&#xff0c;现在 Flink 中 Window 可以是时间驱动的&#xff08;Time Window&#xff09;&#xff0c;也可以是数据驱动的&#xff08;Count Window&#xff09;。 Flink中的窗口…

翻译: 生成式人工智能的经济潜力 第2部分行业影响 The economic potential of generative AI

麦肯锡报告 翻译: 生成式人工智能的经济潜力 第一部分商业价值 The economic potential of generative AI 1. 行业影响 在我们分析的63个使用案例中&#xff0c;生成式人工智能有潜力在各行各业创造2.6万亿至4.4万亿美元的价值。其确切影响将取决于各种因素&#xff0c;比如…

Qt之QGraphicsView —— 笔记1:绘制简单图元(附完整源码)

效果 相关类介绍 QGraphicsView类提供了一个小部件,用于显示QGraphicsScene的内容。QGraphicsView在可滚动视口中可视化。QGraphicsView将滚动其视口,以确保该点在视图中居中。 QGraphicsScene类 提供了一个用于管理大量二维图形项的场景。请注意,QGraphicsScene没有自己的视…

Open-Falcon(一)环境配置

目录 ip划分一、主机准备二、环境配置2.1修改主机名、修改hosts文件2.2配置阿里源&#xff0c;安装工具2.3关闭防火墙、selinux2.4配置时间2.5安装go2.6安装redis2.7 安装mysql初始化MySQL表结构 ip划分 主机名IP服务open-faclon-server192.168.150.200open-faclon-serverngin…

nodejs微信小程序+python+PHP的智能停车系统-计算机毕业设计推荐django

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

select*from 查询语句返回null

1. 写了一个很简单查询全部数据的demo接口,结果一直返回null. 数据库明明有数据而且在console控制台也可以查到,但是用接口访问一直返回null 2.后发现原来是数据库中字段名和对象的属性名称对不上&#xff0c;所以可以在yml文件中加上 mybatis:configuration:map-underscore-…

如何搭建一套完整的智能安防视频监控平台?关于设备与软件选型的几点建议

安防视频监控系统主要由前端摄像机设备、视频显示设备、视频存储设备、安防应用软件/平台以及其它传输、辅助类设备组成。一般来说&#xff0c;安防监控系统具有可扩展和开放性&#xff0c;以方便未来的扩展和与其他系统的集成。今天我们就来介绍一下&#xff0c;搭建一套完整的…

Kubersphere应用【四】创建SpringBoot项目

一、生成Springboot项目 【地址】https://start.spring.io/ Spring在线生成项目工具&#xff0c;可以快速生成Spring Boot项目。选择要的依赖项&#xff0c;填写基本信息&#xff0c;点击【GENERATE】就可以生成一个可运行的Spring Boot项目。 二、IDEA导入项目 生成项目后,进…

LAMP和分离式LNMP部署

目录 一.什么是LAMP&#xff1f; 二.安装LAMP 先安装apache&#xff0c;httpd网页服务&#xff1a; 接着安装mysql&#xff1a; 安装php&#xff1a; 创建论坛&#xff1a; 三.安装分布式LNMP&#xff1a; 先安装nginx&#xff1a; 到另一台主机安装php&#xff1a; …

dtm分布式事务框架之SAGA 实战

一.dtm分布式事务框架之SAGA 1.1DTM介绍 DTM是一款开源的分布式事务管理器&#xff0c;解决跨数据库、跨服务、跨语言栈更新数据的一致性问题。 通俗一点说&#xff0c;DTM提供跨服务事务能力&#xff0c;一组服务要么全部成功&#xff0c;要么全部回滚&#xff0c;避免只更…

javaTCP协议实现一对一聊天

我们首先要完成服务端&#xff0c;不然出错&#xff0c;运行也要先运行服务端&#xff0c;如果不先连接服务端&#xff0c;就不监听&#xff0c;那客户端不知道连接谁 服务端 import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.Actio…

ncnn模型部署——使用VS2019把项目打包成DLL文件

一、项目打包成DLL文件 1.创建动态链接库DLL项目 创建完成&#xff0c;项目中包含源文件dllmain.cpp, pch.cpp&#xff0c;头文件framework.h, pch.h 2.编写和配置DLL项目 &#xff08;1&#xff09;配置pch.h文件&#xff0c;在头文件pch.h中定义宏&#xff0c;宏的作用的是…

gma 空间绘图实战(1):绘制多个子图,连接并展示局部放大区域

安装 gma&#xff1a;pip install gma 本文基于&#xff1a;gma 2.0.3&#xff0c;Python 3.10 本文用到的矢量数据为&#xff1a;CTAmap 1.12。来源于 https://www.shengshixian.com/ 。&#xff08;感谢锐多宝&#xff09; 绘图目标 参考代码 import matplotlib.pyplot as p…

电子秤ADC芯片CS1237技术资料问题合集

问题11&#xff1a;实际应用中&#xff0c;多个称重传感器应该怎么与ADC连接&#xff1f; 解答&#xff1a;如果传感器是测量同一物体&#xff08;例如&#xff1a;厨房垃圾处理器&#xff09;&#xff0c;一般建议使用并联的方式。则相同类型的信号线连接在一起。对于传感器的…

MySQL - 并发控制与事务的隔离级别

目录 第1关&#xff1a;并发控制与事务的隔离级别 第2关&#xff1a;读脏 第3关&#xff1a;不可重复读 第4关&#xff1a;幻读 第5关&#xff1a;主动加锁保证可重复读 第6关&#xff1a;可串行化 第1关&#xff1a;并发控制与事务的隔离级别 任务描述 本关任务&#…