论文阅读:3D Semantic Segmentation with Submanifold Sparse Convolutional Networks

题目:基于子流形稀疏卷积网络的三维语义分割

也是spconv,稀疏卷积提出者

来源:CVPR, 2018

下载连接:https://ieeexplore.ieee.org/document/8579059

(括号内和加粗是自己的理解或者认为是重点的),如有不对欢迎探讨,其他为翻译

0、摘要

卷积网络是分析图像、视频和3D形状等时空数据的事实上的标准。虽然其中一些数据自然是密集的(例如,照片),但许多其他数据源天生是稀疏的。例如使用激光雷达扫描仪或RGB-D相机获得的3D点云。标准的卷积网络“密集”实现在应用于这样的稀疏数据时效率非常低。我们引入了新的稀疏卷积操作,旨在更有效地处理空间稀疏数据,并利用它们开发空间稀疏卷积网络。我们在涉及三维点云语义分割的两个任务上展示了所得到的模型,称为子流形稀疏卷积网络(sscn)的强大性能。特别是,我们的模型在最近的一场语义分割竞赛的测试集上优于所有以前的先进技术。

1、引言

卷积网络(ConvNets)是目前最先进的方法,可用于各种任务,包括分析具有空间和/或时间结构的数据,如照片、视频或3D表面模型。虽然这些数据通常包含一个密集的(2D或3D)网格,但其他数据集自然是稀疏的。例如,书写是由二维空间中的一维线条组成,RGB-D相机拍摄的图片是三维点云,多边形网格模型是三维空间中的二维曲面。

维数的诅咒尤其适用于具有三个或更多维数的网格上的数据:网格上的点的数量随维数呈指数增长。在这种情况下,为了减少数据处理所需的计算资源,尽可能地利用数据稀疏性变得越来越重要。的确,在分析时利用稀疏性是至关重要的,例如,RGB-D视频是稀疏填充的4D结构。

传统的卷积网络实现是针对密集网格上的数据进行优化的,不能有效地处理稀疏数据。最近,已经出现了许多针对稀疏数据的卷积网络实现[3,4,18]。在数学上,这些实现中的一些与常规的卷积网络相同,但它们在FLOPs和/或内存方面需要更少的计算资源[3,4]。之前的工作使用了im2col操作的稀疏版本,该版本将计算和存储限制在“活动”站点[4],或者使用[22]的投票算法来删除不必要的零乘法[3]。OctNets[18]修改卷积算子,以在感兴趣区域之外的网格部分产生“平均”隐藏状态。

之前卷积网络的稀疏实现的缺点之一是,它们通过应用“完全”卷积来“扩展”每一层的稀疏数据。在这项工作中,我们证明了可以创建卷积网络,使整个网络保持相同的稀疏程度。因此,训练具有明显更多层的网络,如ResNets[7]和DenseNets[9]就变得切实可行。

为此,我们开发了一种执行稀疏卷积(SCs)的新实现,并引入了一种新的卷积算子,称为子流形稀疏卷积(SSC)。我们使用这些算子作为子流形稀疏卷积网络(sscn)的基础,sscn优化了三维点云的高效语义分割,如图1所示的例子。

在表1中,我们展示了sscn在最近的基于部分的分割比赛[23]测试集上的性能,并将其与比赛中表现最好的一些参赛作品进行了比较:sscn的性能优于所有这些参赛作品。我们库的源代码可以在网上公开获得。

2. 相关工作

我们的工作主要建立在之前关于稀疏卷积网络[3,4]和使用密集卷积网络的图像分割[14,19,24]的文献基础上。三维密集卷积在体积数据上的应用包括分类[15]和分割[2];这些方法受到内存使用高推理缓慢的影响,限制了可以使用的模型的大小。

没有体素化的3D点云处理方法也得到了发展[10,17]。考虑到卷积神经网络在处理2D输入方面的优势,这可能看起来令人惊讶;这可能是由于使用密集的3D卷积网络所涉及的计算障碍。

