Auto4D:从时序点云标注4D物体

news2025/1/24 7:18:49

文章:Auto4D: Learning to Label 4D Objects from Sequential Point Clouds

作者:Bin Yang, Min Bai, Ming Liang, Wenyuan Zeng, Raquel Urtasun

编辑:点云PCL

来源:arXiv 2021

欢迎各位加入知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。

公众号致力于点云处理,SLAM,三维视觉,高精地图等领域相关内容的干货分享,欢迎各位加入,有兴趣的可联系dianyunpcl@163.com。侵权或转载联系微信cloudpoint9527。

摘要

在过去的几年里,由于深度学习方法的进步,我们在目标感知方面(尤其是在4D时空维度)取得了巨大的进展。然而它们通常依赖于大量高质量的标签才能取得良好的性能,而这通常需要人工标注者进行耗时且昂贵的工作。为了解决这个问题,我们提出了一个自动标注流程,从LiDAR点云中生成3D空间中准确的物体轨迹(即4D标签)。其关键思想是将4D物体标签分解为两个部分:在3D中的物体大小,对于刚性物体,这在时间上是固定的,以及描述物体姿态随时间演变的运动路径。我们采用了一个迭代的优化的过程,将在线生成的物体检测通过时间进行跟踪作为初始化,而不是一次性生成一系列标签。我们的模型通过重新估计物体大小和平滑运动路径来生成更高质量的4D标签,改进是通过利用整个轨迹上的聚合观察和运动线索实现的。我们在一个大规模的驾驶数据集上验证了所提出的方法,并展示了人工标注工作量减少了25%。

介绍

探讨一下自动驾驶汽车领域的一项关键挑战,即对场景进行感知和预测的需求,以及采用深度学习在3D感知和运动预测方面取得的进展。然而深度学习方法需要大量标记数据,特别是在时空范围内准确的3D框标签,通常称为4D标签。因为LiDAR点云的稀疏性,使用这些点云创建准确的3D框标签是复杂的,这导致了标注过程的繁琐、耗时和昂贵。为了解决这一问题,提出了一个自动标注模型,该模型综合考虑了整个对象轨迹上的LiDAR点云。该模型采用了一个双分支网络,其中一个分支负责推理对象的大小,而另一个分支负责细化对象的运动路径,该模型通过整合人类注释过程的推理,旨在提高标签的质量和准确性。在验证阶段,使用高质量真值注释的大规模驾驶数据集,该模型表现出了显著的效果。与嘈杂的初始化相比,该模型提高了精确边界框数量,并在标注者参与的环境中提高了标签质量。这种方法有望减少对人工标注的依赖,从而降低成本并提高自动驾驶系统的可行性。

  1. 3D目标检测: 针对自动驾驶的兴趣不断增长,近年来涌现了大量的3D目标检测研究。这些技术多使用LiDAR点云作为输入,通过光栅化或体素化处理点云,以及在鸟瞰图中操作等方式进行处理。然而这些方法通常仅利用传感器在单个瞬间捕获的信息或在非常短的时间段内聚合信息,而我们的研究针对离线边界框生成任务,能够充分利用更长时间段内的时间信息来提高边界框质量。

  2. 时态目标检测和跟踪: 针对序列观测的输入,研究提出了利用时间信息增强每一时刻检测准确性的技术。这包括使用学习的流进行信息传播,通过帧间变形提高检测准确性。我们的方法不同之处在于同时考虑一系列扩展的输入数据,同时在3D边界框上强制执行适用于非可变形物体的常数大小约束。

  3. 半自动标注: 为了应对创建人工注释数据集的高成本,一些研究专注于自动或半自动标签生成。我们的细化技术通过使用人工输入或现有检测器的不完美检测进行初始化,与其他技术相比更具灵活性。这种方法不仅适用于动态对象,还能够处理静态对象,从而在标签生成中取得更高的准确性。相比之下,其他作品通常限制在单帧数据上,而我们的模型能够处理一系列输入数据,有效提高标签的准确性。

