史上最全 | 基于深度学习的3D分割综述(RGB-D/点云/体素/多目)(上)

简介: 3D目标分割是计算机视觉中的一个基本且具有挑战性的问题,在自动驾驶、机器人、增强现实和医学图像分析等领域有着广泛的应用。它受到了计算机视觉、图形和机器学习社区的极大关注。传统上,3D分割是用人工设计的特征和工程方法进行的,这些方法精度较差,也无法推广到大规模数据上。在2D计算机视觉巨大成功的推动下,深度学习技术最近也成为3D分割任务的首选。近年来已涌现出大量相关工作,并且已经在不同的基准数据集上进行了评估。本文全面调研了基于深度学习的3D分割的最新进展,涵盖了150多篇论文。论文总结了最常用的范式,讨论了它们的优缺点,并分析了这些分割方法的对比结果。并在此基础上,提出了未来的研究方向。

摘要



3D目标分割是计算机视觉中的一个基本且具有挑战性的问题,在自动驾驶、机器人、增强现实和医学图像分析等领域有着广泛的应用。它受到了计算机视觉、图形和机器学习社区的极大关注。传统上,3D分割是用人工设计的特征和工程方法进行的,这些方法精度较差,也无法推广到大规模数据上。在2D计算机视觉巨大成功的推动下,深度学习技术最近也成为3D分割任务的首选。近年来已涌现出大量相关工作,并且已经在不同的基准数据集上进行了评估。本文全面调研了基于深度学习的3D分割的最新进展,涵盖了150多篇论文。论文总结了最常用的范式,讨论了它们的优缺点,并分析了这些分割方法的对比结果。并在此基础上,提出了未来的研究方向。


如图1第二行所示,3D分割可分为三种类型:语义分割、实例分割和部件分割。


640.png


论文的主要贡献如下:


  • 本文是第一篇全面涵盖使用不同3D数据表示(包括RGB-D、投影图像、体素、点云、网格和3D视频)进行3D分割的深度学习综述论文;
  • 论文对不同类型的3D数据分割方法的相对优缺点进行了深入分析;
  • 与现有综述不同,论文专注于专为3D分割设计的深度学习方法,并讨论典型的应用领域;
  • 论文对几种公共基准3D数据集上的现有方法进行了全面比较,得出了有趣的结论,并确定了有前景的未来研究方向。


图2显示了论文其余部分的组织方式:


640.png


基准数据集和评估指标


3D分割数据集


数据集对于使用深度学习训练和测试3D分割算法至关重要。然而,私人收集和标注数据集既麻烦又昂贵,因为它需要领域专业知识、高质量的传感器和处理设备。因此,构建公共数据集是降低成本的理想方法。遵循这种方式对社区有另一个好处,它提供了算法之间的公平比较。表1总结了关于传感器类型、数据大小和格式、场景类别和标注方法的一些最流行和典型的数据集。


640.png


这些数据集是通过不同类型的传感器(包括RGB-D相机[123]、[124]、[127]、[49]、[20]、移动激光扫描仪[120]、[3]、静态地面扫描仪[39]和非真实引擎[7]、[155]和其他3D扫描仪[1]、[10])用于3D语义分割而获取的。其中,从非真实引擎获得的数据集是合成数据集[7][155],不需要昂贵的设备或标注时间。这些物体的种类和数量非常丰富。与真实世界数据集相比,合成数据集具有完整的360度3D目标,没有遮挡效果或噪声,真实世界数据集中有噪声且包含遮挡[123]、[124]、[127]、[49]、[20]、[120]、[12]、[3]、[1]、[39]、[10]。对于3D实例分割,只有有限的3D数据集,如ScanNet[20]和S3DIS[1]。这两个数据集分别包含RGB-D相机或Matterport获得的真实室内场景的扫描数据。对于3D部件分割,普林斯顿分割基准(PSB)[12]、COSEG[147]和ShapeNet[169]是三个最流行的数据集。图3中显示了这些数据集的标注示例:

640.png


评价指标


