• 基于体素的三维表面重建: DLGAN, 3D GAN,3D-R2N2等


    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
    这样就可以了。

  • 相关阅读:
    LAGRANGIAN FLUID SIMULATION WITH CONTINUOUS CONVOLUTIONS
    正则表达式
    通过GFlags工具来复现因为野指针、内存越界等造成的程序崩溃
    Callable接口
    【OBS】P B 丢帧阈值 buffer_duration_usec
    创建型设计模式
    ubuntu安装mmdetection
    如何在用程序在控制台中打印字母logo
    数组与链表
    Qt解决中文乱码QTextCodec
  • 原文地址:https://blog.csdn.net/qq_34342853/article/details/125366663