BackgroundSubtractorMOG2的参数

Seb*_*itz 5 c++ parameters opencv background-foreground

我有问题理解的所有参数backgroundsubtractormog2.

我查看了代码(位于bfgf_gaussmix2.cpp),但没有看到与提到的文件的连接.例如,Tb = varThreshold,但论文中Tb的名称是什么?

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

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

  • int nmixtures

    允许的最大混合物组分数.每个像素动态确定实际数量.[为GMG设置0]

  • uchar nShadowDetection

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

  • 漂浮fTau

    影子阈值.如果像素是背景的较暗版本,则检测阴影.Tau是一个阈值,用于定义阴影的暗度.Tau = 0.5意味着如果一个像素的深度超过两倍,那么它就不是阴影.

现在对我不明白的人:

  • 浮动backgroundRatio

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

  • float varThresholdGen

    平方Mahalanobis距离的阈值,有助于确定样品何时接近现有组件(对应于Tg).如果它不接近任何组件,则生成新组件.3 sigma => Tg = 3*3 = 9是默认值.Tg值越小,产生的组分越多.较高的Tg值可能导致少量组分,但它们可能会变得太大.[我不明白这个]

  • 在构造函数中,使用变量varThreshold.它与varThresholdGen相同吗?

    平方马哈拉诺比斯距离的阈值决定它是否被背景模型很好地描述(见Cthr ??).此参数不会影响后台更新.典型值可以是4西格玛,即varThreshold = 4*4 = 16; (见Tb ??).

  • float fVarInit

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

  • 浮动fVarMin

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

  • 浮动fVarMax

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

  • 浮动fCT

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

有人在OpenCV网站上问过几乎同样的问题,但没有答案.

gun*_*yim 12

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

所以,我认为你应该阅读文档中引用的论文.下面是该论文的链接1,2,3.

而且你应该阅读这个文件为好,这是背景估计的开始.

阅读完这些文章并查看代码后,我相信你会明白这些参数是什么.

祝好运!

  • +1我不知道如何与OP沟通,但你做得很好.这就是为什么没有人投票支持这个问题的原因,我希望他能理解这一点. (2认同)