基于多传感器的3D多目标跟踪算法汇总

article/2025/9/14 17:23:00

1. IROS 2020-AB3DMOT:A Baseline for 3D Multi-Object Tracking and New Evaluation Metrics

代码链接:https://github.com/xinshuoweng/AB3DMOT

文章链接:http://www.xinshuoweng.com/papers/AB3DMOT_eccvw/camera_ready.pdf

出发点:提供基于3d目标检测的多目标跟踪base_line。

51c4d1076583a30948c933bcf26d6256.png
算法流程

因为是baseline算法,比较简单,这边简单对要点做个描述。总体跟踪过程是Kalman滤波+匈牙利匹配,只使用匀速运动模型.

  • 3D卡尔曼的状态变量是(x,y,z,θ,l,w,h,s,Vx,Vy,Vz),没有包含角速度是因为实验发现角速度对性能提升没有帮助。

  • 数据关联部分,输入为卡尔曼预测结果T和当前检测结果N,首先使用3D IOU或者中心坐标距离构建关联矩阵.在这里作者丢掉了IoU小于一定阈值或者中心点距离大于一定值的匹配结果。然后就使用匈牙利匹配进行匹配,得到匹配上的障碍物和未匹配的障碍物。

  • 对于匹配上的障碍物,使用当前检测结果作为观察,更新卡尔曼状态。

  • Kalman更新模块涉及到了方向校正的问题。这里为了防止检测结果中朝向角可能会出现相差180°的问题,对于预测和观测朝向角相差大于90°的情况,那么修正预测结果,会对预测变量中的朝向角增加180°

  • 创新

    • 将Kalman滤波器扩展到3D领域

    • 提供了3D MOT的评估工具

    • 提出了新的评估指标,考虑不同的轨迹置信度阈值

2. ICRA 2021-EagerMOT: 3D Multi-Object Tracking via Sensor Fusion

1.总览:

文章链接:http://arxiv.org/pdf/2104.14682v1.pdf

代码链接:https://github.com/aleksandrkim61/EagerMOT

出发点:该算法是融合2d和3d检测来源的mot算法,且采取了两阶段的数据关联。问题:3D点云的检测和跟踪有精确的距离测量,但是远距离的物体扫到的点就很少了,经常出现漏检,而融合3D检测距离很准而2D检测看得更远的优势,提高3D目标跟踪对遮挡、远距离目标跟踪的效果。

5981f3f9b6fc9e72dfdfe50cddd56e0d.png
总体流程

2.介绍:

基于激光雷达的3D追踪方法:对反射率敏感,信号稀疏,只能在有限范围内有效。

基于图像的2D追踪方法:无法获得3D位置信息,对部分遮挡的或者距离很远的物体具有鲁棒性。

EagerMOT提出了一个简单但有效的多阶段数据关联方法,可以使用潜在的不同模态下的不同检测器。通用性强,适配多种传感器组合方式:LiDAR+前置摄像头;LiDAR+多个非重叠摄像头;只有摄像头。

3.Method:

1,检测Detector

信息源:3D:多线激光雷达,产生3d检测框;2D:图像,产生2D检测框。

这两条线的信息可以不同时具备。

44d7c753debfdbe5d5a86a87c4cf7a4a.png
检测部分
2,Fusion(融合)

不同检测器检测结果先融合后关联:

使用3D结果在图像像素坐标系下的2D投影框与2D图像检测框结果的IoU作为相似度衡量标准,

使用贪婪算法匹配2D结果 和3D结果 得到融合结果。

af0c9527d27cbfe28707b7fa612a20aa.png
Fusion
219b02b8b08fce6390115837f2241ce8.png
Fusion示意图

多摄像头时的策略:

对于每一个摄像头执行上述流程最终对于有多个2D结果匹配的3D结果取IoU最大的匹配。

3,Data Association(数据关联)

任务:将当前帧中的所有观测对象与跟踪序列的卡尔曼预测进行关联,论文的二阶段匹配可以相互独立。

7bf57ce564f6687ed772b7e66163b13f.png
关联部分

