1 从2d视频中生成3d人物姿态,并导出为bvh文件

1.1 目的

从2d视频中检测人物2d关节点,并转换为三维空间坐标,然后使用dcm余弦矩阵计算关节的旋转信息并将其导出为bvh动作文件。

Github地址 : https://github.com/HW140701/VideoTo3dPoseAndBvh

1.1 参考的开源项目

这是我最近做的一个小的项目,参考了许多的开源项目,
例如:
- VideoPose3D : https://github.com/facebookresearch/VideoPose3D
- video-to-pose3D : https://github.com/zh-plus/video-to-pose3D
- video2bvh : https://github.com/KevinLTT/video2bvh
- AlphaPose : https://github.com/MVIG-SJTU/AlphaPose
- Higher-HRNet-Human-Pose-Estimation : https://github.com/HRNet/Higher-HRNet-Human-Pose-Estimation
- openpose : https://github.com/CMU-Perceptual-Computing-Lab/openpose

1.2 环境

测试环境是在Windows10 + Anaconda + Python3.6

1.3 配置

  1. 安装python第三库依赖库:

- Pytorch > 1.1.0 (I use the Pytorch1.1.0 - GPU)
- torchsample
- ffmpeg (note:you must copy the ffmpeg.exe to the directory of python install)
- tqdm
- pillow
- scipy
- pandas
- h5py
- visdom
- nibabel
- opencv-python (install with pip)
- matplotlib

  1. 下载预训练模型
    参考github上的地址

  2. 使用程序
    在outputs/inputvideo/下放入视频,并在videopose.py中:

if __name__ == '__main__':
    inference_video('outputs/inputvideo/kunkun_cut.mp4', 'alpha_pose')

设置输入视频的路径以及采用的2d关节检测器类型,运行程序,即可在outputs\outputvideo下找到相应的结果文件。

1.4 缺点

  • 效率问题
  • 在视频中人物形态有遮挡时,会导致动作变形

各位看官老爷给个star可以吗?三连最好啊。

2 程序示意图

我的开源项目 - 3DPoseEstimation从2D视频中估计人物三维姿势,并生成BVH文件-StubbornHuang Blog
我的开源项目 - 3DPoseEstimation从2D视频中估计人物三维姿势,并生成BVH文件-StubbornHuang Blog
我的开源项目 - 3DPoseEstimation从2D视频中估计人物三维姿势,并生成BVH文件-StubbornHuang Blog