【发布时间】:2015-06-03 16:49:15
【问题描述】:
我使用 opencv 进行车辆计数过程。 如何将我的 BackgroundSubtractorMOG 对象(例如 BackgroundSubtractorMOG2 等)保存到文件中,以便我可以从文件中读取它,再次使用经过训练的背景模型而无需长时间训练?
【问题讨论】:
标签: opencv background-subtraction
我使用 opencv 进行车辆计数过程。 如何将我的 BackgroundSubtractorMOG 对象(例如 BackgroundSubtractorMOG2 等)保存到文件中,以便我可以从文件中读取它,再次使用经过训练的背景模型而无需长时间训练?
【问题讨论】:
标签: opencv background-subtraction
我碰巧正在寻找这个确切的东西,所以如果其他人仍在寻找它,我将分享我所学到的东西。似乎简短的回答是否定的。至少 OpenCV 似乎不支持它。
BackgroundSubtractorMOG2 继承自 BackgroundSubtractor,后者继承自 Algorithm,该算法具有用于存储算法参数的内置读/写功能。根据Algorithm::write 上的 OpenCV 文档,它仅存储背景模型算法的参数,而不存储背景模型本身。引用链接:
“但是,背景模型没有被存储。首先,它相当大。然后,如果你已经存储了背景模型,它可能在下一次运行时变得无关紧要(因为相机移动,背景改变,不同的照明等) .). 因此,BackgroundSubtractorMOG 和 BackgroundSubtractorMOG2 也依赖于标准的 Algorithm::write() 来仅存储算法参数。”
作为旁注,我完全不同意 OpenCV,我不明白为什么他们觉得有必要为我做出这个决定,而不是让我在看到它的目的时保存背景模型。无论如何,这就是我发现的,如果其他人知道如何存储背景模型或解决方法:请分享。
【讨论】: