【多模态融合】SuperFusion 激光雷达与相机多层次融合 远距离高清地图预测 ICRA 2024

前言

本文介绍激光雷达与相机进行多层次融合,包括数据级融合、特征级融合和BEV级融合。

融合后的BEV特征可以支持不同的任务头,包括语义分割、实例编码和方向预测,最后进行后处理生成高清地图预测,它是来自ICRA 2024的。

会讲解论文整体思路、模型框架、论文核心点、损失函数、实验与测试效果等。

论文地址:SuperFusion: Multilevel LiDAR-Camera Fusion for Long-Range HD Map Generation

代码地址:https://github.com/haomo-ai/SuperFusion

一、模型框架

SuperFusion不仅支持30米内的短距离高清地图预测,同时还支持长达90米的长距离高清地图预测,供给下游路径规划和控制任务,提高自动驾驶的平稳性和安全性。

SuperFusion的模型框架,如下图所示:

  1. 图像分支,输入图像数据、稀疏点云图。提取图像特征,点云特征。
  2. 图像分支,通过图像数据和点云特征,进行深度估计。然后通过深度特征和图像特征,生成视锥特征,经过池化处理,生成图像BEV特征。
  3. 激光雷达点云分支,输入点云数据,经过主干网络提取特征。
  4. 激光雷达点云分支,通过融合图像特征,图像引导远距离激光雷达BEV特征预测。
  5. BEV对齐与特征融合,将相机和激光雷达的BEV特征结合起来。
  6. BEV特征后面接各种任务头,比如BEV语义分割、实例检测、方向预测等。

二、多层次数据融合

原始的激光雷达和相机数据具有不同的特点

  • 激光雷达数据提供准确的3D结构信息,但存在无序和稀疏的问题。
  • 摄像头数据则紧凑,能够捕捉环境的更多上下文信息,但缺少深度信息。

将相机和激光雷达数据融合为三个层次,以补偿这两种模态的不足并利用它们的优点:

  • 数据级融合,图像深度估计中,加入LiDAR的稀疏深度信息,提高图像深度估计的准确性
  • 特征级融合,使用图像特征,通过交叉注意力机制来指导激光雷达特征,实现长距离激光雷达BEV特征的预测
  • BEV级融合,将相机和激光雷达BEV特征对齐,生成融合BEV特征

 

三、论文主要贡献

  1. 多层次激光雷达-摄像头融合网络的创新设计:该设计充分利用了激光雷达和摄像头两种模态的信息,生成高质量的融合BEV特征,为不同的任务提供支持。这种多层次融合策略的核心优势在于其能够综合各种传感器提供的数据,从而在细节和准确性方面提供了质的提升。

  2. 首次实现长距离HD地图生成:据作者所知,他们的工作是首次实现长达90米的长距离HD地图生成。这一创新对于自动驾驶的下游规划任务具有重大意义,因为它极大地扩展了自动驾驶系统的感知和预测范围,从而有助于提高自动驾驶车辆的安全性和效率。

  3. 在短距离和长距离HD地图生成方面超越现有最先进方法:SuperFusion在生成高清晰度(HD)地图的短距离和长距离范围内都显著优于现有的融合方法。这一点特别重要,因为它不仅显示了该方法在技术上的进步,还证明了它在实际应用中的可行性和效用,尤其是在需要精确长距离感知的自动驾驶场景中。

  4. 发布代码和新数据集:作者不仅提出了一种创新的技术方法,还公开了代码和一个新的用于评估长距离HD地图生成任务的数据集。

下面是SuperFusion自采集的数据集示例,但目前还没看到公开

四、数据级融合——图像深度估计(融合点云数据)

原始的图像转为BEV视图,遵循常规LSS思想,需要对每个像素进行深度估计。

相比现有深度估计方法,LSS和CaDDN存在显著差异。

  • LSS方法虽然也使用了激光雷达的深度信息,但其深度预测仅由语义分割损失隐式监督,精度不足。
  • 而CaDDN虽然利用了激光雷达深度进行监督,但没有将激光雷达作为输入,限制了深度估计的鲁棒性。

SuperFusion的深度估计方法:

  • 不仅使用了密集激光雷达深度图像进行监督,还将稀疏深度图作为附加通道并入RGB图像。
  • 这种设计使得网络能够更有效地利用激光雷达和摄像头数据的互补信息,提高了深度估计和HD高清地图生成的准确性和可靠性。

 图

