【问题标题】:Tracking of rotating objects using opencv使用opencv跟踪旋转物体
【发布时间】:2019-11-15 12:16:04
【问题描述】:

我需要通过顶视图视频跟踪路上的汽车。

我的应用程序包含两个主要部分:

  1. 在框架上检测汽车(Tensorflow 训练网络)
  2. 跟踪检测到的汽车(opencv 跟踪器)

我在使用 opencv 跟踪器时遇到问题。最初我尝试了不同的跟踪器,但只有 MOSSE 足够快。该跟踪器几乎适用于直路的情况,但我遇到了旋转汽车的问题。这种情况出现在十字路口。

据我了解,旋转对象的边界框大于水平或垂直对象的边界框。结果 bbox 包含大部分静态背景,并且跟踪器丢失了目标对象。

是否有可以跟踪轮廓(不是边界框)的替代跟踪器? 我可以通过任何设置或调整图片来调整现有 opencv 跟踪器结果的质量吗?

架构:

实物图:

【问题讨论】:

  • 你想要的是边界旋转框。但是,我还不确定如何将它与 opencv 跟踪器一起使用。
  • 或许,基于 SIFT 的方法会更好1
  • @SlawomirOrlowski 对象小且分辨率低,因此使用 SIFT 进行跟踪时出现错误
  • @Max:好的。我的下一个镜头是GOTURN: Generic Object Tracking Using Regression Networks.
  • 你是否在每一帧中检测到?检测器是否有同样的问题(轴对齐边界框)?相机是静止的吗?一辆车的(旋转)框的大小是否应该保持不变?实际的盒子对你有用吗?也许只考虑(太大)框的中心点就足够了?

标签: opencv image-processing


【解决方案1】:

如果您的相机是静止的,则以下情况是可行的:

  1. 使用 ‌background subtraction 方法将背景图像与前景斑点分开。
  2. 使用morphological operations 改进前台结果。
  3. 检测汽车斑点并移除其他斑点。
  4. 跟踪视频中的前景斑点,即二进制轨道(只需使用this,甚至应用KF)。

【讨论】:

    【解决方案2】:

    在这种情况下,一个非常基本但有效的方法可能是跟踪边界框的中心坐标,如果中心坐标仅沿一个轴变化(任一轴的公差很小),则它是线性运动(不是回转)。如果 x 和 y 都改变,则汽车正在环形交叉路口移动。

    这只是它会检测对角线运动的弱点,但由于您正在查看一个居中的环形交叉路口,这应该不是问题。

    这在内存方面也将非常有效。

    【讨论】:

      【解决方案3】:

      您应该使用 PCA 方法,该方法可以计算检测到的对象的方向以及它面向的方向。您可以更改检测阈值以选择图片中更像汽车的对象(基于形状和颜色 - 在您的情况下为红色的 HSV 转换)。

      Link to an introduction to Principal Component Analysis (PCA)

      【讨论】:

      • 仅在第一帧检测到对象。检测后,应使用跟踪器和输入 bbox 对其进行跟踪。我添加了真实图像(汽车可以有任何颜色)
      • 之后,使用 MOOSE 检测到对象,应用蒙版,然后每帧应用 PCA 方法。蒙版应将框架的所有其他部分都遮盖掉,只留下图像中的汽车。从而允许 PCA 方法处理图像并找到汽车的方向。
      【解决方案4】:

      方法一:

            - Detect bounding boxes and subtract the background to get blobs rotated rectangles.
      

      方法二:

            - implement your own version of detector with  rotated boxes.
      

      方法三:

            - Use segmentation instead  ... Unet for example. 
      

      【讨论】:

        【解决方案5】:

        除了库中的跟踪器之外,没有其他跟踪器。
        最好的办法是过滤图像并使用 findcontours。 光流和背景减法将对此有所帮助。您可以将光流与汽车检测器结合使用,以排除误报。 https://docs.opencv.org/3.4/d4/dee/tutorial_optical_flow.html https://docs.opencv.org/3.4/d1/dc5/tutorial_background_subtraction.html

        【讨论】:

        • 1.光流对我来说不能正常工作,因为物体很小,从 goodFeaturesToTrack() 返回的点不好:/
        • 2.我已经使用了背景减法,但它不适用于静态对象
        • 您也可以传入自定义功能。背景减法需要多帧来检测背景。如果上面安装了摄像头,这应该没问题
        猜你喜欢
        • 1970-01-01
        • 2012-10-11
        • 2023-02-08
        • 1970-01-01
        • 1970-01-01
        • 2016-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多