点云深度学习的一点介绍

大体的方向:

目前用于深度学习的三维数据有如下几种表达方式:
1) 多视角(multi-view):通过多视角二维图片组合为三维物体,此方法将传统CNN应用于多张二维视角的图片,特征被view pooling procedure聚合起来形成三维物体;
2) 体素(volumetric):通过将物体表现为空间中的体素进行类似于二维的三维卷积(例如,卷积核大小为5 x 5 x 5),是规律化的并且易于类比二维的,但同时因为多了一个维度出来,时间和空间复杂度都非常高,目前已经不是主流的方法了;
3) 点云(point clouds):直接将三维点云抛入网络进行训练,数据量小。主要任务有分类、分割以及大场景下语义分割;
4) 非欧式(manifold graph):在流形或图的结构上进行卷积,三维点云可以表现为mesh结构,可以通过点对之间临接关系表现为图的结构。

1、基于像素的深度学习

这是最早用深度学习来处理点云数据的方法,但是需要先把三维点云在不同角度渲染得到二维图像,然后借助图像处理领域成熟的深度学习框架进行分析。代表作是MVCNN网络,它的思路是考虑到图像领域已经通过渲染3D模型的12个角度的图像,并对图像进行分类。效果也不差。
怎么评价这种思路呢?其实还是不错的,除了分类任务,在点云目标检测中,也有不少论文采用了这种思路,比如自动驾驶场景的目标检测,如MV3D等,也是会把点云投影到三维空间。

2、基于体素的深度学习

代表作有Volumetric CNN 、VoxNet、VoxelNet。将点云划分成均匀的空间三维体素,对体素进行处理。优点是这种表示方式很规整,可以很方便地将卷积池化等神经网络运算迁移到三维;缺点是由于体素表达的数据离散运算量大,所以分辨率较低,因此具有一定的局限性。

3、基于树的深度学习

OCNN利用八叉树方法将三维点云划分为若干节点,以节点的法向量作为输入信号,按照Z排序方法将点云表示成一维数组,之后可以很方便地与已有神经网络进行连接。类似思路的论文还有OctNet同样采用八叉树组织点云,Kd-Network采用的是KD树。

4、基于点的深度网络

代表作是斯坦福大学研究人员提出的PointNet,用来直接对点云进行处理,该网络很好地考虑了输入点云的排列不变性。采用maxpooling作为对称函数进行处理。之后考虑到PointNet缺乏局部信息的缺点,提出了改进版PointNet++,各项指标也是刷新了前作。与PointNet不同,在解决点云的无序排列问题上,PointCNN没有采用maxpooling作为对称函数,而是训练了一个X变换网络,在多项任务中达到了当时的最高水平。PointNet:轻量级,快速,高效的2D、3D栅格与volimetric相比,剩下超过80%的内存和计算量,对数据丢失很鲁棒,1. 以VoxNet为代表的volumetric convolution虽然直观自然,但是由于有大量0体素值太耗费内存。

5、图神经

常见方法整理

POINTWISE

https://blog.csdn.net/xsstef/article/details/82759647

SqueezeSeg: 点云中三维物体的实时分割技术

https://zhuanlan.zhihu.com/p/43598102

Dual Attention Network for Scene Segmentation

https://zhuanlan.zhihu.com/p/65931837
该论文提出新型的场景分割网络DANet,利用自注意力机制进行丰富语义信息的捕获,在带有空洞卷积的FCN架构的尾部添加两个并行的注意力模块:位置注意力模块和通道注意力模块,论文在Cityscapes,PASCAL Context和COCO数据集上都取得了SOTA效果。
具体地在位置注意力模块中,任一位置的特征的更新是通过图像所有位置上特征的带权聚合进行更新,权重是由两个位置上特征的相似性决定的,也就是说无论两个位置的距离只要他们的特征相似那么就能得到更高的权重。
通道注意力模块中也应用了相似的自注意力机制来学习任意两个通道映射之间的关系,同样通过所有通道的带权加和来更新某一个通道。

PointCNN: Convolution On X-Transformed Points(山东大学2018)

