Dieses Repository verfügt über eine Toolbox zum Herunterladen, Verarbeiten und Visualisieren der Panoptic Studio-Daten (Panoptic).
14. Mai 2024: Wir haben an der SNU einen Spiegelserver aufgebaut. Sie können weiterhin den ursprünglichen CMU-Server verwenden. Wenn der CMU-Server nicht antwortet, können Sie den SNU-Endpunkt verwenden, indem Sie einfach die Option --snu-endpoint
in den Skripten getData.sh
und getData_kinoptic
hinzufügen.
Befolgen Sie diese Schritte, um ein einfaches Beispiel einzurichten:
git clone https://github.com/CMU-Perceptual-Computing-Lab/panoptic-toolbox cd panoptic-toolbox
Um einen Datensatz mit dem Namen „171204_pose1_sample“ in diesem Beispiel herunterzuladen, führen Sie das folgende Skript aus.
./scripts/getData.sh 171204_pose1_sample
Dieses Bash-Skript erfordert Curl oder Wget.
Dieses Skript erstellt einen Ordner „./171204_pose1_sample“ und lädt die folgenden Dateien herunter.
171204_pose1_sample/hdVideos/hd_00_XX.mp4 #synchronisierte HD-Videodateien (31 Aufrufe)
171204_pose1_sample/vgaVideos/KINECTNODE%d/vga_XX_XX.mp4 #synchronisierte VGA-Videodateien (480 Aufrufe)
171204_pose1_sample/kalibration_171204_pose1_sample.json #Kalibrierungsdateien
171204_pose1_sample/hdPose3d_stage1_coco19.tar #3D-Körper-Schlüsselpunktdaten (coco19-Schlüsselpunktdefinition)
171204_pose1_sample/hdFace3d.tar #3D-Gesichtsschlüsselpunktdaten
171204_pose1_sample/hdHand3d.tar #3D-Hand-Schlüsselpunktdaten
Beachten Sie, dass dieses Beispielbeispiel derzeit keine VGA-Videos enthält.
Sie können über dieses Skript auch jede andere Sequenz herunterladen. Verwenden Sie einfach den Namen der Zielsequenz: anstelle von „171204_pose1panopticHD“. r Beispiel,
./scripts/getData.sh 171204_pose1
für die Vollversion der Sequenz 171204_pose1:. Sie können auch die Anzahl der herunterzuladenden VideospanopticHDnts angeben.
./scripts/getData.sh (sequenceName) (VGA_Video_Number) (HD_Video_Number)
Mit dem folgenden Befehl werden beispielsweise 240 VGA-Videos und 10 Videos heruntergeladen.
./scripts/getData.sh 171204_pose1_sample 240 10
Beachten Sie, dass wir die Reihenfolge der VGA-Kameras so sortiert haben, dass Sie eine gleichmäßig verteilte Ansicht erhalten.
Die Liste der aktuell verfügbaren Sequenzen finden Sie unter folgendem Link:
Liste der veröffentlichten Sequenzen (Version 1.2)
Das Herunterladen aller Dateien (einschließlich Videos) kann lange dauern, aber das Herunterladen der 3D-Schlüsselpunktdateien (Körper+Gesicht+Hand, sofern verfügbar) sollte „relativ“ schnell gehen.
Sie können das folgende Skript verwenden, um aktuell verfügbare Sequenzen herunterzuladen (Version 1.2):
./scripts/getDB_panopticHD_ver1_2.sh
Die Standardeinstellung ist, dass keine Videos heruntergeladen werden. Ändern Sie gerne die „vgaVideoNum“ und „hdVideoNum“ im Skript in andere Zahlen, wenn Sie auch Videos herunterladen möchten.
Sie können die Beispielvideos und andere Informationen zu jeder Sequenz sehen: auf unserer Website: Datensatz durchsuchen.
Überprüfen Sie den 3D-Viewer in jeder Sequenz: Seite, auf der Sie 3D-Skelette in Ihrem Webbrowser visualisieren können. Zum Beispiel: http://domedb.perception.cs.cmu.edu/panopticHDpose1.html
Für diesen Schritt ist ffmpeg erforderlich.
./scripts/extractAll.sh 171204_pose1_sample
Dadurch werden Bilder extrahiert, zum Beispiel 171204_pose1_sample/hdImgs/00_00/00_00_00000000.jpg
, und die entsprechenden 3D-Skelettdaten, zum Beispiel 171204_pose1_sample/hdPose3d_stage1_coco19/body3DScene_00000000.json
.
extractAll.sh
ist ein einfaches Skript, das die folgenden Befehle kombiniert (Sie sollten diese nicht erneut ausführen müssen):
cd 171204_pose1_sample ../scripts/vgaImgsExtractor.sh # PNG-Dateien aus VGA-Video (25 fps)../scripts/hdImgsExtractor.sh # PNG-Dateien aus HD-Video (29,97 fps)tar -xf vgaPose3d_stage1.tar # Skelette mit VGA-Framerate extrahierentar -xf hdPose3d_stage1.tar # Skelette für HDcd extrahieren ..
Für diese Codes sind Numpy und Matplotlib erforderlich.
Visualisierung von 3D-Schlüsselpunkten (Körper, Gesicht, Hand):
cd python jupyter notebook demo_3Dkeypoints_3dview.ipynb
Das Ergebnis sollte so aussehen.
Neuprojektion von 3D-Schlüsselpunkten (Körper, Gesicht, Hand) auf eine ausgewählte HD-Ansicht:
cd python jupyter notebook demo_3Dkeypoints_reprojection_hd.ipynb
Das Ergebnis sollte so aussehen.
Für diese Codes sind Numpy und Matplotlib erforderlich.
Visualisierung von 3D-Schlüsselpunkten (Körper, Gesicht, Hand):
cd python jupyter notebook demo_3Dkeypoints_3dview.ipynb
Das Ergebnis sollte so aussehen.
Neuprojektion von 3D-Schlüsselpunkten (Körper, Gesicht, Hand) auf eine ausgewählte HD-Ansicht:
cd python jupyter notebook demo_3Dkeypoints_reprojection_hd.ipynb
Das Ergebnis sollte so aussehen.
Für diese Codes ist Pyopengl erforderlich.
Visualisierung von 3D-Schlüsselpunkten (Körper, Gesicht, Hand):
python glViewer.py
Hinweis: Der Matlab-Code ist veraltet und verarbeitet keine 3D-Schlüsselpunktausgaben (coco19-Körper, Gesicht, Hand). Bitte sehen Sie sich diesen Code nur als Referenz an. Wir werden dies später aktualisieren.
Matlab-Beispiel (veraltet):
>>> CD Matlab >>> Demo
Wir rekonstruieren 3D-Skelette von Menschen mit der Methode von Joo et al. 2018.
Die Ausgabe jedes Frames wird in eine JSON-Datei geschrieben. Zum Beispiel,
{ "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] } ] }
Hier hat jedes Subjekt die folgenden Werte.
id : ein eindeutiger Subjektindex innerhalb einer Sequenz:. Skelette mit derselben ID über die Zeit hinweg stellen zeitlich verbundene, sich bewegende Skelette (ein Individuum) dar. Allerdings kann dieselbe Person mehrere IDs joints19 haben: 19 3D-Gelenkpositionen, formatiert als [x1,y1,z1,c1,x2,y2,z2,c2,...], wobei jedes c ispanopticHDjoint-Konfidenzwert ist.
Die 3D-Skelette haben die folgende Schlüsselpunktreihenfolge:
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
Beachten Sie, dass sich dies von der OpenPose-Ausgabereihenfolge unterscheidet, obwohl unsere Methode darauf basiert.
Beachten Sie, dass wir früher ein altes Format verwendet haben (mit dem Namen mpi15, wie in unserem veralteten Dokument beschrieben), dieses Format verwenden wir jedoch nicht mehr.
Kinoptic Studio ist ein Subsystem von Panoptic Studio, das aus 10 Kinect2-Sensoren besteht. Bitte beachten Sie: README_kinoptic
Sie können alle in unserer 3D PointCloud DB Version 1 enthaltenen Sequenzen mit dem folgenden Skript herunterladen:
./scripts/getDB_ptCloud_ver1.sh
Wir haben die verarbeiteten Daten für die Feilschsequenz freigegeben. Weitere Informationen finden Sie im Repository zur Verarbeitung sozialer Signale.
Panoptic Studio Dataset ist nur für nichtkommerzielle und Forschungszwecke frei verfügbar.
Durch die Nutzung des Datensatzes erklären Sie sich damit einverstanden, mindestens einen der folgenden Artikel zu zitieren.
@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} }