DetZero:Waymo在3D检测榜单上位列第一,与人工标注媲美!

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

detzero:waymo在3d检测榜单上位列第一,与人工标注媲美!detzero:waymo在3d检测榜单上位列第一,与人工标注媲美!

本文提出了一套离线3D物体检测算法框架DetZero,通过在 Waymo 公开数据集上进行全面的研究和评估,DetZero可生成连续且完整的物体轨迹序列,并充分利用长时序点云特征显着提升感知结果的质量。同时以 85.15 mAPH (L2) 的性能在 WOD 3D 物体检测排行榜上取得排名第一。此外,DetZero可以为在线模型的训练提供高质量的自动标签,其结果已经达到甚至高于人工标签的水平。

这是论文链接:https://arxiv.org/abs/2306.06023

需要重新写的内容是:代码链接:https://github.com/PJLab-ADG/DetZero

请访问主页链接:https://superkoma.github.io/detzero-page

1 引言

为了提高数据标注的效率,我们研究了一种新的方法。这种方法基于深度学习和无监督学习,可以自动生成标注数据。通过使用大量的未标注数据,我们可以训练一个自动驾驶感知模型,使其能够识别和检测道路上的物体。这种方法不仅可以减少标注数据的成本,还可以提高后处理的效率。我们在实验中使用了Waymo的离线3D物体检测方法3DAL[]作为基准进行比较,结果表明我们提出的方法在准确性和效率方面都有显著的改进。我们相信这种方法将在未来的自动驾驶技术中发挥重要作用

目标检测(Detection):输入少量连续的点云帧数据,输出每一帧中3D物体的边界框和类别信息;多目标跟踪(Tracking):将每一帧检测到的物体进行关联,形成物体序列,并分配唯一的物体ID;运动状态分类(Motion Classification):基于物体轨迹特征,确定物体的运动状态(静止或运动);物体为中心的优化(Object-centric Refining):根据前一模块预测的运动状态,分别提取静止和运动物体的时序点云特征,以预测准确的边界框。最终,通过姿态矩阵将优化后的3D边界框转移回该物体所在的每一帧坐标系中。

然而,很多主流的在线3D目标检测方法通过利用点云的时序上下文特征,取得了比现有的离线3D检测方法更好的效果。然而,我们意识到这些方法未能有效地利用长序列点云的特征

目前的目标检测和跟踪算法主要关注边界框层面(box-level)的性能指标,将在线的3D检测算法经过TTA和多模型融合之后所产生的大量冗余框作为跟踪算法的输入,通常很容易引发严重的轨迹分段、ID切换以及错误关联等问题,无法保证连续、完整的物体序列的生成,进而妨碍利用物体对应的长时序点云特征。如下图所示,原本一个物体的轨迹被分割成多个子序列(T1, T2, T3),导致拥有更多信息的T1片段的特征无法共享到T2和T3中;T4片段中经过优化的框也无法召回已经丢失掉的片段;T5片段中经过优化的框在转移到原先是FP的位置后依然是FP。

DetZero:Waymo在3D检测榜单上位列第一,与人工标注媲美!物体序列的质量会对下游的优化模型产生很大的影响

基于运动状态分类的优化模型没有充分利用到物体的时序特征。例如,刚性物体的尺寸大小随时间保持一致,通过从不同角度捕捉数据可以实现更准确的尺寸估计;物体的运动轨迹应当遵循一定的运动学约束,表现为轨迹的平滑性。如下图(a)所示,对于动态物体来说,基于滑动窗口的优化机制未考虑物体几何形状的一致性,仅通过邻近几帧的时序点云信息对边界框进行更新,导致预测的几何尺寸出现偏差。而在(b)的例子中,通过把该物体的点云全部聚合在一起,可获得稠密的时序点云特征,为每一帧都预测出边界框的准确的几何尺寸。

DetZero:Waymo在3D检测榜单上位列第一,与人工标注媲美!基于运动状态的优化模型预测物体的尺寸(a),几何优化模型将不同视角的点云全部聚合后预测物体的尺寸(b)

2 方法

