首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于BackgroundSubtractorMOG的车辆计数

基于BackgroundSubtractorMOG的车辆计数
EN

Stack Overflow用户
提问于 2013-12-14 11:25:18
回答 3查看 5.6K关注 0票数 2

我正在做一个叫ATCS(自动交通控制系统)的项目,它会根据红绿灯前的车辆数量来修改红绿灯的持续时间。

我使用openCV和backgroundsubtractorMOG来检测车辆,当车辆移动时,它可以成功运行,但当红色信号亮起时,所有车辆都无法计数。当然,这会使我的软件无法工作。

到目前为止,我知道backgroundsubtractorMOG是最好的解决方案,因为这个系统可以在wheather,光照强度等许多变化中工作。它会比较当前帧和前一帧,因此运动对象被检测为前景(CMIIW)。那么,移动中的车辆和已经停止的车辆--因为交通信号灯的红色信号亮着,它迫使司机停车?它仍然会被检测为前景对象吗?

所以我想问最合适的算法来做这件事。如何计算车辆移动时的数量,以及当车辆停止移动时,因为红色信号--它仍然检测为车辆。

谢谢您:)

EN

回答 3

Stack Overflow用户

发布于 2013-12-14 13:29:24

你是如何更新你的背景的?由于光照条件的变化(云,白天,夜晚,黄昏,天气),你不能保留它的统计数据,但是如果你仍然知道背景的外观,也就是如果汽车不在那里,那么仍然可以检测到停着的汽车的存在。如果你在图像中有一个区域没有汽车通过,你可以用它来了解照明条件是否正在变化。

你对车辆的视角是什么?有机会将Viola Jones检测器与KLT跟踪器相结合,您将获得更好和更一般的结果。

票数 1
EN

Stack Overflow用户

发布于 2013-12-16 18:25:32

如果背景减法对你有效(如你所说),我会尝试添加另一个背景模型。然后你可以执行两次背景差分,一次是针对前一个图像(适用于所有移动对象),另一次是针对long term background model,它将检测所有停止的车辆(以及正在移动的车辆),但对于不同的照明条件可能会有一些缺点。

您可以使用ViBeGaussian-Mixture-Models来创建这些背景模型。

另一种方法是引入一些跟踪机制,正如Antonio已经提到的那样。一旦通过背景差分检测到车辆(只有移动对象会出现在图像中),您就可以开始跟踪,即使没有再次检测到它们(因为它们不会移动),您也会知道它们在那里。因此,您需要一种跟踪方法,而不是“通过检测进行跟踪”,而是某种其他方法。我会推荐卡尔曼滤波或粒子滤波,或者是均值漂移跟踪。

编辑:Local Binary Patterns (LBP)是一种经常用于车辆检测的方法,它类似于背景减去技术

票数 1
EN

Stack Overflow用户

发布于 2013-12-15 16:48:53

我建议使用潜在的SVM检测器和“汽车”和“巴士”模型来检测车辆,然后在你得到的边界框上应用简单的跟踪。

潜在支持向量机检测器:http://docs.opencv.org/modules/objdetect/doc/latent_svm.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20579342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档