不同的评估指标可以评价分割方法的有效性和优越性,包括执行时间、内存占用和准确性。然而,很少有作者提供有关其方法的执行时间和内存占用的详细信息。本文主要介绍精度度量。对于3D语义分割,常用的有Overall Accuracy(OAcc)、mean class Accuracy(mAcc)、mean class Intersection over Union(mIoU)。


OAcc:

640.png


mAcc:

640.png


mIoU:

640.png


对于3D实例分割,常用的有Average Precision(AP)、mean class Average Precision(mAP)。


AP:


640.png

mAP:


640.png


对于3D部件分割,常用的指标是overall average category Intersection over Union(Cat.mIoU)和overall average instance Intersection over Union(Ins.mIoU)。


Cat.mIoU:

640.png


Ins.mIoU:


640.png


3D语义分割



文献中提出了许多关于3D语义分割的深度学习方法。根据使用的数据表示,这些方法可分为五类,即基于RGB-D图像、基于投影图像、基于体素、基于点云和其他表示。基于点云的方法可以根据网络架构进一步分类为基于多层感知器(MLP)的方法、基于点云卷积的方法和基于图卷积的。图4显示了近年来3D语义分割深度学习的里程碑。

640.png


基于RGB-D


640.png

RGB-D图像中的深度图包含关于真实世界的几何信息,这有助于区分前景目标和背景,从而提供提高分割精度的可能。在这一类别中,通常使用经典的双通道网络分别从RGB和深度图像中提取特征。然而框架过于简单,无法提取丰富而精细的特征。为此,研究人员将几个附加模块集成到上述简单的双通道框架中,通过学习对语义分割至关重要的丰富上下文和几何信息来提高性能。这些模块大致可分为六类:多任务学习、深度编码、多尺度网络、新型神经网络结构、数据/特征/得分级融合和后处理(见图5)。表2中总结了基于RGB-D图像的语义分割方法。

640.png


多任务学习:深度估计和语义分割是计算机视觉中两个具有挑战性的基本任务。这些任务也有一定的相关性,因为与不同目标之间的深度变化相比,目标内的深度变化较小。因此,许多研究者选择将深度估计任务和语义分割任务结合起来。从两个任务的关系来看,多任务学习框架主要有两种类型:级联式和并行式。级联式的工作有[8]、[36],级联框架分阶段进行深度估计和语义分割,无法端到端训练。因此,深度估计任务并没有从语义分割任务中获得任何好处。并行式的工作有[141]、[101]、[87],读者具体可以参考相关论文。


深度编码:传统的2D CNN无法利用原始深度图像的丰富几何特征。另一种方法是将原始深度图像编码为适合2D-CNN的其他表示。Hoft等人[46]使用定向梯度直方图(HOG)的简化版本来表示RGB-D场景的深度通道。Gupta等人[38]和Aman等人[82]根据原始深度图像计算了三个新通道,分别为水平视差、地面高度和重力角(HHA)。Liu等人[86]指出了HHA的局限性,即某些场景可能没有足够的水平和垂直平面。因此,他们提出了一种新的重力方向检测方法,通过拟合垂直线来学习更好的表示。Hazirbas等人[42]还认为,HHA表示具有较高的计算成本,并且包含比原始深度图像更少的信息。并提出了一种称为FuseNet的架构,该架构由两个编码器-解码器分支组成,包括一个深度分支和一个RGB分支,且以较低的计算负载直接编码深度信息。


多尺度网络:由多尺度网络学习的上下文信息对于小目标和详细的区域分割是有用的。Couprie等人[19]使用多尺度卷积网络直接从RGB图像和深度图像中学习特征。Aman等人[111]提出了一种用于分割的多尺度deep ConvNet,其中VGG16-FC网络的粗预测在scale-2模块中被上采样。然而,这种方法对场景中的杂波很敏感,导致输出误差。Lin等人[82]利用了这样一个事实:较低场景分辨率区域具有较高的深度,而较高场景分辨率区域则具有较低的深度。他们使用深度图将相应的彩色图像分割成多个场景分辨率区域,并引入context-aware receptive field(CaRF),该感知场专注于特定场景分辨率区域的语义分割。这使得他们的管道成为多尺度网络。


