教你如何从照片转成3D模型,真神了,可以安装到windows。
介绍
Facebook Research发布了PIFuHD!我决定尝试将PIFuHD作为PIFu的扩展。
在本文中,我们将描述从构建环境到运行Windows上准备的示例的过程。
单击此处查看出色的PIFuHD存储库:
https://github.com/facebookresearch/pifuhd
执行环境
Windows10 64bit
Anaconda3
RTX2080Ti
CUDA 10.1
环境构筑
创建虚拟环境
(base)$conda create -n pifu python=3.7.0
(base)$conda activate pifu
安装库(我使用的是pip,因此请使用conda install来指代此...)
(pifu)$conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
(pifu)$pip install pillow==6.0.0 scikit-image tqdm opencv-python trimesh
(pifu)$conda install pyopengl
在Windows上安装GLUT
这次,我安装了FreeGLUT而不是原始的GLUT。我从
此处下载“ freeglut-MSVC-3.0.0-2.mp.zip”→解压缩并将freeglut \ bin \ x64 \中的freeglut.dll复制到C:\ Windows \ System32。
https://tadaoyamaoka.hatenablog.com/entry/2017/02/28/064625
我已经提到了这篇文章。(谢谢!)
ffmpeg安装
https://fukatsu.tech/windows-ffmpeg
我照原样使用了本文的过程。(谢谢!)
执行程序
代码下载
(pifu)$git clone https://github.com/facebookresearch/pifuhd.git
(pifu)$cd pifuhd
下载型号
(pifu)$mkdir checkpoints
(pifu)$cd checkpoints
(pifu)$wget "https://dl.fbaipublicfiles.com/pifuhd/checkpoints/pifuhd.pt" -O pifuhd.pt
(pifu)$cd ..
如果没有wget,请直接从此处下载pifuhd.pt并将其存储在检查点下。
修正码
在我的环境中,使用OpenGL时出现错误,因此我如下修改了lib / render / gl / render.py。
[render.py]
class Render:
def __init__(self, width=1600, height=1200, name='GL Renderer',
program_files=['simple.fs', 'simple.vs'], color_size=1, ms_rate=1):
self.width = width
self.height = height
self.name = name
self.display_mode = GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH
self.use_inverse_depth = False
global _glut_window
if _glut_window is None:
glutInit()
glutInitDisplayMode(self.display_mode)
glutInitWindowSize(self.width, self.height)
glutInitWindowPosition(0, 0)
# ここを修正
# _glut_window = glutCreateWindow("My Render.")
_glut_window = glutCreateWindow(b"My Render.")
运行demo.sh命令
(pifu)$ python -m apps.simple_test
(pifu)$ python -m apps.render_turntable -f ./results/pifuhd_final/recon -ww 512 -hh 512
当执行上述命令时,您将在屏幕上看到以下动画!

另外,我认为在results / pifuhd_final / recon下也会输出“ result_test_512.mp4”。
结论
这次,我尝试在Windows上运行从Facebook Research发布的PIFuHD示例。
基本上,我认为您可以通过检查README.md轻松地进行尝试。
将来,我想尝试使用您自己的图像而不是准备好的样本。
PIFu必须是Sementic-Segmentation,但在PIFuHD中,似乎可以通过Pose-Estimation获得关键点信息。正式发布了使用OpenPose进行试用的方法,但是我认为如果输出格式可以分别与Pose-Estimation算法匹配就可以了。