本文提出了一个名为DetZero的新离线3D物体检测算法框架。该框架具有以下特点:(1)使用多帧3D检测器和离线跟踪器作为上游模块,以提供准确和完整的物体跟踪,重点关注物体序列的高召回率(track-level recall);(2)下游模块包括基于注意力机制的优化模型,利用长时序点云特征分别学习预测物体的不同属性,包括精细化几何尺寸、平滑运动轨迹位置以及更新置信度分数

DetZero:Waymo在3D检测榜单上位列第一,与人工标注媲美!

2.1 生成完整的物体序列

我们采用公开的CenterPoint[]作为基础检测器,为了提供更多的检测候选框,我们在三个方面进行了加强:(1)将不同帧点云组合作为输入,最大化性能而不降低性能;(2)使用点云密度信息将原始点云特征和体素特征融合为二阶段模块,以优化一阶段的边界结果;(3)使用推理阶段数据增强(TTA)、多模型结果融合(Ensemble)等技术来提高模型对复杂环境的适应能力

离线跟踪模块中引入了两阶段关联策略以减少错误匹配,根据置信度将框分为高分组和低分组,对高分组进行关联更新现有轨迹,未更新的轨迹与低分组关联。同时,物体轨迹的长度可持续至序列终止,避免ID切换问题。此外,我们会反向执行跟踪算法生成另一组轨迹,并通过位置相似性关联,最后用WBF策略融合匹配成功的轨迹,进一步提升序列首尾的完整性。最后,对于区分好的物体序列,提取出其对应的每一帧点云进行保存;而未更新的冗余框和一些较短的序列和会直接合并至最终的输出,无需下游优化。

2.2 基于属性预测的物体优化模块

以前的以物体为中心的优化模型忽略了物体之间在不同运动状态下的相关性,例如几何形状的一致性以及相邻时刻的物体运动状态的一致性。基于这些观察,我们将传统的边界框回归任务分解为三个模块:分别预测物体的几何形状、位置和置信度属性

美间AI 美间AI

美间AI:让设计更简单

美间AI 45 查看详情 美间AI 多视角几何交互:通过拼接多个视角的物体点云,可以补全物体的外观和形状。首先进行局部坐标变换,将物体点云与不同位置的局部框对齐,并计算出每个点到边界框6个表面的投影距离,加强边界框的信息表征,随后直接合并不同帧的所有点云作为多视角几何特征的key和value,同时从物体序列中随机选择t个样本作为单视角几何特征的query。几何query会被送入自注意力层来查看彼此之间的差异性,随后被送入交叉注意力层来补充所需要视角的特征,并预测出精确的几何尺寸。局部与全局位置的交互:随机选择物体序列中的任意框作为原点,将所有其他框和对应的物体点云转移到此坐标系下,并计算出每个点到各自边界框中心点和8个角点的距离,作为全局位置特征的key和value。物体序列中的每一个样本都会作为位置query,送入自注意力层来判断当前位置与其他位置的相对距离,随后输入交叉注意力层模拟局部到全局位置的上下文关系,并预测出此坐标系下每个初始中心点与真值中心点之间的偏移量,以及航向角差异。置信度优化:分类分支用于分类该物体是TP还是FP,IoU回归分支预测出一个物体在被几何模型和位置模型优化后,与真值框之间的IoU大小。最终的置信度得分就是这两个分支的几何平均值。

3 实验

3.1 主要性能

DetZero在Waymo 3D检测排行榜上以85.15 mAPH (L2)取得了最佳成绩,无论是与处理长时序点云的方法相比,还是与最先进的多模态融合3D检测器相比,DetZero都展现出了显著的性能优势

DetZero:Waymo在3D检测榜单上位列第一,与人工标注媲美!Waymo 3D检测排行榜结果,所有结果均使用TTA或ensemble技术,†指离线模型,‡指点云图像融合模型,*表示匿名提交结果

同样,得益于检测框的准确性和物体跟踪序列的完整性,我们以75.05 MOTA(L2)取得了Waymo 3D跟踪排行榜上的性能第一。

DetZero:Waymo在3D检测榜单上位列第一,与人工标注媲美!Waymo 3D跟踪排行榜,*表示匿名提交结果

3.2 消融实验

为了更好地验证我们提出的每个模块的作用,我们在Waymo验证集上进行了消融实验,并且采用了更严格的IoU阈值作为衡量标准

