LoginSignup
16
8

More than 3 years have passed since last update.

PIFuHDをWindowsでとりあえず動かしてみた

Last updated at Posted at 2020-06-13

はじめに

FacebookResearchからPIFuHDが公開されていました!以前PIFuを試して遊んでいた延長でPIFuHDも試してみようと思いました。

この記事では、環境構築から用意していただいているサンプルをWindows上で実行するところまでの手順を記載します。

偉大なPIFuHDのリポジトリはこちら

実行環境

  • Windows10 64bit Home
  • 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をインストールする

今回は本家のGLUTではなく、FreeGLUTをインストールしました。
こちらから「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を直接ダウンロードして、checkpoints配下に格納してください。

コードを修正

私の環境だと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

上記コマンドを実行すると、画面上に以下のようなアニメーションが流れるかと思います!
image.png

加えて、results/pifuhd_final/recon配下に「result_test_512.mp4」も出力されていると思います。

おわりに

今回はFacebookResearchから公開されたPIFuHDのサンプルをWindowsで動かしてみました。
基本的にはREADME.mdを確認すれば簡単に試すことができるかと思います。

今後は、用意されたサンプルではなく自分の画像などで試してみようかと思います。
PIFuはSementic-Segmentationする必要がありましたが、PIFuHDではPose-Estimationで得られるキーポイントの情報でよいみたいです。公式ではOpenPoseを使った試し方が公開されていましたが、別にPose-Estimationアルゴリズムで出力形式を合わせられればなんでもよいと思います。

16
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
8