新型神经网络结构:由于CNN的固定网格计算,它们处理和利用几何信息的能力有限。因此,研究人员提出了其他新颖的神经网络架构,以更好地利用几何特征以及RGB和深度图像之间的关系。这些架构可分为四大类:改进2D CNN,相关工作有[61]、[144];逆卷积神经网络(DeconvNets),相关工作有[87]、[139]、[14];循环神经网络(RNN),相关工作有[29]、[79];图神经网络(GNN),相关工作有[110]。


数据/特征/得分融合:纹理(RGB通道)和几何(深度通道)信息的最优融合对于准确的语义分割非常重要。融合策略有三种:数据级、特征级和得分级,分别指早期、中期和晚期融合。数据融合最简单的方式是将RGB图像和深度图像concat为4通道输入CNN[19]中,这种方式比较粗暴,没有充分利用深度和光度通道之间的强相关性。特征融合捕获了这些相关性,相关工作有[79]、[139]、[42]、[61]。得分级融合通常使用简单的平均策略进行。然而,RGB模型和深度模型对语义分割的贡献是不同的,相关工作有[86]、[14]。


后处理:用于RGB-D语义分割的CNN或DCNN的结果通常非常粗糙,导致边缘粗糙和小目标消失。解决这个问题的一个常见方法是将CNN与条件随机场(CRF)耦合。Wang等人[141]通过分层CRF(HCRF)的联合推断进一步促进了两个通道之间的相互作用。它加强了全局和局部预测之间的协同作用,其中全局用于指导局部预测并减少局部模糊性,局部结果提供了详细的区域结构和边界。Mousavian等人[101]、Liu等人[87]和Long等人[86]采用了全连接CRF(FC-CRF)进行后处理,其中逐像素标记预测联合考虑几何约束,如逐像素法线信息、像素位置、强度和深度,以促进逐像素标记的一致性。类似地,Jiang等人[61]提出了将深度信息与FC-CRF相结合的密集敏感CRF(DCRF)。


基于投影图像


基于投影图像的语义分割的核心思想是使用2D CNN从3D场景/形状的投影图像中提取特征,然后融合这些特征用于标签预测。与单目图像相比,该范式不仅利用了来自大规模场景的更多语义信息,而且与点云相比,减少了3D场景的数据大小。投影图像主要包括多目图像或球形图像。表3总结了基于投影图像的语义分割方法。


640.png


基于多目图像


MV-CNN[130]使用统一网络将由虚拟相机形成的3D形状的多个视图中的特征组合到单个紧凑的形状描述子中,以获得更好的分类性能。这促使研究人员将同样的想法应用于3D语义分割(见图6)。例如,Lawin等人[70]将点云投影到多目合成图像中,包括RGB、深度和表面法线图像。将所有多目图像的预测分数融合到单个表示中,并将其反向投影到每个点云中。然而,如果点云的密度较低,图像可能会错误地捕捉到观测结构背后的点云,这使得深度网络误解了多目图像。为此,SnapNet[6]、[5]对点云进行预处理,以计算点云特征(如正常或局部噪声)并生成网格,这与点云密度化类似。从网格和点云中,它们通过适当的快照生成RGB和深度图像。然后使用FCN对2D快照进行逐像素标记,并通过高效缓冲将这些标记快速重投影回3D点云。其他相关算法[35]、[106]可参考具体论文。


640.png


基于球形图像


从3D场景中选择快照并不直接。必须在适当考虑视点数量、视距和虚拟相机角度后拍摄快照,以获得完整场景的最优表示。为了避免这些复杂性,研究人员将整个点云投影到一个球体上(见图6底部)。例如,Wu等人[152]提出了一个名为SqueezeSeg的端到端管道,其灵感来自SqueezeNet[53],用于从球形图像中学习特征,然后由CRF将其细化为循环层。类似地,PointSeg[148]通过整合特征和通道注意力来扩展SqueezeNet,以学习鲁棒表示。其他相关算法还有[153]、[98]、[160]。


