车辆分割和跟踪

时间:2013-03-13 17:25:14

标签: opencv tracking classification image-segmentation object-detection

我一直在研究一个项目,用于检测和跟踪(移动)从无人机捕获的视频中的车辆,目前我使用的SVM训练有从车辆中提取的局部特征的特征包表示。背景图片。然后我使用滑动窗口检测方法来尝试和定位图像中的车辆,然后我想跟踪。问题是这种方法很慢,我的探测器不像我想的那么可靠,所以我得到了很多误报。

所以我一直在考虑尝试从后台分割汽车以找到大致的位置,以便在应用我的分类器之前减少搜索空间,但我不知道如何去做,并希望有人可以提供帮助?

另外,我一直在阅读有关层的运动分割,使用光流通过流动模型对帧进行分割,是否有人对此方法有任何经验,如果可以的话,您是否可以提供一些输入,因为您是否认为这种方法会适用于我的问题。

以下是来自示例视频的两帧

第0帧: enter image description here

第5帧: enter image description here

2 个答案:

答案 0 :(得分:11)

假设您的汽车正在移动,您可以尝试估算地平面(道路)。

您可以通过提取特征(SURF而不是SIFT,速度),在帧对上匹配它们以及使用RANSAC求解单应性来获得下降地平面估计,因为3D中的平面根据两个相机之间的单应性移动帧。

一旦有了地平面,就可以通过查看根据估计的单应性不移动的像素群来识别汽车。

更复杂的方法是在地形上进行结构运动。这仅仅预示它是刚性的,而不是它是平面的。


<强>更新

  

我想知道你是否可以扩展如何根据估计的单应性来寻找不移动的像素簇?

不确定。说IK是两个视频帧,HI中的单应素映射功能,K中的功能。首先,根据IK变形为H,即将变形图像Iw计算为Iw( [x y]' )=I( inv(H)[x y]' )(大致为Matlab表示法)。然后你看一下平方或绝对差异图像Diff=(Iw-K)*(Iw-K)。根据单应性H移动的图像内容应该给出小的差异(假设图像之间的恒定照明和曝光)。违反H的图像内容(例如移动的汽车)应该脱颖而出。

对于Diff中的高误差像素组的聚类,我将从简单的阈值开始(“大于X的Diff中的每个像素差异都是相关的”,可能使用自适应阈值)。阈值图像可以通过形态学操作(扩张,侵蚀)进行清理,并与连接的组件聚集在一起。这可能过于简单了,但是第一次尝试很容易实现,而且应该很快。对于更加花哨的东西,请看Clustering in Wikipedia。 2D Gaussian Mixture Model可能很有趣;当你使用前一帧的检测结果初始化时,它应该非常快。

我用你提供的两个框架进行了一些实验,我不得不说我对自己的效果感到有些惊讶。 :-) 左图:您发布的两帧之间的差异(颜色编码)。 右图:与单应素匹配后的帧之间的差异。剩下的差异显然是移动的汽车,它们足够强大,可以进行简单的阈值处理。

Frame differences before and after image alignment

考虑到您目前使用的方法,可能会将其与我的提案相结合:

  • 您可以尝试在差异图像D中学习和分类汽车,而不是原始图像。这相当于了解汽车运动模式的样子,而不是汽车的样子,这可能更可靠。
  • 您可以摆脱昂贵的窗口搜索,仅在D区域运行分类器,且值足够高。

其他一些评论:

  • 从理论上讲,如果它们不平坦,它们甚至应该脱颖而出,因为它们不是平坦的,但考虑到你与场景的距离和相机分辨率,这种效果可能过于微妙。
  • 如果您愿意,可以用光流替换我的提案的特征提取/匹配部分。这相当于识别从地面的一致的帧到帧运动“伸出”的流向量。然而,它可能倾向于光流中的异常值。您也可以尝试从流向量中获取单应性。
  • 这很重要:无论您使用哪种方法,一旦您在一个框架中找到汽车,您应该使用此信息来证明您在连续的框架中搜索这些汽车,从而提高了检测接近旧的(卡尔曼滤波器等)。这就是跟踪的全部内容!

答案 1 :(得分:1)

  1. 如果您视野中的汽车数量始终保持不变但移动然后您可以使用光流......它会在静止背景下给您带来良好效果......如果汽车数量发生变化那么你需要在一定数量的帧之后在OpenCV中调用goodFeaturestoTrack函数,然后再使用光流跟踪汽车。
  2. 您可以使用背景建模来模拟背景,因此汽车始终是您的前景。最简单的示例是帧差异...减去前一帧当前帧。 diff(x,y,k) = I(x,y,k) - I(x,y,k-1)。当你的车在每一帧中移动时,你将获得他们的位置..
  3. 这个过程都可以正常工作,因为你有一个静止的背景我假设.. check this link找到光流可以做什么。