3D-R2N2: A unified approach for single and multi-view 3D object reconstruction (softmax CE)

输入:1或多张单个物体任意视角的图片 (encode成一个latent code)
输出:3D occupancy grid (323232)
loss: sum of voxel-wise 交叉熵。(虽然代码和这个有差别)
在这里插入图片描述

官方代码:
在这里插入图片描述

非官方torch代码:

在这里插入图片描述

Learning a predictable and generative vector representation for objects (sigmoid CE + embedding)

https://rohitgirdhar.github.io/GenerativePredictableVoxels/
在这里插入图片描述

  • 输入二维图像,输出体素。
  • train的时候,用两个loss监督:
    • 体素结果的sigmoid cross entropy loss
    • 中间用一个auto encoder 来监督enbedding。(test的时候不用这个)
  • 分辨率:202020

关于autoencoder的ablation study:
第16页, table 2 (FIg.7 里面其实没有消融实验, supllementary 里面也没有图)
在这里插入图片描述

网络结构:
在这里插入图片描述

Perspective transformer nets: Learning single-view 3D object reconstruction without 3D supervision

Hierarchical Surface Prediction

DLGAN:

在这里插入图片描述
输入单目深度图,输出体素。

方法:
在这里插入图片描述

左上:用AE来学习GT 3d voxel grid 的 latent code。
左中:3D EDGAN对输入的2.5D voxel grid 学习latent code,然后decode出3D grid。 其中监督用到latent code loss (用上一步的Gt latent code监督), depth loss:希望生成的结果和input的deapth相符(右上), GAN loss:生成的结果和GT 一起投入GAN。
右中:ELM:将结果二值化。传统方法是用阈值来二值化,但这样不太好,难以联系邻居的情况,做不到local continuity。这一部的loss是L1距离。

  • EDGAN: 从2.5D voxel grid 得到latent vector
    • GAN loss
    • latent vector loss:用AE从GT学到latent vector来监督我们从输入数据学到的latent vector
    • depth loss: 用输入的2.5D数据监督这一步生成的3D voxel网格
  • ELM (Extreame learning machine)将float的3D voxel二值化。有一个binary reconstruction loss。(一范数)

3D GAN: learning a probabilistic latent space of object shapes via 3D generative-advesarial modeling

就只有GAN loss。
generator是 kernal size是4,stride2,batch norm and ReLU
discrininator几乎一样,但用Leaky ReLU。

在这里插入图片描述
这是generator。z是长度为z_size的latent code。
以下顺序都是B,C,XYZ,
先reshape一下,变成 B, z_size, 1,1,1

然后第一个反卷积,得到B, 512,4,4,4
最后就变成了B,1,64,64,64,64
在这里插入图片描述

显然我需要加一层。
100,64,32,32
100,32,64,64,64
100,1,128,128,128
这样就可以了。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