点云检测之LiRaFusion: Deep Adaptive LiDAR-Radar Fusion for 3D Object Detection

LiRaFusion是密歇根大学在2024年发表在ICRA上的一篇论文
论文地址 :LiRaFusion


前言

  在3D检测种由于 Lidar 达和摄像头对不断变化的天气和照明条件很敏感,因此引入了成本低、探测距离长和多普勒效应信息的雷达系统。
  本文提出一种使用门控网络对提取到的特征进行融合,利用 Lidar 和 Radar 的互补信息进行3D物体检测的网络架构。
在这里插入图片描述


一、Method

  该方法的提出是为了对 Lidar 和 Radar 数据进行更有效的特征提取和融合,以便进行特征提取。网络架构如图所示:在这里插入图片描述  从堆叠点云中提取到每个体素的特征,利用 PointPillar 处理 Radar 特征,通过 Middle Fusion 中门控网络自适应的学习两个特征图的自适应权重,进行进一步的融合,生成新的特征图进行下流任务。

Early Fusion

  在 Early Fusion 中为了将 Lidar 和 Radar 相融合,提取每个体素单元的特征。本文保留了LiDAR 强度、雷达截面(RCS)和速度等特征,作者认为LiDAR强度和RCS有助于对物体进行分类,而速度信息对于区分静态或动态物体以及预测速度和旋转很重要。

we keep these features since LiDAR intensity and RCS are helpful to classify objects, and velocity information is important to distinguish static or dynamic objects and predict the velocity and rotation and velocity information is important to distinguish static or dynamic objects and predict the velocity and rotation.

  对于 Lidar 点保留了点的强度和 captured time offset ( ∆ t l ∆t_l tl),对于 Radar 点则保留了RCS和补偿速度 ( V x c o m p V_{x_{comp}} Vxcomp V y c o m p V_{y_{comp}} Vycomp ) 和时间偏移 ( Δ t r Δt_r Δtr)。由于两种模态对应的维度不同,则采取零填充的方法来对齐二者之间的维度,用于后续的特征融合。
  将堆叠之后的 Lidar 和 Radar 点云进行体素化。通过 VoxelNet Encoder 提取每个体素单元的特征。本文保持了输出的维度和输入的维度相同。前三个维度表示了该单元内的质心坐标(体素单元内所有点的平均位置),接下来两个维度表示 Lidar 的特征(对所有的 Lidar 点求平均),最后四个维度对应着 Radar 的特征,(将 Radar 特征的平均值送入到一个 4 × 4 的线性层,使得网络学习处理 Radar 的方法,由于 Radar 具有稀疏性,只针对非空体素进行处理,对于空体素将最后四个维度保留为0)。在获得体素特征之后,通过稀疏卷积、VoxelNet 进行进一步处理。网络具体架构如图所示:
在这里插入图片描述

Middle Fusion

  虽然在 Early Fusion 的时候已经将 Lidar 和 Radar 数据进行了融合,但是由于 Radar 数据的稀疏性,通过体素编码的特征中大部分的信息仍然还是来自 Lidar,因此本文通过 Middle Fusion 进一步与 Radar 融合。
   通过引入门控网络自适应的学习通道维度上的权重。之前权重形状为 B×1×H×W 代表着每个位置的特征权重是相同的,不考虑不同通道之间的差异,本文将其修改为 B×C×H×W,考虑不同通道之间的差异性 。
   输入LiDAR 特征图(B×C1×H×W)和输入 Radar 特征图(B×C2×H×W)首先在通道维度上串联。 然后,得到的新特征图被传递到一个卷积块,后面跟一个 sigmoid 函数。 值得注意的是,LiDAR 和 Radar 模态的卷积块的输出特征维度设置为与输入特征图的维度匹配(LiDAR 为 C1,Radar 为 C2)。 通过逐元素乘积运算将学习到的自适应权重应用于原始输入特征图。 获得的门控 LiDAR 和 Radar 特征进一步沿特征维度连接在一起作为融合特征图。 得到的融合特征图的形状为 B × (C1 + C2) ×H ×W 并作为中间融合块的输出。网络具体架构如图所示:
在这里插入图片描述


总结

  这篇论文提出了一种对 Lidar 和 Radar 网络进行特征提取,通过门控网络自适应的融合不同模态的特征的 backbone。

  本文是自己对论文的理解,如有不同见解,欢迎讨论、指正。

由于提供的引用内容与论文'a2fseg: adaptive multi-modal fusion network for medical image segmentation'无关,无法依据这些引用为复现该论文模型提供直接帮助。不过,一般复现论文模型可按以下通用步骤进行: ### 理解论文 仔细研读论文,明确模型的整体架构,包括输入输出、各个模块的功能和连接方式。了解模型使用的多模态融合方法、损失函数、优化器等关键信息。 ### 收集数据 按照论文要求收集医学图像数据集,确保数据的模态、数量、质量等与论文一致。如果需要,对数据进行预处理,如归一化、裁剪、增强等操作。 ### 环境搭建 搭建合适的开发环境,选择合适的深度学习框架,如 PyTorch 或 TensorFlow。安装所需的库和依赖项。 ### 代码实现 根据论文中的模型架构,使用所选的深度学习框架实现模型的各个模块。以下是一个简单的 PyTorch 模型定义示例: ```python import torch import torch.nn as nn class A2FSegModel(nn.Module): def __init__(self): super(A2FSegModel, self).__init__() # 这里根据论文具体架构添加模块 self.conv1 = nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3, padding=1) self.relu = nn.ReLU() def forward(self, x): x = self.conv1(x) x = self.relu(x) return x model = A2FSegModel() ``` ### 训练模型 使用收集到的数据集对模型进行训练,根据论文中的训练策略设置超参数,如学习率、批次大小、训练轮数等。定义损失函数和优化器,编写训练循环。 ```python import torch.optim as optim criterion = nn.CrossEntropyLoss() optimizer = optim.Adam(model.parameters(), lr=0.001) # 假设 data_loader 是数据加载器 for epoch in range(10): for inputs, labels in data_loader: optimizer.zero_grad() outputs = model(inputs) loss = criterion(outputs, labels) loss.backward() optimizer.step() ``` ### 评估模型 使用测试集对训练好的模型进行评估,计算相关的评价指标,如 Dice 系数、IoU 等,验证模型的性能是否与论文一致。 ### 调优和改进 如果模型性能未达到论文中的效果,可能需要调整超参数、改进数据预处理方法或优化模型架构。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值