状态空间设计:3D状态,与AB3DMOT一致,3D包围框信息以及三轴速度信息使用常速度运动模型

2D状态,2D包围框信息。

第一阶段数据关联:3d关联

使用贪心算法关联检测到的3D状态和上一帧的追踪3D物体状态,使用考虑速度方向的欧式距离度量作为相似度度量。

使用贪心算法关联检测到的3D状态和上一帧的追踪3D物体状态,使用考虑速度方向的欧式距离度量作为相似度度量。

α

402 Payment Required

γ为包围框的偏航角

注意:速度方向夹角为0时α最小

814846035fcc39363fdfba98e3c14d37.png

第二阶段数据关联:2d关联

关联2d检测结果与2d追踪,直接使用2D IoU作为相似度衡量标准

b91ee2e480315244f7acfc43cd66890e.png
2d关联
4,状态更新

2D、3D状态都进行更新;

2D状态直接使用当前帧中的检测结果覆盖;

3D状态需要更新卡尔曼滤波器状态,使用融合了检测结果和卡尔曼滤波预测的最优值更新;

如果某物体在当前帧没有对应的3D信息只含有2d信息,其对应序列直接使用卡尔曼滤波的预测结果更新。

跟踪周期控制:

类似于AB3DMOT:

当某一状态(2D/3D)超过Age_max帧没有更新,则删除此状态;

当某一物体由2D信息更新超过Age_2d帧后才使用关联上的3D信息进行更新;

未被关联的2D检测结果产生新的追踪状态。

主要意义:

能使用2D信息对无法获取3D信息的对象进行补盲。

367094be2d5961188151b5533a0e3e72.png
主要解决点

实验部分请关注原文。

3. SimpleTrack: Understanding and Rethinking 3D Multi-object Tracking

1.总览:

论文:https://arxiv.org/abs/2111.09621

代码:https://github.com/TuSimple/SimpleTrack

本文将3dmot算法分解为了四个模块:检测模块、运动模型模块、关联模块、轨迹管理,并且对四个模块现在常见的一些做法进行了分析和改进,是一篇不错的rethinking论文。在分析的基础上,作者提出相应的改进,从而形成一个强大而简单的基线:SimpleTrack。

2,运动模型模块

检测模块没啥好说的,就是接收3d检测结果,做一些坐标转换(如转到world坐标系)。

运动预测模块主要依据某些运动学模型预测后续运动,进而实现后续与观测量(检测结果)的匹配。目前常用的运动学模型分为两种,卡尔曼滤波法(KF)和速度预测模型法(CV, 如CenterPoint这样把两帧点云放进去预测速度)。其中卡尔曼滤波在观测质量较低时可以提供更平滑的预测结果,而速度预测模型法可以较好的处理突发不可预测的运动。作者通过实验分析发现,帧率较低时(如2hz)时,CV法更占据优势,而帧率较高时,KF法更占优势。

3,Data Association(数据关联)

关联模块主要有两种做法,一种是基于IoU的关联方式,一种是基于距离的关联方式。这两种方式都可以构建cost矩阵。前者是IoU大于阈值就关联上了,反之就没有关联上。后者一般使用欧式距离或者马氏距离(也有类似EagerMot那样考虑了余弦距离和欧式距离加权的做法)。这两种方法各有优劣,对于基于IoU的方法而言,一旦IoU过小就关联不上,但是这个观测仍然是存在的,这就会导致某些目标的轨迹提前消失!而对于距离的关联方式而言,则可能会导致误检。因为如果用中心点距离,表示性不够(如物体的高度影响也很大)。基于以上问题,作者提出了GIoU进行关联,这是目标检测新常用的iou形式。73f11c1d7b0daa3851e9766b389cf07e.png

关联方式上,作者也对比了匈牙利算法和贪婪算法。

3,轨迹管理模块

在MOT中有一个重要的评价指标ID-Switches,这个指标表示预测的ID与真实的ID不匹配的次数。作者将出现这个错误的原因分为了两种,分别是1、错误关联 2、提前结束。

