




Ce dépôt est une mise en œuvre officielle Pytorch de l'approche de haut en bas de la distance de la caméra pour l'estimation de la pose multi-personnes 3D à partir d'une seule image RVB (ICCV 2019) . Il contient une partie posénet .
Ce que ce repo fournit:
Ce code est testé sous Ubuntu 16.04, CUDA 9.0, CUDNN 7.1 avec deux GPU NVIDIA 1080TI.
La version Python 3.6.5 avec Anaconda 3 est utilisée pour le développement.
Vous pouvez essayer une démo rapide dans un dossier demo .
input.jpg et l'instantané pré-formé dans le dossier demo .bbox_list ici.root_depth_list ici.python demo.py --gpu 0 --test_epoch 24 Si vous souhaitez fonctionner sur GPU 0.output_pose_2d.jpg et nouvelle fenêtre qui affiche la pose 3D. Le ${POSE_ROOT} est décrit comme ci-dessous.
${POSE_ROOT}
|-- data
|-- demo
|-- common
|-- main
|-- tool
|-- vis
`-- output
data contient des codes de chargement de données et des liens souples vers des images et des répertoires d'annotations.demo contient des codes de démonstration.common contient des codes de noyau pour le système d'estimation de la pose multi-personnes 3D.main contient des codes de haut niveau pour la formation ou le test du réseau.tool contient des codes de prétraitement des données. Vous n'avez pas à exécuter ce code. Je fournis des données prétraitées ci-dessous.vis contient des scripts pour la visualisation 3D.output contient du journal, des modèles formés, des sorties visualisées et un résultat de test. Vous devez suivre la structure du répertoire des data comme ci-dessous.
${POSE_ROOT}
|-- data
| |-- Human36M
| | |-- bbox_root
| | | |-- bbox_root_human36m_output.json
| | |-- images
| | |-- annotations
| |-- MPII
| | |-- images
| | |-- annotations
| |-- MSCOCO
| | |-- bbox_root
| | | |-- bbox_root_coco_output.json
| | |-- images
| | | |-- train2017
| | | |-- val2017
| | |-- annotations
| |-- MuCo
| | |-- data
| | | |-- augmented_set
| | | |-- unaugmented_set
| | | |-- MuCo-3DHP.json
| |-- MuPoTS
| | |-- bbox_root
| | | |-- bbox_mupots_output.json
| | |-- data
| | | |-- MultiPersonTestSet
| | | |-- MuPoTS-3D.json
Pour télécharger plusieurs fichiers à partir de Google Drive sans les compresser, essayez ceci. Si vous avez un problème avec le problème de la «limite de téléchargement» lorsque vous avez essayé de télécharger un ensemble de données à partir du lien Google Drive, veuillez essayer cette astuce.
* Go the shared folder, which contains files you want to copy to your drive
* Select all the files you want to copy
* In the upper right corner click on three vertical dots and select “make a copy”
* Then, the file is copied to your personal google drive account. You can download it from your personal account.
Vous devez suivre la structure du répertoire du dossier output comme ci-dessous.
${POSE_ROOT}
|-- output
|-- |-- log
|-- |-- model_dump
|-- |-- result
`-- |-- vis
output en tant que formulaire de liaison souple est recommandée au lieu du formulaire de dossier car elle prendrait une grande capacité de stockage.log contient un fichier journal de formation.model_dump contient des points de contrôle enregistrés pour chaque époque.result contient des fichiers d'estimation finaux générés à l'étape de test.vis contient des résultats visualisés.$DB_NAME_img_name.py pour obtenir des noms de fichiers image au format .txt .preds_2d_kpt_$DB_NAME.mat , preds_3d_kpt_$DB_NAME.mat ) dans un dossier single ou multi .draw_3Dpose_$DB_NAME.m main/config.py , vous pouvez modifier les paramètres du modèle, y compris l'ensemble de données à utiliser, l'éclairage réseau et la taille d'entrée, etc. Dans le dossier main , courez
python train.py --gpu 0-1Pour former le réseau sur le GPU 0,1.
Si vous voulez continuer l'expérience, courez
python train.py --gpu 0-1 --continue --gpu 0,1 peut être utilisé à la place de --gpu 0-1 .
Placer le modèle formé sur la output/model_dump/ .
Dans le dossier main , courez
python test.py --gpu 0-1 --test_epoch 20 Pour tester le réseau sur le GPU 0,1 avec le 20e modèle élaboré par l'époque. --gpu 0,1 peut être utilisé à la place de --gpu 0-1 .
Ici, je signale les performances du Posenet.
Pour l'évaluation, vous pouvez exécuter test.py ou il existe des codes d'évaluation dans Human36M .

Pour l'évaluation, vous pouvez exécuter test.py ou il existe des codes d'évaluation dans Human36M .

Pour l'évaluation, exécutez test.py Après cela, déplacez data/MuPoTS/mpii_mupots_multiperson_eval.m dans data/MuPoTS/data . Aussi, déplacez les fichiers de résultats de test ( preds_2d_kpt_mupots.mat et preds_3d_kpt_mupots.mat ) dans data/MuPoTS/data . Exécutez ensuite mpii_mupots_multiperson_eval.m avec vos arguments en mode d'évaluation.

Nous fournissons également des coordonnées de racine humaine 3D estimées dans l'ensemble de données MSCOCO. Les coordonnées sont dans le système de coordonnées de la caméra 3D, et les focales sont définies sur 1500 mm pour l'axe x et y. Vous pouvez modifier la distance focale et la distance correspondante en utilisant l'équation 2 ou l'équation dans le matériel supplémentaire de mon papier.
@InProceedings{Moon_2019_ICCV_3DMPPE,
author = {Moon, Gyeongsik and Chang, Juyong and Lee, Kyoung Mu},
title = {Camera Distance-aware Top-down Approach for 3D Multi-person Pose Estimation from a Single RGB Image},
booktitle = {The IEEE Conference on International Conference on Computer Vision (ICCV)},
year = {2019}
}