[ECCV2020] Deep FusionNet for Point Cloud Semantic Segmentation 笔记


一、Introduction

(1) motivation

  • 基于体素的卷积操作,一般都是体素水平的预测,而且在体素化过程将许多原始点转移到单个体素上,当体素包含来自不同类的点时,它们会产生模糊或错误的预测(图 1( c ))。其他方法(如PointNets和PointConv)可以采用不规则点进行特征学习。但是它们的高内存和计算成本(如邻域搜索和球查询)限制了它们大规模点云处理的能力和精度。
  • PointNets中的多层感知器(MLP)只保留了最重要的激活,可能会丢失一些用于分割的有用的详细信息。此外,由于这些模型在邻域搜索、采样和球查询操作中具有较高的内存和计算复杂度,因此在训练针对大规模点云的深度和鲁棒网络方面存在局限性(图1(a))。
  • 基于PointConv的研究,额外的内存开销和矩阵乘法将限制对大规模点云的有效网络的训练,并可能由于特征聚合不足而对某些对象产生错误的预测(图1(b))。
    在这里插入图片描述

(2) Advantages

  • 开发了一种深度融合网络架构,该架构具有独特的基于体素的“mini-PointNet”结构,用于点云表示,以及用于特征聚合的新颖融合模块(图2)。
  • 与现有的体素网络相比,FusionNet可以预测点方向的标签,当一个体素有来自不同类别的点时,可以避免那些不明确的/错误的预测。
  • 与流行的PointNets和基于点的卷积相比,FusionNet具有更有效的特征聚合操作(包括高效的邻域体素聚合和细粒度内体素点级聚合)。这些操作有助于提高大规模点云分割的精度。
  • FusionNet充分利用稀疏性属性,减少内存占用。例如,它可以在训练中需要超过100万个点,并且只使用一个GPU来实现最先进的精度。

二、FusionNet

在这里插入图片描述
在这里插入图片描述

(1) Point Cloud Representation

文章中点云表示是一种独特的基于体素的“微型点网”,它有两个步骤:体素化(Voxelization)mini-PointNet构造

  • 体素化(Voxelization):给定范围在Lx × Ly × Lz内的点云P作为输入,将不规则的点转移到分辨率为H×W×D的规则三维体素中。分辨率由体素参数S=(Sx, Sy, Sz)(每个体素的长度/宽度/高度)控制,其中(H, W, D) = (Lx/Sx, Ly/Sy, Lz/Sz)。
  • Mini-PointNet:p = {(px, py, pz), Fp},(px, py, pz)为点的三维空间坐标,Fp为点特征(如颜色,亮度)。 V = {(Vx, Vy, Vz), FV,{p1, p2, …pm}},(Vx, Vy, Vz)为体素V的三维空间坐标,{p1, p2, …pm}表示V包含了m个点,Fv是可以从每个体素中的这些点学习到的体素特征。
    基于体素的“小点网”存储在稀疏的数据结构中,以减少内存需求。在特征聚合过程中,不会存储或处理空的或无效的体素

在这里插入图片描述

(2) Neighborhood Aggregations

  • Voxel Feature Aggregation:基于规则体素的卷积模型需要额外的内存和计算来学习或插值点卷积的权值核,以及通过KNN搜索或ball查询从不规则点云中定位邻域点。为了减少内存占用和开发用于大规模点云分割的深度神经网络,我们使用稀疏子流形卷积层进行基于体素的聚合,仅在激活体素处计算卷积(如图2(a)的步骤ii)。这种方法有助于最小化所需的内存。
    在这里插入图片描述
  • Point Feature Aggragation:对于m点{p1, p2,…pm}在当前体素V中,它们的点特征可以通过我们的Voxel-MLP将邻域体素N(V)中的所有点(例如,如果核大小为3,则为27个邻域体素)聚集起来,如下所示:
    在这里插入图片描述
    其中,h可以解释为点空间编码函数,特征聚集γ可以通过连接层和完全连接层来实现。
    在这里插入图片描述
    现有模型中的球查询、采样或KNN邻域搜索对于不规则点云的点选择需要O(n2)时间复杂度。虽然k-d树可以用来加速复杂度为O(nlog(n))的搜索,但为每一层构建k-d树也会消耗额外的内存和计算量。相比之下,在Voxel-MLP中,所有的邻域点都可以从邻域体素中更有效地直接访问(通过对每个点进行时间复杂度为O(1)(总O(n))的哈希映射)

