数据闭环与AutoLabeling方案总结!(Waymo/Uber/Open MMLab)

2023-10-11 02:40

本文主要是介绍数据闭环与AutoLabeling方案总结!(Waymo/Uber/Open MMLab),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者 | AmazingRoad  编辑 | 汽车人

原文链接:zhuanlan.zhihu.com/p/587140851

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

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心【全栈算法】技术交流群

后台回复【标定工具】获取2D检测/分割/关键点,3D点云检测分割标注工具!

1什么是数据闭环

自动驾驶中的数据闭环,是指算法研发由case-driven转向data-driven的核心步骤。我大概整理了下数据闭环的链路,如下图所示:

282f345fe17c60cb77bb797d869995bc.png
数据闭环链路
  • 链路中的环节包含工具链路打通和算法开发两部分。

  • 算法开发主要有数据挖掘、数据标注、模型优化这三部分。

  • 这里面数据标注中的自动标注,即AutoLabeling是目前数据闭环中最为核心的部分。

  • 数据挖掘和模型优化,也是需要攻克和解决的点,只不过从成本和效率上,目前优先级没有自动标注高。

2AutoLabeling方案

以下的讨论以目标检测任务为例。

Pipeline

  • 目标检测任务的主要pipeline流程包含目标检测、轨迹生成、轨迹优化三部分

  • 其中目标检测模型、MOT算法,都有比较成熟的算法,所以AutoLabeling中创新点主要体现在轨迹优化这个步骤。

47574e2b3c7425c779468080e1896466.png
AutoLabeling Pipeline

学术界的SOTA

目前关于AutoLabeling的完整方案方面的论文不是很多,这里面比较有代表性的有:

  • 谷歌的Waymo在2021年发表的:《Offboard 3D Object Detection from Point Cloud Sequences》

  • Uber的ATG(Advanced Technology Group)在2021年发表的:《Auto4D: Learning to Label 4D Objects from Sequential Point Clouds》

  • Open MMLab在2022年发表的:《MPPNet: Multi-Frame Feature Intertwining with Proxy Points for 3D Temporal Object Detection》

下面对这三篇文章做了个简单地总结和对比:

论文机构轨迹优化的方法发表年限
Auto4DUberBEV空间特征2021.01
Offboard3DWaymoPoint-Based2021.03
MPPNetOpenMMLabFormer(基于Attention)2022

Auto4D的轨迹优化

  • Size Branch: 累积全轨迹点(时域信息忽略),BEV编码,得到全局的稳定size。

  • Update:基于最近corner align,更新全轨迹的box属性。

  • Path Branch:累积全轨迹点(保留时域信息,但时域和高度channel合并),BEV编码,得到相邻帧位移

c64c071162481fbcc9db3009d7f3fdfc.png

Offboard3D的轨迹优化处理

  • 动静态判断:box中心点方差<1m/s^2,首尾帧中心点偏移<1m,则为静态,否则为动态。

  • 静态轨迹优化:前背景分割网络对box周围的原始点进行分割,box回归网络得到box属性(基于PointNet)

  • 动态轨迹优化:对于点进行前背景分割+点序列编码,对于框进行序列编码,最后加2层box回归网络。

3d3805cf630388042770d4562a0bd5bb.png

MPPNet

  • 选取代理点:每个框均匀选择代理点(4x4x4)

  • 单帧提取特征:提取几何特征、运动特征

  • 组内特征编码:x、y、z、c通道分割使用MLP进行feature mixing

  • 组间特征编码:使用Former结构,共享K、V,进行feature mixing

  • 3D检测头:使用Tranformer Decoder

fb87d373145edfe2bfa3ce568e351799.png

往期回顾

Make RepVGG Greater Again!揭示重参化量化崩溃根因并解决(美团)

788b9ae924c7b4fb895ba282629b930a.png

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

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

2962b098f70c63cabb1a3c35e0ee411a.jpeg

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

备注:学校/公司+方向+昵称

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

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

996732cc82675b44cf5e845e197c0187.jpeg

这篇关于数据闭环与AutoLabeling方案总结!(Waymo/Uber/Open MMLab)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/184945

相关文章

Java嵌套for循环优化方案分享

《Java嵌套for循环优化方案分享》介绍了Java中嵌套for循环的优化方法,包括减少循环次数、合并循环、使用更高效的数据结构、并行处理、预处理和缓存、算法优化、尽量减少对象创建以及本地变量优化,通... 目录Java 嵌套 for 循环优化方案1. 减少循环次数2. 合并循环3. 使用更高效的数据结构4

Vue中动态权限到按钮的完整实现方案详解

《Vue中动态权限到按钮的完整实现方案详解》这篇文章主要为大家详细介绍了Vue如何在现有方案的基础上加入对路由的增、删、改、查权限控制,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、数据库设计扩展1.1 修改路由表(routes)1.2 修改角色与路由权限表(role_routes)二、后端接口设计

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据

《mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据》文章主要介绍了如何从.frm和.ibd文件恢复MySQLInnoDB表结构和数据,需要的朋友可以参... 目录一、恢复表结构二、恢复表数据补充方法一、恢复表结构(从 .frm 文件)方法 1:使用 mysq

mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespace id不一致处理

《mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespaceid不一致处理》文章描述了公司服务器断电后数据库故障的过程,作者通过查看错误日志、重新初始化数据目录、恢复备... 周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.

golang获取prometheus数据(prometheus/client_golang包)

《golang获取prometheus数据(prometheus/client_golang包)》本文主要介绍了使用Go语言的prometheus/client_golang包来获取Prometheu... 目录1. 创建链接1.1 语法1.2 完整示例2. 简单查询2.1 语法2.2 完整示例3. 范围值

javaScript在表单提交时获取表单数据的示例代码

《javaScript在表单提交时获取表单数据的示例代码》本文介绍了五种在JavaScript中获取表单数据的方法:使用FormData对象、手动提取表单数据、使用querySelector获取单个字... 方法 1:使用 FormData 对象FormData 是一个方便的内置对象,用于获取表单中的键值

Rust格式化输出方式总结

《Rust格式化输出方式总结》Rust提供了强大的格式化输出功能,通过std::fmt模块和相关的宏来实现,主要的输出宏包括println!和format!,它们支持多种格式化占位符,如{}、{:?}... 目录Rust格式化输出方式基本的格式化输出格式化占位符Format 特性总结Rust格式化输出方式

Rust中的BoxT之堆上的数据与递归类型详解

《Rust中的BoxT之堆上的数据与递归类型详解》本文介绍了Rust中的BoxT类型,包括其在堆与栈之间的内存分配,性能优势,以及如何利用BoxT来实现递归类型和处理大小未知类型,通过BoxT,Rus... 目录1. Box<T> 的基础知识1.1 堆与栈的分工1.2 性能优势2.1 递归类型的问题2.2

Python使用Pandas对比两列数据取最大值的五种方法

《Python使用Pandas对比两列数据取最大值的五种方法》本文主要介绍使用Pandas对比两列数据取最大值的五种方法,包括使用max方法、apply方法结合lambda函数、函数、clip方法、w... 目录引言一、使用max方法二、使用apply方法结合lambda函数三、使用np.maximum函数