GMPI多平面图像生成框架

联合创作 · 2023-09-25 22:59

GMPI (Generative Multiplane Images)是一个多平面图像生成框架,使 2D GAN 具有 3D 感知能力。

生成的输出称为“生成多平面图像”(GMPI),并强调其渲染不仅质量高,而且保证视图一致,这使得 GMPI 与许多先前的作品不同。重要的是,alpha 映射的数量可以动态调整,并且可以在训练和推理之间有所不同,从而减轻内存问题并能够在不到半天的时间内以 1024 2 的分辨率快速训练 GMPI。

Project Page | Paper

环境设置

此代码已在带有 CUDA 10.2 的 Ubuntu 18.04 上进行了测试。

conda env create -f environment.yml 

使用预训练检查点

下载检查点

cd /path/to/this/repo export GMPI_ROOT=$PWD

请下载预训练检查点,并将它们放在${GMPI_ROOT}/ckpts

结构应该是:

. +-- ckpts | +-- gmpi_pretrained | | +-- FFHQ256 | | +-- FFHQ512 | | +-- FFHQ1024 | | +-- AFHQCat | | +-- MetFaces 

使用以下变量进行说明。

# This can be FFHQ256, FFHQ512, FFHQ1024, AFHQCat, or MetFaces
export DATASET_NAME=FFHQ1024
export OUTPUT_DIR=${GMPI_ROOT}/ckpts/gmpi_pretrained/${DATASET_NAME}

# Set this to your favourate seed
export SEED=589

# - When psi = 1.0 there is no truncation, which is used for quantitative results in the paper.
# - To obtain better qualitative results, use psi < 1.0.
export TRUNCATION_PSI=1.0

渲染单个图像

以下命令呈现图像${OUTPUT_DIR}/rendered.png,以及:

  • mpi_alpha.png:所有平面的 alpha 贴图,
  • mpi_rgb.png:所有平面都使用相同的 RGB 纹理,
  • mpi_rgba.png:所有平面的 RGB-alpha 图像。
conda activate gmpi && \
export PYTHONPATH=${GMPI_ROOT}:${GMPI_ROOT}/gmpi/models:$PYTHONPATH && \
python ${GMPI_ROOT}/gmpi/eval/vis/render_video.py \
--ckpt_path ${OUTPUT_DIR}/generator.pth \
--output_dir ${OUTPUT_DIR} \
--seeds ${SEED} \
--nplanes 96 \
--truncation_psi ${TRUNCATION_PSI} \
--exp_config ${OUTPUT_DIR}/config.pth \
--render_single_image 1

注意:nplanes = 96在论文中用于报告定量和定性结果,但 GMPI 即使使用 32 个平面也能够产生高质量的结果。nplanes如果遇到 CUDA 内存不足错误,请使用较小的值(例如 32)。

浏览 6
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报