多传感器融合 | 详解PointPainting和MVP

2023-05-16

作者 | 谷溢  编辑 | 深蓝AI

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

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心技术交流群

后台回复【多传感器融合综述】获取图像/激光雷达/毫米波雷达融合综述等干货资料!

一提到多传感器融合的工作,就不得不帮深蓝学院打一波广告了,多传感器融合的定位课程是我心目中top3的存在,最近又开设了多传感器融合的感知课程。

多传感器融合相关的理论真的可以非常复杂,而在感知方面,由于可以和深度学习做结合,所以很多工作可以变得简单有效,有时候一个简单的特征融合都会有很好的效果。

bff51d28128a2c9a219e669d26cdadad.png

本文结合 3D 物体检测,为大家带来两篇工作,一篇是 PointPainting,一篇是Multimodal Virtual Point 3D Detection (后称MVP).

PointPainting

这篇文章并不算久远,但是很适合作为多传感器的入门读物。在当时 3D 物体检测还是以 Lidar-Only 的方式为主,因为融合的算法并不能体现明显的优势,但是很显然,Lidar 的信息有限、检测精度有限。如下图可以看到,在25m远的地方,人和杆子仅根据点云已经很难区分了,但是图像上却很容易区分。

530ba30315fb0adeac049e46abb59e08.png针对Lidar信息有限的问题,解决思路有两个,一个是挖掘更多的信息,但是这条路很难走;另一个思路就是加信息,那么怎么加信息就是我们要关注的点了。

PointPainting的解决思路是为每个点赋上一个语义,这个语义从图像中可以获取,结合论文的流程图加以理解:

057e9cf750d25d83a4512d1e323ae109.png

在有了带语义的点云之后,再输入到一个现有的点云检测网络当中即可。这是 CVPR 2020 的工作。

18a8e066e2bd6dadc748b87083022b82.png

工作虽然很简单,但是效果提升很明显。不过我们还是需要有一些思考,虽然这样的方式可以提升性能,但是图像分割不是绝对准确的,如果赋错了怎么办?而且点云依旧是稀疏的,是不是可以像PseudoLidar这类单目3D物体检测的方法,去补一些点呢?我们来看一看 MVP 是怎么思考这些问题的。

MVP

我们首先看一下 3D 物体检测常见的failure case (图像来自MVP github):

76574aa9c30c01a7a654aecd9efb6e5a.png

在远处的物体往往会出现误检、漏检以及检测不准确的问题。这是由于雷达过于稀疏:

7a39b6e884d7348babc957c306ee0ba8.png

那么按照 PointPainting 的做法我们会为这些稀疏的点赋上语义,如下图:

7977babb1d35b61888ec12c28cf8c88d.png

但是稀疏的问题仍然存在,所以MVP提出的观点是,应当补充适当的点,使得远处的点稠密,又不至于整理计算开销太大:

83b21efb2541ef6ba6557b07bec5d64a.png

方法也很简单,其实深度估计都不需要,我们根据图像得到的 Mask,可以先计算一些 Mask 内有多少 Lidar 点,如果满足一定阈值,比如20个点,我们就不做额外操作,如果不满足,我们就在mask内随机选若干个像素,深度依据最近邻原则补上,然后再投影到3D空间,这样做不仅不会增加很大的开销,而且可以大幅提升性能:

54eb6e059e151d070c7520d935966867.png

可以看到 MVP 的 performance 是远超 PointPainting 的。

我们在选取一帧补充后的点云做可视化:

5a11fe8b8186e496e0a86f6ab1f2b279.png

总结

所以有些时候思想往往更重要,最近很火的 MAE 其实也十分易懂,但是效果却很惊艳,简洁到不知道怎么修改,当然这是开玩笑了。这两篇工作都是非常简单,但是实验都做得非常充分,MVP 还结合了最新的 MaskFormer 做了一些实验。这也给了我们很大启发,有时候分析清楚问题往往比设计一个复杂又不通用的算法要有意义多。

往期回顾

一文尽览 | 基于点云、多模态的3D目标检测算法综述!(Point/Voxel/Point-Voxel)

c77812eafb25287f488cc970727ec828.png

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

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

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

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

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

d6e0553e7740c6c5fe660c609dca91a5.jpeg

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多传感器融合 | 详解PointPainting和MVP 的相关文章

