Opencv 训练背景减法器时,帧是否需要按时间顺序?
在OpenCV中训练一个背景减法器(Opencv 训练背景减法器时,帧是否需要按时间顺序?,opencv,image-processing,computer-vision,Opencv,Image Processing,Computer Vision,在OpenCV中训练一个背景减法器(BackgroundSubtractorMOG,BackgroundSubtractorMOG2,或BackgroundSubtractorGMG)时,我是否需要按时间顺序输入帧?或者,帧是否可以任意顺序馈送,只要它们属于相同场景,且摄影机处于相同位置,具有类似的照明条件?这取决于历史参数和用于训练模型的帧计数。如果帧计数远大于历史参数(通常是这种情况),则需要按时间顺序设置帧。或者,如果你打算用几帧来训练背景模型,那么我认为顺序没有那么重要。但正如我所说,大
BackgroundSubtractorMOG
,BackgroundSubtractorMOG2
,或BackgroundSubtractorGMG
)时,我是否需要按时间顺序输入帧?或者,帧是否可以任意顺序馈送,只要它们属于相同场景,且摄影机处于相同位置,具有类似的照明条件?这取决于历史参数和用于训练模型的帧计数。如果帧计数远大于历史参数(通常是这种情况),则需要按时间顺序设置帧。或者,如果你打算用几帧来训练背景模型,那么我认为顺序没有那么重要。但正如我所说,大多数情况下情况并非如此,您需要按时间顺序设置帧。理论上,顺序对于初始帧并不重要,初始帧是历史参数。但是,当一个新的帧出现时,我们已经超过了历史参数,它将替换模型中的第一个帧。如果这只是前一帧,并且每次都会发生,那么您的模型将永远无法正确更新。
要澄清一下这一点:
我们有第1-5帧标记为A到E,无论您以何种顺序输入这些,生成的背景都是相同的。但是,现在第6帧(F)出现了,这意味着我们删除第1帧,将所有内容放回一个位置,然后添加新帧。
这样一来,1a 2b 3c 4d 5e将变成->1b 2c 3d 4e 5f
如您所见,已删除在位1的原始框架。
最终帧的替换会影响背景模型的准确性,即用新帧替换旧帧。如果以随机顺序添加所有帧。背景模型可能潜在地由一堆旧的帧组成,而只有一些新的帧
简而言之,只需按时间顺序添加帧
我希望这是有意义的,如果您对我的答案还有任何疑问,请留下评论。这不是您的答案@guneykayim的副本-我读了两个答案,实际上它们完全不同。因此,如果我理解正确,只要我的
history
参数足够大,可以包含所有帧,帧的顺序就无关紧要了,对吗?理论上是的。实际上,情况并非如此。当您开始添加比历史参数更多的帧时(可能总是这样),顺序将变得很重要,因为最早的帧应该在第一帧被删除,如我的回答中所述。因此,除非有很好的理由不按时间顺序输入帧,否则最好按时间顺序添加帧。