PanopticStudio工具箱简介
PanopticStudio工具箱是由卡内基梅隆大学感知计算实验室开发的一款开源软件,旨在帮助研究人员更便捷地使用Panoptic Studio采集的海量多视角人体动作捕捉数据。Panoptic Studio是一个大规模多视角动作捕捉系统,配备了480个VGA摄像头、31个高清摄像头和10个Kinect深度传感器,可以同时捕捉多人的3D姿态、面部表情和手势动作。这个系统产生的数据量十分庞大,给数据的下载、处理和分析带来了不小的挑战。PanopticStudio工具箱正是为了解决这些问题而生,它提供了一系列便捷的工具和脚本,大大简化了研究人员使用这些数据的过程。
工具箱主要功能
PanopticStudio工具箱的主要功能包括:
- 数据下载:提供脚本自动下载指定序列的视频数据、校准文件和3D关键点数据。
- 图像提取:从下载的视频中提取图像帧。
- 3D关键点数据处理:加载和处理3D人体姿态、面部特征点和手部关键点数据。
- 数据可视化:提供Python和Matlab脚本,用于3D关键点的可视化和2D投影。
- 相机参数加载:读取和使用相机校准参数。
下面我们将详细介绍工具箱的使用方法和主要功能。
快速入门指南
要开始使用PanopticStudio工具箱,请按照以下步骤操作:
1. 获取代码
首先,需要从GitHub上克隆工具箱的代码仓库:
git clone https://github.com/CMU-Perceptual-Computing-Lab/panoptic-toolbox
cd panoptic-toolbox
2. 下载示例数据
工具箱提供了方便的脚本用于下载数据。以下命令将下载名为"171204_pose1_sample"的示例数据集:
./scripts/getData.sh 171204_pose1_sample
这个脚本会创建一个名为"171204_pose1_sample"的文件夹,并下载以下文件:
- 31个视角的同步高清视频文件
- 480个视角的同步VGA视频文件(示例数据集中可能不包含)
- 相机校准文件
- 3D人体关键点数据(使用COCO-19关键点定义)
- 3D面部关键点数据
- 3D手部关键点数据
值得注意的是,用户可以根据需要下载任何其他序列的数据,只需将序列名称作为参数传递给脚本即可。例如:
./scripts/getData.sh 171204_pose1
此外,用户还可以指定要下载的VGA和HD视频的数量:
./scripts/getData.sh 171204_pose1_sample 240 10
这个命令将下载240个VGA视频和10个HD视频。
3. 提取图像和3D关键点数据
下载数据后,下一步是从视频中提取图像帧并解压3D关键点数据。这可以通过以下命令完成:
./scripts/extractAll.sh 171204_pose1_sample
这个脚本会执行以下操作:
- 从VGA视频中提取PNG图像(25 fps)
- 从HD视频中提取PNG图像(29.97 fps)
- 解压VGA帧率的3D骨架数据
- 解压HD帧率的3D骨架数据
执行这一步骤需要安装ffmpeg。
4. 运行演示程序
工具箱提供了多个Python和Matlab示例脚本,用于演示如何使用和可视化数据。
Python示例
Python示例需要安装numpy和matplotlib库。以下是两个主要的演示脚本:
- 3D关键点可视化:
cd python
jupyter notebook demo_3Dkeypoints_3dview.ipynb
- 3D关键点在选定HD视图上的重投影:
cd python
jupyter notebook demo_3Dkeypoints_reprojection_hd.ipynb
这些脚本将展示如何加载和可视化3D人体、面部和手部关键点数据。
Matlab示例
工具箱也提供了Matlab示例,但需要注意的是,Matlab代码可能已经过时,不支持最新的3D关键点输出格式(COCO-19身体、面部、手部)。开发团队计划在未来更新这部分代码。
骨架输出格式
PanopticStudio使用Joo等人在2018年提出的方法重建人体的3D骨架。每一帧的输出都以JSON格式保存,包含以下主要信息:
- 版本号
- 时间戳
- 帧率类型
- 人体列表,每个人体包含:
- ID: 序列内唯一的主体索引
- joints19: 19个3D关节位置,格式为[x1,y1,z1,c1,x2,y2,z2,c2,...],其中c表示关节置信度得分
3D骨架的19个关键点顺序如下:
- 颈部
- 鼻子
- 身体中心(髋部中心)
- 左肩
- 左肘
- 左手腕
- 左髋
- 左膝
- 左踝
- 右肩
- 右肘
- 右手腕
- 右髋
- 右膝
- 右踝
- 左眼
- 左耳
- 右眼
- 右耳
需要注意的是,这个关键点顺序与OpenPose的输出顺序不同,尽管PanopticStudio的方法是基于OpenPose的。
高级功能
除了基本的数据处理和可视化功能,PanopticStudio工具箱还提供了一些高级功能:
1. 下载所有可用序列
工具箱提供了一个脚本,可以下载所有当前可用的序列(版本1.2):
./scripts/getDB_panopticHD_ver1_2.sh
用户可以在脚本中修改"vgaVideoNum"和"hdVideoNum"参数来指定要下载的视频数量。
2. Kinoptic Studio子系统
Kinoptic Studio是Panoptic Studio的一个子系统,由10个Kinect2传感器组成。工具箱提供了专门的脚本和说明来处理这部分数据。
3. 3D点云数据库
工具箱还支持下载和处理Panoptic Studio的3D点云数据库(版本1):
./scripts/getDB_ptCloud_ver1.sh
4. 社交信号处理
研究团队还发布了专门用于社交互动分析的数据集和处理工具,称为"Haggling DB"。这部分内容可以在Social Signal Processing仓库中找到。
许可和引用
PanopticStudio数据集仅供非商业和研究目的免费使用。使用该数据集时,请务必引用以下至少一篇论文:
- Joo等人在ICCV 2015上发表的《Panoptic Studio: A Massively Multiview System for Social Motion Capture》
- Joo等人在TPAMI 2017上发表的《Panoptic Studio: A Massively Multiview System for Social Interaction Capture》
- Simon等人在CVPR 2017上发表的《Hand Keypoint Detection in Single Images using Multiview Bootstrapping》
- Joo等人在CVPR 2019上发表的《Towards Social Artificial Intelligence: Nonverbal Social Signal Prediction in A Triadic Interaction》
总结
PanopticStudio工具箱为研究人员提供了一套强大而便捷的工具,用于处理和分析大规模多视角人体动作捕捉数据。它不仅简化了数据的获取和预处理过程,还提供了丰富的可视化和分析功能。这个工具箱的开源性质也鼓励了社区贡献,促进了计算机视觉和人机交互领域的研究发展。
随着深度学习技术在计算机视觉领域的快速发展,像PanopticStudio这样的大规模多模态数据集变得越来越重要。它为训练和评估各种人体姿态估计、动作识别和社交互动分析算法提供了宝贵的数据资源。研究人员可以利用这个工具箱和数据集来开发更先进的算法,推动人工智能在理解和模拟人类行为方面的进展。
未来,我们可以期待看到更多基于PanopticStudio数据的创新研究成果,特别是在多人交互、非语言社交信号分析、虚拟现实和增强现实等领域。同时,工具箱本身也可能会继续evolve,增加更多功能和支持更多数据格式,以适应研究社区的需求。
总之,PanopticStudio工具箱为计算机视觉研究者提供了一个强大的工具,它不仅简化了复杂数据的处理过程,还为探索人体动作和社交互动的新前沿铺平了道路。随着更广泛的应用和持续的改进,这个工具箱将继续在推动计算机视觉和人工智能研究方面发挥重要作用。