| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【点云处理之论文狂读前沿版7】—— Masked Autoencoders for Point Cloud Self-supervised Learning -> 正文阅读 |
|
[人工智能]【点云处理之论文狂读前沿版7】—— Masked Autoencoders for Point Cloud Self-supervised Learning |
Masked Autoencoders for Point Cloud Self-supervised Learning摘要
1.引言
Point-MAE主要包括了一个point cloud masking、embedding module和an autoencoder ,主要处理流程为:
3. Point-MAE3.1 Point Cloud Masking and EmbeddingPoint Patches Generation 通过Farthest Point Sampling(FPS) 和 K-Nearest Neighborhood (KNN) 算法将点云划分为不规则的点云块。给定一组带有
p
p
p个点的点云
X
i
∈
R
p
×
3
X^{i} \in \mathbb{R}^{p \times 3}
Xi∈Rp×3,利用FPS采样出
n
n
n个点,作为点块的中心点
C
T
CT
CT。基于中心点,对于每个点块
P
P
P,KNN选择
k
k
k个最近邻点: Masking 考虑到点云块可能会重叠,分别对这些块进行mask。将mask比率设置为 m m m,masked块被表示为 P g t ∈ R m n × k × 3 P_{g t} \in \mathbb{R}^{m n \times k \times 3} Pgt?∈Rmn×k×3,实验表明, m = 60 % ? 80 % m=60\%-80\% m=60%?80%时,我们工作的性能更好。 Embedding 记完整的mask tokens为 T m ∈ R m n × C T_{m} \in \mathbb{R}^{m n \times C} Tm?∈Rmn×C ,其中 C C C为embedding的维度。 对于unmasked point patches,利用轻量型的PointNet进行embedding。unmasked point patches P v ∈ R ( 1 ? m ) n × k × 3 P_{v} \in \mathbb{R}^{(1-m) n \times k \times 3} Pv?∈R(1?m)n×k×3被embedding成 visible tokens的过程可以用下式表示: T v = Point ? N e t ( P v ) , T v ∈ R ( 1 ? m ) n × C . T_{v}=\operatorname{Point} N e t\left(P_{v}\right), \quad T_{v} \in \mathbb{R}^{(1-m) n \times C} . Tv?=PointNet(Pv?),Tv?∈R(1?m)n×C. 考虑到点云块是通过归一化坐标表示的,对于embedding token而言,提供中心点的位置信息是必要的。Position Embedding (PE)的一个简单的方法就是通过一个可学习的MLP将中心点的坐标embedding到另外一个维度上。本文在encoder和decoder都分别使用了PE。 3.2 Autoencoder’s BackboneAutoencoder的Backbone是完全基于标准的Transformer的,并且是一个对称式的encoder-decoder设计。Autoencoder的最后一层采用了一个简单的预测头来获得重建目标。 Encoder-decoder 本文中的encoder包含着标准的Transformer blocks,仅对visible tokens T v T_v Tv?进行编码,encoded tokens被记为 T e T_e Te?。此外,每个Transformer block中都会加入positional embeddings,提供位置信息。 本文中的decoder与encoder相似,但是包含着更少的Transformer blocks,其输入包括encoded tokens
T
e
T_e
Te?和masks tokens
T
m
T_m
Tm?,在decoder的每个Transformer block中也加入positional embeddings,为每个tokens提供位置信息。decoder的输出为decoded mask tokens
H
m
H_m
Hm?,并将
H
m
H_m
Hm?输入到接下来的预测头中,encoder-decoder的结构可以表示为: 在encoder-decoder结构中,将mask tokens放入轻量decoder中,而不是将encoder的输入放入decoder中,是有两方面的考虑的:
Prediction Head 简单地使用一层全连接作为预测头,从decoder得到输出
H
m
H_{m}
Hm?,prediction head会将其投影为一个向量,这个向量的维度和点云块坐标的全部数量相同。然后再跟一个reshape操作: 3.3 Reconstruction Target本文的重建目标是恢复每个被mask点云块中点的坐标。给定预测到的点云块
P
pre?
P_{\text {pre }}
Ppre??和ground truth
P
g
t
P_{g t}
Pgt?,通过
l
2
l_2
l2?的Chamfer Distance 计算重建损失: 4.实验
输入点的数量 p = 1024 p=1024 p=1024,划分为 n = 64 n=64 n=64个点云块,在KNN算法中, k = 32 k=32 k=32,在autoencoder中,encoder中包含了12个Transformer block,decoder中包含了4个Transformer block,每个Transformer block有384个隐藏维度和6个头。Transformer block中的MLP比率设置为4。 4.1 Pre-training Setup4.2 Downstream TasksObject Classification on Real-World Dataset Object Classification on clean objects dataset Few-shot Learning Part Segmentation 4.3 Ablation StudyMasking Strategy
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 4:32:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |