[PYTHON] J'ai essayé d'exécuter PIFuHD sur Windows pour le moment

introduction

PIFuHD est sorti de Facebook Research! J'ai décidé d'essayer PIFuHD comme une extension de jouer avec PIFu avant.

Dans cet article, nous décrirons la procédure de la construction de l'environnement à l'exécution de l'exemple préparé sous Windows.

Le grand référentiel PIFuHD est ici (https://github.com/facebookresearch/pifuhd)

Environnement d'exécution

Environnement

Créer un environnement virtuel

(base)$conda create -n pifu python=3.7.0
(base)$conda activate pifu

Installation de la bibliothèque (j'ai utilisé pip, veuillez donc vous y référer et l'installer avec 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

Installez GLUT sur Windows

Cette fois, j'ai installé Free GLUT au lieu du GLUT original. Téléchargez "freeglut-MSVC-3.0.0-2.mp.zip" depuis ici → décompressez et décompressez J'ai copié freeglut.dll situé dans freeglut \ bin \ x64 \ dans C: \ Windows \ System32.

https://tadaoyamaoka.hatenablog.com/entry/2017/02/28/064625

J'ai fait référence à cet article. (Je vous remercie!)

Installation de ffmpeg

https://fukatsu.tech/windows-ffmpeg

J'ai utilisé la procédure de cet article telle quelle. (Je vous remercie!)

Procédure d'exécution

Téléchargement de code

(pifu)$git clone https://github.com/facebookresearch/pifuhd.git
(pifu)$cd pifuhd

Téléchargement du modèle

(pifu)$mkdir checkpoints
(pifu)$cd checkpoints
(pifu)$wget "https://dl.fbaipublicfiles.com/pifuhd/checkpoints/pifuhd.pt" -O pifuhd.pt
(pifu)$cd ..

Si vous n'avez pas wget, téléchargez pifuhd.pt directement depuis ici et stockez-le sous les points de contrôle.

Code de correction

J'ai eu une erreur lors de l'utilisation d'OpenGL dans mon environnement, j'ai donc modifié lib / render / gl / render.py comme suit.

[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)
            #Fixez ici
            # _glut_window = glutCreateWindow("My Render.")
            _glut_window = glutCreateWindow(b"My Render.")

Exécutez la commande demo.sh

(pifu)$python -m apps.simple_test
(pifu)$python -m apps.render_turntable -f ./results/pifuhd_final/recon -ww 512 -hh 512

Lorsque vous exécutez la commande ci-dessus, vous verrez l'animation suivante à l'écran! image.png

De plus, je pense que "result_test_512.mp4" est également affiché sous results / pifuhd_final / recon.

en conclusion

Cette fois, j'ai essayé d'exécuter l'exemple PIFuHD publié par Facebook Research sur Windows. En gros, si vous cochez README.md, vous pouvez facilement l'essayer.

À l'avenir, j'essaierai d'utiliser ma propre image au lieu de l'échantillon préparé. PIFu devait être Sementic-Segmentation, mais dans PIFuHD il semble que les informations de point clé obtenues par Pose-Estimation soient suffisantes. Officiellement, une méthode d'essai utilisant OpenPose a été publiée, mais je pense que tout peut être fait si le format de sortie peut être mis en correspondance avec l'algorithme Pose-Estimation séparément.

Recommended Posts

J'ai essayé d'exécuter PIFuHD sur Windows pour le moment
Exécutez yolov4 "pour le moment" dans Windows
J'ai essayé Python sur Mac pour la première fois.
J'ai essayé python pour la première fois avec heroku
J'ai essayé tensorflow pour la première fois
J'ai joué avec Floydhub pour le moment
J'ai essayé la programmation python pour la première fois.
J'ai essayé Mind Meld pour la première fois
J'ai essayé d'exécuter l'application sur la plateforme IoT "Rimotte"
Essayez d'installer Arch Linux pour le moment.
AI Gaming Je l'ai essayé pour la première fois
Je veux déplacer le sélénium pour le moment [pour mac]
J'ai essayé l'API Google Cloud Vision pour la première fois
J'ai essayé de changer le script python de 2.7.11 à 3.6.0 sur Windows10
Je veux créer un Dockerfile pour le moment.
Je souhaite utiliser l'environnement de bureau d'Ubuntu sur Android pour le moment (version Termux)
Je souhaite utiliser l'environnement de bureau d'Ubuntu sur Android pour le moment (version UserLAnd)
Le programmeur Java a essayé de toucher le langage Go (pour le moment)
Pour le moment, je veux convertir n'importe quel fichier avec ffmpeg !!
J'ai essayé d'exécuter le didacticiel TensorFlow avec des commentaires (_TensorFlow_2_0_Introduction pour les débutants)
[Python] J'ai essayé de remplacer le nom de la fonction par le nom de la fonction
J'ai essayé d'exécuter YOLO v3 avec Google Colab
Pour le moment, importez-les dans jupyter
Faire un histogramme pour le moment (matplotlib)
Utilisez Logger avec Python pour le moment
Essayez d'utiliser LINE Notify pour le moment
Je souhaite utiliser l'environnement de bureau d'Ubuntu même sur Android pour le moment (entrée version japonaise de Termux dans l'environnement de bureau)
Pour le moment en utilisant FastAPI, je veux montrer comment utiliser l'API comme ça dans swagger
virtualenv Pour le moment, c'est tout!
J'ai essayé de jouer avec la calculatrice avec tkinter
J'ai acheté Sipeed Lichee Zero alors je l'ai configuré pour le moment
Retour sur le concours d'apprentissage automatique sur lequel j'ai travaillé pour la première fois
J'ai essayé la détection d'objets avec YOLO v3 (TensorFlow 2.1) sur le GPU de windows!
J'ai essayé d'exécuter pymc
Je pensais que je pouvais créer un bon éditeur gitignore, alors j'ai essayé de faire quelque chose comme MVP pour le moment
J'ai essayé d'exécuter TensorFlow
Ce que je suis entré dans Python pour la première fois
J'ai essayé le tutoriel MNIST de tensorflow pour les débutants.
Mémo de flux pour déplacer LOCUST pour le moment
Exécutez avec CentOS7 + Apache2.4 + Python3.6 pour le moment
Simulation de dynamique moléculaire à essayer pour le moment
Pour la première fois, j'ai découvert Unix (Linux).
À côté d'Excel, le notebook Jupyter pour le moment
J'ai essayé d'installer le noyau Linux sur virtualbox + vagrant
J'ai essayé d'exécuter l'exemple de code du module Ansible
J'essaierai de résumer les liens qui me semblent utiles pour le moment
Jusqu'à ce que vous exécutiez l'application Flask sur Google App Engine pour le moment
Je ne sais pas ce qu'est HEIC. Mais pour le moment, utilisons le PNG!
Premier Kaggle (kaggle ①)
J'ai essayé de porter le code écrit pour TensorFlow sur Theano
J'ai essayé l'algorithme de super résolution "PULSE" dans un environnement Windows
F2py sur Miniconda pour Windows
J'ai essayé de remplacer le disque dur Windows 10 par un SSD plus petit
J'ai essayé d'illustrer le temps et le temps du langage C
J'ai essayé la bibliothèque changefinder!
J'ai essayé d'afficher l'heure et la météo d'aujourd'hui w
Kaguru pour la première fois
Notes diverses sur l'utilisation de python pour les projets