之前关于稀疏卷积的工作实现了一个卷积算子,该算子在每一层增加活动位点的数量[3,4]。在[4]中,所有至少有一个“活动”输入站点的站点都被认为是活动的。在[3]中,利用ReLUs和一个特殊的损耗函数计算卷积后,得到了更大程度的稀疏性。相比之下,我们引入了子流形稀疏卷积来固定活动站点的位置,从而使得稀疏度在许多层中保持不变。我们表明,这使得它可以训练类似于VGG网络[20]或ResNets[7]的深度和高效的网络,并且非常适合于逐点语义分割的任务。

OctNets[18]是稀疏卷积的另一种形式。稀疏体素存储在八叉树中:八叉树是一种数据结构,网格立方体被逐步细分为个更小的子立方体,直到这些子立方体要么为空,要么包含单个活动位点。OctNet在空区域的表面上运行,所以一个大小为3的OctNet卷积在一个大小为8×8 ×8的空立方体上需要23%的密集3D卷积计算。相反,子流形卷积不需要在空区域进行计算。

另一种分割点云的方法是避免输入的体素化,这可能会导致由于有限的分辨率信息的损失。这可以通过使用精心选择的数据结构(如Kd树[10])或直接对无序的点集[17]进行操作来实现。Kd-Networks[10]沿着变化最大的轴递归地划分空间,直到树的每个叶包含一个输入点,从而构建kd树。对于N个输入点,需要O(N logN)的时间。PointNet[17]使用池操作生成全局特征向量。

在[14]中提出了全卷积网络(FCN)作为二维图像分割的一种方法;FCN利用多尺度信息来保留底层信息,从而准确地勾画出目标边界。UNets[19]通过使用卷积来扩展fcs,在最终的分类阶段之前更准确地将不同尺度的信息合并在一起;参见图4。

3. 卷积网络的空间稀疏性

我们将d维卷积网络定义为一个以(d+1)维张量作为输入的网络:输入张量包含d个时空维(如长度、宽度、高度、时间等)和一个额外的特征空间维(如RGB颜色通道或表面法向量)。输入对应于一个d维的site,每个site都与一个特征向量相关联。如果特征向量中的任何元素不处于基态(例如它是非零的),我们定义输入中的一个站点为活跃的。如果数据不是自然稀疏的,阈值可以用来消除特征向量在离基态很小的距离内的输入点(接近于基态)。注意,即使输入张量是(d +1)维的,活动也是d维的现象:沿着特征维的整条线要么是活跃的,要么是非活跃的。

(意思大概是设置一个阈值,来此控制这个点是否被激活。例如,如果向量全是零,就不让他活跃。应该就是激活层)

同样,d维卷积网络的隐藏层也用特征空间向量的d维网格表示。当通过网络传播输入数据时,如果隐含层中的任何作为输入的site处于活动状态,那么隐含层中的site就是活动的。(注意,当使用size-3卷积时,每个站点都连接到下面隐藏层的站点)(每个点)。因此,隐含层中的活动遵循归纳定义,其中每一层决定下一层中的活动状态集。在每个隐层中,非活动位点都具有相同的特征向量:对应于基态的特征向量。基态值只需要在训练时间每次前向传播计算一次,在整个测试时间前向传播计算一次。这允许大量节省计算和内存使用。

我们认为上面描述的框架有过度的限制,特别是因为卷积操作没有被修改以适应输入数据的稀疏性。如果输入数据包含单个活性位点,那么在应用卷积后,就会出现活性位点。应用同样大小的第二次卷积将产生活性位点,以此类推。当实现由数十甚至数百个卷积层组成的现代卷积网络架构(如VGG网络、ResNets或DenseNets[8,9,20])时,这种活跃站点数量的快速增长是一个糟糕的前景。

