VAE在3D点云上应用总结

文章结构

VAE基本原理

  1. 什么是autoencoder?
  2. 它的主要问题是什么?为什么要使用VAE
  3. VAE基本结构以及VAE的训练目标。

Autoencoder主要的结构就是一个encoder和decoder的形式,encoder主要是将输入的数据压缩整一个很小的latent vector。Decoder是解码或者还原latent vector。为什么Autoencoder不好,是因为在encoder学习到的latent space并不是uniformly distributed,而是在一些位置上会有 discrete data patches。这些discrete data patches在decoder解码的时候会出现毫无意义的输出。所以这也是为什么autoencoder只能在数据压缩或者数据重建上面取得不错的结果,但是在数据生成方面AE是结构上是明显不足的。

那么根据AE在latent space中出现的问题,VAE的出现就很自然,因为对于这种non-uniformly distributed的latent而言的话,最自然的想法就是去估计这个latent space的分布,但是对这样的分布又无法在数学上做到准确的计算,因为它是intractable的。VAE的目标就是去近似这个真实的分布,其实就是在最优它的marginal likelihood。自然的,这个marginal likelihood它有两个部分来组成,其中一个是KL Divergence,另外一个就是evidence lower bound (variational lower bound), 这两个项的关系就是 "你多我少,我少你多",换句话来说,最大化variational lower bound就是在最小化KL divergence。但是有一个问题是需要注意的,就是在训练VAE的时候,从pytorch的角度上来讲,decoder的输入是从encoder输出的分布中的采样得到的,但是采样会导致computational graph上出现nondeterminitic node, 从而导致无法最反向传播。 所以这也就有了 reparameteration trick,大白话来说,它就是把sample出来的东西放到另外一个node上,让反向传播可以做。(把nondeterministic变成deterministic)

VAE在3D点云上的应用

VAE在3D点云上的应用主要就是generation,completion。其中我认为比较有趣且相对有用的3D点云生成的VAE结构一个是componet, 2019年的文章,相对较老,它主要分两个板块,一个是Part synthesis unit, 一个是Part composition unit。这篇文章的做法就是把一个2D shape拆分开,然后生成若干个parts,然后在合并到一起。这种结构比较可以用到3D人物的点云生成上面,因为3D人体每个部分的细节分布是不一样的,比如身体的shape可以用稀疏点云就可以大致的描述出它的形状了,但是脸部和手部,如果使用同样分布的稀疏点云,就很难描述出脸部的细节,比如五官。

近期较新的文章, 就是EditVAE,发表于2022年,它也使用可上述这种part-aware的形式,同时实现了复杂shape的生成和editing。

相关推荐
minhuan6 小时前
大模型应用:多卡集群跑满14B模型:大模型推理算力应用实践.66
人工智能
golang学习记6 小时前
VS Code 发布新终端
人工智能
无忧智库7 小时前
未来已来:深度解析城市空中交通(UAM)垂直起降场(Vertiport)智能化配套设施建设方案(WORD)
人工智能
叫我:松哥7 小时前
基于python强化学习的自主迷宫求解,集成迷宫生成、智能体训练、模型评估等
开发语言·人工智能·python·机器学习·pygame
2501_944934737 小时前
大专学历行政转型管理的必要性分析
人工智能
安全二次方security²7 小时前
CUDA C++编程指南(7.5&6)——C++语言扩展之内存栅栏函数和同步函数
c++·人工智能·nvidia·cuda·内存栅栏函数·同步函数·syncthreads
汗流浃背了吧,老弟!7 小时前
构建RAG系统时,如何选择合适的嵌入模型(Embedding Model)?
人工智能·python·embedding
老蒋每日coding7 小时前
从存证到智能:当碳链架构注入AI灵魂——区块链+AI融合新范式
人工智能·区块链
DN20207 小时前
靠谱的AI销售机器人哪家好
java·人工智能·机器人
菜鸟‍8 小时前
【论文学习】重新审视面向持续图像分割的基于查询的 Transformer || 用于二分类图像分割的多视图聚合网络
人工智能·学习·计算机视觉