目标跟踪 | 3D目标跟踪高级入门!

这篇具有很好参考价值的文章主要介绍了目标跟踪 | 3D目标跟踪高级入门!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心【目标跟踪】技术交流群

后台回复【目标跟踪综述】获取单目标、多目标、基于学习方法的领域综述!

1引子

当我从事自动驾驶工作的时候,曾经接到了一个任务: 指导一组感知实习生。

在我预见到的所有项目中,有一个项目非常突出,它来自于一个工程实习生,他写了一篇关于基于相机的3D目标检测的论文。当时,我们只有2D目标检测,而且正在集成2D目标跟踪。但自从看了这篇论文,我们就在考虑进行全3D目标跟踪。

当你环顾 LinkedIn,会发现大多数目标跟踪应用程序都是2D 的。但是现实世界是3D 的,无论是在跟踪汽车、人、直升机、导弹,还是在做增强现实(AR),都需要使用3D。

在 CVPR 2022(计算机视觉和模式识别)会议上,看到了大量的3D 目标检测论文,而且开始看到越来越多的论文提交给像 IEEE (电气与电子工程师学会)或《国际计算机视觉杂志》这样的机构。

在本文中,我将探讨3D跟踪领域,并向您展示如何设计一个3D目标跟踪系统。我们将从平面的2D 开始,然后转移到3D,将看到2D 和3D 跟踪之间的区别。

2什么是3D目标跟踪?

目标跟踪是指随着时间的推移对目标在空间中的位置和方向进行定位和跟踪。它包括在一系列图像(或点云)中检测一个目标,然后在随后的帧中预测它的位置。

我们的目标是持续地估计目标的位置和方向,即使在遮挡、相机运动和不断变化的光照条件下也是如此。

很多人提到使用多目标跟踪进行跟踪,跟踪领域实际上是更广泛的,涉及的主题,如特征跟踪或光流。然而,最常见的方法是通过2D 多目标跟踪; 在本文中,我想讨论3D目标跟踪这个问题。

目标跟踪 | 3D目标跟踪高级入门!

在关于2D跟踪的文章中,我谈到了2D目标检测,然后使用匈牙利算法和 Kalman 滤波进行跟踪。在本文中,我们将看到如何从目标检测开始将其扩展到3D。

3从2D到3D目标检测

我们大多数人都习惯了2D目标检测,这个任务是从图像中预测感兴趣目标(比如汽车、行人、自行车等)的边界框坐标。虽然2D目标检测可能是整个计算机视觉领域中最流行的技术,但当你想在现实世界中使用它时,它还缺少很多信息。

第一个在3D 中改变的元素是边界框。

从2D 到3D 边界框

这个部分可以让不止一个人感到困惑,但是3D框确实不同于2D 框。我们不是仅仅预测一个图像帧中的4个像素值,我们是在相机帧中,预测像精确的 XYZ 位置(包含深度) ,框的长度和深度,以及偏航(yaw),俯仰(pitch)和滚动(roll)角。2D 对3D目标检测,注意我们还需要多少参数来预测和跟踪!

目标跟踪 | 3D目标跟踪高级入门!

为了简化问题,我们总是可以假设一些值是恒定的,比如俯仰和滚动(想象一下在像旧金山这样的城市里没有“俯仰速率”) ,但是3D 边界框是以自然为导向的。

我们在 KITTI 数据集中看到了下面这张图片,请注意我添加的方向: 与2D 不同,每个3D 目标框都需要一个“偏航”方向参数。

目标跟踪 | 3D目标跟踪高级入门!

在2D 中,你不需要预测这些方向,而且你的目标框要简单得多。但是如果你做3D 目标跟踪,你需要处理3D框。接下来,让我们看看如何生成这些框。

计算机视觉中生成3D目标框

如果使用相机,3D 目标检测可以基于单个图像,也可以基于双目视觉设置。通常,算法使用包括发送一个图像到一个模型,直接输出一个框。

一个使用YOLO3D 算法进行单目3D 的例子:

目标跟踪 | 3D目标跟踪高级入门!

无论是单目还是双目,许多目标检测器都是以3D 形式存在的,而且大多数公司已经在相机上使用了3D 目标检测。

额外收获 : 基于相机的3D 目标检测快速列表:

3D Bounding Box Estimation Using Deep Learning and Geometry (我的实习生, 2017),

M3D-RPN: Monocular 3D Region Proposal Network for Object Detection (2019),

FCOS3D: Fully Convolutional One-Stage Monocular 3D Object Detection (2021)。

从点云生成3D目标框

使用激光雷达时,我们将使用像 Point-RCNN 这样的算法,从点云输出3D 框。例如,这里有一个叫做3D Cascade R-CNN 的算法,它利用激光雷达进行3D 目标检测。

目标跟踪 | 3D目标跟踪高级入门!

一些激光雷达探测算法快速列表: AVOD (2018)、 Frustum PointNet (2018)、 PointrCNN (2019)、 IOU (2020)、 PV-rCNN (2021)、 Cas-A (2022)。

接下来,让我们开始跟踪:

43D跟踪: 你如何3D跟踪一个目标?