当然,卷积网络并不经常应用于只有一个激活位点的输入,但是,当输入数据包含二维或多维空间中的一维曲线,或三维或多维空间中的二维曲面时,上述的膨胀问题同样是问题。我们把这个问题称为“子流形膨胀问题”。图2说明了这个问题:即使我们在这个网格上应用小的3×3卷积,网格的稀疏性也会迅速消失。

图2:“子流形”扩张的例子。左:原始曲线。中:应用权值为1/9的正则3 × 3卷积的结果。右:再次应用同样的卷积的结果。规则卷积大大降低了每个卷积层的特征稀疏性。(就是大家都有值了,原来值很集中,才是稀疏的)

(这里d=2,就能看懂了,分别代表长宽,,实际上卷积操作这个会扩张,作者就是为了解决这个扩展问题)

4. 子流形卷积网络

我们探讨了子流形扩张问题的一个简单的解决方案,该问题限制卷积的输出只到有源输入点的集合。这种方法的一个潜在问题是,网络中的隐藏层可能无法接收到分类输入数据所需的所有信息:特别是,两个相邻的连接组件被完全独立地处理。我们通过使用包含池化或跨步卷积操作的卷积网络来解决这个问题。这样的操作在我们研究的稀疏卷积网络中是很重要的,因为它们允许信息在输入中不相连的部件之间流动。组件在空间上越接近,组件在其中间表示中进行“通信”所需的跨步操作就越少。

4.1. 稀疏卷积运算Sparse Convolutional Operations

我们定义一个稀疏卷积SC(m, n, f, s),它有m个输入特征面,n个输出特征面,滤波器大小为f,步幅为s。SC卷积以与常规卷积相同的方式计算活性位点集:它在其大小为的接受域中寻找任何活性位点的存在。如果输入有大小l,则输出有大小(l−f+s)/s。与常规卷积或者稀疏卷积[4]不同,SC卷积通过假设来自这些位置的输入为零,从而丢弃了非活性位点的基态。这个看似很小的更改减少了大约50%的计算成本。

子流形稀疏卷积Submanifold sparse convolution

本文的主要贡献是另一种稀疏卷积的定义。设f表示奇数。我们定义一个子流形稀疏卷积SSC(m, n, f)作为一个改进的SC(m, n, f, s=1)卷积。首先,我们在每边用(f−1)/2个零填充输入,以便输出与输入具有相同的大小。接下来,我们限制一个输出位点的活性,以识别输入区域中相应位点的活性(即,如果接收区域的中心位点是活性的)。当一个输出位点被确定为活动位点时,通过SSC卷积计算其输出特征向量;图3给出了一个说明。表2显示了常规卷积(C)操作以及我们的SC和SSC卷积的计算和内存需求。

(步长为一,所以当前点和结果可以一一对应,如果当前点输入是活跃的,输出也是活跃的)

SSC(·,·,3)接受野集中在不同的活动空间位置。该区域中的活动位置显示为绿色。红色的位置被SSC忽略,所以活跃位置的模式保持不变。

SSC卷积与OctNets[18]相似,因为它们保持了稀疏结构。然而,与OctNets不同的是,在SSC卷积的实现中,空空间不会带来计算或内存开销。

其他操作Other operators

为了使用SC和SSC构建卷积网络,我们还需要激活函数、批量归一化和池化。激活函数与往常一样定义,但仅限于激活站点的集合。类似地,我们根据应用在活性位点集合上的常规批量标准化来定义批量标准化。Max-pooling MP(f, s)和average-pooling AP(f, s)操作被定义为SC(·,·,f,s)的变体。MP取接收域的零向量和输入特征向量的最大值。AP计算f - d乘以有效输入向量之和。我们还定义了一个反褶积[25]运算DC(·,·,f,s)作为SC(·,·,f,s)卷积的逆运算。直流卷积的有效输出位点集与相应SC卷积的输入有效位点集完全相同:输入和输出位点之间的连接是简单倒置的。

4.2 实施