16211785df9c32b6752e1272d88ed34e.png

其中提前结束这种错误占了大多数。提前结束常是因为iou太低被过滤了。因而作者提出了两阶段关联,简单来说就是设置了两个高低阈值,分别是Th和Tl。首先进行对iou大于Th的Box做正常的匹配关联,在第二阶段,只要Box的置信度高于Tl就允许进行关联,但是由于这一段检测结果质量较差,所以检测结果不用于更新运动模型,而是使用运动预测结果代替检测结果输出。在使用两阶段关联后,ID-Switch指标得到了明显的提升。

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

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D感知、多传感器融合、SLAM、高精地图、规划控制、AI模型部署落地等方向;

加入我们:自动驾驶之心技术交流群汇总!

自动驾驶之心【知识星球】

想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D感知、多传感器融合、目标跟踪)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!

1368e4cee88866d4cc920af53f4d6c2c.jpeg


http://chatgpt.dhexx.cn/article/YEAiYUrH.shtml

相关文章

3D相机技术 | 立体视觉传感器+TOF相机

转自 | 睿慕课 文章结构 前言立体视觉传感器原理简介工业领域应用主流立体视觉的产品TOF相机工作原理TOF工业领域应用一些TOF研究机构 1.前言 在机器视觉应用中,物体三维形状的获取变得越来越重要。在这个系列里,我们将讨论目前在机器视觉行业中可用的3…

一文聊聊用于机器感知的3D与2D传感器数据 | 数据标注

人类和机器之间最大的区别之一在于我们感知周围环境的方式。我们都存在于3D世界中,人类天生能够感知复杂的几何形状、透视、遮挡、消失点、物体持久性等带来的影响,但机器却很难处理这些最简单的情况。 想让他们能够“看到”仍然是一个热门的研究领域。机…

多传感器融合 | CenterFusion:毫米波雷达和相机后融合3D检测算法

点击下方卡片,关注“自动驾驶之心”公众号 ADAS巨卷干货,即可获取 今天自动驾驶之心很荣幸邀请到寒风分享RV后融合算法CenterFusion,如果您有相关工作需要分享,请在文末联系我们! >>点击进入→自动驾驶之心【多传…

Ansys Lumerical Zemax Speos | CMOS 传感器相机:3D 场景中的图像质量分析

在本例中,我们介绍了一个仿真工作流程,用于在具有不同照明条件的特定环境中,从光学系统和CMOS成像器的组合中分析相机系统的图像质量。此示例主要涵盖整个工作流程中的Ansys Speos部分。该光学系统采用Ansys Zemax OpticStudio设计&#xff0…

三维力传感器

背景介绍 三维力传感器在现实生活中具有广泛的应用,例如:机器人关节传感元件,医疗设备以及智能制造装备等,调研可知,三维力传感器通过弹性体元件,把外力转换为结构的变形,进而通过应变片实现三维…

视觉传感器:3D感知算法

作者丨巫婆塔里的工程师知乎 来源丨https://zhuanlan.zhihu.com/p/426569335 编辑丨 一点人工一点智能 1 前言 之前的一篇文章介绍了基于视觉传感器的2D环境感知,包括2D物体检测和跟踪,2D场景语义分割。 但是,对于自动驾驶应用来说&#xff0…

3D 霍尔效应位置传感器原理解析

描述 在各种工业 4.0 应用中,通过 3D 位置检测进行实时控制的情况越来越多,从工业机器人、自动化系统到机器人真空和安防。3D 霍尔效应位置传感器无疑是这些应用的极好选择,因为这种传感器具有很高的重复性和可靠性,而且还可与门窗…

3D视觉基础(基本原理及3D传感器基本参数)

点击上方“3D视觉工坊”,选择“星标” 干货第一时间送达 来源:新机器视觉 本人所在行业属于3D视觉方向,因此最近也是学习了很多3D视觉的知识,这次专门总结一下。 传统工业机器视觉中,2D指的是X方向加Y方向,…

