该存储库有一个工具箱,用于下载、处理和可视化 Panoptic Studio (Panoptic) 数据。
2024年5月14日:我们在首尔国立大学建立了镜像服务器。您仍然可以使用原来的 CMU 服务器,如果 CMU 服务器没有响应,您只需在getData.sh
和getData_kinoptic
脚本中添加--snu-endpoint
选项即可使用 SNU 端点。
请按照以下步骤设置一个简单的示例:
git clone https://github.com/CMU-Perceptual-Computing-Lab/panoptic-toolbox cd panoptic-toolbox
要下载本示例中名为“171204_pose1_sample”的数据集,请运行以下脚本。
./scripts/getData.sh 171204_pose1_sample
该bash脚本需要curl或wget。
该脚本将创建一个文件夹“./171204_pose1_sample”并下载以下文件。
171204_pose1_sample/hdVideos/hd_00_XX.mp4 #同步高清视频文件(31次观看)
171204_pose1_sample/vgaVideos/KINECTNODE%d/vga_XX_XX.mp4 #synchrponized VGA 视频文件(480 次观看)
171204_pose1_sample/calibration_171204_pose1_sample.json #校准文件
171204_pose1_sample/hdPose3d_stage1_coco19.tar #3D身体关键点数据(coco19关键点定义)
171204_pose1_sample/hdFace3d.tar #3D人脸关键点数据
171204_pose1_sample/hdHand3d.tar #3D手部关键点数据
请注意,此示例当前没有 VGA 视频。
您还可以通过此脚本下载任何其他序列。只需使用目标序列的名称:而不是“171204_pose1panopticHD”。例如,
./scripts/getData.sh 171204_pose1
对于 171204_pose1 序列的完整版本:。您还可以指定要下载的videospanopticHDnt 数量。
./scripts/getData.sh (sequenceName) (VGA_Video_Number) (HD_Video_Number)
例如,以下命令将下载 240 个 vga 视频和 10 个视频。
./scripts/getData.sh 171204_pose1_sample 240 10
请注意,我们已对 VGA 摄像机顺序进行了排序,以便您下载均匀分布的视图。
您可以在以下链接中找到当前可用序列的列表:
已发布序列列表(ver1.2)
下载所有这些文件(包括视频)可能需要很长时间,但下载 3D 关键点文件(身体+脸部+手,视情况而定)应该“相对”快。
您可以使用以下脚本下载当前可用的序列(版本 1.2):
./scripts/getDB_panopticHD_ver1_2.sh
默认设置是不下载任何视频。如果您还想下载视频,请随意将脚本中的“vgaVideoNum”和“hdVideoNum”更改为其他数字。
您可以在我们的网站中查看每个序列的示例视频和其他信息:浏览数据集。
检查每个序列中的 3D 查看器:您可以在 Web 浏览器中可视化 3D 骨架的页面。例如: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
)和相应的 3D 骨架数据(例如171204_pose1_sample/hdPose3d_stage1_coco19/body3DScene_00000000.json
)。
extractAll.sh
是一个简单的脚本,它组合了以下命令集(您不需要再次运行这些命令):
cd 171204_pose1_sample ../scripts/vgaImgsExtractor.sh # 来自 VGA 视频 (25 fps) 的 PNG 文件../scripts/hdImgsExtractor.sh # 来自高清视频 (29.97 fps) 的 PNG 文件 tar -xf vgaPose3d_stage1.tar # 以 VGA 帧率提取骨架 tar -xf hdPose3d_stage1.tar # 提取 HDcd 的骨架 ..
此代码需要 numpy、matplotlib。
可视化 3D 关键点(身体、脸部、手):
cd python jupyter notebook demo_3Dkeypoints_3dview.ipynb
结果应该是这样的。
在选定的高清视图上重新投影 3D 关键点(身体、面部、手部):
cd python jupyter notebook demo_3Dkeypoints_reprojection_hd.ipynb
结果应该是这样的。
此代码需要 numpy、matplotlib。
可视化 3D 关键点(身体、脸部、手):
cd python jupyter notebook demo_3Dkeypoints_3dview.ipynb
结果应该是这样的。
在选定的高清视图上重新投影 3D 关键点(身体、脸部、手):
cd python jupyter notebook demo_3Dkeypoints_reprojection_hd.ipynb
结果应该是这样的。
该代码需要 pyopengl。
可视化 3D 关键点(身体、脸部、手):
python glViewer.py
注意:Matlab 代码已过时,并且不处理 3D 关键点输出(coco19 身体、脸部、手)。请参阅此代码仅供参考。我们稍后会更新。
Matlab 示例(已过时):
>>> cd matlab>>> 演示
我们使用 Joo 等人的方法重建人的 3D 骨骼。 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] } ] }
这里,每个主题具有以下值。
id :序列中唯一的主题索引:。跨时间具有相同 id 的骨骼代表时间相关的移动骨骼(个体)。然而,同一个人可能有多个 ids junctions19 : 19 个 3D 关节位置,格式为 [x1,y1,z1,c1,x2,y2,z2,c2,...],其中每个 c 是panopticHDjoint 置信度得分。
3D 骨架具有以下关键点顺序:
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
您可以使用以下脚本下载 3D PointCloud DB ver.1 中包含的所有序列:
./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} }