https://www.cnblogs.com/elliottzheng/p/9100254.html
https://blog.csdn.net/qq_33278989/article/details/80047252
摘要:我们为基于点云的特征学习提出了一种简单且通用的框架。CNN 成功的关键是要能利用数据中以网格形式密集表示的空间上的局部相关性(比如图像)。但是,点云是不规则和无序的,因此在这些点关联的特征上直接求核的卷积会导致形状信息的丢失,同时还会因顺序不同而不同。为了解决这些问题,我们提出根据输入点学习一种 X 变换,然后将其用于同时加权与点关联的输入特征和将它们重新排列成潜在隐含的规范顺序,之后再在元素上应用求积和求和运算。我们提出的方法是典型 CNN 向基于点云的特征学习的泛化,因此我们将其称为 PointCNN。实验表明,PointCNN 能在多种有挑战性的基准数据集和任务上实现与之前最佳方法媲美或更好的表现。
从前一层的数据中取K个候选点 (p1,p2,…pK),使用MLP(多层感知器)来学习一个的变换矩阵(X-transformation,X变换)也就是说X=MLP(p1,p2,…pK),然后用它同时对输入特征进行加权和置换,最后对经过变换的特征应用典型卷积。我们称这个过程为X-Conv,它是PointCNN的基本构建模块
大场景也是切割成小块在进行处理

PointConv:在点云上高效实现卷积操作CVPR 2019

https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_9736073411159263236%22%7D&n_type=0&p_from=1

PointSIFT: A SIFT-like Network Module for 3D Point Cloud Semantic Segmentation

https://www.mvig.org/publications/pointSIFT.html
https://www.zhihu.com/question/276671580/answer/442648592
https://blog.csdn.net/m0_37974719/article/details/84203051
传统 SIFT feature 设计是最有效的描述算子之一。在图像上,SIFT 算子能编码区间上各个方向的信息,同时选择最合适的表征尺度。我们的 pointSIFT 将其设计思想推广到 3D 点云域上,对于每一个点云能端对端地输出一个表征向量,该向量编码了各个方向的信息,同时自适应地选择合适的表征尺度。不同于 SIFT 传统算法,我们采用网络结构,网络参数是由训练获得。
虽然文中说是参考SIFT设计了PointSIFT,但更多的还是依靠PointNet++的结构设计,只是仿照SIFT增加了尺度不变性,与此同时也会让计算量增加。尽管精度提高了很多,但是效
率和速度还是硬伤。

SGPN:用于3D点云实例分割的相似群建议网络

https://blog.csdn.net/u012348774/article/details/80792160
核心的想法:学习一个相似度矩阵
语义分割+聚类
比如我们都知道的CVPR2018上的文章SGPN就是前者,它的网络会输出语义分割结果和相似矩阵,相似矩阵达到把同类点聚到一起的作用;

Large-scale Point Cloud Semantic Segmentation with Superpoint Graphs

https://www.sohu.com/a/247222177_715754

3D Recurrent Neural Networks with Context Fusion for Point Cloud Semantic Segmentation

https://blog.csdn.net/weixin_39373480/article/details/82890921

PointGrid: A Deep Network for 3D Shape Understanding University of Missouri – Columbia

Pointnet与网格化的结合,一个网格中可以包含多个点

Recurrent Slice Networks for 3D Segmentation on Point Clouds University of Southern California

场景语义分割的新型网络结构,主要将rnn加入当网络结构中

Attentional ShapeContextNet for Point Cloud Recognition University of California, San Diego

点云处理的一种新的形式,区别于体素化或者如同pointnet

PointFusion: Deep Sensor Fusion for 3D Bounding Box Estimation stanford university

Pointwise Convolutional Neural Networks The University of Tokyo

Pointwise卷积神经网络在点云数据上的应用

Long-term Visual Localization using Semantically Segmented Images,该文章发表于ICRA 2018。

https://mp.weixin.qq.com/s/14PoEpCc0BWEexyWMaRKfw

FickleNet: Weakly and Semi-supervised Semantic Image Segmentation using Stochastic Inference

论文链接:https://arxiv.org/abs/1902.10421
摘要: The main obstacle to weakly supervised semantic image segmentation is the difficulty of obtaining pixel-level information from coarse image-level annotations. Most methods based on image-level annotations use localization maps obtained from the classifier, but these only focus on the small discriminative parts of objects and do not capture precise boundaries. FickleNet explores diverse combinations of locations on feature maps created by generic deep neural networks. It selects hidden units randomly and then uses them to obtain activation scores for image classification. FickleNet implicitly learns the coherence of each location in the feature maps, resulting in a localization map which identifies both discriminative and other parts of objects. The ensemble effects are obtained from a single network by selecting random hidden unit pairs, which means that a variety of localization maps are generated from a single image. Our approach does not require any additional training steps and only adds a simple layer to a standard convolutional neural network; nevertheless it outperforms recent comparable techniques on the Pascal VOC 2012 benchmark in both weakly and semi-supervised settings.