内容概述

我们提出了Auto4D,一种新的自动标注方法,它在自动驾驶的背景下从序列点云中恢复3D对象轨迹。区别于只关注单帧对象标签,本文的目标是在3D空间中生成时间一致的对象标签(称为4D标签)。由于车辆在场景中占据了动态交通参与者的大部分,我们的工作重点是自动注释这个类别。请注意,我们可以轻松地扩展这项工作以涵盖其他类别,如行人和自行车。所提方法的概述如图1所示。首先通过引入输入和输出表示来定义我们要解决的问题。然后依次解释是如何推理关于永久属性 - 大小和瞬时属性 - 位姿(或运动路径)的。最后提供模型的训练和推断的详细信息。

图片

图1:所提出的从连续点云恢复4D对象标签的模型的系统结构概述。

Auto4D模型的输入和输出

尽管使用伪标签有一些用处,但我们发现这些标签与人工注释相比在定位方面仍有差距。为了缩小这一差距,Auto4D通过从原始传感器数据推理来精炼轨迹级别的估计。模型的输入包括来自LiDAR传感器的3D测量和预训练的3D物体检测器生成的初始轨迹。Auto4D独立处理每个物体轨迹,生成固定的物体大小预测和优化的运动路径。这一过程基于整个日志序列中的点云观察,使用世界坐标系表示,从而使得模型可以独立于自车运动推理物体运动。最终模型通过两个分支,即物体大小分支和运动路径分支,对轨迹进行细化。

Auto4D模型的物体大小

该分支通过使用初始化提供的边界框在不同时间戳上聚合对象的部分观测,生成整个轨迹的单一边界框大小。利用自车和物体之间的相对运动,它能够从不同视点观察相同物体,创造更稠密和完整的点云,从而比在线检测器更准确地估计物体大小。具体流程包括:

 a) 物体观测:通过对点云数据和初始物体轨迹进行处理,构建了一个稠密的点云,聚类属于物体的点。 

 b) 物体编码器:在鸟瞰图(BEV)中提取高分辨率的空间特征,用于推理物体大小。 

 c) 物体解码器:通过查询对象中心的特征并应用多层感知器(MLP),预测物体大小。 

 d) 大小条件下的框细化:利用整个轨迹上更稠密的观测值,生成更准确的大小估计,通过将新的大小估计锚定到离自车最近的角,调整边界框的宽度和长度,以适应刚性物体的常数大小约束,比较了两种更新策略,发现“角对齐”策略更准确。

图片

图2. 针对新的物体大小细化检测框的两种不同策略,绿色框是原始框,而红色框是具有新物体大小的框。发现将新的边界框锚定到最近的角上产生明显更好的结果,因为它考虑了可见和遮挡角的不同定位不确定性。

运动路径

通过学习从原始传感器数据和序列化物体状态中预测对运动路径的细化,进一步平滑了物体轨迹。该方法借助传感器观察更好地定位每帧的检测,同时使用时间运动信息为物体在观测稀疏时或遮挡的帧提供额外约束。该分支包括路径观测,路径编码器和路径解码器,通过提取时空特征和运动信息,使得对车辆等交通参与者运动路径的预测更为准确。

训练和推理

这里说明了它们的训练顺序,使用相同的损失函数,而在推理时,先应用物体大小分支,然后以滑动窗口的方式应用运动路径分支,为了避免静态物体的小运动,引入了一个分类输出,用于确定对象的静止状态。请注意,Auto4D适用于静止和移动对象,为了避免静止对象的小运动,我们在预训练的对象检测器中添加了一个分类输出,以确定对象是否为静止。如果是静止对象,则只在具有最高置信度分数的帧上应用运动路径分支。

实验

我们在一个带有高质量人工标注的真实驾驶数据集上验证了提出的模型,以较高的阈值(0.9 IoU)评估框的一致性,以反映实际标注的标准,并通过计算满足此阈值的自动生成的边界框的百分比来近似时间节省,因此不需要进一步的人工输入。此外还展示了模型如何在模拟人工输入的“注释员参与”设置中使用的示例,最后进行了消融研究并展示了定性结果。