为了有效地实现(S)SC卷积,我们将输入/隐藏层的状态存储在两部分:哈希表和矩阵。矩阵的大小为a × m,每个活性位点包含一行。哈希表包含所有活动站点的(location, row)对:位置是整数坐标的元组,行号表示特征矩阵中相应的行。给定一个滤波器大小为f的卷积,设f ={0,1,…,f−1}d表示卷积滤波器的空间大小。将规则手册定义为一个R =(Ri: i∈F)的fd整数矩阵的集合,每个矩阵都有两列。为了实现一个SC(m, n, f, s)卷积,我们:

  1. 对输入哈希表进行一次迭代。我们通过迭代输入层中的点以及输出层中可以看到这些点的所有点来动态构建输出哈希表和规则簿。当第一次访问一个输出站点时,将在输出哈希表中创建一个新条目。对于位于输出y的接收字段中的点i处的每个活动输入x,向规则簿元素Ri添加一行(inputhash(x), output-hash(y))。

  1. 将输出矩阵初始化为零。对于每个i∈F,都有一个参数matrixWi∈Rm×n。对于Ri中的每一行(j, k),将输入特征矩阵的第j行乘以Wi,并将其与输出特征矩阵的第k行相加。这可以在gpu上有效地完成,因为它是一个矩阵-矩阵乘法-加法。

为了实现SSC卷积,我们将输入哈希表重用为输出,并构造一个适当的规则手册。请注意,由于稀疏模式不会改变,相同的规则手册可以在网络中重用,直到遇到池或子采样层。

如果输入层中有活动点,构建输入哈希表的代价是O(a)。对于FCN和U-Net网络,假设每进行一次下采样操作,活跃站点的数量减少一个乘因子,无论网络深度如何,构建所有哈希表和规则书的成本也是O(a)。

上述实现与[4]的不同之处在于,计算输出站点的成本与活动输入的数量成正比,而不是与接收字段的大小成正比。对于SC卷积,这类似于投票算法[22,3]——过滤器的权值永远不会与非活动输入位置乘以——但对于SSC卷积,实现的计算量比投票少,因为活动输入位置和非活动邻近输出位置之间没有交互。

5. 用于语义分割的子流形FCNss和U-Nets

三维语义分割涉及将以点云表示的三维物体或场景分割成其组成部分;输入云中的每个点都必须分配一个零件标签。随着卷积网络在二维图像分割方面的进展[14,19,24],近年来人们对三维语义分割问题的兴趣也越来越大。特别是,一个新的基于部件的3D对象分割数据集和相关的竞争[23]激发了人们的兴趣。

我们使用类似于[3,4]的稀疏体素化输入表示,并结合SSC卷积和跨步SC卷积来构造流行的FCN[14]和U-Net[2]网络的稀疏变体。得到的网络如图4所示;详情请参阅标题。我们将这些网络称为子流形稀疏卷积网络(sscn),因为它们处理生活在高维空间中的低维数据

图4:我们的子流形稀疏FCN (a)和U-Net (b)架构的插图。深蓝框表示一个或多个“预激活”SSC(·,·,3)卷积,这些卷积可能有残留连接。红框表示size-2, stride-2下采样卷积;绿色反卷积“反转”这些卷积。紫色上采样框执行“最近邻居”上采样。最后的线性和softmax层分别应用于每个活跃输入体素。

我们网络的基本构建模块是“预激活”SSC(·,·,3)卷积。每个卷积之前是批归一化和ReLU非线性。除了具有标准卷积层的FCN和u - net外,我们还对这些网络的变体进行了实验,这些变体使用了预先激活的剩余块[8],其中包含两个SSC(·,·,3)卷积。其中,剩余连接为恒等函数,输入和输出特征个数相等。当网络将空间尺度减小2倍时,我们使用SC(·,·,2,2)卷积。我们实现的fcnupsample特征映射到它们的原始分辨率,而不是使用残留块执行反卷积。这大大减少了FCN中参数和多加操作的数量。

