基于ModelArts实现Convmesh 2D图生成3D网格
Convolutional Generation of Textured 3D Meshes
论文地址:https://arxiv.org/pdf/2006.07660.pdf
在海量图像的驱动下,基于GAN的图像生成模型已经可以获得十分逼真的生成效果,在控制生成图像内容方面,也取得了许多研究进展。由于自然图像是3D物体的2D投影,对于图像中物体的位置、朝向等属性,从3D物体中进行控制相比图像级别的控制有着天然的优势,因此,生成3D物体成为计算机视觉中新的研究方向。现有的3D物体生成的研究中,大多需要3D监督或不同视角下的2D监督,只能使用合成数据或专门制作的多视角数据集,相比海量的单视角自然图像,这类数据的多样性明显不足,使用这类数据训练的模型生成效果并不理想。
该论文提出了一种易于使用2D卷积进行生成的mesh表示方式——位移图(displacement map),基于位移图,实现了以单视角2D自然图像为监督,训练带有纹理(texture)的mesh生成模型。
注意事项:
使用框架**:** PyTorch1.4.0
使用硬件**:** 8 vCPU + 64 GiB + 1 x Tesla V100-PCIE-32GB
运行代码方法**:** 点击本页面顶部菜单栏的三角形运行按钮或按Ctrl+Enter键 运行每个方块中的代码
JupyterLab的详细用法**:** 请参考《ModelAtrs JupyterLab使用指导》
碰到问题的解决办法**:** 请参考《ModelAtrs JupyterLab常见问题解决办法》
1.下载代码和数据集
运行下面代码,进行数据和代码的下载和解压缩
使用CUB-200-2011数据集,数据位于convmesh/datasets/cub/CUB_200_2011中
import os
# 数据代码下载
!wget https://obs-aigallery-zc.obs.cn-north-4.myhuaweicloud.com/algorithm/convmesh.zip
# 解压缩
os.system('unzip convmesh.zip -d ./')
os.chdir('./convmesh/')
2.训练
2.1安装依赖库
kaolin编译安装,https://github.com/NVIDIAGameWorks/kaolin/tree/e7e513173bd4159ae45be6b3e156a3ad156a3eb9
耐心等待,需要一些时间
import os
!pip install -r requirements.txt
!pip install scipy==1.4.1
!cd kaolin&&python setup.py install
!pip install --no-dependencies nuscenes-devkit opencv-python-headless scikit-learn joblib pyquaternion cachetools
!pip install packaging
2.2 开始训练
!python run_generation.py --name cub_512x512_class --conditional_class --dataset cub --gpu_ids 0 --batch_size 8 --epochs 1
3.测试
查看convmesh/output/文件夹,可以看到预测结果
! python run_generation.py --name pretrained_cub_512x512_class --conditional_class --dataset cub --gpu_ids 0 --batch_size 16 --export_sample
展示测试结果
这里只展示2D图,可以自己下载到本地用3D查看器看生成的3d网格
import matplotlib.pyplot as plt
img = plt.imread('./output/pretrained_cub_512x512_class.png')
plt.imshow(img)
plt.show()
- 点赞
- 收藏
- 关注作者
评论(0)