在目标跟踪领域,通常有两种方法:

分离跟踪器 ーー通过检测进行跟踪,首先使用目标检测器,然后一张图一张图的跟踪其输出。

联合跟踪器 ーー通过向深度学习模型发送2幅图像(或点云)来进行联合检测和3D 目标跟踪。既然我们已经在目标检测上花了很多时间,那么让我们继续讨论3D 目标框。

从3D目标检测进行3D目标跟踪

在2D目标跟踪(独立的跟踪器)中,跟踪pipeline如下:

给定连续两个时间步长的检测结果:

  1. 以2D形式计算 IOU (或任何其他代价,如框的形状或外观指标)

  2. 将其放入二分图算法,如匈牙利算法。

  3. 关联最高匹配并设置颜色/id号

  4. 使用卡尔曼滤波器来预测下一个位置(从而在下一步有一个更准确的关联)

我们将在3D 中也如上面一样做,但有两件事情会改变:

  1. IOU

  2. 卡尔曼滤波器

匈牙利算法告诉哪个是用于 MOT 任务,将保持不变。

为什么匈牙利算法不应该改变

当我们跟踪一个边界框时,通常做的是计算2个重叠框从一个图像到另一个图像的 IOU (交并比)。如果 IOU 很高(框重叠),那么这意味着目标是相同的,它移动了一点,因此应该跟踪它。如果不是,那就意味着它是另一个目标。我们也可以用二分图来跟踪多个目标。如下图中2D检测和2D跟踪,前面的框被记住,用于匹配。

目标跟踪 | 3D目标跟踪高级入门!

匈牙利算法的目标是获取2个障碍列表物list(来自 t-1和 t时刻),并根据cost返回关联。这个cost可以是IOU,但是无论是2D 还是3D IOU,关联步骤都是完全相同的。

来自2个连续帧的匈牙利算法cost图示例:

目标跟踪 | 3D目标跟踪高级入门!

3D IOU介绍

IOU是时间(t-1)的框与时间(t)的框有多少重叠。虽然它不足以保证2框应该匹配,但这是最流行的因素,可以很容易地设置。

如果我们想从2D 转移到3D,必须了解如何计算3D IOU,所以现在不比较面积,而是比较体积

这里有一个很酷的图片来可视化2D 和3D IOU 之间的差异:

目标跟踪 | 3D目标跟踪高级入门!

今天,3D IOU有许多一行的实现存在,真的只是交集除以并集。

虽然3D IOU是一个很酷的度量标准,但它远非唯一可以使用的,而且对于遥远的目标可能会失败。另一方面,还可以使用点云距离(倒角损失)、方位差甚至质心的欧几里得度量等其他指标。

消失的重叠问题

在2D 中,重叠是一个问题,因为汽车可以重叠,即使它们彼此相距很远。但是在3D 中,这个问题就消失了。因为是在3D 中,我们知道有些框不会重叠,即使它们在平面图像中看起来是重叠的。在3D 中,重叠不是问题,因为现在已经使用了深度。

目标跟踪 | 3D目标跟踪高级入门!

让我们暂停一下: 到目前为止,我们已经看到应该:

  1. 获取两个连续的时间步长的3D 框

  2. 计算两个框列表的3D IOU,受益于匈牙利算法(得到了正确的颜色和 ID)

所有剩下的就是使用卡尔曼滤波器,将预测下一步。

5使用3D卡尔曼滤波器

什么是2D卡尔曼滤波器?

一个2D卡尔曼滤波器是一个算法,输入2个坐标,在历史信息的基础上预测下一个位置。这是一个迭代算法,这意味着它存储前一个值的内存,并随着时间的推移继续。在2D MOT 中,用它来预测目标框中心的下一个位置(也可以预测框的所有4个坐标)。

为此,我们使用两个变量: 平均值 μ 和标准差或不确定性 σ。用一个2D高斯表示边界框,并且使用一个预测/更新循环。卡尔曼滤波器的预测、测量和更新曲线如下:

目标跟踪 | 3D目标跟踪高级入门!

什么是3D 卡尔曼滤波器?

当我们在3D空间时,至少可以做一个3D 卡尔曼滤波器,这意味着跟踪 x、 y 和 z。使用2D和3D卡尔曼滤波器时平均值和标准差矩阵的形状:

目标跟踪 | 3D目标跟踪高级入门!

不确定性(这里使用的是随机数)可能很难处理,但这是我们在进行3D目标跟踪时需要做的最低限度。我们现在已经得到了所需要的一切,所以让我们总结一下吧!

6总结

  1. 3D目标跟踪是关于跟踪真实世界中目标的技术

  2. 3D目标检测可以通过相机、LiDAR或RADAR完成。它只用于生成框。

  3. 对于每个目标,我们的检测器将返回一个3D边界框。

  4. 多目标跟踪过程与2D跟踪过程相同,只是多目标跟踪过程采用3D IOU 关联,预测过程采用3D卡尔曼滤波器。

这里有一个很酷的3D 跟踪演示:

目标跟踪 | 3D目标跟踪高级入门!