数据集与评价指标

这里介绍了一个名为Car4D的大规模驾驶数据集,该数据集利用高质量的LiDAR传感器数据并由专业人员进行标注。相较于公共数据集,Car4D通过自适应放置关键帧和采用运动自行车模型进行插值,提供更高质量的标签。数据集包含5487个场景,每个场景25秒,分为4662/336/489个场景的训练/验证/测试集。对于标签质量,重点关注了边界框的精度、轨迹长度以及错误分类。作者指出,在连续空间中准确绘制边界框是人工标注中最耗时的部分,而模型专注于提高这一方面的定位精度。评估指标主要集中在减少连续错误方面,使用IoU在BEV空间评估边界框精度。与一般做法不同,使用了90%的IoU阈值,以更好地反映人类标注的质量,对于LiDAR点云,考虑到数据稀疏性和框定位的复杂性,BEV框的一致性可能较低。

4D标签的评估

a) 初始化模型:使用在线检测器和离散跟踪器的最新模型初始化对象轨迹,这是获取4D对象轨迹的研究经典方法。BEV车辆检测器根据[9]的架构训练,以过去0.5秒的LiDAR数据和地图信息作为输入。采用基于距离的跟踪器,通过匈牙利匹配实现全局最优化,替代了贪婪匹配。

b) 基线:与物体大小分支和运动路径分支分别进行比较的两个基线。物体大小分支利用整个轨迹的观察,与将过去和未来0.5秒的LiDAR扫描作为输入的离线检测器基线进行比较。运动路径分支与一个带有卡尔曼滤波的离散和连续跟踪器进行比较,以平滑轨迹。

c) 评估结果:在Car4D训练集上训练初始化模型和Auto4D模型,并在验证集和测试集上进行评估。这模拟了当我们标记了一个经过精心策划的数据集,但仍需要标记更多日志的情景。评估结果表明初始化模型本身已经产生相当准确的物体轨迹,其中40.6%的边界框与地面实况的IoU大于90%。两个基线在一定程度上提高了边界框的精度,但离线检测器产生更精确的边界框,特别是在0.9 IoU时增加了0.9%。我们的方法取得了显著的改进,物体大小分支和运动路径分支分别将0.9 IoU的边界框数量增加了8.4%和6.3%,相当于减少了人工纠正不准确边界框工作量的约25%(<0.9 IoU)。Car4D测试集的评估结果如表I所示

图片

大小细化的评估

a) 基线:通过与多个基线比较,深入评估了物体大小分支的作用,对于由在线检测器和非恒定物体大小的跟踪器生成的物体轨迹,有多种策略可通过利用整个轨迹上的信息来改进大小估计。基线包括朴素方法,即随机选择一个帧的大小估计,以及更稳健的方法,如在整个轨迹上取平均或中值大小,以减少由于检测不完美而引起的噪声。另一种方法考虑检测不确定性,并从检测器置信度最高的帧中选择大小估计。

b) 评估结果:我们将我们的物体大小分支与四个基线进行比较,并在表II中呈现了评估结果。使用我们提出的大小条件的框细化来调整边界框,我们表明简单方法,如中值或分数,相比于随机采样,在非常精确的边界框(≥ 0.9 IoU)的数量上实现了10.9%/12.4%的增加。与此相反,通过基于学习的模型利用综合的原始传感器观察,我们的方法实现了几乎翻倍的增益(18.5%)。

图片

消融研究

通过几项消融研究来分析和验证设计决策,并在Car4D验证集上展示了评估结果(见表III)。

图片

a) 两分支结构:Auto4D将物体大小与运动路径分开处理。相比之下将两者同时优化的替代方法,只实现了3.7%的增益,远低于两分支结构的16.3%增益。我们还验证了提出的大小条件的框细化的优越性,通过将中心对齐策略与角对齐策略进行比较,结果显示角对齐策略更为有效。

