如何使用轮廓跟踪和计算视频中的多辆汽车?

时间:2016-05-12 18:51:26

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

我遵循的步骤:

  • 使用预处理进行背景减法。
  • 轮廓检测。

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

我搜索了一下,似乎有不同的技术,如卡尔曼滤波器,卢卡斯Kannade和光流......但我不知道哪一个用于我的用例。我正在使用 opencv3-python

1 个答案:

答案 0 :(得分:2)

实际上,这似乎是一个普遍的问题,但我会提出一个观点(我自己,我有同样的问题,但pointclouds,虽然它可能与你提出的不同,{{ 1}})。

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

功能匹配:

此步骤约为I hope it will give you an idea of how to proceed。检测部分在OpenCV(SURF,SIFT,ORB ...)以及algorithms and descriptors部分中有一些标准Features matching

卡尔曼过滤器

卡尔曼滤波器用于detecting features in your object (Frame N) and match it to features of objects in frame (N+1)。对于轨道的每个出现点,执行对应搜索。如果平均距离高于指定的阈值,则应用特征匹配以获得更好的初始估计。 为此,您需要以Kalman filter解决问题的方式对问题进行建模。

动态制图

在运动估计之后,get an initial prediction (generally by applying a constant velocity model for your objects)。与标准映射技术相比,动态映射是一种尝试累积静态和动态对象的外观细节的方法。从而完善了你的运动估计和跟踪过程。

那里有很多论文,你可以进一步看看这些论文:

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

希望它有所帮助!

相关问题