3D传感器的原理

在计算机视觉系统中,三维场景信息为图像分割、目标检测、物体跟踪等各类计算机视觉应用提供了更多的可能性,而深度图像(Depth map)作为一种普遍的三维场景信息表达方式得到了广泛的应用。深度图像的每个像素点的灰度值可用于表征场…

【综述】机器视觉中的3D传感器

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达 近年来,机器视觉技术变得越来越复杂,工业领域的图像处理更多的专注于3D传感器,而且越来越多的技术已经完善并且投入到实际应用中&…

【3D视觉原理】2-3D传感器原理

文章目录 内容概要3D光学测量方法概述被动测距单目立体视觉(精度不高)聚焦法离焦法 双目立体视觉(精准)多目立体视觉(更精准) 主动测距结构光法光点法光条法光面法 飞行时间法(ToF)脉…

Xcode Cloud

一、使用Xcode Cloud 的要求 (1)开发者账户要求 已加入Apple Developer Program向xcode加入Apple IDApp Store Connect上有app 记录或者可以创建一个app记录 (2)Project和workspace要求 Project或者workspace使用Xcode项目使用…

使用Xcode13进行Swift开发2

使用Xcode13进行Swift开发2 1.应用功能1.1 UIScreen与systemName1.2 struct,ScrollView,padding,ForEach和创建列表1.3 GeometryReader1.4 list,combine 使用Xcode13进行Swift开发https://blog.csdn.net/gavinliu266/article/details/126407896 Monterey…

Xcode简明教程(使用Xcode编写C++语言程序)

Xcode 是由Apple官方开发的IDE,支持C、C++、Objective-C、Swift等,可以用来开发 Mac OS X 和 iOS 上的应用程序。Xcode使用LLVM/Clang作为编译器。 去App store下载Xcode,打开点击Command Line Tool,再选c++,完成。 在Xcode上运行C语言程序 在 Xcode 上运行C语言程序需…

Mac m1 使用Xcode配置OpenMp教程完善版

目录 安装brew安装llvm配置xcode添加libomp.dylib文件代码测试引用 安装brew 自己搜教程 安装llvm brew install llvm安装完成后使用 brew info llvm,复制保存安装路径(后续配置会用,路径用自己的) 下图中为:/opt/h…

Xcode下使用git

1.创建仓库 可以使用命令来创建,做法参考之前的文章git代码管理工具使用 也可以登录github,找到new repository,点击后进入创建页面输入标题helloworld,点击创建。 创建好后进入创建好的repository拷贝地址,我此处…

写给设计师同学的xcode使用教程: 教你用 Xcode 做原型设计

在过去的一个月,我每天早上 7 点起床,一直工作到晚上 7 点,在完成在 Carshare.hk 的那份全职工作之余,一直都在致力于完善那个 Ripple 应用。这个月全是关于 iOS 方面的经验,我面对的挑战是在年底前发布这个 iOS 应用之…

使用Xcode13进行Swift开发

使用Xcode13进行Swift开发 1.软件Xcode 2.快捷键3.应用功能3.1 VStack,HStack,ZStack3.2 frame,foregroundColor,cornerRadius,shadow,resizable与aspicRatio3.3 font,fontWeight,offset,rotationEffect和rotation3DEffset3.4 State,onTapGuesture与animation3.5 gesture和Disp…

Xcode使用教程详细讲解 1

Xcode使用教程详细讲解是本文要介绍的内容,Xcode是一个款强大的IDE开发环境,就像你在写Windows程序时需要VS2005一样 需要要Xcode为你写Mac程序提供环境。因此,如果你要成为Mac 程序的开发者,灵活运用Xcode工具是你必须做的第一步…

xcode编程c语言,使用xcode编写c语言的方法介绍

使用xcode编写c语言的方法介绍 发布时间:2020-03-26 17:08:31 来源:亿速云 阅读:149 作者:小新 今天小编分享的是使用xcode编写c语言的方法介绍,可能大家对xcode并不陌生,或者从来没有了解过xcode。但是不用…