b) 静止 vs. 移动对象:在静止对象上,仅使用物体大小分支时取得更多改进,因为我们更有可能从多个视角获取观测,从而提高了大小估计的准确性。当同时应用运动路径分支时,更多的收益来自移动对象,符合预期。

c) 自车位置先验:所提出的物体大小分支处理静止和移动对象的能力,在高精度自车定位的情况下,使用先验带来了额外的性能提升,尽管程度有限。这证明物体大小分支本身能够从嘈杂的对象重建中学到准确的对象大小。

定性结果

我们用图3和图4展示了对象检测和轨迹的定性结果,生动展示了我们模型估计完整对象大小和平滑运动路径的能力。图3对比在线LiDAR对象检测器,我们的方法通过充分利用整个轨迹上更丰富的观测,成功解决了由于部分观测而导致的对象完整范围难以估计的问题。

图片

图3. 我们优化的标签(蓝色)与初始检测结果(红色)的定性比较,这里仅展示静止车辆的示例,我们用灰色绘制聚合的LiDAR点,并用红色表示对应于检测时间戳的单次扫描LiDAR点。

图4将Auto4D的结果与输入的嘈杂轨迹进行比较,发现Auto4D为静止对象生成更准确的边界框,而对于移动对象,由于固定大小的约束,即使对象远离自车并且观测非常稀疏,我们也能够正确地估计对象的位置,总体而言,生成的轨迹更加平滑和自然。

图片

图4. 在线检测和跟踪结果与Auto4D结果的定性比较。在BEV中以轨迹(颜色)和相应的LiDAR点(灰色)一起绘制。我们以2 Hz绘制边界框以避免混乱,显著的改进用品红色圆圈突出显示。

总结

尽管以前的自动标注方法主要注重在帧级别生成2D或3D标签,但在本文向前迈出一步,利用扩展的时间信息生成平滑且一致的物体轨迹。为实现这一目标,我们提出将4D标签分解为两个组成部分:物体大小和运动路径。物体大小在整个时间段内保持不变,而运动路径描述了物体姿态(中心位置和方向)随时间变化的方式。我们的模型接受不完美物体轨迹作为输入,并通过利用整个轨迹上的时空信息来学习优化它们的大小和路径。我们在一个具有高质量注释的大规模驾驶数据集上验证了该方法,并相较于各种基线显示出显著的改进。

资源

自动驾驶及定位相关分享

【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

自动驾驶中基于光流的运动物体检测

基于语义分割的相机外参标定

综述:用于自动驾驶的全景鱼眼相机的理论模型和感知介绍

高速场景下自动驾驶车辆定位方法综述

Patchwork++:基于点云的快速、稳健的地面分割方法

PaGO-LOAM:基于地面优化的激光雷达里程计

多模态路沿检测与滤波方法

多个激光雷达同时校准、定位和建图的框架

动态的城市环境中杆状物的提取建图与长期定位

非重复型扫描激光雷达的运动畸变矫正

快速紧耦合的稀疏直接雷达-惯性-视觉里程计

基于相机和低分辨率激光雷达的三维车辆检测

用于三维点云语义分割的标注工具和城市数据集

ROS2入门之基本介绍

固态激光雷达和相机系统的自动标定

激光雷达+GPS+IMU+轮速计的传感器融合定位方案

基于稀疏语义视觉特征的道路场景的建图与定位

自动驾驶中基于激光雷达的车辆道路和人行道实时检测(代码开源)

用于三维点云语义分割的标注工具和城市数据集

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

TOF相机原理介绍

TOF飞行时间深度相机介绍

结构化PLP-SLAM:单目、RGB-D和双目相机使用点线面的高效稀疏建图与定位方案

开源又优化的F-LOAM方案:基于优化的SC-F-LOAM

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

易扩展的SLAM框架-OpenVSLAM

基于鱼眼相机的SLAM方法介绍

以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

图片

扫描二维码

                   关注我们

让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入知识星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

