【问题标题】:How to track and count multiple cars in a video using contours?如何使用轮廓跟踪和计算视频中的多辆汽车?
【发布时间】:2016-09-08 18:39:24
【问题描述】:

我遵循的步骤:

  • 带有预处理的背景减法。
  • 轮廓检测。

通过这两个步骤,我可以在视频中所有移动的汽车上绘制轮廓。但是如何跟踪轮廓以计算视频中的汽车数量?

我搜索了一下,似乎有不同的技术,如卡尔曼滤波器、Lucas Kannade 和光流……但我不知道我的用例应该使用哪一种。我正在使用 opencv3-python

【问题讨论】:

  • 如果您只需要计算通过摄像头的汽车,那么一组简单的扫描线就可以了。像使用挡光板一样使用它们
  • 评估车道上的一行像素。如果非汽车价值的强度发生巨大变化,那么您就让汽车超车了。
  • 你能推荐一些示例代码/算法吗?

标签: python-3.x image-processing computer-vision opencv3.0


【解决方案1】:

实际上,这似乎是一个普遍的问题,但我要给出一个观点(我自己也有同样的问题,但pointclouds,虽然它可能与你问的不同,I hope it will give you an idea of how to proceed) .

大多数情况下,一旦检测到您的轮廓,跟踪场景中的移动对象涉及 3 个主要步骤:

特征匹配:

这一步是关于detecting features in your object (Frame N) and match it to features of objects in frame (N+1)。检测部分有一些标准的 algorithms and descriptors 可用于 OpenCV(SURF、SIFT、ORB...)以及 Features matching 部分。

卡尔曼滤波器

卡尔曼滤波器用于get an initial prediction (generally by applying a constant velocity model for your objects)。对于轨道的每个出现点,执行对应搜索。如果平均距离高于指定阈值,则应用特征匹配以获得更好的初始估计。 为此,您需要以Kalman filter 可以解决的方式对问题进行建模。

动态映射

运动估计后,the appearance of each track is updated。与标准映射技术相比,动态映射是一种尝试累积静态和动态对象的外观细节的方法。从而改进您的运动估计和跟踪过程。

那里有很多论文,您不妨进一步看看这些论文:

Robust Visual Tracking and Vehicle Classification via Sparse Representation

Motion Estimation from Range Images in Dynamic Outdoor Scenes

Multiple Objects Tracking using CAMshift Algorithm in OpenCV

希望对你有帮助!

【讨论】:

  • 感谢您的建议。我最终创建第一个算法的方式是使用带有轮廓检测的背景减法。然后我用匈牙利算法跟踪轮廓。
猜你喜欢
  • 2013-03-01
  • 2018-10-13
  • 1970-01-01
  • 2015-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多