3D目标跟踪是感知领域中最引人入胜的领域之一。在自动驾驶汽车中,这是“规划”之前的最后一步。当我们谈论3D,当加上时间的概念,就是4D!

这张思维导图可以提醒我们所看到的一切,橙色的部分就是今天所讲到的内容。

目标跟踪 | 3D目标跟踪高级入门!

7参考

[1]. https://www.thinkautonomous.ai/blog/3d-object-tracking/

国内首个自动驾驶学习社区

近1000人的交流社区,和20+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!

自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、硬件配置、AI求职交流等方向;

添加汽车人助理微信邀请入群

备注:学校/公司+方向+昵称文章来源地址https://www.toymoban.com/news/detail-429678.html

到了这里,关于目标跟踪 | 3D目标跟踪高级入门!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV快速入门:移动物体检测和目标跟踪

    在当今的数字化世界中,计算机视觉技术正在迅速发展并被广泛应用于各种场合。特别是在移动物体检测和目标跟踪领域,这项技术不仅对于安全监控系统至关重要,也在自动驾驶、交互式媒体、机器人技术等多个领域发挥着重要作用。 本文将介绍使用OpenCV进行移动物体检测

    2024年02月04日
    浏览(47)
  • Center-based 3D Object Detection and Tracking(基于中心的3D目标检测和跟踪 / CenterPoint)论文笔记

    原文链接:https://arxiv.org/pdf/2006.11275.pdf         CenterPoint先使用基于激光雷达的主干网络如VoxelNet或PointPillars,压缩为BEV后,使用基于图像的关键点检测器寻找物体中心。然后对每个物体中心回归尺寸、朝向和速度。然后,第二阶段细化物体位置,提取估计的3D边界框每个

    2024年02月09日
    浏览(36)
  • 2022/10/16今日问题:(点击下方目录可直接跳转)

    这些问题都是在写作业过程中碰到的,记录下来,以后可以翻阅,也希望可以给有同样问题的人答疑解惑。本人新手,多有不熟、不严谨、不规范的地方,希望大家多多指正。如果对于问题有更好的解决方法也欢迎分享。 目录 问题一、一个Textview组件中的文本被前面的组件挡

    2024年02月16日
    浏览(44)
  • 【论文阅读】多目标跟踪—ByteTrackV2: 2D and 3D Multi-Object Tracking by Associating Every Detection Box

    写在前面: ByteTrack作者今年3月的新作品,升级了的V2版本并不是仅仅将ByteTrack扩展到三维场景,而是在二阶段匹配的框架下,结合了JDT和TBD常用的两种基于运动模型进行匹配的方法,提出了一种新的运动匹配模式,思路新颖,在三维MOT数据集nuScence上也达到了state-of-the-art。注

    2024年02月04日
    浏览(48)
  • 用Element-UI框架写轮播图,左右箭头点击轮播,下方小锚点对应轮播

    不好意思视频上传不成功看链接https://www.douyin.com/video/7158792800564235527 注:借鉴官网:链接: https://element.eleme.cn/#/zh-CN/component/carousel这里有更多的我们需要的框架

    2023年04月08日
    浏览(45)
  • KITTI 3D目标检测数据集入门

    数据集官网下载地址: The KITTI Vision Benchmark Suite 3D目标检测数据集由7481个训练图像和7518个测试图像以及相应的点云数据组成,包括总共80256个标记对象。 上图红色框标记的为我们需要的数据,分别是 彩色图像数据(12GB) 、 点云数据(29GB) 、 相机矫正数据(16MB) 、 标签

    2023年04月08日
    浏览(53)
  • 【课程介绍】OpenCV 基础入门教程:图像读取、显示、保存,图像处理和增强(如滤波、边缘检测、图像变换),特征提取和匹配,目标检测和跟踪

    [ 专栏推荐 ] 😃 《视觉探索: OpenCV 基础入门教程》 😄 ❤️【简介】: Opencv 入门课程适合初学者,旨在介绍 Opencv 库的基础知识和核心功能。课程包括图像读取、显示、保存,图像处理和增强(如滤波、边缘检测、图像变换),特征提取和匹配,目标检测和跟踪等内容。学

    2024年02月16日
    浏览(318)
  • 【MMDetection3D】基于单目(Monocular)的3D目标检测入门实战

    本文简要介绍单目(仅一个摄像头)3D目标检测算法,并使用MMDetection3D算法库,对KITTI(SMOKE算法)、nuScenes-Mini(FCOS3D、PGD算法)进行训练、测试以及可视化操作。   单目3D检测,顾名思义,就是只使用一个摄像头采集图像数据,并将图像作为输入送入模型进,为每一个感兴

    2024年02月03日
    浏览(45)
  • 【CSS】3D卡片效果

    THE DARK RIDER CHRIS MASON ZAQ CASS FORCE MAGE

    2024年02月14日
    浏览(50)
  • 【CSS动画02--卡片旋转3D】

    css动画02--旋转卡片3D 当鼠标移动到中间的卡片上会有随着中间的Y轴进行360°的旋转,以下是几张图片的介绍,上面是鄙人自己录得一个供大家参考的小视频🤭

    2024年02月12日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包