3D目标检测多模态融合算法综述

本文综述3D目标检测中的多模态融合方法,探讨传感器视角问题、数据表征差异和信息融合挑战。文章介绍了点云与图像融合的关键,以及早期融合、深度融合和晚期融合策略,特别讨论了基于voxel和point的特征融合方法,如3D-CVF和PI-RCNN。
0前言

本篇文章主要想对目前处于探索阶段的3D目标检测中多模态融合的方法做一个简单的综述,主要内容为对目前几篇几篇研究工作的总结和对这个研究方面的一些思考。
在前面的一些文章中,笔者已经介绍到了多模态融合的含义是将多种传感器数据融合。在3D目标检测中,目前大都是将lidar和image信息做融合。在上一篇文章中,笔者介绍到了目前主要的几种融合方法,即early-fusion,deep-fusion和late-fusion,并介绍了一种基于Late-fusion的融合方法。但是在大多数研究工作中,都是以deep-fuion的方法为主要的融合策略。

1背景知识

1.1多模态融合的主要难点

难点一:传感器视角问题

3D-CVF(ECCV20)的研究提出的做fusion的对做融合工作最大的问题即是在视角上的问题,描述为如下图所示的问题,camera获取到的信息是“小孔成像”原理,是从一个视锥出发获取到的信息,而lidar是在真实的3D世界中获取到的信息。这使得在对同一个object的表征上存在很大的不同。

难点二 数据表征不一样

这个难点也是所用多模态融合都会遇到的问题,对于image信息是dense和规则的,但是对于点云的信息则是稀疏的

### 多模态目标检测算法综述 多模态目标检测是一种结合多种传感器数据(如激光雷达点云和摄像头图像)来提升目标检测性能的技术。这种技术广泛应用于自动驾驶领域,能够有效提高系统的鲁棒性和准确性。 #### 融合阶段概述 多模态融合通常按照不同的层次划分,主要包括早期融合(Early Fusion)、中间特征融合(Feature-level Fusion)以及后期决策级融合(Decision-level Fusion)。每种方式都有其特点和适用范围[^1]。 - **早期融合**:将原始数据直接拼接在一起输入到模型中处理。这种方式简单直观,但可能引入大量冗余信息。 - **特征级融合**:先分别提取各模态的数据特征再进行组合分析。这种方法能减少计算量并增强针对性效果。 - **决策级融合**:各自独立完成预测后再通过一定规则综合判断最终结果。此策略灵活性较高但也增加了复杂度管理难度。 #### Deep-Fusion 阶段分类 在深度学习框架下的具体实现上,则进一步细分为基于Point-Based 和Voxel-Based两种主要路径: - **Point-Based 方法**: 利用点云数据保持高精度几何结构特性的同时还具备与二维图片像素一一对应关系的优势,在转换过程中不会丢失重要细节;因此非常适合用来构建精确的空间位置映射关系以便后续操作使用 . - **Voxel-Based 方法**: 将三维空间离散化成体素网格形式表示出来之后再应用标准CNN架构对其进行高效运算处理, 这样做的好处是可以充分利用现有成熟的计算机视觉工具箱资源从而加快开发进度同时获得较好表现力. 以下是两个典型代表例子: ##### PointPillars 实现方案 (Point-Based) ```python import torch.nn as nn class PillarLayer(nn.Module): def __init__(self,...): super().__init__() def forward(self,x): pass class PointPillarsNet(nn.Module): def __init__(self,...): self.pillar_layer=PillarLayer(...) def forward(self,batch_dict): pillars=self.pillar_layer(batch_dict['points']) ... ``` ##### VoxelNet 构建思路(Voxel-Based) ```python from second.pytorch.models.voxel_encoder import get_paddings_indicator def scatter_nd(indices, updates, shape): ... class VN_Head(nn.Module): def __init__(): ... def predict(self,voxels,num_points_per_voxel,coors,batch_size): paddings=get_paddings_indicator(num_points_per_voxel,max_num_points,True) x=scatter_nd(coors,voxels,[batch_size]+list(shape)) out=self.head_layers(x) return out ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

3D视觉工坊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值