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。

相关推荐
❀͜͡傀儡师33 分钟前
AI 中转站(Sub2API)搭建
人工智能·sub2api·ai 中转站
甲维斯41 分钟前
Claude“山寨版”来了,支持中文,可配“任意模型”
人工智能·ai编程
测试员周周1 小时前
【AI测试智能体】为什么传统测试方法对智能体失效?
开发语言·人工智能·python·功能测试·测试工具·单元测试·测试用例
RSTJ_16251 小时前
PYTHON+AI LLM DAY THREETY-NINE
开发语言·人工智能·python
怕浪猫1 小时前
荒岛原始无工业、无电力、无设备,从零搭建最基础计算机体系
人工智能·设计模式·面试
2601_949499941 小时前
金价涨、光模块跌?不,它们之间存在更复杂的四重关联
人工智能·区块链
tanis_20771 小时前
Deepseek V4 Pro 新手极速上手指南
人工智能·语言模型
AI袋鼠帝2 小时前
阿里最强视频模型!千问App首发灰测 HappyHorse 1.0
人工智能
tanis_20772 小时前
扫描版中文 PDF 怎么提取文字:用 MinerU 做 OCR + 结构化一体处理
人工智能·pdf·ocr
NOCSAH2 小时前
统好 AI:以 AI 技术重构传统 ERP 核心能力
人工智能·重构