下面是SuperFusion进行图像深度估计的要点:

  1. 原始数据融合:首先,在原始数据层面,通过将激光雷达数据的深度信息融合到摄像头特征中来协助特征的BEV空间映射。这一步骤通过投影3D激光雷达点云到图像平面上,生成与RGB图像对应的稀疏深度图像,解决了摄像头数据缺乏深度信息的问题。

  2. 图像双分支网络:摄像头端采用双分支网络设计。第一分支提取2D图像特征,第二分支则连接一个深度预测网络,估算出每个元素的深度分布。通过这种结构,能够更好地估计深度信息,为生成密集深度图提供基础。

  3. 生成密集深度图作为标签:在稀疏深度图上插值生成密集深度图,此方法通过将每个像素的深度值离散化到深度分箱中,然后使用one-hot编码向量对深度预测网络进行监督,从而改善深度估计的准确性。

  4. 特征网格生成:最终,通过密集深度图和2D特征的外积生成最终的视锥(frustum)特征网格。这个特征网格能够支持不同的任务头,如语义分割、实例嵌入和方向预测,为生成HD高清地图预测提供数据支持。

公式版理解图像特征与深度特征融合:

  • 其中,M是指最终的视锥特征网格、(u,v)是指像素位置、D是指深度分布特征、F是指图像特征。
  • ⊗表示外积操作,它用于结合两个向量D和F,生成最终的视锥特征网格M。
  • 外积操作允许这两个向量的信息在每个像素位置相互补充,从而产生一个包含深度和视觉特征的综合表示。

各个特征的维度:

  • 图像特征
  • 深度分布特征
  • 视锥特征
  • BEV特征

五、特征级融合——远距离激光雷达BEV特征预测(融合图像特征)

如下图所示,激光雷达通常在地面平面上具有较短的有效范围,而摄像头可以看到更远的距离。

这种差异是因为激光雷达通过发射激光束,并测量反射回来的时间来确定对象的距离和形状,而摄像头通过捕捉光线形成图像,能够覆盖更大范围的视野。

通过融合图像特征,使得图像引导激光雷达远距离BEV特征预测,使用交叉注意力机制实现的。

  • 激光雷达分支:用PointPillars和动态体素化作为点云编码器,生成每个点云的激光雷达BEV特征。由于激光雷达数据只包含一定范围内(通常约30米)的地面平面信息,这导致许多激光雷达BEV特征编码了大量的空白空间。
  • 图像辅助预测:与激光雷达相比,摄像头能够覆盖更远的地面区域。因此,提出了一个预测模块,利用图像特征来预测激光雷达分支中未见区域的地面。这一预测模块是一个编解码器网络,通过卷积层将原始BEV特征L压缩到瓶颈特征B,然后使用交叉注意力机制来动态捕获B和前视图像特征F之间的关联。

融合的思路框架,如下图所示:

  • 交叉注意力机制:用三个全连接层分别:将压缩后的LiDAR BEV特征B转换为查询Q,图像特征F转换为键K和值V。
  • 然后计算Q和K的内积,表示激光雷达BEV中每个体素与其对应摄像头特征之间的相关性。
  • 通过softmax操作归一化这个矩阵,然后与V相乘,得到聚合特征A。
  • 特征融合:最后,将通过交叉注意力得到的聚合特征A通过卷积层处理以减少通道数,与压缩后的LiDAR BEV特征B进行拼接,再应用另一个卷积层,最终生成激光雷达BEV特征L′。

交叉注意力用公式表示为:

公式解析如下:

六、BEV级融合——多模态BEV对齐与特征融合

BEV对齐与特征融合的思路流程,如下图所示,将摄像头和激光雷达的BEV特征有效地结合起来,以改善长距离LiDAR BEV特征的预测。

  • 输入特征:模块接收两种类型的BEV特征:摄像头BEV特征C和预测的LiDAR BEV特征L′。摄像头BEV特征来自图像特征和深度估计特征,而预测的LiDAR BEV特征则是通过之前描述的图像引导的LiDAR BEV预测方法得到的。

  • 对齐的需求:由于深度估计误差和外部参数的不准确,从摄像头和激光雷达分支得到的BEV特征通常存在错位。直接连接这两种BEV特征会导致性能下降。为了解决这一问题,设计了一个BEV对齐和融合模块来改善特征的对齐,并提高整体预测性能。

  • 特征对齐:使用流场Flow Field Δ来对摄像头BEV特征C进行空间变换,以对齐到LiDAR BEV特征的参考框架,生成对齐后的摄像头BEV特征C′。这一步骤是关键,因为它确保了两种类型的特征在空间上的一致性,从而使得融合更加有效。

  • 特征融合:对齐后的摄像头BEV特征C′和预测的LiDAR BEV特征L′通过拼接Concat操作结合在一起,然后通过卷积层(Conv)、批标准化(BN)和ReLU激活函数处理,以融合这些特征并提取有用的信息,生成融合后的BEV特征。

  • 输出:最终的融合BEV特征,可以被用作下游任务,例如语义分割、方向预测和物体检测的输入,进一步处理以生成更准确的BEV地图。

通过流场Δ对齐摄像头的BEV特征C到激光雷达的BEV特征L′,用公式表示:

