Wonder3D:用单张图片生成纹理网格

Wonder3D 只需 2 ∼ 3 分钟即可从单视图图像重建高度详细的纹理网格。

Wonder3D首先通过跨域扩散模型生成一致的多视图法线图和相应的彩色图像,然后利用新颖的法线融合方法实现快速、高质量的重建。

Wonder3D:用单张图片生成纹理网格_第1张图片

推荐:用 NSDT编辑器 快速搭建可编程3D场景

1、推理准备

首先安装requirements.txt中的软件包。

Linux系统:

conda create -n wonder3d
conda activate wonder3d
pip install -r requirements.txt
pip install git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch

Windows系统:

conda create --name venv_wonder3d -y python=3.8
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
conda install -c "nvidia/label/cuda-11.8.0" cuda-toolkit
pip install fire diffusers==0.19.3 transformers bitsandbytes accelerate gradio rembg segment_anything
pip install einops omegaconf pytorch-lightning==1.9.5 torch_efficient_distloss nerfacc==0.3.3 PyMCubes trimesh
pip install https://download.pytorch.org/whl/cu118/xformers-0.0.22.post4%2Bcu118-cp38-cp38-manylinux2014_x86_64.whl
pip install ninja git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch

然后下载检查点并放入根文件夹中。

2、Wonder3D推理

首先确保你拥有以下模型:

Wonder3D
|-- ckpts
    |-- unet
    |-- scheduler.bin
    ...

接下来预测前景蒙版作为 Alpha 通道。 我们使用 Clipdrop 交互式地分割前景对象。 你还可以使用 rembg 删除背景。

# !pip install rembg
import rembg
result = rembg.remove(result)
result.show()

运行 Wonder3d 来生成多视图一致的法线贴图和彩色图像。 然后可以在文件夹 ./outputs中检查结果。

我们使用 rembg 来去除结果的背景,但分割并不总是完美的。可以考虑使用 Clipdrop 来获取生成的法线贴图和彩色图像的蒙版,因为蒙版的质量将显着影响重建的网格质量。

accelerate launch --config_file 1gpu.yaml test_mvdiffusion_seq.py \
            --config mvdiffusion-joint-ortho-6views.yaml

或者:

bash run_test.sh

最后提取网格:

cd ./instant-nsr-pl
bash run.sh output_folder_path scene_name

我们生成的法线和彩色图像是在正交视图中定义的,因此重建的网格也在正交相机空间中。 如果使用 MeshLab 查看网格,你可以单击“视图”选项卡中的“切换正交相机”。

3、常见问题

生成的视图的仰角和方位角是多少?

答:与Zero123、SyncDreamer和One2345等之前的作品采用对象世界系统不同,我们的视图是在输入图像的相机系统中定义的。 这六个视图位于输入图像的相机系统中具有0仰角的平面内。 因此我们不需要估计输入图像的高程。 六个视图的方位角分别为0、45、90、180、-90、-45。

生成的视图的焦距是多少?

答:我们假设输入图像是由正交相机捕获的,因此生成的视图也在正交空间中。 这种设计使我们的模型能够对非真实图像保持很强的概括性,但有时它可能会受到真实捕获图像的焦距镜头畸变的影响。


原文链接:Wonder3D图片转3D扩散 — BimAnt

你可能感兴趣的:(3d)