Section courante

A propos

Section administrative du site

Les premiers pas

Sous Ubuntu, Mac et autres systèmes Unix, utilisez Terminal ou Terminator. Sous Windows, utilisez Windows PowerShell. Regardez un tutoriel vidéo YouTube si vous ne connaissez pas ces outils. Assurez-vous d'être à la racine du projet avant d'exécuter une commande (c'est-à-dire dans le dossier OpenPose, et non dans build/, windows/ ou bin/). De plus, les fichiers examples/media/video.avi et examples/media existent ; il n'est donc pas nécessaire de modifier la moindre ligne de code.

Testez OpenPose en exécutant la commande suivante. Le résultat visuel attendu devrait ressembler à ceci : doc/02_output.md#ui-and-visual-output.

# Ubuntu et Mac
./build/examples/openpose/openpose.bin --vidéo examples/media/video.avi

:: Windows - Démo de portable
bin\OpenPoseDemo.exe --video examples/media/video.avi

Si vous utilisez uniquement la démo OpenPose, nous vous recommandons vivement d'utiliser la dernière version portable Windows d'OpenPose. Si vous souhaitez néanmoins utiliser la démo avec Visual Studio, vous pouvez copier les fichiers bin/*.dll dans l'emplacement bin final de la DLL, à l'adresse doc/installation/0_index.md#windows, ou simplement modifier les valeurs par défaut des indicateurs depuis include/flags.hpp. Une fois les DLL copiées, exécutez la commande suivante :

:: Windows - Bibliothèque - En supposant que vous ayez copié les DLL suivantes doc/installation/0_index.md#windows
build\x64\Release\OpenPoseDemo.exe --video examples/media/video.avi

Si cela fonctionne, passez à la section suivante. Sinon :

Exécution sur des images, des vidéos ou une webcam :

Visage et mains

Ajoutez simplement --face et/ou --hand à n'importe quelle commande :

# Ubuntu et Mac
./build/examples/openpose/openpose.bin --image_dir examples/media/ --face --hand
./build/examples/openpose/openpose.bin --video examples/media/video.avi --face --hand
./build/examples/openpose/openpose.bin --face --hand

:: Windows - Portable Demo
bin\OpenPoseDemo.exe --image_dir examples/media/ --face --hand
bin\OpenPoseDemo.exe --video examples/media/video.avi --face --hand
bin\OpenPoseDemo.exe --face --hand

Différents formats de sortie (JSON, images, vidéo, interface utilisateur)

Toutes les options de sortie sont complémentaires. Par exemple, l'affichage des images avec les squelettes sur l'interface utilisateur (ou non) dépend de leur enregistrement sur disque (ou non).

Enregistrez les squelettes dans un ensemble de fichiers JSON avec l'option --write_json {OUTPUT_JSON_PATH}.

# Ubuntu et Mac (mêmes drapeaux pour Windows)
./build/examples/openpose/openpose.bin --image_dir examples/media/ --write_json output_jsons/
./build/examples/openpose/openpose.bin --video examples/media/video.avi --write_json output_jsons/
./build/examples/openpose/openpose.bin --write_json output_jsons/

Enregistrez sur le disque la sortie visuelle d'OpenPose (les images avec les squelettes superposés) sous forme de vidéo de sortie (--write_video {OUTPUT_VIDEO_PATH}) ou d'ensemble d'images (--write_images {OUTPUT_IMAGE_DIRECTORY_PATH}).

# Ubuntu et Mac (mêmes drapeaux pour Windows)
./build/examples/openpose/openpose.bin --video examples/media/video.avi --write_video output/result.avi
./build/examples/openpose/openpose.bin --image_dir examples/media/ --write_video output/result.avi
./build/examples/openpose/openpose.bin --video examples/media/video.avi --write_images output_images/
./build/examples/openpose/openpose.bin --video examples/media/video.avi --write_images output_images/ --write_images_format jpg
./build/examples/openpose/openpose.bin --image_dir examples/media/ --write_images output_images/
./build/examples/openpose/openpose.bin --image_dir examples/media/ --write_images output_images/ --write_images_format jpg

Vous pouvez également désactiver la visualisation de l'interface utilisateur avec --display 0. Cependant, une sortie doit être générée. Par exemple, définissez l'une des options suivantes : --write_json, --write_video ou --write_images si --display 0 est défini.

# Ubuntu et Mac (mêmes drapeaux pour Windows) ./build/examples/openpose/openpose.bin --video examples/media/video.avi --write_images output_images/ --display 0

Pour accélérer encore plus OpenPose lors de l'utilisation de --display 0, ajoutez également --render_pose 0 si vous n'utilisez pas --write_video ou --write_images (afin qu'OpenPose ne superpose pas les squelettes avec les images d'entrée).

# Ubuntu et Mac (mêmes drapeaux pour Windows) ./build/examples/openpose/openpose.bin --video examples/media/video.avi --write_json output_jsons/ --display 0 --render_pose 0

Squelette seul sans image d'arrière-plan

Vous pouvez également visualiser/enregistrer le squelette sans superposition ni fusion de l'image d'origine en ajoutant --disable_blending :

# Ubuntu et Mac (mêmes drapeaux pour Windows)
# Corps seul
./build/examples/openpose/openpose.bin --video examples/media/video.avi --disable_blending

Tous les GPU ne sont pas utilisés

Par défaut, OpenPose utilise tous les GPU disponibles sur votre machine. Sinon, l'option --num_gpu définit le nombre total de GPU et l'option --num_gpu_start le premier GPU à utiliser. Par exemple, l'option --num_gpu 2 et l'option --num_gpu_start 1 utilisent les GPU ID 1 et 2, tout en ignorant l'ID 0 (en supposant qu'il y ait au moins 3 GPU) :

:: Windows - Portable Demo (même drapeaux pour Ubuntu et Mac)
bin\OpenPoseDemo.exe --video examples/media/video.avi --num_gpu 2 --num_gpu_start 1

Configuration de précision maximale

Cette commande fournit les résultats les plus précis que nous ayons pu obtenir pour la détection des points clés du corps, des mains et du visage.

# Ubuntu et Mac: Corps
./build/examples/openpose/openpose.bin --net_resolution "1312x736" --scale_number 4 --scale_gap 0.25
# Ubuntu and Mac: Body + Hand + Face
./build/examples/openpose/openpose.bin --net_resolution "1312x736" --scale_number 4 --scale_gap 0.25 --hand --hand_scale_number 6 --hand_scale_range 0.4 --face

:: Windows - Portable Demo: Corps
bin\OpenPoseDemo.exe --net_resolution "1312x736" --scale_number 4 --scale_gap 0.25
:: Windows - Portable Demo: Body + Hand + Face
bin\OpenPoseDemo.exe --net_resolution "1312x736" --scale_number 4 --scale_gap 0.25 --hand --hand_scale_number 6 --hand_scale_range 0.4 --face

Requis :

Modèle supplémentaire avec précision maximale

Avertissement : Ce modèle est plus précis, mais aussi plus lent, nécessite davantage de mémoire GPU et doit utiliser la version GPU Nvidia.

Nos chiffres de précision sur papier ne correspondent pas aux chiffres de modèle par défaut. Nous avons publié notre meilleur modèle à l'époque, mais nous en avons trouvé de meilleurs par la suite.

Pour notre meilleur modèle, vous pouvez télécharger le modèle pré-entraîné BODY_25B depuis le référentiel d'entraînement OpenPose : Modèle BODY_25B - Option 1 (Précision maximale, vitesse réduite).

Modèle supplémentaire avec moins de faux positifs

Avertissement : La version GPU Nvidia est requise.

Vous avez besoin d'un modèle avec moins de faux positifs, mais avec les mêmes performances d'exécution et les mêmes exigences GPU ? Vous pouvez télécharger le modèle pré-entraîné BODY_25B depuis le référentiel d'entraînement OpenPose : Modèle BODY_25B - Option 2 (recommandé).

Reconstruction 3D

Suivi

Accélération considérable du temps d'exécution grâce à une réduction de la précision :

:: Windows - Démo portable (mêmes options pour Ubuntu et Mac)
# Utilisation d'OpenPose : 1 image, suivi des suivantes, par exemple : 5 images
bin\OpenPoseDemo.exe --tracking 5 --number_people_max 1

Accélération de l'exécution tout en conservant la majeure partie de la précision :

:: Windows - Démo portable (mêmes drapeaux pour Ubuntu et Mac)
# Utilisation d'OpenPose 1 image et suivi d'une autre image
bin\OpenPoseDemo.exe --tracking 1 --number_people_max 1

Douceur visuelle :

:: Windows - Démo portable (mêmes drapeaux pour Ubuntu et Mac)
# Exécution simultanée d'OpenPose et du suivi sur chaque image. Remarque : aucune accélération ni ralentissement.
bin\OpenPoseDemo.exe --tracking 0 --number_people_max 1

Kinect 2.0 comme webcam sous Windows 10

Depuis l'anniversaire de Windows 10, Kinect 2.0 peut être utilisé comme une webcam classique. Il suffit d'aller dans le Gestionnaire de périphériques, de développer l'onglet «Périphériques du capteur Kinect», de faire un clic droit et de mettre à jour le pilote de l'interface WDF KinectSensor. Si vous possédez déjà une autre webcam, déconnectez-la ou utilisez la commande --camera 2.

Indicateurs principaux

Voici les indicateurs les plus courants, mais consultez doc/advanced/demo_advanced.md pour en obtenir la liste complète et une description.

Démarrage rapide avancé

Pour en savoir plus sur les nombreux autres indicateurs, consultez doc/advanced/demo_advanced.md.

Résolution de bogues

Amélioration de la mémoire et de la vitesse, mais diminution de la précision.

Si votre GPU Nvidia ne manque pas de mémoire pendant l'exécution, ignorez cette étape !

Utilisez net_resolution à vos risques et périls : si votre GPU manque de mémoire ou si vous n'avez pas de GPU Nvidia, vous pouvez réduire la valeur de --net_resolution pour améliorer la vitesse et réduire les besoins en mémoire, mais cela réduira également considérablement la précision ! Plus la résolution est basse, moins la précision est élevée, mais la vitesse et la mémoire sont meilleures.

# Ubuntu et Mac
./build/examples/openpose/openpose.bin --video examples/media/video.avi --net_resolution -1x320
./build/examples/openpose/openpose.bin --video examples/media/video.avi --net_resolution -1x256
./build/examples/openpose/openpose.bin --video examples/media/video.avi --net_resolution -1x196
./build/examples/openpose/openpose.bin --video examples/media/video.avi --net_resolution -1x128

:: Windows - Portable Demo
bin\OpenPoseDemo.exe --video examples/media/video.avi --net_resolution -1x320
bin\OpenPoseDemo.exe --video examples/media/video.avi --net_resolution -1x256
bin\OpenPoseDemo.exe --video examples/media/video.avi --net_resolution -1x196
bin\OpenPoseDemo.exe --video examples/media/video.avi --net_resolution -1x128

Remarques supplémentaires :

Étape supplémentaire pour Mac OS X

Si vous n'utilisez pas de Mac ou un Mac avec processeur uniquement, vous pouvez ignorer cette section.

Si vous utilisez un Mac avec la prise en charge OpenCL sélectionnée et une carte graphique AMD, cela signifie que votre machine possède deux GPU incompatibles (AMD et Intel). Vous devrez alors sélectionner manuellement l'un d'eux (celui d'AMD étant plus puissant). Pour cela, vérifiez d'abord sur quel périphérique votre carte graphique est configurée. Il s'agira probablement du périphérique AMD numéro 2.

clinfo

Pour toute commande OpenPose que vous exécutez, ajoutez les 2 indicateurs suivants pour utiliser votre carte AMD pour l'accélération (où num_gpu_start doit être le numéro d'identification indiqué ci-dessus).

./build/examples/openpose/openpose.bin --num_gpu 1 --num_gpu_start 2

Si vous n'avez qu'une carte graphique Intel intégrée, il s'agira très probablement de l'appareil 1. Ensuite, ajoutez toujours les 2 indicateurs suivants pour utiliser votre carte AMD pour l'accélération.

./build/examples/openpose/openpose.bin --num_gpu 1 --num_gpu_start 1



Dernière mise à jour : Vendredi, le 25 juillet 2025