JSIS3D: Joint Semantic-Instance Segmentation of 3D Point Clouds with Multi-Task Pointwise Networks and Multi-Value Conditional Random Fields

https://github.com/pqhieu/JSIS3D
JSIS摘要
深度学习技术已经成为大多数二维图像视觉相关任务的可行模型。然而,在三维空间的一些任务上,如三维场景理解,它们的能力还没有得到充分的实现。在这项工作中,我们同时解决了三维点云的语义和实例分割问题。具体地说,我们开发了一个多任务逐点网络,它同时执行两项任务:预测三维点的语义信息,并将这些点嵌入高维向量中,使相同对象实例的点用相似的嵌入表示。然后,我们提出了一个多值条件随机场模型,将语义和实例标签结合起来,将语义和实例分割问题表述为场模型中标签的联合优化问题。在S3DIS和SceneNN等不同的室内场景数据集上,对该方法进行了深入的评价,并与现有方法进行了比较。实验结果表明,所提出的联合语义实例分割方案对单个构件具有较强的鲁棒性。我们的方法在语义分割方面也取得了state-of-the-art的性能。
这个函数大致的含义是:Lpull用来将同一个实例中的点聚合到某个中心点周围,Lpush用于将两个实例拉开距离,Lreg是正则项。
然后,将实例嵌入信息采用多值条件随机场进行聚类,达到实例分割的效果。条件随机场其实早在深度学习席卷点云领域之前,就被用来进行点云的分割了,算是一种传统算法,它将点与点之间的差异表征为一个能量函数,通过最小化这个能量函数,达到分割的作用,

Associatively Segmenting Instances and Semantics in Point Clouds

https://github.com/WXinlong/ASIS
ASIS摘要
三维点云能够准确、直观地描述真实场景。到目前为止,如何在这样一个信息丰富的三维场景中分割多样化的元素还很少被讨论。在本文中,我们首先介绍了一个简单而灵活的框架来同时分割点云中的实例和语义。然后,我们提出了两种方法,使这两项任务互相利用,实现双赢。具体来说,我们通过学习语义感知的点级实例嵌入,使实例分割受益于语义分割。同时,将属于同一实例的点的语义特征融合在一起,使每个点的语义预测更加准确。我们的方法在很大程度上超过了现有的方法,在三维语义分割方面有了显著的改进。代码已提供:https://github.com/WXinlong/ASIS。

数据集:

https://blog.csdn.net/renhaofan/article/details/82080999
https://blog.csdn.net/bailing910/article/details/82625918
https://blog.csdn.net/weixin_41036461/article/details/80667690
http://www.michaelfirman.co.uk/RGBDdatasets/
modelnet.cs.princeton.edu/#
https://blog.csdn.net/tjm059/article/details/82771255
https://blog.csdn.net/u014636245/article/details/83269939

  • 1.vKITTI数据集(室外)
  • 2.S3DIS
  • 3.NYUV2:NYUV2中的部分数据集来自于RGBD图像,该数据中有2D语义分割和3D包围盒。在本文的训练中,将其分成了795张训练数据和654张测试数据。
  • 4.ShapeNet:ShapeNet包含16881个标记目标,总共被分为50类。在本文的训练中,将795个用于训练,654个用于测试。
  • 5.semantic 3D
  • 6.scencNN
  • 7.scannet
  • 8.3DRNN
  • 9.S3DIS全称斯坦福三维室内分割数据集(Stanford 3D Indoor Semantics Dataset),该数据集包括6个场景中271个房间的扫描数据。点云中的每一个点都指定了分割类别和实例类别。、

各类型结果对比:

三维数据优势:
三维几何数据如点云或多边形网格数据等是一种非常实用的数据表示形式,原因在于其提供的附加的维度使得算法可以考虑更加丰富的空间信息,而这显然对分割很有帮助。但是,绝大多数成功的深度学习分割技术,尤其是基于CNN的,开始并不是被设计为解决上面提到的非结构化或者不规则的输入的。为了在卷积网络中促成参数共享以及其他优化形式,多数工作借助于三维立体网格或者映射来将非结构化或者不规则点云或网格转化为普通表示形式,然后再将其输入网络中。