基于体素


与像素类似,体素将3D空间划分为具有特定大小和离散坐标的许多体积网格。与投影图像相比,它包含更多的场景几何信息。3D ShapeNets[156]和VoxNet[94]将体积占用网格表示作为用于目标识别的3D CNN的输入,该网络基于体素指导3D语义分割。根据体素大小的统一性,基于体素的方法可分为均匀体素方法和非均匀体素法。表3总结了基于体素的语义分割方法。


均匀体素


3D CNN是用于处理标签预测的统一体素的通用架构。Huang等人[51]提出了用于粗体素水平预测的3D FCN。他们的方法受到预测之间空间不一致性的限制,并提供了粗略的标记。Tchapmi等人[132]引入了一种新的网络SEGCloud来产生细粒度预测。其通过三线性插值将从3D FCN获得的粗体素预测上采样到原始3D点云空间分辨率。对于固定分辨率的体素,计算复杂度随场景比例的增加而线性增长。大体素可以降低大规模场景解析的计算成本。Liu等人[84]介绍了一种称为3DCNN-DQN-RNN的新型网络。与2D语义分割中的滑动窗口一样,该网络在3D-CNN和deep Q-Network(DQN)的控制下,提出了遍历整个数据的眼睛窗口,用于快速定位和分割目标。3D-CNN和残差RNN进一步细化眼睛窗口中的特征。该流水线有效地学习感兴趣区域的关键特征,以较低的计算成本提高大规模场景解析的准确性。其他相关工作[112]、[22]、[96]可以参考论文。


非均匀体素


在固定比例场景中,随着体素分辨率的增加,计算复杂度呈立方增长。然而,体素表示自然是稀疏的,在对稀疏数据应用3D密集卷积时会导致不必要的计算。为了缓解这个问题,OcNet[113]使用一系列不平衡的八叉树将空间分层划分为非均匀体素。树结构允许内存分配和计算集中于相关的密集体素,而不牺牲分辨率。然而,empty space仍然给OctNet带来计算和内存负担。相比之下,Graham等人[33]提出了一种新的子流形稀疏卷积(SSC),它不在empty space进行计算,弥补了OcNet的缺陷。


基于点云


点云在3D空间中不规则地散布,缺乏任何标准顺序和平移不变性,这限制了传统2D/3D卷积神经网络的使用。最近,一系列基于点云的语义分割网络被提出。这些方法大致可分为三类:基于多层感知器(MLP)的、基于点云卷积的和基于图卷积。表4总结了这些方法。

640.png


基于MLP


这些方法直接使用MLP学习点云特征。根据其框架,可进一步分为两类:基于PN和基于PN++框架的方法,如图7(a)和(b)所示。


基于PN框架


PointNet[108](PN)是一项直接处理点云的开创性工作。它使用共享MLP来挖掘逐点云特征,并采用max-pooling等对称函数来将这些特征聚合到全局特征表示中。由于max-pooling仅捕获全局点云的最大激活,因此PN无法学习利用局部特征。基于PN框架,一些网络开始定义局部区域以增强局部特征学习,并利用递归神经网络(RNN)来增加上下文特征的利用。例如,Engelmann等人[28]通过KNN聚类和K-means聚类定义局部区域,并使用简化PN提取局部特征。ESC[26]将全局区域点云划分为多尺度/网格块。连接的(局部)块特征附加到逐点云特征,并通过递归合并单元(RCU)进一步学习全局上下文特征。其他相关算法[168]可以参考论文。


基于PN++框架