6. 实验

在本节中,我们在ShapeNet竞争数据集[23]上使用sscn进行实验。在性能和计算成本方面,我们将sscn与三种强大的基线模型进行比较:(1)形状上下文[1],(2)密集的3D卷积网络,(3)多视图2D卷积网络[21]。在整个实验评估过程中,我们关注的是FLOPs7中分割精度和计算效率之间的权衡。在第二组实验中,我们还研究了在NYU Depth (v2)数据集[16]上的SSCN性能。

6.1. 数据集

ShapeNet分割数据集[23]由16个不同的对象类别(平面、椅子、帽子等)组成,每个对象类别由多达6个不同的部分组成。例如,一架“飞机”被分为“机翼”、“引擎”、“机身”和“机尾”。在所有对象类别中,数据集总共包含50个不同的对象部件类。每个对象都表示为一个三维点云,该点云是由底层CAD模型的表面均匀采样点获得的。每个点云包含2000到3000个点。为了增加验证集的大小,我们使用点云文件的MD5哈希的首位重新分割训练集和验证集,以获得包含6,955个示例的训练集和包含7,052个示例的验证集。测试集包含2,874个示例。

在原始数据集中,对象是轴对齐的:例如,火箭总是指向z轴。为了使问题更具挑战性,我们在对每个点云进行分类之前对其进行随机的3D平移和旋转。表3的结果表明,去除对齐确实使分割任务更具挑战性。

为了评估模型的准确性,我们采用了[23]的交并(IoU)度量。对于每个对象类别的每个部件计算IoU,并在该类别的部件和示例上平均,以产生一个“每个类别的IoU”。这种平均化IoU分数的方法会奖励那些即使是对非常小的物体部件也能做出准确预测的模型:小部件与大部件在精度测量中具有相同的权重。最终的准确性度量是通过对每个类别的iou进行加权平均,使用每个类别训练示例的分数作为权重来获得的。

6.2. 实验设置细节

在所有的实验中,都使用了相同的数据预处理程序。具体来说,将每个点云居中并重新缩放到直径为S的球体中;scale S决定了体素化表示的大小。我们在实验中使用S∈{16,32,48}。在尺度S =48时,体素的稀疏程度约为99%。在密集卷积网络的实验中,我们将具有随机平移和旋转的球体放置在大小为s的网格中。对于sscn,我们将球体放置在大小为4S的网格中。为了使点云体素化,我们测量每个体素的点数并将它们归一化,以便非空体素具有1的平均密度。

除非另有说明,否则使用相同的最优化超参数来训练网络。我们使用动量为0.9的随机梯度下降(SGD), Nesterov更新,L2权值衰减为10−4。初始学习率设为0.1,每个历元后学习率衰减e - 0.04倍。我们使用16个批处理大小来训练100个时代的所有网络。我们在所有的50个部件标签上使用一个多类负对数似然损失函数,在所有16个对象类别上联合训练一个网络。

我们实验了两种类型的SSCN网络架构。第一种结构(C3)通过叠加SSC(·,·,3)卷积在单一空间分辨率上运行;我们使用8、16、32或64个过滤器每层和2、4或6层。第二种体系结构类型包括具有三层下采样的fcn和u - net。这些网络的第一层有8个、16个、32个或64个过滤器,每次数据下采样时,过滤器的数量都增加一倍。对于这些网络中的卷积块,我们使用1、2或3个SSC卷积的堆栈,或1、2或3个剩余块的堆栈。

测试的细节。在测试时,我们只计算实际出现在被分割对象中的部分标签的softmax概率,也就是说,我们假设模型知道他们正在分割的对象的类别。不相关零件类的Softmax概率设置为零(零件标签上的分布重新归一化)。

