基于ModelArts实现Convmesh 2D图生成3D网格

举报
HWCloudAI 发表于 2022/12/26 10:26:02 2022/12/26
【摘要】 Convolutional Generation of Textured 3D Meshes论文地址:https://arxiv.org/pdf/2006.07660.pdf在海量图像的驱动下,基于GAN的图像生成模型已经可以获得十分逼真的生成效果,在控制生成图像内容方面,也取得了许多研究进展。由于自然图像是3D物体的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()

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。