Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 训练背景减法器时,帧是否需要按时间顺序?_Opencv_Image Processing_Computer Vision - Fatal编程技术网

Opencv 训练背景减法器时,帧是否需要按时间顺序?

Opencv 训练背景减法器时,帧是否需要按时间顺序?,opencv,image-processing,computer-vision,Opencv,Image Processing,Computer Vision,在OpenCV中训练一个背景减法器(BackgroundSubtractorMOG,BackgroundSubtractorMOG2,或BackgroundSubtractorGMG)时,我是否需要按时间顺序输入帧?或者,帧是否可以任意顺序馈送,只要它们属于相同场景,且摄影机处于相同位置,具有类似的照明条件?这取决于历史参数和用于训练模型的帧计数。如果帧计数远大于历史参数(通常是这种情况),则需要按时间顺序设置帧。或者,如果你打算用几帧来训练背景模型,那么我认为顺序没有那么重要。但正如我所说,大

在OpenCV中训练一个背景减法器(
BackgroundSubtractorMOG
BackgroundSubtractorMOG2
,或
BackgroundSubtractorGMG
)时,我是否需要按时间顺序输入帧?或者,帧是否可以任意顺序馈送,只要它们属于相同场景,且摄影机处于相同位置,具有类似的照明条件?

这取决于历史参数和用于训练模型的帧计数。如果帧计数远大于历史参数(通常是这种情况),则需要按时间顺序设置帧。或者,如果你打算用几帧来训练背景模型,那么我认为顺序没有那么重要。但正如我所说,大多数情况下情况并非如此,您需要按时间顺序设置帧。

理论上,顺序对于初始帧并不重要,初始帧是历史参数。但是,当一个新的帧出现时,我们已经超过了历史参数,它将替换模型中的第一个帧。如果这只是前一帧,并且每次都会发生,那么您的模型将永远无法正确更新。 要澄清一下这一点: 我们有第1-5帧标记为A到E,无论您以何种顺序输入这些,生成的背景都是相同的。但是,现在第6帧(F)出现了,这意味着我们删除第1帧,将所有内容放回一个位置,然后添加新帧。 这样一来,1a 2b 3c 4d 5e将变成->1b 2c 3d 4e 5f

如您所见,已删除在位1的原始框架。 最终帧的替换会影响背景模型的准确性,即用新帧替换旧帧。如果以随机顺序添加所有帧。背景模型可能潜在地由一堆旧的帧组成,而只有一些新的帧

简而言之,只需按时间顺序添加帧


我希望这是有意义的,如果您对我的答案还有任何疑问,请留下评论。

这不是您的答案@guneykayim的副本-我读了两个答案,实际上它们完全不同。因此,如果我理解正确,只要我的
history
参数足够大,可以包含所有帧,帧的顺序就无关紧要了,对吗?理论上是的。实际上,情况并非如此。当您开始添加比历史参数更多的帧时(可能总是这样),顺序将变得很重要,因为最早的帧应该在第一帧被删除,如我的回答中所述。因此,除非有很好的理由不按时间顺序输入帧,否则最好按时间顺序添加帧。