DetZero:Waymo在3D检测榜单上位列第一,与人工标注媲美!在Waymo验证集上对Vehicle和Pedestrian进行,IoU阈值分别选取标准值(0.7 & 0.5)和严格值(0.8 & 0.6)

同时,对于同一组检测结果,我们分别选择3DAL中的跟踪器和优化模型与DetZero进行交叉组合验证,结果进一步证明DetZero的跟踪器和优化器性能更好,且二者组合在一起后发挥出更大的优势。

DetZero:Waymo在3D检测榜单上位列第一,与人工标注媲美!不同上下游模块组合的交叉验证实验,下角标1和2分别代表3DAL和DetZero,指标是3D APH

我们的离线追踪器更注重物体序列的完整性,虽然两者的MOTA性能差异很小,但是Recall@track的性能却是导致最终优化性能差异很大的一个原因

DetZero:Waymo在3D检测榜单上位列第一,与人工标注媲美!离线跟踪器(Trk2)与3DAL跟踪器(Trk1)的性能对比,性能为MOTA和Recall@track

此外,与其他最先进的跟踪器相比,也能证明这一点

DetZero:Waymo在3D检测榜单上位列第一,与人工标注媲美!Recall@track是经过跟踪算法处理后的序列召回,3D APH是经过同一个优化模型处理后的最终性能

3.3 泛化性能

为了验证我们的优化模型是否能够固定拟合到特定的上游结果集,我们选择了具有不同性能的上游检测跟踪结果作为输入。结果显示,我们取得了明显的性能提升,进一步证明了只要上游模块能够召回更多更完整的物体序列,我们的优化器就能够有效地利用其时序点云的特征进行优化

DetZero:Waymo在3D检测榜单上位列第一,与人工标注媲美!Waymo验证集上的泛化性能验证,指标是3D APH

3.4 与人类标注能力进行对比

我们将根据3DAL的实验设置来报告DetZero在5个指定序列上的AP性能,通过比较基于单帧的重标注结果与原始真值标注结果的一致性来衡量人类性能。相对于3DAL和人类,DetZero在不同的性能指标上都表现出了优势

DetZero:Waymo在3D检测榜单上位列第一,与人工标注媲美!对于Vehicle类别在不同IoU阈值下的3D AP和BEV AP性能对比

为了验证高质量的自动标注结果是否能够替代人工标注结果进行在线模型训练,我们在Waymo验证集上进行了半监督学习的验证。我们从训练数据中随机选择了10%作为老师模型(DetZero)的训练数据,并对剩下的90%数据进行推理,得到了自动标注的结果,这些结果将作为学生模型的标签。我们选择了单帧CenterPoint作为学生模型。在车辆类别上,使用90%的自动标签和10%的真值标签进行训练的结果接近于使用100%真值标签训练的结果,而在行人类别上,自动标签训练的模型结果已经优于原始结果,这表明自动标签可以用于在线模型训练

DetZero:Waymo在3D检测榜单上位列第一,与人工标注媲美!在Waymo验证集上进行的半监督实验结果

3.5 可视化结果

DetZero:Waymo在3D检测榜单上位列第一,与人工标注媲美!红色框代表上游的输入结果,蓝色框代表优化模型的输出结果DetZero:Waymo在3D检测榜单上位列第一,与人工标注媲美!第一行代表上游的输入结果,第二行代表优化模型的输出结果,虚线内的物体表示优化前后差异明显的位置

DetZero:Waymo在3D检测榜单上位列第一,与人工标注媲美!

原文链接:https://mp.weixin.qq.com/s/HklBecJfMOUCC8gclo-t7Q

以上就是DetZero:Waymo在3D检测榜单上位列第一,与人工标注媲美!的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/453232.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月8日 00:16:47
下一篇 2025年11月8日 00:18:47