对于三种网络类型(C3、FCN和UNet)中的每一种,我们训练一系列具有不同大小的模型,如上所述,并监控它们在验证集中的准确性。对于每一种网络类型,我们选择在准确性vs. FLOPs曲线中对应局部最大值的网络,并报告这些网络的测试集准确性。类似于图像分类中常见的多作物测试,我们在多个视图中集成模型预测:我们通过随机旋转对象的k个不同视图生成k个不同视图,并在对象的k个不同视图中平均每个点的模型预测。

6.3 基本线

除了sscn,我们在实验中考虑了三个基线模型:(1)形状上下文[1],(2)密集3D卷积网络,(3)多视图2D卷积网络[21]。我们将在下面分别描述四个基线模型的细节。

形状上下文。受[1]的启发,我们定义了一个体素化的形状上下文向量。具体来说,我们将ShapeContext层定义为SSC(1,27,3,1)子廖卷积算子的一种特殊情况:我们将该算子的权值矩阵设置为27×27单位矩阵,以便它在其3×3×3邻域内累积体素强度。我们使用大小为2、4、8和16的平均池来缩放数据,以创建四个额外的视图。结合起来,这为每个体素生成一个135维的特征向量。该特征向量被送入具有两个隐藏层的非卷积多层感知器(MLP),然后是一个50类软最大分类器。mlp每层有32、64、128、256或512个单元。在测试时,我们使用k=3的多视图测试。

密集的3D卷积网络。对于密集的3D卷积网络,我们只考虑密集版本的SSCN网络。由于计算的限制,我们将FCN和U-Net卷积块限制为单一的c3层。由于在训练过程中观察到的数值不稳定性,我们以较低的学习速率训练了一些模型。我们再次使用K =3的多视图测试。

基于多视角二维投影的卷积网络。这个基线模型通过假设无限焦距,将点云投影到一个二维视图中,并在这个投影上应用一个2D卷积网络,并在多个视图中平均预测,从而抛弃了数据的固有3D结构。这种方法的一个直接优势是,经过充分研究的2D视觉模型可以直接使用,无需进一步调整。此外,计算成本与表面面积,而不是体积的点云。

在此方法的实现中,我们首先将点云转换为大小为S×S×S的3D网格,就像我们在之前的基线中所做的那样。然后我们投影到一个大小为S × S的平面,即立方体的一个面,带有两个特征通道。一个特征通道是沿着相应列的第一个可见的非零体素。第二个通道是到可见体素的距离,归一化到范围[0,2],类似于RGB-D图像的深度通道。我们的网络架构是上述密集的3D卷积网络的二维版本。

在训练过程中,将点云的随机投影传递到模型中。点云中落入同一体素的点将得到相同的预测。一些体素被其他体素遮挡——网络无法接收到被遮挡体素的信息。我们修改了多视图测试程序,以考虑到体素的遮挡。与之前类似,预测是使用k个随机投影的加权和来执行的。我们发现,2D网络需要更多的视图来获得更高的精度,并使用高达k=10的视图。在2D投影中观察到的体素的权重为1。被遮挡体素的权重随着与遮挡它们的体素之间的距离呈指数衰减,这保证了对每个点的预测,即使该点在所有视图中都被遮挡。

6.4结果

在图5中,我们报告了ShapeNet测试集上的平均IoU,这些IoU的范围是不同大小的:(1)三个基线模型和(2)我们的子manifold C3, fcn和U-Nets。平均IoU显示为计算预测所需的模型的乘法-加法操作(FLOPs)的数量的函数。请注意,图中的结果与[23]中的结果没有直接的可比性,因为我们是在更具挑战性的“随机姿势”设置下测试模型。

sscn vs.基线。图5(a)将sscn与三条基线进行了比较。8结果表明,形状上下文特征、多视图2D ConvNets和密集的3D ConvNets在每个flops的精度方面大致相当。SSCN网络的表现明显优于所有基线模型。例如,在1e8时,sscn的平均比基线高出6-8%。重要的是,我们的结果表明,限制信息在数据中的子流形上传播并不会妨碍sscn的性能,但它确实会带来可观的计算和内存节省,可以利用这些节省来训练具有更好精度的更大模型。

