(CVPR) PointNet:用于3D分类和分割的点集深度学习 - 详细解读

这篇具有很好参考价值的文章主要介绍了(CVPR) PointNet:用于3D分类和分割的点集深度学习 - 详细解读。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

知识补充

网络解读

概括

局部和全局特征的融合(分割任务)

联合对准网络(T网络)

总结

点云存在的问题:

详细理解:

参考内容:


(CVPR) PointNet:用于3D分类和分割的点集深度学习 - 详细解读,深度学习,文章带读,3d,深度学习,人工智能,算法,神经网络

知识补充

点云转换为体素的问题:数据庞大

本文设计了一种直接消耗点云的神经网络(保持了输入中心点的排列不变性)

刚性变换:指保持物体形状和大小不变的变换,包括平移、旋转、镜像和缩放等操作。(刚性变换中,距离、角度和形状等几何属性在变换前后保持不变)

放射变换:仿射映射,指几何中,对一个向量空间进行一次线性变换,并附加一个平移。

PointNet的关键是使用单个对称函数,即最大池化。(实现输入的排列不变性)

网络学习一种优化函数/标准(这些函数/标准选择点云中有意义/信息丰富的点),然后对其编码。

对称函数:函数的输出值不随输入变数的排列而改变。

例如:

(CVPR) PointNet:用于3D分类和分割的点集深度学习 - 详细解读,深度学习,文章带读,3d,深度学习,人工智能,算法,神经网络

PointNet网络前可添加数据预处理的步骤,例如数据规范化等。(PointNet容易应用刚性变换或放射变换)

该网络学习一组稀疏的关键点来总结输入点云(很适合毫米波雷达)--大致对应于对象的骨架。

因此该网络对输入点的小扰动、插值(异常值)和删除(数据丢失)具有较高鲁棒性。

3D数据的表示:

体积CNN--将3D卷积神经网络应用于体素化形状--(数据稀疏性和3D卷积的计算成本)

--FPNNVote3D提出了处理稀疏问题的特殊方法

 Y. Li, S. Pirk, H. Su, C. R. Qi, and L. J. Guibas. Fpnn: Field probing neural networks for 3d data. arXiv preprint arXiv:1605.06240, 2016.

D. Z. Wang and I. Posner. Voting for voting in online point cloud object detection. Proceedings of the Robotics: Science and Systems, Rome, Italy, 1317, 2015.

多图CNN--将3D点云或形状渲染为2D图像--使用2D卷积来进行分类

基于特征的DNN--将3D数据转换为向量(例如convolution),然后使用全连接网络进行分类。(集合SoftMax)--受到特征提取能力的限制

作者关注的点:点云数据形式是一种无序的向量。

--点云中的点以一组三维坐标的形式表示,通常没有特定的顺序或排列方式;

--点云中的点通常按照位置或时间顺序获取,不强制性地保持特定的顺序;

--点云数据存储通常只包括点的坐标,而没有其他附加信息或序列来指示点的特定顺序;

--点云数据没有固定的网络结构或拓扑关系,即点与点之间的连接或近邻点之间的关系并不是明确或预先定义好的。

网络解读

(CVPR) PointNet:用于3D分类和分割的点集深度学习 - 详细解读,深度学习,文章带读,3d,深度学习,人工智能,算法,神经网络

概括

网络具备的3个性质:

--无序性:即输入N个点的网络需要对N!种排序保持不变。

--点与点之间的相互作用:(点来自具有距离度量的空间,因此点之间不是孤立的,相邻点形成一个有意义的子集--模型需要能够捕获邻近点的局部结构,以及局部结构之间的相互作用)

--变换下的不变性:点云集被学习的关系在某些变换下应该是不变的--点云集的特征变换后应是不变的

网络的三个关键模块:最大池化层(作为对称函数来聚合所有点、局部和全局信息的组合结构)和两个联合对齐网络(对齐所有输入点和点特征--对应图中的T网络)

T-Net -- 一种用于对齐点云的小型网络(预测一个放射变换矩阵,并将其应用到输入的点云坐标上(对应文中的矩阵相乘))--T-Net的目的是使点云的表示具有一定的变换不变性,提高识别的准确性和鲁棒性。