通过对每个像素位置进行变形操作来完成的,采用双线性插值的方式。

以下是公式各部分的解释:

七、损失函数

待补充..........

八、模型细节信息

模型架构设计:

  • 摄像头分支主干网络:采用ResNet-101作为摄像头分支的主干网络。ResNet-101是一个深度残差网络,广泛用于图像识别和处理任务中,提供了强大的特征提取能力。

  • 激光雷达(LiDAR)分支骨干网络:选择PointPillars作为LiDAR分支的骨干网络。PointPillars是专门为点云数据设计的网络,能有效处理三维空间信息。

  • 深度估计:对DeepLabV3进行了修改,使其能够生成像素级别的深度箱概率分布,用于深度估计。DeepLabV3是一个语义分割网络,这里的修改让它能够适应深度预测任务。

训练细节:

  • 预训练与初始化:摄像头分支的DeepLabV3骨干网络使用在MS-COCO数据集上预训练的模型进行初始化,其余部分随机初始化。这有助于加速训练过程并提高模型性能。

  • 图像尺寸和点云体素化:图像尺寸设置为256×704,点云数据以0.15m的分辨率体素化。这样的设置平衡了处理速度和精度。

  • BEV HD地图范围:设置BEV HD地图的范围为0,900,90m × −15,15−15,15m,对应的深度箱间隔设为2.0–90.0m,间隔为1.0m。这个范围和深度分辨率适应了车辆周围环境的观测需求。

九、实验测试与效果

在nuScenes数据集测试,下面是不同方法的高精地图预测结果。

  • 红色汽车代表汽车的当前位置。
  • 每张地图相对于汽车的垂直长度为 90 m。
  • 不同的颜色表示不同的高精地图元素实例。
  • 对于地面真实高清地图,绿色是车道边界,红色是车道分隔线,蓝色是人行横道。

nuScenes 数据集上高精地图语义分割的 IoU 分数(%)

  • IoU:交并比越高越好
  • C:相机
  • L:激光雷达

nuScenes 数据集上转动场景的高清地图生成的 IoU 分数 (%)

  • 将 HDMapNet 和我们的结果进行比较,并显示SuperFusion的性能改进
  •  粗体数字是最好的性能,红色数字表示更大的改进。

 

nuScenes 数据集上的实例检测结果。

  • 倒角距离的预定义阈值是 1.0 m,IoU 阈值是 0.1
  • 例如,当且仅当 CD 低于且 IoU 高于定义的阈值时,预测才被视为真阳性
  • AP:越高越好

生成的高清地图上的路径规划结果:

在自采集数据集,远距离高清地图生成效果:

本文先介绍到这里,后面会分享“多模态融合”的其它数据集、算法、代码、具体应用示例。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java并发知识总结 | 第五篇】深入理解Synchronized底层原理(Monitor对象、Synchronized锁优化)

文章目录 5.深入理解Synchronized底层原理(Monitor对象、Synchronized锁优化)5.1Synchronized的特性5.1.1原子性5.1.2可见性5.1.3有序性5.1.4可重入性 5.2Synchronized的用法5.3Synchronized的两种同步方式4.3.1同步代码块5.3.2同步方法 5.4Synchronized…

脏牛提权(靶机复现)

目录 一、脏牛漏洞概述 二、漏洞复现 1.nmap信息收集 1.1.查看当前IP地址 1.2.扫描当前网段,找出目标机器 1.3.快速扫描目标机全端口 三、访问收集到的资产 192.168.40.134:80 192.168.40.134:1898 四、msf攻击 1.查找对应exp 2.选择对应exp并配置相关设…

uniApp中使用小程序XR-Frame创建3D场景(2)加载模型

上篇文章讲述了如何将XR-Frame作为子组件集成到uniApp中使用,只完成了简单的环境搭建,这篇文章讲解如何加载3D模型。 1 加入模型加载标签 在XR-Frame框架中,加载资源都是在wxml文件的标签中实现的。下面是wxml中完整的代码 index.wxml &l…

java Web线上网游商品交易平台用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 jsp线上网游商品交易平台是一套完善的web设计系统,对理解JSP java SERLVET mvc编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0…

React Native 应用打包

引言 在将React Native应用上架至App Store时,除了通常的上架流程外,还需考虑一些额外的优化策略。本文将介绍如何通过配置App Transport Security、Release Scheme和启动屏优化技巧来提升React Native应用的上架质量和用户体验。 配置 App Transport…

Linux文件和文件夹操作

一、文件操作 功能项命令实例作用文件创建vi /opt/learn/hello.txt 在目录/opt/learn下创建文件hello.txt并进入vi编辑界面 touch /opt/learn/test在目录/opt/learn下创建空白文件testcat > /opt/catfile创建文件catfile并在屏幕上输入内容,最后按 Ctrl D 退出…