分享与合作:微信“cloudpoint9527”(备注:姓名+学校/公司+研究方向) 联系邮箱:dianyunpcl@163.com。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1289702.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

180天Java从入门到就业-Day04-01Java程序流程控制介绍、Java分支结构if语句

1.程序流程控制介绍 1.1 流程控制结构介绍 流程控制语句是用来控制程序中各语句执行顺序的语句,可以将语句组合成完成一定功能的逻辑模块。 一个程序会包含三种流程控制结构:顺序结构、分支结构、循环结构 顺序结构在没有使用程序流程控制语句(if-else语句、switch-case语…

解决vue3项目打包发布到服务器后访问页面显示空白问题

1.在 vite.config.ts 文件中 加入 base:./ 当你将 base 设置为 / 时&#xff0c;它表示你的应用程序将部署在服务器的根路径上&#xff0c;&#xff08;将 base 设置为 / 表示你的应用程序部署在服务器的根路径上&#xff0c;并且 Vite 会相应地处理资源和路由的路径…

掌握大型语言模型(LLM)技术:推理优化

原文链接&#xff1a;Mastering LLM Techniques: Inference Optimization | NVIDIA Technical Blog 大模型相关技术文章已整理到Github仓库&#xff0c;欢迎start! 堆叠Transformer层以创建大型模型可以获得更好的准确性、few-shot学习能力&#xff0c;甚至在各种语言任务中具有…

springboot 2.4.4集成 hikari连接池多数据源实例

文章目录 前言一、配置步骤1.1 pom配置1.2 application.properties配置1.3 DataSourceContextHolder类1.4 DynamicDataSource1.5 DataSourceconfig类配置1.6 配置TargetDataSource注解1.7 切面方法1.8 dao的写法 二、测试验证2.1 启动springboot项目2.2 检查数据库连接2.3 debu…

SpringBoot项目打jar包

本文章使用idea进行打包 1.打开项目&#xff0c;右击项目选中Open Module Settings进入project Structure&#xff0c;如下图所示&#xff1a; 2.选中Artifacts&#xff0c;点击中间的加号&#xff08;Project Settings->Artifacts->JAR->From modules with dependen…

JavaScript <有道翻译之数据解密‘23年12月06日版‘>--案例(三)

前言: 记得上半年还是去年,有道翻译还是直接返回明文数据;现在也跟着,用接口返回加密数据了; 娱乐一下,破他的密文数据... 成品效果图: js部分: 对于找他的密文数据有点费时,针对密文--->搜他地址和启动器不是特别容易,辗转多时(搜:descrypt/json.parse 结合使用更快),有图…

SpaceSight、Echo 联合升级,打造更懂场景的 AI 「超级门店」

当各领域都在谈论「增长」&#xff0c;门店业务的增长又该从哪里开始着手…… 在日常运营中&#xff0c;「高效」和「细致」是否无法同时实现&#xff1f;「任务下达」和「任务执行」之间有多大偏差&#xff1f; 在客户洞察上&#xff0c;如何用「过去」的数据预测「未来」&…

docker搭建logstash和使用方法

配置logstash 查询下载镜像【固定和elasticsearch一样的版本】 [roothao ~]# docker search logstash NAME DESCRIPTION STARS OFFICIAL AUTOMATED logstash …

CoreDNS实战(五)-接入prometheus监控

1 背景 Prometheus插件作为coredns的Plugins&#xff0c;默认情况下是内置在coredns中&#xff0c;如果是自己编译安装的版本&#xff0c;需要注意在编译安装的时候的plugin.cfg文件中添加了prometheus:metrics&#xff0c;这样才能确保编译成功。 # 首先我们检查一下运行的版…

万亿氢能产业链崛起,汉威科技助力安全发展

近年来化石能源的大量使用带来了碳排放急剧上升、环境污染、极端天气频发、全球变暖等一系列问题&#xff0c;加之化石能源储量日益减少&#xff0c;各国不得不考虑重构能源体系&#xff0c;寻找化石能源的替代方案&#xff0c;努力降低碳排放。 在此背景下&#xff0c;氢能成…

gmid方法设计五管OTA二级远放

首先给出第一级是OTA&#xff0c;第二级是CS的二级运放电路图&#xff1a; gmid的设计方法可以根据GBW、Av、CL来进行电路设计&#xff0c;因此在设计电路之前需要以上的参数要求。 1、为了满足电路的相位裕度至少60&#xff0c;需要对GBW、主极点、零点进行分析。 首先给出其…

Python Dask库:大数据处理的利器

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com Dask是一个灵活、开源的Python库&#xff0c;专为处理大规模数据集而设计。与传统的单机计算相比&#xff0c;Dask能够在分布式系统上运行&#xff0c;有效利用集群的计算资源。本文将深入介绍Dask的核心概念、功…

近期Google paly再次卡审?需要开发者提供更多关于应用的信息以通过谷歌审查?

谷歌政策更新得越来越频繁&#xff0c;也越来越严格&#xff0c;加大了对应用的审核力度。 最近&#xff0c;不少开发者表示&#xff0c;谷歌卡审又出新花样了。与之前收到暂停审核电话验证邮件&#xff08;需要在48-72小时内&#xff0c;拨打你开发者账号的号码&#xff0c;应…

IDEA 修改encoding

IDEA 修改encoding 现象&#xff1a;idea展示乱码 打开Settings>>File Encodings&#xff0c;修改为UTF-8即可

ahk系列-windows超级运行框-表达式计算(12)—功能汇总

1、环境准备 windows 7&#xff0c;8&#xff0c;10&#xff0c;11操作系统ahk 2.x_64位翻译功能需要联网使用 2、使用方式 输入winR打开windows运行框 get/getpath 命令获取配置文件环境变量set/sets 设置 “用户/系统” 环境变量或者pathencode/decode 中文编码和解码len…

Ubuntu-Sim2Real环境配置(下)

cd ICRA-RM-Sim2Real/docker_client/ ./exec_client.sh cd ~ roslaunch rtab_navigation rtab_navigation.launch 执行上面代码的时候后台一直刷新 cd ICRA-RM-Sim2Real/docker_client/ ./exec_client.sh cd ~ roslaunch carto_navigation navigation.launch 1.Usage 执行该…

❀My学习Linux命令小记录(16)❀

目录 ❀My学习Linux命令小记录&#xff08;16&#xff09;❀ 61.who指令 62.sleep指令 63.kill指令 64.top指令 65.diff指令 ❀My学习Linux命令小记录&#xff08;16&#xff09;❀ 61.who指令 功能说明&#xff1a;显示目前登录系统的用户信息。 &#xff08;ps.who命…

Python sorted函数及用法以及如何用json模块存储数据

Python sorted函数及用法 sorted() 函数与 reversed() 函数类似&#xff0c;该函数接收一个可迭代对象作为参数&#xff0c;返回一个对元素排序的列表。 在交互式解释器中测试该函数&#xff0c;可以看到如下运行过程&#xff1a; >>> a [20, 30, -1.2, 3.5, 90, 3.…

阿里大佬讲解的接口自动化测试框架pytest系列——pluggy插件源码解读:hook钩子函数调用执行过程分析

经过pluggy源码解读系列1-4的分析&#xff0c;已经完成插件定义、spec定义&#xff0c;插件注册等环节&#xff0c;下面就到了调用插件执行了&#xff0c;即hook钩子函数是如何被调用执行的&#xff0c;下面还是先把pluggy使用的代码放下面&#xff1a; import pluggy# Hooksp…

PIKA,一个神奇的AI工具

随着人工智能技术的不断发展&#xff0c;越来越多的创新性工具开始涌现&#xff0c;为各行各业带来了巨大的变革。其中&#xff0c;视频生成AI工具PIKA&#xff0c;以其独特的功能和广泛的应用领域&#xff0c;吸引了众多用户的关注。本文将详细介绍PIKA的功能、特点以及应用前…