文章的两个T-Net一个用于对齐输入点云、另一个用于对齐点的特征。

使模型对输入排列不变的三种策略:

1、将输入排序为规范顺序;(在高纬空间中实际上不存在稳定排序--在保持空间信息的同时减少维度是难以实现的)

2、将输入视为序列来训练RNN,并通过各种排序来扩充训练数据;(将点集视为序列信号,并通过随机排列序列训练RNN,实现对输入数据的鲁棒性增强--RNN对于小长度(数十个)序列的输入排序具有较好的鲁棒性,但较难扩展到数千个输入元素)

3、使用简单的对称函数来聚合每个点的信息。(对称函数以n个向量作为输入,并输出一个与输入阶数无关的新向量,例如+,×是对称的二元函数)

本文对于点云顺序的思考:对集合中的元素进行某种转换,然后应用一个对称函数来近似表示整个点集上的一般函数。

(CVPR) PointNet:用于3D分类和分割的点集深度学习 - 详细解读,深度学习,文章带读,3d,深度学习,人工智能,算法,神经网络

通过MLP来近似h,通过单变量函数和最大池化的组合来近似g。

最大池化输出得到一个包含全局特征的向量(对应框图中的global feature)--对该特征使用SVM或MLP训练分类器以实现分类。

局部和全局特征的融合(分割任务)

对于分割任务,需要全局和局部的特征的结合。--本文提出的高效解决方案:如框架下部分分割所示,将全局特征与每个点的特征连接起来(即每个点的特征n×64与全局特征1×1024并联-->n×(64+1024=1088))。

根据组合后的特征提取新的每个点的特征(此时每个点都知道全局特征--即全局特征与局部特征融合)

联合对准网络(T网络)

点云经过某些几何变换后(如刚性变换),需保证点云的语义标记保持不变。(期望通过点云集学习到的特征是保持不变的)

--解决方案:在特征提取前将所有输入集对齐到规范空间。(扩展--特征空间对齐--对应框图中的第二个T网络)

困难:特征空间的维度远高于空间变换矩阵(空间变换矩阵维度为3,特征空间论文中维度为64)

--解决方案:最后的在softmax训练损失中,增加正则项,将特征变换矩阵限制为正交矩阵(正交变换可以使得变换后的点之间相对关系仍被保留)。

(CVPR) PointNet:用于3D分类和分割的点集深度学习 - 详细解读,深度学习,文章带读,3d,深度学习,人工智能,算法,神经网络

式中,A为预测的特征对齐矩阵。

正交变换(保持向量长度和向量之间的正交性质)

映射矩阵是正交时,通过该矩阵的线性变换就是正交变换。正交变换的性质如下:

长度不变性:正交变换不改变向量的长度;

正交性质:正交矩阵的列向量彼此是正交的单位向量,当应用正交变换时,变换后的向量仍保持相互垂直;

逆和转置等价:正交矩阵的逆等于其转置。

Hausdorff 距离(Hausdorff distance):用于度量两个非空集合之间的距离或相似性的概念。它衡量的是两个集合之间的最大偏移程度,即集合中的点与另一个集合中的最近点之间的最大距离。(定义如下)

(CVPR) PointNet:用于3D分类和分割的点集深度学习 - 详细解读,深度学习,文章带读,3d,深度学习,人工智能,算法,神经网络

Hausdorff 距离计算了两个集合之间的最小距离的上确界(supremum)。换句话说,对于集合A中的每个点,它到集合B中最近点的最大距离,以及对于集合B中的每个点,它到集合A中最近点的最大距离,两者中的最大值即为这两个集合之间的Hausdorff距离。

