(阅读笔记)PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation

PointNet是一种针对3D点云数据的深度学习网络,解决了点云数据的无序性和空间关系处理。通过输入点云变换、MLP处理、全局最大池化等步骤,实现点云的分类和分割任务。网络中T-Net用于对点云数据进行对齐,确保旋转和平移不变性。此外,PointNet还结合局部和全局特征,提高了信息聚合效率。
摘要由CSDN通过智能技术生成

一、动机和贡献

  1. 动机:大多数研究人员选择将不规则的点云数据转换成规则的3D体素网格或特征投影,导致大量的点云信息缺失。
  2. 贡献:设计了一种直接消耗点云的新型神经网络PointNet,考虑点云的无序性、点间关系、排列不变性;训练PointNet网络用来执行三维形状分类、形状部分分割和场景语义分析任务,提供了统一的体系结构。

二、点云特性

  1. 无序
    点云数据是一个集合,对数据的顺序是不敏感的。这就意味这处理点云数据的模型需要对数据的不同排列保持不变性。目前文献中使用的方法包括将无序的数据重排序、用数据的所有排列进行数据增强然后使用RNN模型、用对称函数来保证排列不变性。由于第三种方式的简洁性且容易在模型中实现,论文作者选择使用第三种方式,既使用maxpooling这个对称函数来提取点云数据的特征。
  2. 点与点之间的空间关系
    一个物体通常由特定空间内的一定数量的点云构成,也就是说这些点云之间存在空间关系。为了能有效利用这种空间关系,论文作者提出了将局部特征和全局特征进行拼接的方式来聚合信息。
  3. 不变性
    点云数据所代表的目标对某些空间转换应该具有不变性,如旋转和平移。作者提出了在进行特征提取之前,先对点云数据进行对齐的方式来保证不变性。对齐操作是通过训练一个小型的网络T-Net来得到转换矩阵,并将之和输入点云数据相乘来实现。

三、PointNet网络结构

在这里插入图片描述

分类网络

以n个点作为输入,三层通道表示(x,y,z)三维坐标,先后经过输入点云变换、MLP点云处理、点云特征变换、MLP特征处理、全局最大池化、MLP(Dropout层),最终输出k类分数向量。(Batchnorm用于所有带有ReLU的层;MLP实际为卷积层)
具体的网络子模块:

  1. 输入点云对齐(变换):T−Net是一个微型的PointNet网络,接收原始点云数据,生成一个3×3尺寸的仿射变换矩阵,来对点云的旋转、平移等变化进行规范化处理;
    (1)T−Net第一步:获得高维特征
    (n,3)–>conv(1,1,64)–>(n,64)–>conv(1,1,128)–>(n,128)–>conv(1,1,1024)–>(n,1024)–>max-pool(n,1)–>(1,1024)–>fc(512,1024)–>(1,512)->fc(256,512)–>(1,256)
    (2)T−Net第二步:获得点云旋转矩阵
    assert K=3;
    weights=(256,3K);biases=(1,KK);
    biases=biases + [1,0,0,0,1,0,0,0,1];
    transform=(1,256)×(256,KK)+biases=(1,KK)–>reshape(K,K)=(3,3)
    (3)矩阵乘法:(n,3)点云与(3,3)变换矩阵相乘,输出(n,3)特征;

  2. MLP点云特征提取
    (n,3)–>conv(1,1,64)–>(n,64)–>conv(1,1,64)–>(n,64)

  3. 点云特征对齐:T−Net类似于输入点云变换,生成一个64×64尺寸的仿射变换矩阵;
    (1)T−Net第一步:获得高维特征
    (n,64)–>conv(1,1,64)–>(n,64)–>conv(1,1,128)–>(n,128)–>conv(1,1,1024)–>(n,1024)–>max-pool(n,1)–>(1,1024)–>fc(512,1024)–>(1,512)->fc(256,512)–>(1,256)
    (2)T−Net第二步:获得点云旋转矩阵
    assert K=64;
    weights=(256,3K);biases=(1,KK);
    biases=biases + [1,0,0,0,1,0,0,0,1];
    transform=(1,256)×(256,KK)+biases=(1,KK)–>reshape(K,K)=(64,64)
    (3)矩阵乘法:(n,64)特征与(64,64)变换矩阵相乘,输出(n,64)特征;

  4. MLP点云特征提取
    (n,64)–>conv(1,1,64)–>(n,64)–>conv(1,1,128)–>(n,128)–>conv(1,1,1024)–>(n,1024)

  5. 全局最大池化
    对于(n,1024)尺寸特征矩阵,每个特征通道执行全局最大池化,n个特征输出一个最大特征,共输出(1,1024)尺寸特征向量;
    (n,1024)–>max-pool(n,1)–>(1,1024)

  6. MLP(含Dropout层)
    对于(1,1024)尺寸特征向量,通过三层感知机得到1024–>512–>256–>k,输出k类分类向量;
    (1,1024)–>fc(512,1024)–>(1,512)–>dropout(keep_prob=0.7)–>(1,512)–>fc(256,512)–>(1,256)–>dropout(keep_prob=0.7)–>(1,256)->fc(k,256)–>(1,k)