相关推荐

  • JavaScript算法实现_javascript编程挑战

    数组去重:利用Set特性去除重复元素,return […new Set(arr)];2. 回文判断:转小写后与反转字符串比较,cleaned === cleaned.split(”).reverse().join(”);3. 快速排序:选基准值分治递归,left、…

    2025年12月21日
    000
  • js如何实现文本差异对比 4种差异比对算法快速找出文本变化内容

    js实现文本差异对比需遵循以下步骤:1.预处理文本,如清洗字符;2.选择算法如lcs、diff、levenshtein距离或基于单词的对比;3.用js实现所选算法;4.将结果以高亮或报告形式展示。lcs通过动态规划找出最长公共子序列,可优化空间与提前结束运算。diff算法识别插入、删除、替换操作,可…

    2025年12月20日 好文分享
    000
  • C++怎么使用std::algorithm库_C++常用算法函数sort、find、for_each

    std::sort、std::find 和 std::for_each 是 C++ 中常用算法,分别用于排序、查找和遍历操作,需包含 头文件,作用于迭代器区间,提升代码简洁性与可读性。 在C++中,std::algorithm 库提供了大量实用的通用算法函数,它们作用于容器或数组的迭代器区间,极大简…

    2025年12月19日
    000
  • c++中什么是C++标准库的算法(algorithms)_c++ STL算法库功能与常用操作概览

    C++标准库算法通过迭代器操作容器数据,提供查找、排序、修改、比较、集合及数值运算等功能,如sort、find、copy、accumulate等,具有代码简洁、性能优化、通用性强的优势,支持lambda表达式定制逻辑。 C++标准库中的算法(algorithms)是一组用于操作容器中数据的函数模板,…

    2025年12月19日
    000
  • C++循环与算法结合实现高性能程序

    循环与算法结合可显著提升C++性能。合理选择for、while等循环结构,优先使用for循环及范围遍历以提高可读性和优化潜力。通过循环展开减少迭代次数,利用SIMD指令集(如SSE、AVX)实现数据并行处理,能大幅提升数据密集型任务效率。在算法层面,应选用高效算法(如快速排序、二分查找),并优化循环…

    2025年12月18日
    000
  • C++STL算法all_of any_of none_of使用方法

    答案:C++11引入all_of、any_of和none_of算法,用于判断区间元素是否全部、任意或无一满足条件,返回bool值,支持lambda,提升代码可读性。 在C++11中,STL引入了三个非常实用的算法:all_of、any_of 和 none_of。它们定义在头文件 gorithm&gt…

    2025年12月18日
    000
  • 如何搭建C++自动驾驶环境 Apollo平台配置

    搭建C++自动驾驶环境需先配置Ubuntu系统、Docker及NVIDIA驱动,再克隆Apollo代码并构建Docker镜像,进入容器后用bazel编译,启动Dreamview可视化界面,选择地图与模块运行Demo;常见问题如编译失败可清理缓存或更新依赖,自定义车辆模型和地图需掌握URDF与prot…

    2025年12月18日
    000
  • 如何配置C++的自动驾驶规划环境 Apollo规划模块二次开发

    为什么apollo规划模块的二次开发需要特定的环境配置?apollo使用docker和bazel是为了处理复杂的依赖关系、确保构建一致性、支持gpu加速以及提升团队协作效率。2. 在apollo环境中进行规划模块二次开发的关键步骤包括:准备宿主机环境、克隆apollo仓库、进入docker环境、编译…

    2025年12月18日 好文分享
    000
  • 自动驾驶实时系统:确定性内存分配器开发指南

    自动驾驶实时系统对确定性内存分配器的需求,是为了确保内存操作在可预测时间内完成,从而保障系统的稳定与安全。1. 预分配和内存池通过预先分配固定大小的内存块,实现o(1)时间复杂度的快速分配与释放,但可能导致内存浪费;2. bump allocator使用移动指针的方式实现极快的分配,但通常不支持单独…

    2025年12月18日 好文分享
    000
  • C语言算法问答集:将算法应用于人工智能

    搜索算法:二分查找,高效地在数组中查找元素。排序算法:快速排序,将数据序列按特定顺序排列。图形算法:dijkstra 算法,寻找两个节点间最短路径。机器学习算法:线性回归,训练模型对数据进行预测。 C 语言算法问答集:将算法应用于人工智能 前言 算法在人工智能(AI)中扮演着至关重要的角色,可为 A…

    2025年12月18日
    000
  • C语言算法:难点疑难全解析

    C语言算法:难点疑难全解析 简介 C语言算法是计算机科学中的基石,然而对于初学者来说,理解和掌握这些算法可能颇具挑战性。本文将深入解析C语言算法中常见的难点和疑难问题,并通过详实的代码示例进行讲解。 难点1:递归 立即学习“C语言免费学习笔记(深入)”; 递归是一种强大的算法设计技术,但理解其原理和…

    2025年12月18日
    000
  • C语言算法问答集:从初学者到算法专家的进阶指南

    算法是一种有限的解决问题步骤序列,用于提供输入并生成输出。学习算法可提高问题解决能力、优化代码效率和设计复杂程序。c 语言中常用的数据结构包括数组、链表、栈、队列、树和图。提高算法效率的方法有使用更快的数据结构、优化算法复杂度和使用归纳和分治技术。上述代码段展示了如何使用 c 语言算法查找数组中最大…

    2025年12月18日
    000
  • C语言算法问答集:探索算法的可视化

    C 语言算法问答集:探索算法的可视化 算法的可视化是通过图形表示使其更易于理解和分析的过程。在 C 语言中,我们可以使用各种库和技术来实现算法的可视化。在这篇文章中,我们将探讨一些常见的算法及其可视化的实战案例。 排序算法 排序算法是数据结构中最常见的任务之一。它们根据特定标准重新排列数据元素。我们…

    2025年12月18日
    000
  • C语言算法问答集:算法思维在现实世界中的体现

    求最大公约数:采用欧几里德算法,判断两数是否互质,若否,则以较大数对较小数取模,直至较小数为 0,此时较大数即为最大公约数。求斐波那契数列:可采用递归或迭代算法,递归算法利用斐波那契数列的递推公式,迭代算法则通过循环计算斐波那契数列的每一项。判断素数:基于试除法,从 2 开始依次判断数字是否可被从 …

    2025年12月18日
    000
  • C语言算法问答集:算法竞赛的入门与实战

    C语言算法问答集:算法竞赛的入门与实战 1. 什么是算法竞赛? алгоритм (algoritm)是解决问题的步骤或程序。算法竞赛是一种比赛,参赛者使用算法解决问题,竞争谁能在规定时间内解决最多问题。 2. 如何入门算法竞赛? 学习一门编程语言,如 C 语言。了解基础数据结构(如数组、链表)和算…

    2025年12月18日
    000
  • C语言算法:常见数据结构与算法详解

    c语言程序中常用的数据结构包括数组、链表、栈和队列。此外,还提供了搜索算法(线性搜索和二分搜索)、排序算法(冒泡排序和选择排序)、图遍历算法(广度优先搜索和深度优先搜索)等一系列算法。这些数据结构和算法的应用,可以大大优化代码性能,简化问题求解。 C语言算法:常见数据结构与算法详解 引言 数据结构是…

    2025年12月18日
    000
  • C语言算法问答集:解决常见问题

    问题 1:求最大公约数,代码:int gcd(int a, int b) {…}。问题 2:求数组总和,代码:int sum(int arr, int size) {…}。问题 3:求阶乘,代码:int factorial(int n) {…}。问题 4:反转字符…

    2025年12月18日
    000
  • C语言算法:从入门到精通的学习路线图

    c 语言算法学习路线图包括:入门:安装编译器,学习基本语法,练习基本算法。中级:掌握数组、指针、结构体,学习排序算法,探索递归和动态规划。高级:掌握贪心算法、分治算法和回溯算法,研究图论和动态规划的复杂算法。实战案例:通过案例深入理解算法,并将其应用到实际问题中。 C 语言算法:从入门到精通的学习路…

    2025年12月18日
    000
  • C语言算法问答集:破解动态规划问题

    动态规划算法通过子问题重叠和最优子结构优化问题求解效率。最长公共子序列、0-1 背包问题和扩展欧几里得算法都是常见的动态规划问题,可使用 c 语言实现。实战案例中,动态规划用于查找网格中从左上角到右下角路径上的最大和,通过创建表格存储子问题解决方案,以避免重复计算。 C语言算法问答集:破解动态规划问…

    2025年12月18日
    000
  • C语言算法问答集:在真实项目中应用算法

    数组排序:冒泡排序算法可按顺序排列整数数组,例如按学生分数排序。字符串查找:strcmp() 函数可比较字符串并查找子字符串,例如,在文本编辑器中搜索特定单词。树形结构遍历:前序遍历算法可通过递归方式遍历二叉树,按深度优先顺序打印每个节点的数据。 C 语言算法问答集:真实项目案例 引言 算法在现代编…

    2025年12月18日
    000

发表回复

登录后才能评论
关注微信