Section courante

A propos

Section administrative du site

La sortie

L'interface utilisateur doit afficher l'image originale avec les poses mélangées.

Cartographie JSON-UI

Le résultat des fichiers JSON est constitué d'un ensemble de points clefs, dont l'ordre est lié au résultat de l'interface utilisateur comme suit :

Format de sortie JSON

Il existe deux options pour enregistrer la sortie OpenPose. Toutes deux respectent l'ordre des points clefs décrit dans la section «Ordre des points clefs en C++/Python» (à lire ensuite).

L'option --write_json enregistre les données de pose des personnes dans des fichiers JSON. Chaque fichier représente une image et contient un tableau d'objets, chaque objet contenant :

(Détails de bas niveau) Si vous souhaitez modifier ce format de fichier (par exemple, le nom du fichier de sortie), vous pouvez vérifier et/ou modifier peopleJsonSaver.cpp.

Points clés en C++/Python

Ordre des points clés en C++/Python

L'ordre de cartographie des parties du corps de tout modèle de corps (par exemple, BODY_25, COCO, MPI) peut être extrait des API C++ et Python.

En C++, getPoseBodyPartMapping(const PoseModel poseModel) est disponible dans poseParameters.hpp :

  1. // Appel C++ API
  2. #include <openpose/pose/poseParameters.hpp>
  3. const auto& poseBodyPartMappingBody25 = getPoseBodyPartMapping(PoseModel::BODY_25);
  4. const auto& poseBodyPartMappingCoco = getPoseBodyPartMapping(PoseModel::COCO_18);
  5. const auto& poseBodyPartMappingMpi = getPoseBodyPartMapping(PoseModel::MPI_15);
  6. const auto& poseBodyPartMappingBody25B = getPoseBodyPartMapping(PoseModel::BODY_25B);
  7. const auto& poseBodyPartMappingBody135 = getPoseBodyPartMapping(PoseModel::BODY_135);
  8.  
  9. // Résultat pour BODY_25 (25 parties du corps composées de COCO + pied)
  10. // const std::map<unsigned int, std::string> POSE_BODY_25_BODY_PARTS {
  11. //     {0,  "Nose"},
  12. //     {1,  "Neck"},
  13. //     {2,  "RShoulder"},
  14. //     {3,  "RElbow"},
  15. //     {4,  "RWrist"},
  16. //     {5,  "LShoulder"},
  17. //     {6,  "LElbow"},
  18. //     {7,  "LWrist"},
  19. //     {8,  "MidHip"},
  20. //     {9,  "RHip"},
  21. //     {10, "RKnee"},
  22. //     {11, "RAnkle"},
  23. //     {12, "LHip"},
  24. //     {13, "LKnee"},
  25. //     {14, "LAnkle"},
  26. //     {15, "REye"},
  27. //     {16, "LEye"},
  28. //     {17, "REar"},
  29. //     {18, "LEar"},
  30. //     {19, "LBigToe"},
  31. //     {20, "LSmallToe"},
  32. //     {21, "LHeel"},
  33. //     {22, "RBigToe"},
  34. //     {23, "RSmallToe"},
  35. //     {24, "RHeel"},
  36. //     {25, "Background"}
  37. // };

Vous pouvez également les vérifier sur Python :

  1. poseModel = op.PoseModel.BODY_25
  2. print(op.getPoseBodyPartMapping(poseModel))
  3. print(op.getPoseNumberBodyParts(poseModel))
  4. print(op.getPosePartPairs(poseModel))
  5. print(op.getPoseMapIndex(poseModel))

Format des points clefs dans Datum (Avancé)

Cette section est réservée aux utilisateurs expérimentés prévoyant d'utiliser l'API C++. Elle n'est pas nécessaire pour la démonstration OpenPose et/ou l'API Python.

La classe Datum contient trois éléments Array<float> de points clés différents :

Lecture des résultats enregistrés

Nous utilisons les formats standards (JSON, PNG, JPG,...) pour enregistrer nos résultats. Il existe donc de nombreuses bibliothèques open source permettant de les lire dans la plupart des langages de programmation (notamment Python). Pour C++, vous pouvez consulter include/openpose/filestream/fileStream.hpp. En particulier, loadData (pour les fichiers JSON, XML et YML) et loadImage (pour les formats d'image tels que PNG ou JPG) pour charger les données au format cv::Mat.

Avancé

Format de sortie de la matrice de caméra

Si vous devez utiliser les modules d'étalonnage de la caméra ou 3D, le format de sortie de la matrice de caméra est détaillé dans doc/advanced/calibration_module.md#camera-matrix-output-format.

Cartes thermiques

Si vous devez utiliser des cartes thermiques, consultez doc/advanced/heatmap_output.md.



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