消融。在图5(b)中,我们比较了第6.2节中介绍的三种SSCN架构。我们观察到,涉及下采样和上采样操作的sscn (fcn和U-Nets)优于在单一空间分辨率下操作的sscn,我们推测这是由于下采样获得了更大的接受域。

图5(c)显示了三种不同尺度S下sscn的性能(使用所有三种架构:C3、FCN和U-Net)。我们观察到,对于不同的S值,特别是对于较低的FLOPs数,sscn的性能是相似的。在FLOPs较多的情况下,规模较大的模型表现略好一些。

6.5 竞赛结果数据

为了将sscn与[23]中的参赛作品进行比较,我们还在对齐的点云上训练了FCN-SSCN。在这个实验中,我们使用随机仿射变换来进行数据扩充。我们设置S=24,在输入层使用64个滤波器,三层下采样,每个空间分辨率使用两个剩余块。将10个视图的测试结果与表1中的参赛作品进行比较。该网络的测试误差为85.98%,比其他方法的测试误差高≥0.49% IoU。

6.6. 场景语义分割

我们还在NYU Depth数据集(v2)[16]上进行了场景而不是对象的语义分割实验。该数据集包含1449张RGB-D图像,这些图像在语义上被分割成894个不同的类。图6显示了来自该数据集的两个示例:每个示例包含一个RGB图像和相关的深度图。在[6,14]之后,我们裁剪图像,并将类的数量减少到40个。为了评估我们模型的性能,我们测量了它们的像素级分类精度。我们将我们的模型与2D FCN[14]进行比较。

我们用两个不同大小的SSCN-FCN网络进行实验。网络A在输入层有16个滤波器,每层有一个SSC(·,·,3)卷积。网络B在输入层有24个滤波器,每层有两个SSC(·,·,3)卷积。两个网络都使用了8级下采样。当下采样时,我们增加了网络中的滤波器数量:特别是,每次我们减小尺度时,我们增加了16 (A)或24 (B)个特征。

我们利用深度信息将RGB-D图像转换成三维点云。云中的每个点都有三个(RGB)特征,这些特征被归一化到范围[−1,1],第四个指标特征为点云中的每个点设置为1。当体素处于活动状态,但所有三个颜色通道的值都为0时,需要指示器特性来建模。在训练过程中,我们通过对点云应用随机仿射变换来进行数据增强。在对点云进行体素化之前,我们将其降尺度为原来的2倍,并将点放置到模型的接受域中。我们通过平均体素对应点的特征向量来形成体素。在测试时,我们同时实验了单视图和多视图预测(即,k=1和k=4)。

我们对NYU Depth dataset (v2)的实验结果如表4所示。与我们之前的结果一致,表中的结果显示,sscn在像素精度方面比2D FCN高出7%。同时,sscn也大大减少了预测模型的计算需求。

为了验证SSCN-FCN-A确实使用了深度信息,我们重复了之前的实验,同时将所有深度值设置为0;这可以防止SSCN利用深度信息。我们观察到:(1)FLOPs减少了60%,因为活动体素减少了;(2)准确率从64.1%下降到50.8%,说明sscn在进行分割时确实使用了3D结构。这证实了SSCN-FCN-A确实利用深度信息进行预测。

7. 结论

在本文中,我们引入了子流形稀疏卷积网络(sscn),以有效地处理高维、稀疏的输入数据。在一系列的实验中,我们证明了sscn对三维点云语义分割的有效性。具体来说,我们对SSCN网络的经验评估表明,无论是在识别物体内部的部件还是在更大的场景中识别物体,SSCN网络的性能都优于一系列最先进的方法。此外,与其他方法相比,sscn的计算效率更高。我们构建sscn的软件工具箱可以在https://github.com/ facebookresearch/SparseConvNet公开获得。

参考:https://zhuanlan.zhihu.com/p/97367489

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值