浅读CVPR2022-CrossPoint

目录

背景

论文主要贡献

相关工作

1. 点云的表征学习

2. 点云上的自监督学习

3. Cross-Modal Learning

网络架构

1. 整体分析 

2. 损失函数

 表现

 1. 下游任务

1.1 2D渲染图数量的选择

1.2 分类任务

1.3 分割任务

1.4 IMID和CMID效果

1.5 在CIFAR-FS上的少镜头分类

总结

参考


浅读CVPR2022-CrossPoint_第1张图片

背景

大规模人工标注的点云数据集由于其不规则性,在三维物体的分类、分割和检测等任务往往是费力的。Self-supervised学习,无需人为标注,是解决该问题的一个非常有前景的方法。在现实世界中,人类能够将从2D图像中学习到的视觉概念映射到3D世界中。受此启发,于是作者提出了CrossPoint,一种简单的跨模态对比学习方法,用于学习可转移的3D点云表示。

论文主要贡献

(1)使用2D-3D数据在自监督学习上做对比学习,有利于网络对点云的特征学习

(2)提出了端到端的自监督学习的目标封装intra-model以及cross-model损失函数,这使得2D图像特征能更好的嵌入到3D特征中,从而有效避免特定增强的偏差。

(3)将CrossPoint广泛应用到各种下游任务中,效果优于原先的无监督学习。

(4)在CIFAR-FS数据集上执行了少镜头的图像分类,以证明从CrossPoint调优预处理后的图像性能优于标准基线。(就是说加了图片对于点云后续任务更好)

相关工作

1. 点云的表征学习

由于点云的不规则结构以及在处理点数据时所需要的置换不变性,这使得对于点云的表征学习相对于其它的表征学习(例如图像)更为困难,有了深度学习在点云上直接应用的先锋——PointNet,众多点云深度学习网络诞生。尽管网络表现性能很好,但其依赖于有着人为标注信息的数据集,这类数据集是难以获取的。于是,CrossPoint的诞生,就是为了从一大堆无标注信息的数据中提取可转移的特征信息,并将其应用于下游任务——分类以及分割。

2. 点云上的自监督学习

首先要对自监督学习有一个概念,众所周知,机器学习分为三类,有监督,无监督以及自监督,前两种定义十分明确,这里从论文原文简单说明自监督学习。

自监督学习分为两类,Generative Method(包括GNN以及AE,目的是重建给定的数据集);Contrastive Method(对比学习,论文使用的架构),这里可以学习Siamese neural network(孪生神经网络)。

​​​​​​Siamese network 孪生神经网络--一个简单神奇的结构https://zhuanlan.zhihu.com/p/35040994

 我感觉,其实就是通过两个共享权值的网络,通过对同类输入的输出进行距离最小化,反类输入进行距离最大化来进行更新参数,至于距离度量的选择,就是一个叫Contrastive Loss的东西了。

3. Cross-Modal Learning

根据我的理解,作者是说利用跨模型来学习,分别是2D图像以及3D模型之间的特征迁移与嵌入,其中提到了一个叫pixel-to-point 的image features extractorLearning from 2D: Contrastive Pixel-to-Point Knowledge Transfer for 3D Pretrainingicon-default.png?t=M276https://arxiv.org/pdf/2104.04687.pdf大概意思就是说利用一个backprojection function来对齐二维与三维之间的特征,此外,还设计了一个叫upsampling feature projection layer来学习细粒度的3D表示。然后使用二维图像对网络进行一个预训练,从而优化在下游任务的表现。

浅读CVPR2022-CrossPoint_第2张图片

 

网络架构

浅读CVPR2022-CrossPoint_第3张图片

1. 整体分析 

从整体网络架构可以看到,上半部分是3D点云的输入,下半部分是从随机角度拍摄的2D图像输入,分别送入f_{\theta _{p}}(Point cloud feature extractor),f_{\theta _{i}}(Image feature extractor),最后就是各自的g_{\phi _{p}}(Point cloud projection head),g_{\phi _{i}}(Image projection head),其实就是MLP。

这里上半部分是有两个P输入的,作者称其为augmented versions。其实就是原始3D模型进行随机变换(如旋转,放缩以及平移),这里其实很类似于前文提到的Siamese neural network,两层网络都共享权重,最后得到的Z取两个的平均。

 

2. 损失函数

这里有两个损失函数,一个是Intra-Modal Correspondence中的L_{IMID}以及Cross-Modal Correspondence中的L_{CMID}(公式如下),作者利用到了NT-Xent损失函数。

浅读CVPR2022-CrossPoint_第4张图片

浅读CVPR2022-CrossPoint_第5张图片

其中N是batch-size,\tau是温度系数,s()是相似性度量函数(这里采用cosine相似度函数,详情点击余弦距离介绍)。目的仍然是为了最大化同一个点云模型不同姿态下以及由该模型渲染出来的2D图像输入的输出相似度,而最小化不同点云模型之间以及非该模型渲染出来的2D图像的输入的输出相似度(同一batch的其它数据)。那么具体怎么做到呢,下面根据公式进行推导。

便于理解,我们不妨把上述公式做一个转换

L=log(1+\frac{\sum_{k=1}^{2N-1} exp(s(Z_{k}^{t_{1}} ,Z_{k}^{t_{2}})/\tau )}{exp(s(Z_{i}^{t_{1}} ,Z_{i}^{t_{2}})/\tau )})

为了最小化L,需要分母项增大而分子项减小(这里不是很明白为什么求和时两个都是k,按照原本的NT-Xent损失函数,比对的是该输出与batch中2N-2个样本之间的相似度,2N中一个是本身,一个是augmented version)。详情点击Normalized Temperature-scaled Cross Entropy Losss

而且从原文作者描述也能看到

 浅读CVPR2022-CrossPoint_第6张图片

最后总Loss就是两个相加

 

 表现

 1. 下游任务

1.1 2D渲染图数量的选择

浅读CVPR2022-CrossPoint_第7张图片

作者发现,一张图是效果最好的,因此后续实验都选择了一张渲染图片。

1.2 分类任务

浅读CVPR2022-CrossPoint_第8张图片

浅读CVPR2022-CrossPoint_第9张图片

1.3 分割任务

浅读CVPR2022-CrossPoint_第10张图片

1.4 IMID和CMID效果

浅读CVPR2022-CrossPoint_第11张图片

1.5 在CIFAR-FS上的少镜头分类

浅读CVPR2022-CrossPoint_第12张图片

后续点云下游任务并未用到image的extractor,而单单把该extractor用来做分类,效果就不太理想了,原文作者说是因为原先使用的是3D点云模型的渲染图做预训练,并不能很好的泛化到CIFAR数据集上导致的(效果差异非常大)。

 

总结

这篇是在CVPR202203上的文章,还是非常新的深度学习点云学习,个人觉得亮点是引入了self-supervised learning中的contrastive learning做pretrain,值得一读,上述全为本人论文阅读笔记,如有不对请评论区指出。

 

参考

[1]. Learning from 2D: Contrastive Pixel-to-Point Knowledge Transfer for 3D Pretraining

[2]. Self-Supervised Learning 入门介绍 

[3]. 对比式无监督预训练简介(Contrastive Pre-training)​​​​​​​

[4]. Siamese network 孪生神经网络--一个简单神奇的结构 

[5]. contrastive loss 详解 

[6]. Normalized Temperature-scaled Cross Entropy Loss 

[7]. 余弦距离介绍 

[8].CrossPoint

你可能感兴趣的:(计算机视觉,人工智能)