(3) Inner-voxel Aggregation

在这里插入图片描述

  • 体素级聚合只学习粗粒体素特征,当体素由不同类的点组成时,这些粗粒体 素特征通常会在对象边界产生模糊/错误的预测。
  • 来自邻域聚合块输出的逐点特征Fp和体素特征Fv(图2(a))。它们被发送到内体素块进行融合和聚合。
  • 首先使用逐点平均池化来从“mini-PointNet”中的m个点获得汇聚的特征向量。
  • 然后,特征向量通过concatenation融合到体素特征Fv中。
  • 经过1×1卷积/FC层的细化后,聚合的体素级特征FAv通过concatenation反馈到“mini-PointNet”中的每个点。
  • 最后,利用点全连接层得到聚合的点特征FAp。
  • 即每个有效体素V有m个点({p1, pk,…pm}∈V)在“mini-PointNet”中,内体素聚合可以表示为:
    在这里插入图片描述
    其中,h为点的空间编码函数,它可以学会通过全连接层点特性Fp和体素的空间转移中心(px−Vx, py−Vy, pz−Vz)作为输入。γ1和γ2是特征融合函数,通过连接层和全连接层实现。
  • 内部体素聚集循环后,体素级特征与点特征深度融合。然后,它们被发送到下一个FusionNet模块/层进行进一步聚合。

(4) Down/Up-sampling

在这里插入图片描述

  • 下采样和上采样在分割的神经网络中是必不可少的,因为它们有助于捕获不同分辨率和接受域的金字塔特征。对于常规体素,我们使用卷积和带大步的转置卷积(例如2)进行向下和向上采样。这些与现有的图像分割模型(如UNet[41])相似,已经被发现是有效的。
  • 图4说明了我们严格遵循体素级采样的点特征降采样。在体素水平降采样后,体素的大小被扩大以得到一个低分辨率的表示。为了实现点级降采样,我们通过重新采样来减少每个体素中的点的数量,从而得到新的“小点网”。例如,我们将每个体素的点数减少到一半,同时确保至少有一个有效点来避免新的空体素(图4( c ))。
  • 与慢速迭代最远采样策略(对于大型点云有时需要1-2秒)相比,FusionNet中的点采样是在每个体素中独立实现的,并且可以由GPU并行计算,速度快(比最远的采样策略快10–100倍)。
  • 基于体素的下采样可以保持点级和体素级网络之间的一致性,这是随机采样和最远采样策略无法实现的。对于点向上采样,使用PointNet 中提出的点插值来恢复高分辨率点表示。

(5) Architecture and Sparse Implementation

  • Architecture:我们使用与[3,7]相同的3D UNet骨架每个金字塔层使用一个FusionNet模块代替卷积层。点级和体素级特征都通过连接紧密地连接到前一层。
  • Sparse Implementation:图5说明了稀疏数据结构中点和体素的存储。每个体素及其点都可以通过哈希映射快速访问。体素的坐标(包括批处理ID)被用作散列映射的键,查询坐标直接指向每个体素和“mini-PointNet”的位置。
    在这里插入图片描述
    与稠密规则卷积网络相比[46,61],FusionNet充分利用稀疏性来减少内存需求。它不同于点网[35,37]和点卷积网[13,53],这些点卷积网需要较高的计算复杂度来进行邻域搜索。FusionNet使用正则体素表示和哈希映射实现O(1)点/体素索引,更适合大规模点云分割任务。

三、Experiments

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值