随机推荐

  • linux shell

    转自 xff1a http blog csdn net fly sky520 article details 8853537 最近在linux下面编写shell脚本 xff0c 差不多是边学边写 在此记录一些学习心得 一 xff09 she
  • 软件开发遇到的难题_软件开发团队如何处理管理难题

    软件开发遇到的难题 通常是这样的 项目经理或产品负责人传达了来自公司食品链上层人士的消息 xff0c 即必须在给定日期之前交付软件 日期背后的原因可能是已知的 xff0c 但可能不是 反过来 xff0c 项目经理通知软件开发团队必须在该日期
  • Ubuntu20.04由于分辨率问题安装界面显示不完整

    使用vmware安装ubuntu的时候 xff0c 由于分辨率的问题 xff0c 导致安装界面显示不完整 xff0c button被隐藏 xff0c 无法进行下一步鼠标操作 同学遇到的问题 xff0c 迟迟不能解决 xff0c 参考别人的解
  • 数据结构排序算法及代码整理

    排序 xff1b 1 插入排序 xff08 直接插入排序和希尔排序 xff09 2 选择排序 xff08 直接选择排序和堆排序 xff09 3 交换排序 xff08 冒泡排序和快速排序 xff09 4 归并排序 5 基数排序 xff0d x
  • 排序算法性能比较

    各种排序方法的综合比较 结论 排序方法 平均时间 最坏时间 辅助存储 简单排序 O n2 O n2 O 1 快速排序 O nlogn O n2 O logn 堆排序 O nlogn O nlogn O 1 归并排序 O nlogn O nl
  • c++标准容器类(表格介绍)

    1 STL有6种序列容器类型 xff08 1 xff09 vector 它提供对元素的随即访问 xff0c 在尾部添加和删除元素的时间是固定的 xff0c 在头部或中部插入和删除元素的复杂度为线性时间 xff08 2 xff09 deque
  • 各大公司薪水一览表

    转自 http blog sina com cn s blog 4997a23a0100b2xc html 最近终于把自己给卖了 xff0c 这几个月来自己陆陆续续的面试的有30多家公司 xff0c 主要是IT公司 xff0c 准备把今年我
  • strtol

    转自 xff1a http hi baidu com qwpsmile blog item 9bc44efa4f41018a9f514637 html 今天 xff0c 在review 一些代码的时候 xff0c 看到了strtol 这个函
  • 学会做自己的朋友

    转自 http www 5xue com modules article view article php a2233 你是否经历过 xff1a 我们常会怪罪自己 xff0c 给自己很低的评价 xff0c 也习惯对结果做最坏的打算 xff1
  • 二值信号量和互斥信号量的区别

    互斥信号量和二进制信号量的区别 互斥型信号量必须是同一个任务申请 xff0c 同一个任务释放 xff0c 其他任务释放无效 同一个任务可以递归申请 二进制信号量 xff0c 一个任务申请成功后 xff0c 可以由另一个任务释放 二进制信号量
  • 敏捷开发

    这两个圆圈表示不同的视角上的敏捷实践 xff0c 包括开发者视角和项目管理的视角 接下来从里向外进行介绍 xff0c 因为有些实践我了解得不清楚 xff0c 如果下面有哪些说得不对的地方也请大家指出 Test Driven Developm
  • c++结构体的二进制文件,python如何解析

    c 43 43 结构体的二进制文件 xff0c python如何解析 场景分析 现有如下场景 xff1a 有一个二进制文件需要解析成可读数据已知条件 xff1a 该文件符合c 43 43 结构体对应的结构体数据 xff0c 因此我们可以通过
  • LeetCode刷题记录(Python3)——线性表

    LeetCode27 移除元素 简单 问题描述 xff1a 给定一个数组nums和一个值val xff0c 你需要原地 移除所有数值等于val的元素 xff0c 并返回移除后数组的新长度 不要使用额外的数组空间 xff0c 必须仅使用 O
  • 使用百度网盘上传大文件到云服务器

    因为需要把几个7G大小左右的数据上传至服务器 xff0c 但无奈使用的是共享服务器 xff0c 上传速度非常慢 管理员建议可以用奶牛快传 xff08 目前收费 xff09 中转 xff0c 百度搜了一下 xff0c 百度网盘有相同作用 xf
  • ubuntu操作系统中TCP客户端和服务器端的开发

    网络编程在Python中的应用 xff0c 三次握手和四次挥手的理解 TCP客户端和服务器端流程图 xff1a TCP客户端开发流程 xff1a 1 创建客户端套接字 2 和服务端套接字建立连接 3 发送数据 4 接收数据 5 关闭客户端套
  • sphinx 文档_Sphinx轻松漂亮的文档

    sphinx 文档 Sphinx是允许开发人员以纯文本格式编写文档的工具 xff0c 可轻松生成满足各种需求的格式的输出 使用版本控制系统跟踪更改时 xff0c 这将很有帮助 纯文本文档对于跨不同系统的协作者也很有用 纯文本是当前可用的最可
  • 经典激光雷达SLAM系统:LeGO-LOAM

    作者 密斯特李 编辑 汽车人 原文链接 xff1a https zhuanlan zhihu com p 511968459 点击下方卡片 xff0c 关注 自动驾驶之心 公众号 ADAS巨卷干货 xff0c 即可获取 点击进入 自动驾驶之
  • 经典激光雷达SLAM系统:LOAM-Livox

    作者 密斯特李 编辑 汽车人 原文链接 xff1a https zhuanlan zhihu com p 515732721 点击下方卡片 xff0c 关注 自动驾驶之心 公众号 ADAS巨卷干货 xff0c 即可获取 点击进入 自动驾驶之
  • SLAM中姿态估计的图优化方法比较(g2o/Ceres/GTSAM/SE-Sync)

    编辑 深蓝AI 点击下方卡片 xff0c 关注 自动驾驶之心 公众号 ADAS巨卷干货 xff0c 即可获取 后台回复 SLAM综述 获取视觉SLAM 激光SLAM RGBD SLAM等多篇综述 xff01 本文是对论文 A Compari
  • 多传感器融合 | 详解PointPainting和MVP

    作者 谷溢 编辑 深蓝AI 点击下方卡片 xff0c 关注 自动驾驶之心 公众号 ADAS巨卷干货 xff0c 即可获取 点击进入 自动驾驶之心技术交流群 后台回复 多传感器融合综述 获取图像 激光雷达 毫米波雷达融合综述等干货资料 xff