Point Cloud Transformer详解

PCT: Point Cloud Transformer

PCT

Transformer

背景及意义

利用点云理解环境语义非常重要,有很多应用

但是点云数据是无序且无结构的,难以设计网络结构

应用于自然语言处理的Transformer结构对于理解无序数据有天然的优势

框架

PCT的整体框架如下图所示,Encoder部分作为backbone用来提取特征便于后续的不同任务进行处理。依据分类,分割等任务需要修改输出网络的部分

Input Embedding

因为transformer是处理自然语言的结构,而单词与字符并不能作为神经网络的输入,所以需要将输入数据转换为可以处理的向量,这个过程就是input embedding

通过input embedding,模型能够捕捉单词间的语义关系和上下文信息,不同的选择可能有不同的效果。

有几种常见的 input embedding 方法,其中一些包括:

  1. Word Embeddings(词嵌入): 将单词映射到连续的向量空间,如Word2Vec、GloVe和FastText。这些模型通过训练学到的嵌入可以捕捉单词的语义关系。

  2. Character Embeddings(字符嵌入): 将输入文本的字符映射为向量。这对于处理未知词汇或特定领域的术语很有用,因为它可以捕捉字符级别的信息。

  3. BERT(Bidirectional Encoder Representations from Transformers): 这是一种基于 Transformer 模型的预训练方法,它可以为整个输入序列生成上下文感知的嵌入表示。BERT 能够更好地理解词汇之间的关系,因为它是双向的。

  4. ELMo(Embeddings from Language Models): 类似于 BERT,ELMo 也是一个基于上下文感知的嵌入方法,但它使用了双向 LSTM(长短时记忆网络)。

  5. Doc2Vec: 将整个文档映射到向量表示。它与词嵌入不同,因为它考虑了整个文档的上下文。

这些方法可以根据任务和数据集的特性选择,有时候也会组合使用,以获得更好的性能。

Attention

Attention 网络是一种深度学习中常用的机制,用于加强模型对输入中不同部分的关注程度。这对于处理长序列或对不同部分的信息赋予不同权重的任务特别有用。

在自然语言处理中,Transformer 模型引入了 Self-Attention 机制,其中每个输入位置都可以注意到序列中其他位置的信息。这种机制允许模型在处理输入时动态地调整注意力,更好地捕捉上下文关系。

Attention 网络的核心思想是通过计算权重,为输入序列的不同部分分配不同的注意力。这些权重是由模型学习的,因此模型可以自适应地强调与任务相关的信息。

总的来说,Attention 网络提供了一种有效的方式,使模型能够集中精力处理输入的相关部分,从而在各种任务中取得良好的性能。

YouTube

MA-Pool

最大池与平均池的拼接

LBR

LBR层就是 Linear, BatchNorm 和ReLU layers的组合

LBRD

相比于LBR多了一层dropout

PCT不同版本

PCT的实现有三个不同的版本,区别在于Input embedding层(第一个灰色层)以及Attention层(黄色层)的选择,我们依次讲解

Naive PCT

1.Input Embedding

直接使用point cloud的坐标作为输入,最多把法线考虑进去

缺点:

2.Attention Layer

直接使用Transformer原论文的注意力机制网络,具体结构如下,

当switch切换到上面时就是self-attention网络机制

SPCT(point embedding and offset-attention)

这个结构与Naive的区别在于使用了Offset-Attention网络结构,具体结构如下

当switch切换到下面时就是offset-attention网络机制

Full PCT(with neighbor embedding and offset-attention)

完整版的PCT就是结合了neighbor_embedding和offset-attention,从而达到最好的效果,neighbot-embedding的结构如下,

图片左边的部分就是neighbor-embedding的结构,两层LBR与两层SG

中间部分就是SG的模型结构

右边部分则为例子

困惑及解答

为什么transformer适合点云数据结构

为什么offset-attention会更好?

为什么neighbor-embedding会更好?

缺陷是什么?

相关推荐
叶子爱分享1 小时前
计算机视觉与图像处理的关系
图像处理·人工智能·计算机视觉
cver1232 小时前
野生动物检测数据集介绍-5,138张图片 野生动物保护监测 智能狩猎相机系统 生态研究与调查
人工智能·pytorch·深度学习·目标检测·计算机视觉·目标跟踪
kyle~3 小时前
目标检测在国防和政府的应用实例
人工智能·目标检测·计算机视觉
Akttt5 小时前
【T2I】R&B: REGION AND BOUNDARY AWARE ZERO-SHOT GROUNDED TEXT-TO-IMAGE GENERATION
人工智能·深度学习·计算机视觉·text2img
jndingxin6 小时前
OpenCV CUDA模块设备层-----反向二值化阈值处理函数thresh_binary_inv_func()
人工智能·opencv·计算机视觉
jndingxin7 小时前
OpenCV CUDA模块设备层-----在 GPU 上执行类似于 std::copy 的操作函数warpCopy()
人工智能·opencv·计算机视觉
jndingxin7 小时前
OpenCV CUDA模块设备层-----在GPU 上高效地执行两个 uint 类型值的最大值比较函数vmax2()
人工智能·opencv·计算机视觉
顾道长生'9 小时前
(Arxiv-2024)自回归模型优于扩散:Llama用于可扩展的图像生成
计算机视觉·数据挖掘·llama·自回归模型·多模态生成与理解
千宇宙航9 小时前
闲庭信步使用SV搭建图像测试平台:第二十七课——图像的腐蚀
图像处理·计算机视觉·fpga开发
CoovallyAIHub10 小时前
YOLOv13都来了,目标检测还卷得动吗?别急,还有这些新方向!
深度学习·算法·计算机视觉