我在理解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 网站上问了几乎相同的问题,但没有答案。