论文学习日记1-Unsupervised Point Cloud Pre-training via OcclusionCompletion
Posted weixin_51686598
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了论文学习日记1-Unsupervised Point Cloud Pre-training via OcclusionCompletion相关的知识,希望对你有一定的参考价值。
这篇论文提出了一种有效的无监督预训练方法(遮挡补全),可以提高点云特征学习的准确性,从而改善下游任务的性能
这个模型的目的是完成遮挡的点云,它的预训练是基于一个简单的无监督学习目标,即在不带标签的数据上对点云进行预训练。
大致步骤
在相机视图中遮盖所有被遮挡的点
学习一个“编码器-解码器”模型,来重建被遮挡的点
使用编码器权重作为下游点云任务的初始化
成果
在物体分类,以及基于部分和语义分割任务part-based and semantic segmentationtasks中的表现均优于先前的预训练方法
研究了预训练的特征——发现它们导致了下游的广泛极小值,具有高变换不变性,并且其激活与部分标签高度相关
点云标记存在的挑战
因此,我们需要无监督预训练方法学习点云模型
点云可能是稀疏的,被遮挡的,分辨率较低,使得点的身份模糊不清
不是稀疏的数据集很容易达到数百万个点
标记单个点或绘制3D边界框比标记2D图像更耗时且容易出错
提出的模型:遮挡补全
基本步骤
(a)通过视点遮挡生成掩蔽点云的机制
(b)补全任务来重建被遮挡点云
为什么我们能成功?
准确地完成遮挡点云的预训练模型需要理解这些点云的空间和语义属性
已经证明3D场景补全是学习代表性以进行视觉定位的有用辅助任务
基于掩码的补全任务已成为 自然语言处理领域学习预训练表示的事实标准,并且在图像 和图形的预训练中被广泛使用
模型亮点
在少量学习实验中提高了样本效率
提高了对象分类、对象部分分割和语义分割的泛化能力
通过网络解剖描述,获得了更加具有语义意义的表述
微调后发现了更广泛的局部极小值
抖动、平移、旋转变换下的聚类质量更好
别人的相关工作
无监督预训练的两种最常见方法
生成模型
生成对抗网络(GANs)
自编码器
归一化流
归一化流是一种用于生成模型的方法,其中一个概率分布被映射到另一个概率分布,从而实现生成新样本的效果。归一化流通常用于生成高维数据,如图像或语音。
近似凸分解
近似凸分解是一种将复杂函数分解为简单函数的方法。这种方法可以帮助我们理解复杂函数的内部结构,并有助于改进生成模型的效率。在某些情况下,近似凸分解可以用来提高生成模型的精度。
自监督学习
通过学习预测点云的关键几何特性
自监督学习方向的前人工作:
论文<Self-supervised deep learning on point clouds by reconstructingspace>:提出了一种基于重新排列点云的预训练程序。
通过将点云分成k^3个体素,随机排列体素。然后训练一个模型来预测每个点的原始体素位置。
预训练模型通过学习这种重排。学习点云的集合结构
两个难点:
体素表示不具有排列不变性。因此,如果点云经过旋转或平移,模型可能会学到不同的东西
由真实物体和场景生成的点云的结构与随机排列的点云有很大的不同。因此,不清楚为什么将点云重排列后获得的权重作为预训练结果,效果比较好。
论文<Self-supervised few-shot learning on point clouds>:使用cover tree,通过分层划分点云点以进行少样本学习
但是由于 cover tree 的设计目的是快速最近邻搜索,它可能会将语义相连的点云区域(例如飞机机翼和汽车轮胎)分成不同的区域,从而忽略点云几何的关键信息
论文<Unsupervised pre-training for 3d point cloud understanding>:基于对比学习,利用不同视图间已知的点对点对应关系来预训练点云
仅适用于已经注册的静态场景,因为需要通过注册不同的深度图才能生成单个 3D 场景的点对点对应关系
"已经注册的静态场景" 指的是已经通过某种方式处理过的静止不动的场景,使得它们中的深度图可以被投影到单个三维场景中深度图是一种图像,用于表示一个场景中物体与相机或观察者的距离
具体模型结构
从实际物体或场景抽取的点云,它具有随机遮挡的特征。模型通过学习点云之间的关系和点云的形状信息来补全被遮挡的点云(自监督的体现:不需要任何外部标签来完成任务,而是通过观察隐藏的点和未隐藏的点之间的关系自行学)
模型由两个主要部分组成:一个编码器和一个解码器。编码器从输入点云中学习点云的抽象表示,而解码器从这个抽象表示中恢复原始的点云
关键捕捉
输入点云 被随机采样 以获得点的子集,称为观察点
未包含在子集中的其余点称为遮挡点
预训练的目标是根据观测点补全遮挡点
为此,预训练模型将观察点作为输入并预测遮挡点的缺失特征
这种完成遮挡点云的自我监督任务被用作预训练模型权重的任务。然后可以针对下游任务微调预训练的权重,例如对象分类或分割
该篇论文的主要意义:利用随机遮挡作为一个自监督的学习任务,预训练点云的模型,并在下游任务中表现出优越的结果(发明了一个优秀的预训练模型,它通过使用随机遮挡的方法,在未标记的点云数据上进行训练,从而获得了高质量的特征表示,并且与训练模型没有直接关系。这种预训练模型能够在后续的监督学习任务中起到很好的预处理作用,有助于提高模型的性能。)
实现细节
如何选择被遮挡的点?
视角遮挡点云可以理解为将3D图形投影到2D平面
当投影到2D平面时,部分点可能会被其他点覆盖,从而形成遮挡
如何确定点被遮挡?
使用Delaunay三角剖分来重建一个多边形网格,然后我们删除属于隐藏曲面的点,通过z-buffering确定
通过使用z-buffering算法,我们可以在观察每个三角形时,确定它是否位于隐藏曲面上,因此,它是否被遮挡。 然后,我们可以删除属于隐藏曲面(被遮挡的曲面)的点,以得到被遮挡的点。
Delaunay三角剖分算法
左图的三角剖分是Delaunay的,任何一个三角形的外接圆内部都不包含点集中的顶点,而右图不是
构建一个三角形网格,该网格将点云组织为一个多边形网格,其中的每个三角形都由三个点组成,并且不存在任何其他点在三角形内部
这可以帮助我们通过可视性分析来确定哪些点被遮挡
z-buffering算法——深度缓冲
该算法需要为每个图形像素分配一个深度值,表示像素的相对距离。
如果一个像素的深度值小于其他像素的深度值,则说明该像素在其他像素的前面,并将显示在屏幕上。
点云如何重新投影回世界坐标系?
使用位置变换矩阵
通过学习恢复被遮挡点的位置变换矩阵,网络可以将隐藏的点重新投影回世界坐标系
实验部分
与其他两种初始化模型作对比(Random 和 Jigsaw):
证明了该预训练技术的初始化能力,能为下游任务带来很好的影响;
证明了在物体分类、部分分割、语义分割方面,该模型的准确率都比其他两种初始化模型高
首先我们需要知道:这篇论文中,预训练模型和后面的训练模型完全没有关系,本文只是训练了一个优秀的预训练模型吗
预训练模型和训练模型完全没关系是因为预训练模型是一个独立的网络,它仅用于学习在点云数据上的抽象特征表示。预训练模型的参数在后续的任务中可以被利用,但它们不是对任务有直接影响的。
预训练模型如何进行微调
few-shotlearning: FSL的目标是使用非常有限的数据训练准确的模型。
FSL的典型设置是“K-way N-shot”。
在训练期间,随机选择K个类,每个类包含N个样本。然后在测试集中的对象上评估训练好的模型。
object classification:物体分类——预测一个物体所属的类别
与其他两种初始化技术Jigsaw和Random相比较,作者的OcCo预训练模型在所有数据集上精度都最高
这三个测试数据集中,后两个更具挑战性,因为它们包含了室内真实扫描中的遮挡物体。在微调上,作者使用了和其他研究[37,53]相同的设置
part segmentation:部分分割——预测给定对象的每个点所属的部分类别(例如椅子腿、杯子把手)
ShapeNetPart上的整体精度OA和并集交集mIoU occo初始化模型在整体精度和平均类别借据方面优于其他模型
使用ShapeNetPart基准,该基准包含16,881个来自16个类别的对象,共有50个部分。每个对象由2048个点表示
Intersectionover Union(IoU):说明分割出的对象与实际对象的重叠程度的比例,通常计算方法是求出预测的对象区域与真实对象区域的交集的面积与两个区域的并集的面积之比。一般认为IoU越高,分割的结果越好。
semantic segmentation:语义分割——预测室内/室外场景中每个点的语义对象类别
使用了SensatUrban基准测试评估室外场景分割。
S3DIS包含了6个不同地点通过Matterport扫描仪收集的3D扫描,包含271个房间和13个语义类。
SensatUrban包含超过30亿标记点,覆盖了3个英国城市
解释为什么遮挡补全准确率会高
OcCo-PointNet是一种用于提取点云物体的全局特征的模型,它是由OcCo机制和PointNet架构结合在一起形成的。
损失景观的可视化
画成线形图时是不是那个最小值点峰值很高就比较容易找到
学习特征的可视化
探究了预训练模型在微调前对点云对象的学习
点的颜色根据其激活通道来着色——激活值越大,颜色越暗
激活值——隐藏层节点的输出值。作者通过颜色显示了点的激活通道值,表示预训练的编码器对于每个点的特征的理解
预训练编码器可以在早期学习低级几何原始形状,例如平面、圆柱体和圆锥。
随后,它识别出更复杂的形状,如机翼、叶子和上身。
我们进一步使用t-SNE(数据降维技术)在ShapeNet10上可视化对象嵌入。我们注意到,在预训练后形成了区分的集群。因此,OcCo似乎可以学习对于区分对象的不同部分或场景是有用的特征。这些特征将对下游任务有益,例如对象分类和场景分割。
feat1和feat3是网络的中间层输出,可以看到随着网络变深,可以识别更加复杂的特征
转换不变性的测试
证明了一个预训练模型在未经微调的情况下可以以无监督的方式学习标签信息,即跨域数据集的零点学习
研究人员使用 OcCo-PointNet 从 ShapeNet10 和 ScanObjectNN 中提取对象的全局特征,然后使用无监督聚类方法K-means(K 设为对象类别数)对提取的嵌入进行聚类。
为了评估聚类质量,研究人员计算生成的聚类和地面实况聚类之间的调整互信息(AMI)。如果两个聚类完全相同,则 AMI 将达到 1,而随机分类聚类分配的期望值为 0。
研究人员还研究了 OcCo-PointNet 对输入变换的鲁棒性
研究人员考虑了三种变换,包括旋转、平移和抖动
在使用 PointNet 提取特征/嵌入之前,研究人员对输入点云应用了这些变换。
在两个数据集上进行比较。10个随机初始化的平均值和标准误差。在“变换”列下,“J”、“T”、“R”分别表示抖动、平移和旋转
表中两个全局特征提取方法:
VFH是根据物体的可视性和几何形状从观察点的视角生成的直方图特征
M2DP则通过对点云的多尺度,多方向上的密度分布进行模式识别,从而生成的点云特征表示
总结OcCo的性质
在小样本学习(few-shot learning)实验中能够提高采样效率
在分类和分割任务中能提高泛化性
在微调后能更容易找到局部最小值
通过network dissection能够描述更具语义的表示
在jittering, translation 和 rotation 变换下仍能保持更好的分类质量(鲁棒性)
小知识点
新名词:下游任务
利用预训练模型在真实数据上的任务
在神经网络领域中,预先训练的模型通常是为了改善下游任务的性能,这也是为什么预训练非常重要的原因
深度学习模型——编码器-解码器模型
编码器是一个神经网络,它接受输入(例如图像,序列等),并通过多层神经元以逐渐减少的维度的形式对其进行编码,以生成一个较低维的表示,称为编码。
解码器是一个神经网络,它接受编码,并通过多层神经元将其解码为接近原始输入的输出。
编码器-解码器模型通常用于任务,例如语言翻译,图像去噪,图像语义分割,无监督预训练等。通常,模型通过学习将输入压缩为较低维的表示,再将其还原为原始输入,从而以逼近原始输入的形式对其进行学习。
深度学习模型——卷积神经网络
卷积神经网络的结构包括输入层、卷积层、池化层、全连接层等。
卷积层中的卷积核在处理图像时,从图像的不同位置提取特征,并通过非线性激活函数来提高模型的非线性表示能力。
池化层则可以减小图像的尺寸并降低计算量。
通常用于计算机视觉以及图像识别领域。这是因为它们具有很好的图像特征提取能力,能够从图像中识别出有用的信息。
以上是关于论文学习日记1-Unsupervised Point Cloud Pre-training via OcclusionCompletion的主要内容,如果未能解决你的问题,请参考以下文章