点云分割应用场景:

https://zhuanlan.zhihu.com/p/64664207
 室内机器人:
 增强AR
 自动驾驶
 房地产
 在机器人领域,语义分割例如用于标记机器人环境中的物体。如果机器人需要找到特定的对象,则需要进行某种对象识别。所以语义标注非常有用,因为机器人可以对其周围的对象进行分类和识别。自主驾驶也是使用语义标签分割的领域。对于一辆自行驾驶的车辆来说,它需要知道周围有什么不同的物体。车辆要知道的最重要的事情之一是道路是怎么样的是否是可以的可以行走的。另一个重要的事情要知道的是其他车辆的位置,知道其他车辆的位置这样它可以适应它们的速度,或者在必要时超过它们。同样在3D地图中,语义标签被用来可视化对象,例如建筑物,地形和道路。语义标签可以给我们一个更容易理解的3D地图。

研究困难:在点云数据上执行语义分割时,会比在2D图像的语义分割中遇到更多困难。 一个大难题是3D的案例中没有太多的训练数据。 这是因为在3D中标注数据集比在2D中更难。 另一个挑战是点云之间的点稀疏,这使得有可能透视物体。 这使得难以看到点云中的结构并区分一个点属于哪个物体。

评价指标

对于一个分割系统来说,要对该领域产生重要的影响,必须经过严格的评估。另外,评估过程中必须使用标准的众所周知的评价指标,这样对于现有方法来说才是公平的。进一步的,必须对方法的各个方面进行评估,然后才能断言该系统的有效性,这些方面包括运行时间、占用内存、准确率等。由于对目标或上下文的依赖性,某些指标可能会更加重要,也就是说,在一个实时处理的应用中,可能会为了运行速度而牺牲准确率。但是,为了科学的严谨性,提供该方法的所有可能的评价指标度量是极其重要的。

运行时间

但是,考虑到可重复性以及对后续研究者的帮助,有必要在提供运行时间的同时给出系统运行的硬件信息,以及基准方法的配置。如果合理地做到了这些,后续的研究者们将可以判断出这个方法是否对其真实应用实用,并且可以使用相同的环境进行公平的对比。

占用存储空间

内存占用是分割问题中的另一个重要的考量。虽然不及运行时间那样受限,因为扩充容量一般是可行的,其仍然作为系统的一个限制因素。在某些场景下,例如机器人平台上的板载芯片,内存并不会像高性能服务器中一样充裕。即使是普遍用来加速深度网络的高端的显卡(GPU)也不会搭载大容量的存储空间。基于这些考虑,以及与在时间问题上相似的对于实际应用的考虑,详细记录网络所占用的最大及平均存储空间是极其有用的。

准确率

已经提出了许多用于评估语义分割问题准确率的评价指标,这些指标通常是像素级准确率及IoU的变体。我们报告了语义分割方面最常用的评价指标,用来度量逐个像素标注类的方法的表现。为便于解释,我们给出下述标号的意思:我们假设共有k+1类,(从L0到Lk,包括一个空类或者是背景),pij是本属于第i类却被分到第j类的像素数量。也就是说,pii代表的是分类正确的正例数量,其他几个p值类似。

Semantic3D:Intersection over Union (IoU)和 Overall Accuracy (OA)做为评价指标。

mACC?
mAP?
像素准确率(PA):这是最简单的指标,仅仅计算正确分类的像素数量与所有像素数量的比值。

像素准确率平均值(MPA):对PA的轻微改进版本,正确分类像素的比例是按类计算的,最终由类总数取平均。

平均交并比(MIoU):这是用于分割问题的标准评价指标,其计算的是两个集合的交集与其并集的重合比例,在本问题中,其计算的便是真实分割与系统预测的分割之间的交并比。这个比例可以被重新定义为真实正例(交集)的数量除以总数量(包括真实正例、错误负例、以及错误正例(并集))。IoU也是按类计算最后取平均。

频率加权交并比(FWIoU):是对MIoU的改进,对每个类别按照重要性进行加权,重要性来自于其出现的频率。

对于上述的所有指标,MIoU是最常用的一个,因为它最具代表性,且非常简单。许多竞赛以及研究者使用该指标来报告其结果。

2D语义分割任务描述:

https://blog.csdn.net/ShuqiaoS/article/details/87360693

综述文章:

https://www.cnblogs.com/Jie-Liang/archive/2017/06/29/6902375.html

  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

七小琦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值