7

我在理解backgroundsubtractormog2的所有参数时遇到问题。

我查看了代码(位于 中bfgf_gaussmix2.cpp),但没有看到与上述论文的联系。例如 Tb = varThreshold,但论文中 Tb 的名称是什么?

我对脂肪标记参数特别感兴趣。

让我们从简单的参数开始[我的评论]:

  • 内部混合

    最大允许混合成分数。实际数量由每个像素动态确定。[为GMG设置0]

  • uchar nShadowDetection

    用于在输出前景蒙版中标记阴影像素的值。默认值为 127。

  • 浮动fTau

    阴影阈值。如果像素是背景的较暗版本,则会检测到阴影。Tau 是一个阈值,定义了阴影可以有多暗。Tau= 0.5 意味着如果一个像素比暗两倍以上,那么它就不是阴影。

现在对于那些我不明白的人:

  • 浮动背景比率

    定义组件是否足够重要以包含在背景模型中的阈值(对应于论文中的 TB=1-cf??哪篇论文??)。cf=0.1 => TB=0.9 是默认值。对于 alpha=0.001,这意味着该模式应该存在大约 105 帧,然后才被视为前景。

  • float varThresholdGen

    平方马氏距离的阈值,有助于确定样本何时接近现有分量(对应于 Tg)。如果它不靠近任何组件,则生成一个新组件。3 sigma => Tg=3*3=9 是默认值。较小的 Tg 值会产生更多的组件。较高的 Tg 值可能会导致组件数量较少,但它们可能会变得太大。[我一个字都看不懂]

  • 在构造函数中使用了变量varThreshold。和 varThresholdGen 一样吗?

    平方马氏距离的阈值,以决定背景模型是否很好地描述了它(参见 Cthr??)。该参数不影响后台更新。典型值可以是 4 sigma,即 varThreshold=4*4=16;(见结核病??)。

  • 浮动 fVarInit

    新生成的组件的初始方差。它影响适应的速度。参数值基于您对图像的典型标准偏差的估计。OpenCV 使用 15 作为一个合理的值。

  • 浮动 fVarMin

    用于进一步控制方差的参数。

  • 浮动 fVarMax

    用于进一步控制方差的参数。

  • 浮动 fCT

    复杂性降低参数。此参数定义证明组件存在所需接受的样本数。CT=0.05 是所有样本的默认值。通过设置 CT=0,您将获得与标准 Stauffer&Grimson 算法非常相似的算法。

有人在 OpenCV 网站上问了几乎相同的问题,但没有答案。

4

1 回答 1

14

好吧,如果你不知道你正在使用的算法的细节,我认为没有人能告诉你哪个参数是什么。此外,如果您知道算法的详细信息,则不需要任何人告诉您哪个参数是什么。我说的是详细参数(fCT、fVarMax 等),而不是简单的参数(nmixtures、nShadowDetection 等)。

所以,我认为你应该阅读文档中引用的论文。这是论文123的链接。

你也应该阅读这篇论文,这是背景估计的开始。

在阅读了这些论文并检查了代码之后,我相信您会理解这些参数是什么。

祝你好运!

于 2014-04-06T07:32:43.547 回答