论文记录MSMDFusion 2023CVPR

1 解决的问题

之前的多模态融合方法都是concat或者attention的,这样的融合方式不能够实现体素空间的细粒度交互。

2 文章内容

主要提出

1.Multi-Depth Unprojection(MDU),实现2D pixel-->3D voxel,带depth信息的lift方法;

2.Gated Modality-Aware Convolution(GMA Conv),实现LiDAR Stream和Camera Stream的特征在voxel space进行融合;

3.Cross-Scale Connection,实现多Scale的融合(类似FPN)

2.1 Feature Extraction

LiDAR Stream先对Point Clouds体素化,采用一系列Sparse 3D Conv获得不同Scale的feature;Camera Stream使用Resnet50 和 FPN对Multi-view images分别提取特征,得到Multi-view的Multi-scale的feature map.

2.2 Multi-Depth Unprojection(MDU)

主要是对Camera Stream得到的feature做的操作,做到将2D的feature转化为3D的feature,参考了MVP的方法。首先将Lidar点云投影到2D图像上,将落到前景(目标)上的点云保留下来记作reference points——R,然后在该前景(目标)上选一些seeds,将reference points的depth赋给这些seeds,这些seeds反投影到3D空间就变成了带有depth信息的virtual points了。

额外的不同:在unprojection之前,作者将Lidar points project to 2D形成一个depth map,将depth map与 image features结合构成depth-aware features(下图红框部分),具体结合方式原文是这样的“Concretely, we concatenate the camera image feature C with a sparse depth map containing all depths of reference points R in that image, and then fuse them with a convolutional layer to obtain the depth-aware semantic feature Cd."。说到底是用1*1的卷积把depth和image feature混合在一起了。

seeds和reference points怎么关联?我怎么知道哪个seeds用哪个reference point的深度呢?

MVP用的nearest,就是离seed最近的reference point的深度赋予给该seed。作者认为在2D空间里的nearest不代表在3D空间是nearest的,所以MDU为了提高容错率,每个seed选择多个depth(毕竟参考点多了,总能命中),对每个seed选取了K个depth,这样也就增加了virtual points的数量,变相丰富了3D的points。

此时一个seed带了K个depth,那就相当于一个pixel会有K个射线指向3D空间。于是作者使用Liner和sigmod将不同的射线赋予不同的权值,这样K个来自同一个seed的virtual points所带的语义信息也不只是depth的不同了,而是根据depth的不同带有不同的feature。

到此,MDU实现了将落在目标里的2D seed转化为带有semantic information 的3D virtual points的过程。此时空间中有raw lidar points,也有virtual points,前者组成的体素是蓝色体素,后者组成的体素是黄色体素,两者结合的体素是红色体素。

2.3 Gated Modality-Aware Convolution(GMA Conv)

此时,在voxel space存在蓝、黄、红三种体素fL,fC,fLC。GMA要做的是将这些体素聚集,也就是融合。分为两个过程选择select聚集aggregation

select:

因为LiDAR-based的检测方法比Camera-based的方法好,所以作者选择把LiDAR voxel作为基础,去找其他的Camera voxel来当补充。最直接的方法是找最近的两种体素做融合,但是这种做法需要遍历全部体素,复杂度为平方级,不可行。既然目的是给少量的LiDAR voxel匹配多量的Camera voxel,那么我可以先找一对LiDAR 和 Camera 的voxel,然后跟这个Camera voxel类似的其他Camera voxel(类似是由后面的FPS方法定义的)全匹配给这个LiDAR voxel。具体做法是,先用Farthest Point Sampling(FPS)算法在voxel space找出L个具有代表性的Camera voxel,然后去找离这L个Camera voxel最近的LiDAR voxel,这样就实现了第一步配对;以这L个Camera voxel为球心作个球体,在球体内的所有Camera voxel共同匹配同一个LiDAR voxel,这样就实现了第二步找类似的Camera voxel。

Lidar-camera combined voxels也是一样的,因为本身是包含raw lidar points和virtual lidar points,可以拆分成蓝黄两种体素(解耦decompose),按照上述方法找到blue voxel匹配。

aggregate:

对三种体素分别spconv,然后再合起来spconv,得到最终的feature voxel。

2.4 Cross-Scale Connection

前一层的F下采样后与后一层的F相加

2.5 Prediction in BEV space

把FM和LiDAR feature都压缩成BEV,然后在BEV空间concat--2D conv 得到 multi Modal BEV feature

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值