作者证明,当最大池化的神经单元越多,网络的近似性能越好。(文中设置为1024

(CVPR) PointNet:用于3D分类和分割的点集深度学习 - 详细解读,深度学习,文章带读,3d,深度学习,人工智能,算法,神经网络

通过神经网络对连续集函数的逼近能力展示网络对小扰动不会极大地改变函数值的能力。

文章使用的数据集:ModelNet40

论文的训练:通过沿上轴随机旋转对象来动态增强点云。并通过零均值和0.02标准差的高斯噪声抖动每个点的位置。

(CVPR) PointNet:用于3D分类和分割的点集深度学习 - 详细解读,深度学习,文章带读,3d,深度学习,人工智能,算法,神经网络
网络整体框图

总结

点云存在的问题:

1. 无序性:点的顺序不应影响它在空间中对整体形状的表示。例如,相同的点云可以由两个完全不同的矩阵表示。

希望得到的效果如下图右边:N代表点云个数,D代表每个点的特征维度。不论点云顺序怎样,希望得到相同的特征提取结果。

(CVPR) PointNet:用于3D分类和分割的点集深度学习 - 详细解读,深度学习,文章带读,3d,深度学习,人工智能,算法,神经网络

2. 旋转性:相同点云在空间中经过一定的刚性变换(旋转或平移),坐标发生变换。

希望不论点云在怎样的坐标系下呈现,网络都能正确的识别出。

(对于二维,可通过STN来解决。对于三维,由于点云是不规则结构(无序、无网络),因此不需要重采样的过程)

详细理解:

传统的三维数据在处理时(例如卷积神经网络),往往需要将不规则的点云数据转换为体素(Voxels)或网格,这一过程称为重采样。重采样的目的是为了使数据符合CNN处理的格式(CNN在设计上是为了处理规则的网格数据-例如图像)

然而PointNet结构通过直接学习点云中提取的全局特征方式,避免了重采样的过程。PointNet通过对每个点单独应用一系列的全连接层(或称为MLP),然后通过一个对称函数(如最大池化)聚合所有点的特征,从而学习到整个点云的全局表示。这种设计使得PointNet能够直接处理原始的、无序的点云数据,而不需要将点云转换为某种规则的数据结构,如体素网格。

优点:保留了原始点云数据的几何特征和细节,同时避免了重采样过程中可能引入的信息损失或量化误差。此外,直接处理点云数据也提高了处理效率,因此不需要进行额外的数据转换和处理步骤

PointNet网络的两个亮点:

1、三维STN通过学习点云本身的空间信息学习一个有利于网络进行分类或分割的D×D旋转矩阵(D表示特征维度,PointNet中D采用3和64)--在原STN上进行适当改进,删除了采样器。

第一层三维STN对空间中的点进行调整,直观上可理解为进行旋转、平移等操作使点云更有利于后续处理。

第二层三维STN用于对提取的64维特征进行对齐。

2、引入对称函数(maxpooling)来解决点云输入无序性的问题,即对每个点进行一定程度特征提取后,通过maxpooling来提取整体的全局特征。

(CVPR) PointNet:用于3D分类和分割的点集深度学习 - 详细解读,深度学习,文章带读,3d,深度学习,人工智能,算法,神经网络

网络结构总结:前两个用于特征提取的MLP通过共享权重的实现,经过两个空间变换网络和两个MLP后,得到每个点的1024维特征,经过maxpooling提取全局特征,最后通过MLP得到分类得分。

参考内容:

farthest point sampling - FPS - 最远点采样详解-CSDN博客
点云PCL公众号第二期分享之深度学习在3D场景中的应用_哔哩哔哩_bilibili文章来源地址https://www.toymoban.com/news/detail-842043.html

到了这里,关于(CVPR) PointNet:用于3D分类和分割的点集深度学习 - 详细解读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用pointnet++分类自己的点云数据

    目录 一、简单介绍pointnet++ 1.1 三维数据的表示方法 1.2 pointnet算法 1.3 pointnet++算法的提出  二、pointnet++如何运行自己的数据集? 2.1 确定数据集的基本情况 2.2  以点云分割为例 2.2.1 数据标注  2.2.2 选择模型 2.2.3 数据预处理 2.2.4  选择模型进行修改  2.2.5 训练模型部分的修改

    2024年02月03日
    浏览(37)
  • 3D点云分割系列1:PointNet,从Voxel-base到Point-base的进阶之路

    PointNet发布于2017CVPR。 《PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation》 题外话 PointNet对于3D点云分割的意义有点像FCN对语义分割的意义。PointNet不同以往的voxel-based的模型,它试图通过直接对点云数据中每一个点进行处理,来分析点云中每一个点的信息,提取特征

    2024年01月18日
    浏览(44)
  • [CVPR2022] 用于 3D 医学图像分析的 Swin Transformers 的自监督预训练

    Self-Supervised Pre-Training of Swin Transformers for 3D Medical Image Analysis 摘要 Vision Transformer(ViT)在全局和局部表示的自监督学习方面表现出了出色的性能,这些表示它可以转移到下游任务的应用中。 提出模型:提出一种新的自监督学习框架Swin UNETR,它具有定制的代理任务,用于医学图像

    2024年02月15日
    浏览(43)
  • 【论文阅读】通过3D和2D网络的交叉示教实现稀疏标注的3D医学图像分割(CVPR2023)

    论文:3D Medical Image Segmentation with Sparse Annotation via Cross-Teaching between 3D and 2D Networks 代码:https://github.com/hengcai-nju/3d2dct 问题1 :医学图像分割通常需要大量且精确标注的数据集。但是获取像素级标注是一项劳动密集型的任务,需要领域专家付出巨大的努力,这使得在实际临床场

    2024年02月05日
    浏览(64)
  • Pytorch1.7复现PointNet++点云分割(含Open3D可视化)(文末有一个自己做的书缝识别项目代码)

      毕设需要,复现一下PointNet++的对象分类、零件分割和场景分割,找点灵感和思路,做个踩坑记录。 https://github.com/yanx27/Pointnet_Pointnet2_pytorch   我的运行环境是pytorch1.7+cuda11.0。   PointNet++代码能实现3D对象分类、对象零件分割和语义场景分割。 对象分类   下载数据

    2023年04月15日
    浏览(84)
  • 【未完待续】综述:用于视频分割(Video Segmentation)的深度学习

    A Survey on Deep Learning Technique for Video Segmentation 本文回顾视频分割的两条基本研究路线:视频目标分割(object segmentation)和视频语义分割(semantic segmentation)。本文介绍它们各自的task setting、背景概念、感知需求、发展历史以及主要挑战。本文详细概述相关的方法和数据集的代

    2024年02月02日
    浏览(48)
  • EPT-Net:用于3D医学图像分割的边缘感知转换器

    IEEE TRANSACTIONS ON MEDICAL IMAGING, VOL. 42, NO. 11, NOVEMBER 2023 卷积运算的 内在局部性 在建模长程依赖性方面存在局限性。尽管为序列到序列全局预测而设计的Transformer就是为了解决这个问题而诞生的,但由于 底层细节特征 不足,它可能会导致定位能力有限。此外,低级特征具有丰富

    2024年02月04日
    浏览(44)
  • 深度学习中语义分割、实例分割、目标检测和图像分类区别

    语义分割 实例分割 目标检测 语义分割:需要判断每个像素属于哪一个类别,属于像素级别分类标注 实例分割:相较于语义分割 会将同一类别的不同物体进行分离标注   目标检测:输入图像通常包含多个物体,对物体的位置与类别进行标注  图像分类:输入图像通常包含一

    2024年02月08日
    浏览(57)
  • Opencv之RANSAC算法用于直线拟合及特征点集匹配详解

    讲述Ransac拟合与最小二乘在曲线拟合上的优缺点 讲述在进行特征点匹配时,最近邻匹配与Ransac匹配的不同之处 另外,Ransac也被用于椭圆拟合、变换矩阵求解等 1.1 原理 RANSAC(RANdom SAmple Consensus,随机采样一致)算法是从一组含有“外点”(outliers)的数据中正确估计数学模型参数的

    2024年02月05日
    浏览(40)
  • 深度学习图像分类、目标检测、图像分割源码小项目

    ​demo仓库和视频演示: 到此一游7758258的个人空间_哔哩哔哩_bilibili 卷积网路CNN分类的模型一般使用包括alexnet、DenseNet、DLA、GoogleNet、Mobilenet、ResNet、ResNeXt、ShuffleNet、VGG、EfficientNet和Swin transformer等10多种模型 目标检测包括yolov3、yolov4、yolov5、yolox、faster rcnn、SDD等 图像分割包

    2024年02月09日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包