基于PointNet,PointNet++[109](PN++)定义了分层学习架构。它使用最远点采样(FPS)对点云进行分层采样,并使用k个最近邻搜索和球搜索对局部区域进行聚类。逐步地,简化的PointNet在多个尺度或多个分辨率下利用局部区域的功能。PN++框架扩展了感受野以共同利用更多的局部特征。受SIFT[91]的启发,PointSIFT[63]在采样层之前插入一个PointSIFT模块层,以学习局部形状信息。该模块通过对不同方向的信息进行编码,将每个点云转换为新的形状表示。类似地,PointWeb[177]在聚类层之后插入自适应特征调整(AFA)模块层,以将点云之间的交互信息嵌入到每个点云中。这些策略增强了学习到的逐点云特征的表示能力。然而,MLP仍然单独处理每个局部点云,并且不注意局部点云之间的几何连接。此外,MLP是有效的,但缺乏捕捉更广泛和更精细的局部特征的复杂性。

640.png


基于点云卷积


基于点云卷积的方法直接对点云进行卷积运算。与基于MLP的分割类似,这些网络也可以细分为基于PN框架的方法和基于PN++框架的方法,如图7(c)、(d)所示。


基于PN


基于PN框架的方法对每个点云的相邻点云进行卷积。例如,RSNet[52]使用1x1卷积利用逐点云特征,然后将它们传递给local dependency module(LDM),以利用局部上下文特征。但是,它并没有为每个点云定义邻域以了解局部特征。另一方面,PointwiseCNN[50]按照特定的顺序对点云进行排序,例如XYZ坐标或Morton曲线[100],并动态查询最近邻,并将它们放入3x3x3 kernel中,然后使用相同的内核权重进行卷积。DPC[27]在通过dilated KNN搜索确定邻域点云的每个点云的邻域点云上调整点卷积[154]。该方法将扩张机制整合到KNN搜索中,以扩大感受野。PCNN[143]在KD-tree邻域上进行参数化CNN,以学习局部特征。然而,特征图的固定分辨率使得网络难以适应更深层次的架构。其他相关算法[133]、[34]、[77]可以参考具体论文。


基于PN++


基于PN++框架的方法将卷积层作为其关键层。例如,蒙特卡罗卷积近似的一个扩展叫做PointConv[154],它考虑了点云密度。使用MLP来近似卷积核的权重函数,并使用inverse density scale来重新加权学习的权重函数。类似地,MCC[45]通过依赖点云概率密度函数(PDF)将卷积表述为蒙特卡罗积分问题,其中卷积核也由MLP表示。此外,它引入了Possion Disk Sampling(PDS)[151]来构建点云层次结构,而不是FPS,这提供了一个在感受野中获得最大样本数的机会。A-CNN[67]通过扩展的KNN定义了一个新的局部环形区域,并将点云投影到切线平面上,以进一步排序局部区域中的相邻点云。然后,对这些表示为闭环阵列的有序邻域进行标准点云卷积。其他相关算法[48]、[175]可以参考具体论文。


基于图卷积


基于图卷积的方法对与图结构连接的点云进行卷积。在这里,图的构造(定义)和卷积设计正成为两个主要挑战。PN框架和PN++框架的相同分类也适用于图7(e)和(f)所示的图卷积方法。


基于PN


基于PN框架的方法从全局点云构造图,并对每个点云的邻域点云进行卷积。例如,ECC[125]是应用空间图形网络从点云提取特征的先驱方法之一。它动态生成edge-conditioned filters,以学习描述点云与其相邻点云之间关系的边缘特征。基于PN架构,DGCN[149]在每个点云的邻域上实现称为EdgeConv的动态边缘卷积。卷积由简化PN近似。SPG[69]将点云划分为若干简单的几何形状(称为super-points),并在全局super-points上构建super graph。此外,该网络采用PointNet来嵌入这些点云,并通过门控递归单元(GRU)细化嵌入。其他相关算法[74]、[73]、[93]、[159]可以参考具体论文。


基于PN++


基于PN++框架的方法对具有图结构的局部点云进行卷积。图是光谱图或空间图。在前一种情况下,LS-GCN[137]采用了PointNet++的基本架构,使用标准的非参数化傅立叶kernel将MLP替换为谱图卷积,以及一种新的spectral cluster pooling替代max-pooling。然而,从空间域到频谱域的转换需要很高的计算成本。此外,谱图网络通常定义在固定的图结构上,因此无法直接处理具有不同图结构的数据。相关算法可以参考[30]、[78]、[80]、[174]、[72]。


