يحتوي هذا المستودع على صندوق أدوات لتنزيل بيانات Panoptic Studio (Panoptic) ومعالجتها وتصورها.
14 مايو 2024: قمنا ببناء خادم مرآة في SNU. لا يزال بإمكانك استخدام خادم CMU الأصلي، وإذا لم يستجب خادم CMU، فيمكنك استخدام نقطة نهاية SNU ببساطة عن طريق إضافة خيار --snu-endpoint
في البرامج النصية getData.sh
و getData_kinoptic
.
اتبع هذه الخطوات لإعداد مثال بسيط:
git clone https://github.com/CMU-Perceptual-Computing-Lab/panoptic-toolbox cd panoptic-toolbox
لتنزيل مجموعة بيانات، تسمى "171204_pose1_sample" في هذا المثال، قم بتشغيل البرنامج النصي التالي.
./scripts/getData.sh 171204_pose1_sample
يتطلب نص bash هذا حليقة أو wget.
سيقوم هذا البرنامج النصي بإنشاء مجلد "./171204_pose1_sample" وتنزيل الملفات التالية.
171204_pose1_sample/hdVideos/hd_00_XX.mp4 #ملفات الفيديو عالية الدقة المتزامنة (31 مشاهدة)
171204_pose1_sample/vgaVideos/KINECTNODE%d/vga_XX_XX.mp4 #ملفات فيديو VGA المتزامنة (480 مشاهدة)
171204_pose1_sample/calibration_171204_pose1_sample.json #ملفات المعايرة
171204_pose1_sample/hdPose3d_stage1_coco19.tar #بيانات النقطة الرئيسية للجسم ثلاثية الأبعاد (تعريف نقطة المفاتيح coco19)
171204_pose1_sample/hdFace3d.tar #بيانات نقطة الوجه ثلاثية الأبعاد
171204_pose1_sample/hdHand3d.tar #بيانات النقطة الرئيسية لليد ثلاثية الأبعاد
لاحظ أن نموذج المثال هذا لا يحتوي حاليًا على مقاطع فيديو VGA.
يمكنك أيضًا تنزيل أي تسلسل آخر من خلال هذا البرنامج النصي. ما عليك سوى استخدام اسم التسلسل المستهدف: بدلاً من "171204_pose1panopticHD". ص مثال،
./scripts/getData.sh 171204_pose1
للحصول على النسخة الكاملة من تسلسل 171204_pose1:. يمكنك أيضًا تحديد عدد مقاطع الفيديو التي تريد تنزيلها.
./scripts/getData.sh (sequenceName) (VGA_Video_Number) (HD_Video_Number)
على سبيل المثال، سيقوم الأمر التالي بتنزيل 240 مقطع فيديو VGA و10 مقاطع فيديو.
./scripts/getData.sh 171204_pose1_sample 240 10
لاحظ أننا قمنا بفرز ترتيب كاميرا VGA بحيث يمكنك تنزيل العرض الموزع بشكل موحد.
يمكنك العثور على قائمة التسلسلات المتاحة حاليًا في الرابط التالي:
قائمة التسلسلات الصادرة (الإصدار 1.2)
قد يستغرق تنزيلها جميعًا (بما في ذلك مقاطع الفيديو) وقتًا طويلاً، ولكن تنزيل ملفات النقاط الرئيسية ثلاثية الأبعاد (الجسم+الوجه+اليد عند توفرها) يجب أن يكون سريعًا "نسبيًا".
يمكنك استخدام البرنامج النصي التالي لتنزيل التسلسلات المتوفرة حاليًا (الإصدار 1.2):
./scripts/getDB_panopticHD_ver1_2.sh
الإعداد الافتراضي هو عدم تنزيل أي مقاطع فيديو. لا تتردد في تغيير "vgaVideoNum" و"hdVideoNum" في البرنامج النصي إلى أرقام أخرى إذا كنت تريد أيضًا تنزيل مقاطع الفيديو.
يمكنك مشاهدة أمثلة مقاطع الفيديو والمعلومات الأخرى لكل تسلسل: في موقعنا على الويب: مجموعة بيانات التصفح.
تحقق من العارض ثلاثي الأبعاد في كل تسلسل: الصفحة التي يمكنك من خلالها تصور الهياكل العظمية ثلاثية الأبعاد في متصفح الويب الخاص بك. على سبيل المثال: http://domedb.perception.cs.cmu.edu/panopticHDpose1.html
هذه الخطوة تتطلب ffmpeg.
./scripts/extractAll.sh 171204_pose1_sample
سيؤدي هذا إلى استخراج الصور، على سبيل المثال 171204_pose1_sample/hdImgs/00_00/00_00_00000000.jpg
، وبيانات الهيكل العظمي ثلاثية الأبعاد المقابلة، على سبيل المثال 171204_pose1_sample/hdPose3d_stage1_coco19/body3DScene_00000000.json
.
extractAll.sh
هو برنامج نصي بسيط يجمع مجموعة الأوامر التالية (لن تحتاج إلى تشغيلها مرة أخرى):
قرص مضغوط 171204_pose1_sample ../scripts/vgaImgsExtractor.sh # ملفات PNG من فيديو VGA (25 إطارًا في الثانية)../scripts/hdImgsExtractor.sh # ملفات PNG من فيديو عالي الدقة (29.97 إطارًا في الثانية)tar -xf vgaPose3d_stage1.tar # استخراج الهياكل العظمية في VGAframeratetar -xf hdPose3d_stage1.tar # استخراج الهياكل العظمية لـ HDcd ..
تتطلب هذه الرموز numpy، matplotlib.
تصور النقاط الرئيسية ثلاثية الأبعاد (الجسم والوجه واليد):
cd python jupyter notebook demo_3Dkeypoints_3dview.ipynb
يجب أن تبدو النتيجة مثل هذا.
إعادة عرض نقاط المفاتيح ثلاثية الأبعاد (الجسم والوجه واليد) في عرض HD محدد:
cd python jupyter notebook demo_3Dkeypoints_reprojection_hd.ipynb
يجب أن تبدو النتيجة مثل هذا.
تتطلب هذه الرموز numpy، matplotlib.
تصور النقاط الرئيسية ثلاثية الأبعاد (الجسم والوجه واليد):
cd python jupyter notebook demo_3Dkeypoints_3dview.ipynb
يجب أن تبدو النتيجة مثل هذا.
إعادة عرض نقاط المفاتيح ثلاثية الأبعاد (الجسم والوجه واليد) في عرض HD محدد:
cd python jupyter notebook demo_3Dkeypoints_reprojection_hd.ipynb
يجب أن تبدو النتيجة مثل هذا.
تتطلب هذه الرموز pyopengl.
تصور النقاط الرئيسية ثلاثية الأبعاد (الجسم والوجه واليد):
python glViewer.py
ملحوظة: كود Matlab قديم، ولا يتعامل مع مخرجات نقاط المفاتيح ثلاثية الأبعاد (جسم coco19، الوجه، اليد). يرجى الاطلاع على هذا الرمز للرجوع إليه فقط. سنقوم بتحديث هذا لاحقا.
مثال ماتلاب (قديم):
>>> سي دي ماتلاب >>> تجريبي
نقوم بإعادة بناء هيكل عظمي ثلاثي الأبعاد للأشخاص باستخدام طريقة Joo et al. 2018.
تتم كتابة إخراج كل إطار في ملف json. على سبيل المثال،
{ "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] } ] }
هنا، كل موضوع لديه القيم التالية.
المعرف : فهرس موضوع فريد ضمن تسلسل:. تمثل الهياكل العظمية التي لها نفس المعرف عبر الزمن هياكل عظمية متحركة مرتبطة مؤقتًا (فرد). ومع ذلك، قد يكون لدى نفس الشخص مفاصل معرفات متعددة 19 : 19 موقعًا مشتركًا ثلاثي الأبعاد، بتنسيق [x1,y1,z1,c1,x2,y2,z2,c2,...] حيث يكون كل c ispanopticHDنقاط ثقة مشتركة.
تحتوي الهياكل العظمية ثلاثية الأبعاد على ترتيب النقاط الرئيسية التالي:
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
لاحظ أن هذا يختلف عن أمر إخراج OpenPose، على الرغم من أن طريقتنا تعتمد عليه.
لاحظ أننا اعتدنا استخدام تنسيق قديم (يُسمى mpi15 كما هو موضح في وثيقتنا القديمة)، لكننا لم نعد نستخدم هذا التنسيق بعد الآن.
Kinoptic Studio هو نظام فرعي من Panoptic Studio، والذي يتكون من 10 أجهزة استشعار Kinect2. يرجى الاطلاع على: README_kinoptic
يمكنك تنزيل جميع التسلسلات المضمنة في الإصدار 1 من قاعدة بيانات PointCloud ثلاثية الأبعاد باستخدام البرنامج النصي التالي:
./scripts/getDB_ptCloud_ver1.sh
لقد أصدرنا البيانات المعالجة لتسلسل المساومة. يرجى الاطلاع على مستودع معالجة الإشارات الاجتماعية.
مجموعة بيانات Panoptic Studio متاحة مجانًا للأغراض غير التجارية والبحثية فقط.
باستخدام مجموعة البيانات، فإنك توافق على الاستشهاد بواحدة على الأقل من الأوراق التالية.
@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} }