【Node.js】WebSockets

概述 WebSockets是一种在浏览器和服务器之间建立持久连接的协议,它允许服务器主动推送数据给客户端,并且在客户端和服务器之间实现双向通信。 建立连接:客户端通过在JavaScript代码中使用WebSocket对象来建立WebSockets连接。例如&#xff1…

如何定位预防死锁

如何定位&预防死锁 什么是死锁? 简单来说就是并发环境下,两个或两个以上的线程互相等待资源,导致“永久阻塞”的现象 代码示例: public class Main {private static Object resource1 new Object();private static Objec…

达梦数据库自动备份(全库)+还原(全库) 控制台

一 前提 1.安装达梦数据库DB8(请参照以前文章) 我的数据库安装目录是 /app/dmDB8 2.已创建实例 (请参照上一篇文章) 二 准备测试数据 三 自动备份步骤 1.开启归档模式 开启DM管理工具管理控制台 弹不出来工具的 输入命令 xhost 第一步 将服务器转换为配置状态 右键-&g…

Kibana的安装(Linux版)

Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。 Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创…

汽车电子行业知识:智能汽车电子架构

文章目录 3.智能汽车电子架构3.1.汽车电子概念及发展3.2.汽车电子架构类型3.2.1.博世汽车电子架构3.2.2.联合电子未来汽车电子架构3.2.3.安波福汽车电子架构3.2.4.丰田汽车电子架构3.2.5.华为汽车电子架构 3.智能汽车电子架构 3.1.汽车电子概念及发展 汽车电子是车体汽车电子…

阿里云对象存储OSS入门

阅读目录 一、阿里云OSS的使用 1、OSS是什么?2、OSS的使用 二、阿里云OSS的使用三、图床的搭建四:图床绑定阿里云OSS 编写不易,如果我的文章对你有帮助的话,麻烦小伙伴还帮忙点个赞再走! 如果有小伙伴觉得写的啰嗦&am…

基于SIR模型的疫情发展趋势预测算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于SIR模型的疫情发展趋势预测算法.对病例增长进行SIR模型拟合分析,并采用模型参数拟合结果对疫情防控力度进行比较。整体思路为采用SIR微分方程模型…

PC电脑技巧[笔记本通过网线访问设备CMW500]

笔记本局域网访问设备 现在我有一台CMW500,我要用笔记本去访问它,但是我发现没有路由器就是不能够访问,通过网线连接设备就是ping不通: 这里设置TCP/IPv4的IP地址如下,这时候就可以pin通了:

Aspose.PDF功能演示:在 JavaScript 中合并两个 PDF 文件

在 Web 应用程序的世界中,处理和操作文档是一项常见的要求。当谈到 PDF 文件时,开发人员经常发现自己需要将 PDF 合并为单个 PDF 文件。因此,在这篇博文中,我们将探索如何使用强大的 PDF 库在 JavaScript 中轻松合并两个 PDF 文件…

【学习】软件测试行业 ,有哪些以就业为主的学习侧重点

今天给所有入行软测的同学们,帮大家梳理下以就业为主的学习侧重点,简单来说就是【这些都是重点,圈起来,要考的】,有需要的小伙伴可以往下看。 建议一:一定要学习一门编程语言,再开始使用自动化测…

Qt Design Studio 软件怎么用(详细+通俗+有趣)

建议:本文长期更新,建议点赞/收藏! 1. 啥是Qt Design Studio? Qt Design Studio 是一个用于设计和开发用户界面的工具,特别适合开发跨平台应用程序。它结合了UI设计和开发的工作流程,使得设计师和开发者可…

[WTL/Win32]_[初级]_[如何设置ListView的列宽不出现水平滚动条]

场景 开发WTL/Win32的程序时,经常会用到表格控件CListViewCtrl。这个控件需要设置列的宽度,当用完100%的宽度来平均分配给列宽时,一加载数据多,就会出现垂直滚动条后,水平滚动条也会同时出现的问题。怎么设置才能让水…

搭建 Apple Mac M1 stm32 开发环境

近期想学习 stm32 开发,看了些书和视频,买了开发板。开发板到了后就迫不及待的的进行尝试。由于我目前使用的电脑是 Apple M1 Pro,目前用的比较多的是 windows + keil。我先是在 mac 使用虚拟机,安装 win 环境来使用,但是我分别使用了 VMware 和 parallels desktop ,keil…

vue3:通过【自定义指令】实现自定义的不同样式的tooltip

一、效果展示 vue3自定义不同样式的tooltip 二、实现思路 1.ts文件 在ts文件中创建一个全局容器 import一个容器组件,用于存放自定义的各式组件 创建一个指令并获取到指令传递的数据,并为容器组件传值 2.容器组件 用于存放自定义Tooltip样式的组件…