Repositori ini memiliki kotak peralatan untuk mengunduh, memproses, dan memvisualisasikan data Panoptic Studio (Panoptic).
14 Mei-2024: Kami telah membangun server mirror di SNU. Anda masih dapat menggunakan server CMU asli, dan jika server CMU tidak merespons, Anda dapat menggunakan titik akhir SNU hanya dengan menambahkan opsi --snu-endpoint
di skrip getData.sh
dan getData_kinoptic
.
Ikuti langkah-langkah berikut untuk menyiapkan contoh sederhana:
git clone https://github.com/CMU-Perceptual-Computing-Lab/panoptic-toolbox cd panoptic-toolbox
Untuk mengunduh kumpulan data, bernama "171204_pose1_sample" dalam contoh ini, jalankan skrip berikut.
./scripts/getData.sh 171204_pose1_sample
Skrip bash ini memerlukan curl atau wget.
Script ini akan membuat folder "./171204_pose1_sample" dan mendownload file berikut.
171204_pose1_sample/hdVideos/hd_00_XX.mp4 #file video HD tersinkronisasi (31 penayangan)
171204_pose1_sample/vgaVideos/KINECTNODE%d/vga_XX_XX.mp4 #file video VGA tersinkronisasi (480 tampilan)
171204_pose1_sample/calibration_171204_pose1_sample.json #file kalibrasi
171204_pose1_sample/hdPose3d_stage1_coco19.tar #Data Titik Kunci Tubuh 3D (definisi titik kunci coco19)
171204_pose1_sample/hdFace3d.tar #Data Titik Kunci Wajah 3D
171204_pose1_sample/hdHand3d.tar #Data Titik Kunci Tangan 3D
Perhatikan bahwa contoh contoh ini saat ini tidak memiliki video VGA.
Anda juga dapat mengunduh urutan lainnya melalui skrip ini. Cukup gunakan nama urutan target: alih-alih "171204_pose1panopticHD". r contoh,
./scripts/getData.sh 171204_pose1
untuk versi lengkap urutan 171204_pose1 :. Anda juga dapat menentukan jumlah videospanopticHDnt yang akan didonwload.
./scripts/getData.sh (sequenceName) (VGA_Video_Number) (HD_Video_Number)
Misalnya, perintah berikut akan mengunduh 240 video vga dan 10 video.
./scripts/getData.sh 171204_pose1_sample 240 10
Perhatikan bahwa kami telah mengurutkan urutan kamera VGA sehingga Anda mengunduh tampilan yang terdistribusi secara merata.
Anda dapat menemukan daftar sequence yang tersedia saat ini di link berikut:
Daftar urutan yang dirilis (ver1.2)
Mengunduh semuanya (termasuk video) mungkin memakan waktu lama, tetapi mengunduh file keypoint 3D (badan+wajah+tangan tergantung ketersediaannya) seharusnya "relatif" cepat.
Anda dapat menggunakan skrip berikut untuk mengunduh urutan yang tersedia saat ini (ver 1.2):
./scripts/getDB_panopticHD_ver1_2.sh
Pengaturan defaultnya adalah tidak mengunduh video apa pun. Jangan ragu untuk mengubah "vgaVideoNum" dan "hdVideoNum" di skrip ke nomor lain jika Anda juga ingin mendownload video.
Anda dapat melihat contoh video dan informasi lain dari setiap urutan: di situs web kami: Menjelajahi kumpulan data.
Periksa penampil 3D di setiap urutan: halaman tempat Anda dapat memvisualisasikan kerangka 3D di browser web Anda. Misalnya: http://domedb.perception.cs.cmu.edu/panopticHDpose1.html
Langkah ini membutuhkan ffmpeg.
./scripts/extractAll.sh 171204_pose1_sample
Ini akan mengekstrak gambar, misalnya 171204_pose1_sample/hdImgs/00_00/00_00_00000000.jpg
, dan data kerangka 3D yang sesuai, misalnya 171204_pose1_sample/hdPose3d_stage1_coco19/body3DScene_00000000.json
.
extractAll.sh
adalah skrip sederhana yang menggabungkan serangkaian perintah berikut (Anda tidak perlu menjalankannya lagi):
cd 171204_pose1_sample ../scripts/vgaImgsExtractor.sh # File PNG dari video VGA (25 fps)../scripts/hdImgsExtractor.sh # File PNG dari video HD (29,97 fps)tar -xf vgaPose3d_stage1.tar # Ekstrak kerangka di VGA frameratetar -xf hdPose3d_stage1.tar # Ekstrak kerangka untuk HDcd ..
Kode ini memerlukan numpy, matplotlib.
Memvisualisasikan titik kunci 3D (tubuh, wajah, tangan):
cd python jupyter notebook demo_3Dkeypoints_3dview.ipynb
Hasilnya akan terlihat seperti ini.
Memproyeksikan ulang titik kunci 3D (tubuh, wajah, tangan) pada tampilan HD yang dipilih:
cd python jupyter notebook demo_3Dkeypoints_reprojection_hd.ipynb
Hasilnya akan terlihat seperti ini.
Kode ini memerlukan numpy, matplotlib.
Memvisualisasikan titik kunci 3D (tubuh, wajah, tangan):
cd python jupyter notebook demo_3Dkeypoints_3dview.ipynb
Hasilnya akan terlihat seperti ini.
Memproyeksikan ulang titik kunci 3D (tubuh, wajah, tangan) pada tampilan HD yang dipilih:
cd python jupyter notebook demo_3Dkeypoints_reprojection_hd.ipynb
Hasilnya akan terlihat seperti ini.
Kode ini memerlukan pyopengl.
Memvisualisasikan titik kunci 3D (tubuh, wajah, tangan):
python glViewer.py
Catatan: Kode Matlab sudah usang, dan tidak menangani keluaran titik kunci 3D (badan coco19, wajah, tangan). Silakan lihat kode ini hanya untuk referensi. Kami akan memperbaruinya nanti.
Contoh Matlab (ketinggalan jaman):
>>> cd matlab >>> demo
Kami merekonstruksi kerangka 3D manusia menggunakan metode Joo et al. 2018.
Output dari setiap frame ditulis dalam file json. Misalnya,
{ "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] } ] }
Di sini, setiap mata pelajaran memiliki arti sebagai berikut.
id : indeks subjek unik dalam urutan :. Kerangka dengan id yang sama sepanjang waktu mewakili kerangka bergerak yang terkait secara temporal (seseorang). Namun, orang yang sama mungkin memiliki beberapa sendi id19 : 19 lokasi gabungan 3D, diformat sebagai [x1,y1,z1,c1,x2,y2,z2,c2,...] dengan masing-masing c adalah skor kepercayaan gabungan HDpanoptik.
Kerangka 3D memiliki urutan titik kunci berikut:
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
Perhatikan bahwa ini berbeda dengan urutan keluaran OpenPose, meskipun metode kami didasarkan pada urutan tersebut.
Perhatikan bahwa kami dulu menggunakan format lama (bernama mpi15 seperti yang dijelaskan dalam dokumen lama kami), namun kami tidak menggunakan format ini lagi.
Kinoptic Studio adalah subsistem dari Panoptic Studio, yang terdiri dari 10 sensor Kinect2. Silakan lihat: README_kinoptic
Anda dapat mengunduh semua urutan yang disertakan dalam 3D PointCloud DB ver.1 kami menggunakan skrip berikut:
./scripts/getDB_ptCloud_ver1.sh
Kami telah merilis data yang diproses untuk rangkaian tawar-menawar. Silakan lihat gudang Pemrosesan Sinyal Sosial.
Kumpulan Data Panoptic Studio tersedia secara gratis untuk tujuan non-komersial dan penelitian saja.
Dengan menggunakan kumpulan data, Anda setuju untuk mengutip setidaknya satu dari makalah berikut.
@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} }