分割网络

分割网络是分类网络的扩展,它连接全局和局部特征,并输出m类分数向量。

  1. 局部特征(n,64)与池化后的全局特征拼接(1,1024)
    对于n个点的每个点特征(1,64),将全局特征(1,1024)拼接在后面,构成拼接特征(1,1088),n个点共有(n,1088);

  2. MLP特征处理
    (n,1088)–>conv(1,1,512)–>(n,512)–>conv(1,1,256)–>(n,256)–>conv(1,1,128)–>(n,128)–>conv(1,1,128)–>(n,128)–>conv(1,1,m)–>(n,m)
    由于点云的分割问题可以看做是对于每一个点的分类问题,需要对每一个点的分类进行预测。在通过对全局+局部特征学习后,最后将每一个点分类到50类(m=50)中,并输出n*50的输出。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PointNet是一种深度学习模型,专门用于处理3D点云的分类和分割任务。它接受一个由点组成的集合作为输入,可以学习到每个点的特征表示,并将它们组合起来以获得整个点云的全局特征。PointNet还具有旋转不变性,因此可以处理具有不同旋转角度的点云数据。这使得PointNet成为3D视觉领域的重要工具,用于处理各种任务,例如物体检测、语义分割和场景重建等。 ### 回答2: PointNet是一种基于点集的深度学习架构,用于3D分类和分割任务。它于2017年由Qi et al.提出,并已在许多3D视觉应用中得到了广泛应用。PointNet的主要思想是将点云看作无序的点集,并设计了一种处理这种无序集合的新型神经网络。 传统上,对3D对象进行分类和分割的方法通常需要将对象转换为网格或体素,然后将其表示为规则形状的网格或体素。这些方法在处理复杂几何形状时存在一定的困难,并且采用的处理方法需要严格的输入格式。 相比之下,PointNet可以直接处理点云数据,不需要对其进行转换或训练数据格式的严格要求。在PointNet中,输入是一组点的集合,每个点有三个坐标和其他任意的属性,如颜色或法线。这些点无序,因此PointNet用最小误差投影(Minimum Error Projetion)来解决这个问题。这个网络的中心思想是使用点集的对称性,将输入点云映射到一个向量空间中,该空间旨在保留输入点集的所有信息。 为了处理点集的对称性,PointNet使用了两个网络——一个是点特征提取网络,另一个是全局特征提取网络。点特征提取网络处理单个点的信息,并产生一个新的点特征。全局特征提取网络则将所有点的特征表示合并到一个全局特征向量中。这种设计使PointNet可以生成对称空间中的全局特征向量,从而保持了输入的无序性质,并确保了在不同尺度和物体位姿下的泛化能力。 总的来说,PointNet为点云的处理提供了一种新颖的方式,可以在保持输入的无序性质和提高处理效率方面取得良好的表现。它的成功应用在3D分类和分割任务中证明了其高效性和实用性,并为未来的3D深度学习研究工作提供了有价值的经验。 ### 回答3: PointNet是一种用于3D分类和分割的深度学习算法。这种算法突破了传统方法中对于3D形状进行预测的限制,通过学习点云中点的全局特征来进行预测,并且在Caltech-101 或 ModelNet40等数据集上取得了远超其他算法的效果。 PointNet算法首先通过应用全连接网络将点云中的每个点转换成一个低维的向量表示。该算法还采用了一个局部特征学习模块,该模块仅对于每个点的局部序列进行操作,以捕获点云的局部特征。该算法使用了max pooling的形式将每个点的局部特征进行汇总,以得出整体的特征表示。最后,算法通过多个全连接层将点云的全局特征映射到所需的目标(如类别标签或分割结果)。 值得注意的是,PointNet算法在3D形状分类和分割问题上的效果非常显著,并且其鲁棒性非常好,即使在存在噪声和缺失数据的情况下,该算法也能够产生准确的结果。此外,PointNet算法还可以通过加入循环神经网络模块来实现对于时间序列数据的处理。 总的来说,PointNet算法是一种极具前景的深度学习算法,其具有高效、准确和鲁棒的特点,可以应用于3D形状预测、3D图像识别、机器人操作等领域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值