Ce référentiel dispose d'une boîte à outils pour télécharger, traiter et visualiser les données Panoptic Studio (Panoptic).
14 mai 2024 : Nous avons construit un serveur miroir chez SNU. Vous pouvez toujours utiliser le serveur CMU d'origine, et si le serveur CMU ne répond pas, vous pouvez utiliser le point de terminaison SNU en ajoutant simplement l'option --snu-endpoint
dans les scripts getData.sh
et getData_kinoptic
.
Suivez ces étapes pour configurer un exemple simple :
git clone https://github.com/CMU-Perceptual-Computing-Lab/panoptic-toolbox cd panoptic-toolbox
Pour télécharger un ensemble de données, nommé « 171204_pose1_sample » dans cet exemple, exécutez le script suivant.
./scripts/getData.sh 171204_pose1_sample
Ce script bash nécessite curl ou wget.
Ce script créera un dossier "./171204_pose1_sample" et téléchargera les fichiers suivants.
171204_pose1_sample/hdVideos/hd_00_XX.mp4 #fichiers vidéo HD synchronisés (31 vues)
171204_pose1_sample/vgaVideos/KINECTNODE%d/vga_XX_XX.mp4 #fichiers vidéo VGA synchronisés (480 vues)
171204_pose1_sample/calibration_171204_pose1_sample.json #fichiers d'étalonnage
171204_pose1_sample/hdPose3d_stage1_coco19.tar #Données de point clé du corps 3D (définition du point clé coco19)
171204_pose1_sample/hdFace3d.tar #Données de points clés du visage 3D
171204_pose1_sample/hdHand3d.tar #Données de points clés de la main 3D
Notez que cet exemple ne contient actuellement pas de vidéos VGA.
Vous pouvez également télécharger toute autre séquence via ce script. Utilisez simplement le nom de la séquence cible : au lieu de "171204_pose1panopticHD". par exemple,
./scripts/getData.sh 171204_pose1
pour la version complète de la séquence 171204_pose1 :. Vous pouvez également spécifier le nombre de vidéospanopticHDnt à télécharger.
./scripts/getData.sh (sequenceName) (VGA_Video_Number) (HD_Video_Number)
Par exemple, la commande suivante téléchargera 240 vidéos VGA et 10 vidéos.
./scripts/getData.sh 171204_pose1_sample 240 10
Notez que nous avons trié l’ordre des caméras VGA afin que vous puissiez télécharger une vue uniformément répartie.
Vous pouvez retrouver la liste des séquences actuellement disponibles dans le lien suivant :
Liste des séquences publiées (ver1.2)
Leur téléchargement (y compris les vidéos) peut prendre beaucoup de temps, mais le téléchargement des fichiers de points clés 3D (corps+visage+main selon leur disponibilité) devrait être « relativement » rapide.
Vous pouvez utiliser le script suivant pour télécharger les séquences actuellement disponibles (ver 1.2) :
./scripts/getDB_panopticHD_ver1_2.sh
Le paramètre par défaut ne télécharge aucune vidéo. N'hésitez pas à remplacer les "vgaVideoNum" et "hdVideoNum" dans le script par d'autres numéros si vous souhaitez également télécharger des vidéos.
Vous pouvez voir les exemples de vidéos et d'autres informations sur chaque séquence : sur notre site Web : Browsing dataset.
Vérifiez la visionneuse 3D dans chaque séquence : page où vous pouvez visualiser des squelettes 3D dans votre navigateur Web. Par exemple : http://domedb.perception.cs.cmu.edu/panopticHDpose1.html
Cette étape nécessite ffmpeg.
./scripts/extractAll.sh 171204_pose1_sample
Cela extraira les images, par exemple 171204_pose1_sample/hdImgs/00_00/00_00_00000000.jpg
, et les données du squelette 3D correspondantes, par exemple 171204_pose1_sample/hdPose3d_stage1_coco19/body3DScene_00000000.json
.
extractAll.sh
est un script simple qui combine l'ensemble de commandes suivant (vous ne devriez pas avoir besoin de les exécuter à nouveau) :
cd171204_pose1_sample ../scripts/vgaImgsExtractor.sh # Fichiers PNG à partir d'une vidéo VGA (25 ips)../scripts/hdImgsExtractor.sh # Fichiers PNG à partir d'une vidéo HD (29,97 ips)tar -xf vgaPose3d_stage1.tar # Extraire les squelettes au framerate VGAtar -xf hdPose3d_stage1.tar # Extraire les squelettes pour HDcd ..
Ces codes nécessitent numpy, matplotlib.
Visualisation des points clés 3D (corps, visage, main) :
cd python jupyter notebook demo_3Dkeypoints_3dview.ipynb
Le résultat devrait ressembler à ceci.
Reprojeter des points clés 3D (corps, visage, main) sur une vue HD sélectionnée :
cd python jupyter notebook demo_3Dkeypoints_reprojection_hd.ipynb
Le résultat devrait ressembler à ceci.
Ces codes nécessitent numpy, matplotlib.
Visualisation des points clés 3D (corps, visage, main) :
cd python jupyter notebook demo_3Dkeypoints_3dview.ipynb
Le résultat devrait ressembler à ceci.
Reprojeter des points clés 3D (corps, visage, main) sur une vue HD sélectionnée :
cd python jupyter notebook demo_3Dkeypoints_reprojection_hd.ipynb
Le résultat devrait ressembler à ceci.
Ces codes nécessitent pyopengl.
Visualisation des points clés 3D (corps, visage, main) :
python glViewer.py
Remarque : le code Matlab est obsolète et ne gère pas les sorties de points clés 3D (corps coco19, visage, main). Veuillez consulter ce code uniquement à titre de référence. Nous mettrons à jour cela plus tard.
Exemple Matlab (obsolète):
>>> cd matlab>>> démo
Nous reconstruisons le squelette 3D de personnes en utilisant la méthode de Joo et al. 2018.
La sortie de chaque image est écrite dans un fichier json. Par exemple,
{ "version": 0.7, "univTime" :53541.542, "fpsType" :"hd_29_97", "bodies" : [ { "id": 0, "joints19": [-19.4528, -146.612, 1.46159, 0.724274, -40.4564, -163.091, -0.521563, 0.575897, -14.9749, -91.0176, 4.24329, 0.361725, -19.2473, -146.679, -16.1136, 0.643555, -14.7958, -118.804, -20.6738, 0.619599, -22.611, -93.8793, -17.7834, 0.557953, -12.3267, -91.5465, -6.55368, 0.353241, -12.6556, -47.0963, -4.83599, 0.455566, -10.8069, -8.31645, -4.20936, 0.501312, -20.2358, -147.348, 19.1843, 0.628022, -13.1145, -120.269, 28.0371, 0.63559, -20.1037, -94.3607, 30.0809, 0.625916, -17.623, -90.4888, 15.0403, 0.327759, -17.3973, -46.9311, 15.9659, 0.419586, -13.1719, -7.60601, 13.4749, 0.519653, -38.7164, -166.851, -3.25917, 0.46228, -28.7043, -167.333, -7.15903, 0.523224, -39.0433, -166.677, 2.55916, 0.395965, -30.0718, -167.264, 8.18371, 0.510041] } ] }
Ici, chaque sujet a les valeurs suivantes.
id : un index de sujet unique dans une séquence :. Les squelettes avec le même identifiant dans le temps représentent des squelettes mobiles temporellement associés (un individu). Cependant, la même personne peut avoir plusieurs identifiants d'articulations19 : 19 emplacements d'articulations 3D, formatés comme [x1,y1,z1,c1,x2,y2,z2,c2,...] où chaque c est un score de confiance articulaire panoptiqueHD.
Les squelettes 3D ont l'ordre des points clés suivant :
0: Neck 1: Nose 2: BodyCenter (center of hips) 3: lShoulder 4: lElbow 5: lWrist, 6: lHip 7: lKnee 8: lAnkle 9: rShoulder 10: rElbow 11: rWrist 12: rHip 13: rKnee 14: rAnkle 15: lEye 16: lEar 17: rEye 18: rEar
Notez que ceci est différent de l’ordre de sortie OpenPose, bien que notre méthode soit basée sur celui-ci.
Notez que nous utilisions un ancien format (nommé mpi15 comme décrit dans notre document obsolète), mais nous n'utilisons plus ce format.
Kinoptic Studio est un sous-système de Panoptic Studio, composé de 10 capteurs Kinect2. Veuillez consulter : README_kinoptic
Vous pouvez télécharger toutes les séquences incluses dans notre 3D PointCloud DB ver.1 en utilisant le script suivant :
./scripts/getDB_ptCloud_ver1.sh
Nous avons publié les données traitées pour la séquence de marchandage. Veuillez consulter le référentiel de traitement du signal social.
L'ensemble de données Panoptic Studio est disponible gratuitement à des fins non commerciales et de recherche uniquement.
En utilisant l'ensemble de données, vous acceptez de citer au moins un des articles suivants.
@inproceedings{Joo_2015_ICCV, author = {Joo, Hanbyul and Liu, Hao and Tan, Lei and Gui, Lin and Nabbe, Bart and Matthews, Iain and Kanade, Takeo and Nobuhara, Shohei and Sheikh, Yaser}, title = {Panoptic Studio: A Massively Multiview System for Social Motion Capture}, booktitle = {ICCV}, year = {2015} } @inproceedings{Joo_2017_TPAMI, title={Panoptic Studio: A Massively Multiview System for Social Interaction Capture}, author={Joo, Hanbyul and Simon, Tomas and Li, Xulong and Liu, Hao and Tan, Lei and Gui, Lin and Banerjee, Sean and Godisart, Timothy Scott and Nabbe, Bart and Matthews, Iain and Kanade, Takeo and Nobuhara, Shohei and Sheikh, Yaser}, journal={IEEE Transactions on Pattern Analysis and Machine Intelligence}, year={2017} } @inproceedings{Simon_2017_CVPR, title={Hand Keypoint Detection in Single Images using Multiview Bootstrapping}, author={Simon, Tomas and Joo, Hanbyul and Sheikh, Yaser}, journal={CVPR}, year={2017} } @inproceedings{joo2019ssp, title={Towards Social Artificial Intelligence: Nonverbal Social Signal Prediction in A Triadic Interaction}, author={Joo, Hanbyul and Simon, Tomas and Cikara, Mina and Sheikh, Yaser}, booktitle={CVPR}, year={2019} }