基于其他表示


一些方法将原始点云转换为投影图像、体素和点云以外的表示。这种表示的例子包括正切图像[131]和晶格[129]、[116]。在前一种情况下,Tatargenko等人[131]将每个点云周围的局部曲面投影到一系列2D切线图像,并开发基于切线卷积的U-Net来提取特征。在后一种情况下,SPLATNet[129]采用Jampani等人[56]提出的双边卷积层(BCL)将无序点云平滑映射到稀疏网格上。类似地,LatticeNet[116]使用了一种混合架构,它将获得低级特征的PointNet与探索全局上下文特征的稀疏3D卷积相结合。这些特征嵌入到允许应用标准2D卷积的稀疏网格中。尽管上述方法在3D语义分割方面取得了重大进展,但每种方法都有其自身的缺点。例如,多目图像具有更多的语义信息,但场景的几何信息较少。另一方面,体素具有更多的几何信息,但语义信息较少。为了获得最优性能,一些方法采用混合表示作为输入来学习场景的综合特征。相关算法[21]、[15]、[90]、[58]、[97]可以参考具体论文。


原文首发微信公众号【自动驾驶之心】:一个专注自动驾驶与AI的社区(https://mp.weixin.qq.com/s/NK-0tfm_5KxmOfFHpK5mBA

相关文章
|
5天前
|
机器学习/深度学习 机器人 数据处理
深度学习之点云分割
点云分割是计算机视觉中的一个重要任务,特别是在三维数据处理和分析中。点云数据是由大量三维点构成的集合,每个点包含空间坐标(x, y, z),有时还包含其他信息如颜色和法向量。点云分割的目标是将点云数据分割成有意义的部分,例如物体或地形的不同区域。
22 2
|
14天前
|
机器学习/深度学习 存储 监控
基于YOLOv8深度学习的无人机视角高精度太阳能电池板检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割
基于YOLOv8深度学习的无人机视角高精度太阳能电池板检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割
|
14天前
|
机器学习/深度学习 存储 人工智能
基于深度学习的乳腺癌智能检测分割与诊断系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割、人工智能(2)
基于深度学习的乳腺癌智能检测分割与诊断系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割、人工智能
|
14天前
|
机器学习/深度学习 存储 人工智能
基于深度学习的乳腺癌智能检测分割与诊断系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割、人工智能(1)
基于深度学习的乳腺癌智能检测分割与诊断系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割、人工智能
|
14天前
|
机器学习/深度学习 存储 计算机视觉
基于YOLOv8深度学习的路面坑洞检测与分割系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割(2)
基于YOLOv8深度学习的路面坑洞检测与分割系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割
|
14天前
|
机器学习/深度学习 存储 监控
基于YOLOv8深度学习的路面坑洞检测与分割系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割(1)
基于YOLOv8深度学习的路面坑洞检测与分割系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割
|
14天前
|
机器学习/深度学习 存储 计算机视觉
基于YOLOv8深度学习的智能道路裂缝检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测、目标分割(2)
基于YOLOv8深度学习的智能道路裂缝检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测、目标分割
|
14天前
|
机器学习/深度学习 存储 安全
基于YOLOv8深度学习的智能道路裂缝检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测、目标分割(1)
基于YOLOv8深度学习的智能道路裂缝检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测、目标分割
|
14天前
|
机器学习/深度学习 存储 计算机视觉
基于YOLOv8深度学习的智能草莓病害检测与分割系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测、目标分割(2)
基于YOLOv8深度学习的智能草莓病害检测与分割系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测、目标分割
|
14天前
|
机器学习/深度学习 存储 算法
基于YOLOv8深度学习的智能草莓病害检测与分割系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测、目标分割(1)
基于YOLOv8深度学习的智能草莓病害检测与分割系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测、目标分割