Foire aux questions (FAQ)
Erreurs
| Download Server Down |
Question : Le serveur de téléchargement est en panne, le hachage de téléchargement ne correspond pas, erreur 502 : passerelle incorrecte,... Autrement dit, on ne peux pas télécharger les modèles OpenPose et/ou les bibliothèques tierces.
Réponse : Il existe deux alternatives. Option 1 (recommandée) : téléchargez les liens depuis 1602#issuecomment-641653411 et téléchargez-les aux emplacements indiqués par doc/1_prerequisites.md. Option 2 : si vous avez téléchargé les modèles et les dépendances sur un serveur local, vous pouvez définir la propriété CMake avancée DOWNLOAD_SERVER pour lier OpenPose à votre serveur miroir local à la place.
| Out of Memory Error |
Question : Erreur de mémoire insuffisante - J'obtiens une erreur similaire à : Échec de la vérification : erreur == cudaSuccess (2 vs. 0) mémoire insuffisante.
Réponse : Assurez-vous d'avoir un GPU avec au moins 4 Go de mémoire. Si votre GPU a une capacité comprise entre 2 et 4 Go, les paramètres corps seul devraient convenir, mais vous pouvez également réduire la valeur de l'option --net_resolution si elle ne convient pas (consultez les sections Accélération, Réduction de la mémoire et Benchmark pour connaître les conséquences).
(Uniquement si vous compilez OpenPose vous-même ; ceci ne s'applique pas aux binaires OpenPose portables pour Windows, car ils incluent déjà cuDNN) : Si votre GPU a >= 4 Go de mémoire et que vous rencontrez toujours cette erreur, il est fort probable que cuDNN ne soit pas installé/activé. Le modèle Caffe par défaut utilise > 12 Go de mémoire GPU, cuDNN la réduit à environ 2,2 Go pour BODY_25 (par défaut) et à environ 1,5 Go pour COCO (--model_pose COCO). Notez qu'il vous faut toujours au moins 2,2 Go d'espace libre pour exécuter OpenPose par défaut. Autrement dit, les GPU disposant de seulement 2 Go d'espace libre ne fonctionneront pas avec OpenPose par défaut, et vous devrez soit passer au modèle COCO (plus lent et moins précis), soit réduire la valeur de --net_resolution (plus rapide, mais aussi moins précise).
De plus, les mains et le visage augmentent la mémoire GPU requise, et les GPU de 4 Go peuvent parfois être un peu courts.
| Video/Webcam Not Working |
Question : La vidéo et/ou la webcam ne fonctionnent pas. L'utilisation d'un dossier contenant des images fonctionne, mais pas la vidéo ni la webcam. Remarque : souvent sous Windows.
Réponse : OpenCV rencontre des problèmes avec certains pilotes de caméra et codecs vidéo (surtout sous Windows). Suivez les mêmes étapes que pour la question «La webcam est lente» pour vérifier le fonctionnement de la webcam. Après avoir recompilé OpenCV, vous pouvez également essayer cet exemple OpenCV pour la vidéo.
| Cannot Find OpenPose.dll Error (Windows) |
Question : Erreur «Le système ne trouve pas le fichier spécifié (Openpose.dll)» lors de la tentative de publication. L'utilisation d'un dossier contenant des images fonctionne, mais pas la vidéo et/ou la webcam. Remarque : souvent sous Windows.
Réponse : Visual Studio (VS) et la section doc/installation/0_index.md ne sont utiles que si vous prévoyez de modifier le code OpenPose ou de l'intégrer à une autre bibliothèque ou un autre projet. Si vous souhaitez uniquement utiliser la démo OpenPose, suivez simplement doc/installation/0_index.md#windows-portable-demo et téléchargez les binaires OpenPose dans la section «Versions».
Si vous devez compiler avec Visual Studio (VS), poursuivez votre lecture. Dans cette erreur, VS indique simplement que des erreurs se sont produites lors de la compilation de la bibliothèque OpenPose. Essayez de compiler uniquement la bibliothèque OpenPose (et non la démo) en faisant un clic droit dessus, puis en sélectionnant « Définir comme projet de démarrage », puis en cliquant droit et en générant. Ensuite, en bas à gauche de VS, cliquez sur « Liste d'erreurs ». Vous devriez alors voir les erreurs rencontrées par VS lors de la compilation. VS vous indique ainsi l'erreur exacte afin que vous puissiez la connaître et partager le problème.
Si aucune erreur n'est apparue, définissez OpenPoseDemo comme projet principal et appuyez sur F5 (ou sur le bouton vert de lecture) pour résoudre le problème.
Remarque : la bibliothèque OpenPose n'est pas un exécutable, mais une bibliothèque. Par conséquent, si vous cliquez sur F5 ou sur le bouton vert au lieu de «Générer», vous obtiendrez une erreur similaire à «openpose.dll n'est pas une application Win32 valide».
| Free Invalid Pointer Error |
Question : J'obtiens une erreur du type : munmap_chunk()/free/invalid pointer.
Réponse : Pour exécuter OpenCV 3.X et Caffe simultanément, OpenCV doit être compilé sans WITH_GTK et avec les options WITH_QT. Sous Ubuntu 16.04, le paquet qt5 est « qt5-default » et l'option cmake d'OpenCV est WITH_QT.
| Source Directory does not Contain CMakeLists.txt (Windows) |
Question : J'obtiens une erreur du type : Le répertoire source {chemin d'accès au fichier} ne contient pas de fichier CMakeLists.txt.
Réponse : Vous n'avez peut-être pas accès en écriture à ce dossier. Si vous utilisez Windows, n'essayez pas de l'installer dans Program Files.
| Always Zero People Detected |
Question : Aucune personne détectée et affichée dans les vidéos et images par défaut.
Réponse : Cette réponse suppose qu'aucune personne n'est détectée. Si cela fonctionne parfois dans votre cas, cochez «Toujours zéro personne détectée». Ce problème de «aucune personne détectée» se produit généralement dans deux situations : 1) lorsque vous sélectionnez --num_gpu 0 ; et 2) lorsque le caffemodel n'a pas été correctement téléchargé. Par exemple, si la connexion est interrompue lors du téléchargement des modèles.
Pour le problème 1, définir --num_gpu 0 signifie qu'aucun traitement n'est effectué. Vous pouvez donc utiliser ce paramètre, par exemple, pour enregistrer la webcam. Cette fonctionnalité est conservée pour des raisons de rétrocompatibilité. Vous essayez probablement d'exécuter OpenPose en mode CPU uniquement; pour cela, installez OpenPose en mode CPU uniquement en suivant doc/installation/0_index.md.
Pour le problème 2, essayez les solutions suivantes (dans cet ordre) :
- En supposant que l'OpenPose par défaut (c'est-à-dire le modèle BODY_25) ait échoué, essayez avec les modèles --model_pose COCO et --model_pose MPII. Si l'un d'eux fonctionne, les fichiers caffemodel des autres modèles ont été corrompus lors du téléchargement. Sinon, il s'agit probablement d'un problème Caffe/protobuf.
- Si le modèle est corrompu, supprimez les modèles actuels du dossier model et téléchargez-les manuellement depuis les liens dans doc/installation/0_index.md. Vous pouvez également les supprimer et relancer Cmake. Si cela ne fonctionne pas, essayez de télécharger le modèle COCO_25 depuis votre navigateur en suivant le lien de téléchargement disponible sur Dropbox.
- Si aucun des modèles OpenPose ne fonctionne, assurez-vous que Caffe fonctionne correctement et que vous pouvez exécuter les exemples Caffe avec d'autres fichiers caffemodel/prototxt.
| Very Few People Detected |
Question : Faible taux de détection. Il est possible de détecter une personne sur certaines images (généralement à fort contraste et avec des personnes de grande taille), mais il échouera sur la plupart des images de faible résolution ou avec des personnes de petite taille.
Réponse : Les images de faible résolution ou avec des personnes trop petites ne fonctionneront tout simplement pas très bien. Cependant, la configuration de précision maximale détaillée dans doc/01_demo.md#maximum-accuracy-configuration peut être grandement améliorée.
| Check Failed for ReadProtoFromBinaryFile (Failed to Parse NetParameter File) |
Question : Je rencontre une erreur similaire à : Échec de la vérification : ReadProtoFromBinaryFile(param_file, param) Échec de l'analyse du fichier NetParameter : models/pose/body_25/pose_iter_584000.caffemodel
Réponse : Même réponse que pour «Toujours zéro personne détectée».
| 3D OpenPose Returning Wrong Results: 0, NaN, Infinity, etc. |
Question : 3D OpenPose renvoie des résultats erronés.
Réponse : Dans 99,99 % des cas, cela est dû à un calibrage incorrect ou insuffisant. Répétez le calibrage en vous assurant que l'erreur de reprojection finale est inférieure ou égale à 0,1 pixel.
| Protobuf Clip Param Caffe Error |
Question : Erreur d'exécution similaire à :
|
[libprotobuf ERROR google/protobuf/message_lite.cc:123] Can't parse message of type "caffe.NetParameter" because it is missing required fields: layer[0].clip_param.min, layer[0].clip_param.max F0821 14:26:29.665053 22812 upgrade_proto.cpp:97] Check failed: ReadProtoFromBinaryFile(param_file, param) Failed to parse NetParameter file: models/pose/body_25/pose_iter_584000.caffemodel |
Réponse : Cette erreur a été corrigée dans les dernières versions d'OpenPose. Supprimez complètement OpenPose et retéléchargez la dernière version (nettoyer la compilation ou supprimer le dossier build/ ne suffira pas).
Si vous souhaitez utiliser votre Caffe personnalisé et qu'il affiche cette erreur : cette erreur ne se produit que sur certaines machines Ubuntu. En suivant le code n° 787, compilez votre propre Caffe avec une ancienne version. La méthode la plus simple (rapide mais non recommandée) consiste à suivre le code n° 787#issuecomment-415476837. La méthode la plus élégante (compatible avec les futures versions d'OpenPose) consiste à créer votre propre Caffe indépendamment, en suivant le code doc/installation/0_index.md#custom-caffe-ubuntu-only.
UbuntuLe squelette humain ressemble à des lignes pointillées plutôt qu'à des lignes continues.Question : Lorsque j'utilise la démo pour gérer mes images, les squelettes sont en pointillés. Je souhaite savoir comment les transformer en lignes continues.
Réponse : La raison est que la taille de votre image d'entrée est trop petite. Vous pouvez soit 1) redimensionner manuellement vos images ou 2) utiliser une résolution de sortie plus grande pour qu'OpenPose les redimensionne.
| CUDA_cublas_device_LIBRARY Not Found |
Question : Je rencontre une erreur similaire à la suivante :
|
CMake Error: The following variables are used in this project, but they are set to NOTFOUND. Please set them or make sure they are set and tested correctly in the CMake files: CUDA_cublas_device_LIBRARY (ADVANCED) linked by target "caffe" in directory /home/jakebmalis/Documents/openpose/3rdparty/caffe/src/caffe |
Réponse : Assurez-vous de télécharger et d'installer CMake-GUI en suivant la section doc/1_prerequisites.md. Ce problème est connu avec les versions 3.8 à 3.11 de CMake-GUI (malheureusement, la version par défaut de CMake-GUI sous Ubuntu 18 utilise la version 3.10). Vous aurez besoin d'une version de CMake supérieure ou égale à 3.12.
| CMake-GUI Error While Getting Default Caffe |
Question : Il me semble que CMake-gui ne télécharge pas du tout Caffe. J'ai essayé de tout effacer et de réinstaller OpenPose, mais j'ai reçu la même erreur. J'ai également vérifié si CMake suit correctement les ifs du fichier CMakeLists.txt et atteint les branches où il détermine que Caffe doit être téléchargé, et il me semble que c'est le cas.
Réponse : Il existe deux solutions. Premièrement, si vous utilisiez une ancienne version de l'OP et que vous venez de la mettre à jour, vous devez simplement supprimer complètement le dossier OpenPose, puis retélécharger et recompiler OpenPose. Deuxièmement, et seulement si après avoir cloné master et exécuté CMake-GUI, le dossier 3rdparty/caffe/ reste vide, déclenchez manuellement la mise à jour des sous-modules Git. L'étape de clonage devient donc :
|
git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose cd openpose git submodule init git submodule update |
| Libgomp Out of Memory Error |
Question : Lorsque je démarre OpenPose, je reçois une erreur similaire à celle-ci : libgomp : Mémoire insuffisante pour l'allocation de 9 277 129 370 64 octets.
Réponse : Réinstallez et mettez à niveau CUDA, cuDNN, Python et OpenCV (problème GitHub n° 1160).
| Runtime Error with Turing GPU (Tesla T4) or Volta GPU |
Question : Lorsque je lance OpenPose, je reçois une erreur d'exécution pour les nouvelles architectures GPU.
Réponse : Pour résoudre ce problème, 1) assurez-vous d'utiliser CUDA 10 ou une version ultérieure, et 2) remplacez la ligne 7 du fichier {OPENPOSE_PATH}/3rdparty/caffe/cmake/Cuda.cmake par set(Caffe_known_gpu_archs "30 35 50 52 60 61").
| Obscure CMake Error about Caffe or Pybind |
Question : Des erreurs étranges et obscures apparaissent dans CMake concernant Caffe et/ou Pybind.
Réponse : Consultez doc/installation/0_index.md pour exécuter la commande git submodule, par exemple :
| git submodule update --init --recursive --remote |
Problèmes de performances de vitesse
Accélération, réduction de la mémoire et benchmark
Question : Faible vitesse - OpenPose est assez lent, est-ce normal ? Comment puis-je l'accélérer ?
Réponse : Consultez doc/06_maximizing_openpose_speed.md pour connaître la vitesse approximative de votre carte graphique et obtenir des conseils.
Comment mesurer le temps de latence ?
Question : Comment mesurer/calculer/estimer la latence/le temps de latence ?
Réponse : Profilez la vitesse d'OpenPose. Pour les systèmes mono-GPU ou mono-CPU (utilisez l'option --disable_multi_thread pour simplifier la mesure de la latence dans les systèmes multi-GPU), la latence correspondra approximativement à la somme de toutes les mesures rapportées.
Version du processeur trop lente
Question : La version du processeur est extrêmement lente par rapport à la version du processeur graphique.
Réponse : Consultez la section doc/06_maximizing_openpose_speed.md#cpu-version pour connaître la vitesse approximative et obtenir des conseils.
Profilage de la vitesse et estimation des images par seconde sans affichage
Consultez la section doc/06_maximizing_openpose_speed.md#profiling-speed.
Webcam plus lente que les images
Question : La webcam est lente. L'utilisation d'un dossier contenant des images correspond aux valeurs de référence en termes de FPS, mais la webcam affiche une fréquence d'images inférieure. Remarque : souvent sous Windows.
Réponse : OpenCV rencontre des problèmes avec certains pilotes de caméra (surtout sous Windows). Commencez par compiler OpenCV vous-même, puis recompilez OpenPose (en suivant la section doc/installation/0_index.md#reinstallation). Si la vitesse est toujours plus lente, vous pouvez la déboguer en exécutant un exemple de webcam OpenCV (par exemple, cet exemple en C++). Si vous parvenez à obtenir la fréquence d'images correcte avec la démo OpenCV, mais qu'OpenPose est toujours faible, faites-le nous savoir !
Problèmes de précision
La configuration de précision maximale est-elle possible sur les GPU bas de gamme ?
Question : J'ai lu que cette commande fournit les résultats les plus précis possibles sur Openpose jusqu'à présent : https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/01_demo.md#maximum-accuracy-configuration. Cependant, un GPU de 8 Go (par exemple, 1080 ou 2080) manquera de mémoire. Existe-t-il une méthode pour obtenir la même précision sur un GPU en utilisant moins de mémoire, même au détriment de la vitesse ?
Réponse : Malheureusement non, il n'y a aucun moyen pour le moment. Caffe consomme beaucoup de mémoire pour cela. Vous pouvez essayer avec --scale_number 3 au lieu de 4, en réduisant légèrement la résolution réseau (par exemple, 720 au lieu de 736) et en démarrant l'ordinateur sans interface graphique (ce qui consomme également environ 1 Go de mémoire rien que pour maintenir l'interface graphique).
Autres FAQ
Comment connecter ma caméra IP ?
Question : Comment connecter ma caméra IP au protocole HTTP ?
Réponse : Généralement via http://CamIP:PORT_NO./video?x.mjpeg.
Différences entre BODY_25, COCO et MPI
Le modèle COCO sera supprimé à terme. Le modèle BODY_25 est plus rapide, plus précis et inclut les points clefs du pied. Cependant, COCO nécessite moins de mémoire GPU (il peut s'adapter à des GPU de 2 Go avec les paramètres par défaut) et s'exécute plus rapidement en mode CPU seul. Le modèle MPI est uniquement destiné aux personnes nécessitant la structure MPI-points clés. Il est également plus lent que BODY_25 et beaucoup moins précis.
Principales différences :
- BODY_25 est le plus rapide sur le GPU, le plus précis et celui qui offre le plus grand nombre de points clés (y compris les points clés des pieds !), fortement recommandé. Il utilise également la plus grande quantité de mémoire RAM/GPU.
- COCO est plus rapide que BODY_25 sur le CPU, mais plus lent sur le GPU et moins précis.
- MPI est le plus rapide sur le CPU, mais le moins précis des trois.
Utilisation massive de la RAM
Question : Pendant l'exécution de la démo, l'utilisation du processeur oscille entre 50 et 99 %, mais la RAM est proche de 100 %.
Réponse : Réduire fortement la résolution de l'élément --net_resolution et suivre les conseils des sections « Accélération, Réduction de la mémoire et Benchmark » sont les seuls moyens de réduire l'utilisation de la RAM. Vous pouvez également désactiver USE_MKL dans CMake, ce qui réduira considérablement l'utilisation de la RAM dans la version Caffe, mais pourrait également réduire la vitesse du programme.