基于多视点几何的三维人体姿态自监督学习

2020-05-28 12:00:19

这是一个基于多视点几何纸的三维人体姿态自监督学习的Pytorch实现。

使用多视图几何学的3D人体姿势的自监督学习,Muhammed Kocabas*,Salih Karagoz*,Emre Akbas,IEEE计算机视觉和模式识别,2019年(*相等贡献)。

在这项工作中,我们提出了一种自监督的三维人体姿态估计方法EpipolarPose,它不需要任何3D地面真实数据或摄像机附加元件。

在训练过程中,EpipolarPose从多视图图像中估计2D姿态,然后利用核线几何来获得3D姿态和相机几何,随后使用这些几何来训练3D姿态估计器。

在测试时间内,只需使用RGB图像即可生成3D姿势结果。查看demo.ipynb并运行一个简单的演示。

这里我们展示了我们的模型在Human3.6M数据集上的一些样本输出,对于每组结果,我们首先显示输入图像,然后是地面真实情况、完全监督模型和自我监督模型输出。

代码是在Ubuntu 16.04上使用python 3.7.1开发的。NVIDIA GPU需要进行培训和测试。有关其他依赖项,请参阅Requirements.txt或Environmental ment.yml。

按照官方说明安装pytorch>;=v1.0.0。请注意,如果您使用的是pytorch<;v1.0.0版,则应按照https://github.com/Microsoft/human-pose-estimation.pytorch上的说明禁用cudnn';的BatchNorm层实现。我们建议您使用更高版本的pytorch(>;=v1.0.0)

从GoogleDrive(150 MB)下载注释文件,格式为${root}文件夹下的zip文件。运行下面的命令将其解压缩。

您也可以使用下表中的链接下载预先训练好的权重。您可以将它们放在model目录下。最后,您的目录树应该如下所示。

${ROOT}├──Data/├──实验/├──lib/├──Models/├──Output/├──Refiner/├──SAMPLE_IMAGE/├──脚本/├──demo.ipynb├──自述文件.md└──要求.txt。

您将需要Human3.6M数据来训练或测试我们的模型。对于Human3.6M数据,请从Human 3.6M数据集下载。您需要创建帐户才能获得下载权限。下载视频文件后,您可以运行我们的脚本来提取图像。然后运行ln-s<;path_to_extracted_h36M_image>;${root}/data/h36m/image创建指向图像文件夹的软链接。目前您可以使用我们在步骤4中提供的注释文件,但我们将在清理和正确测试后不久发布注释准备脚本。

如果要根据MPII数据预先训练EpipolarPose模型,请从MPII人体姿势数据集(12.9 GB)下载图像文件。将其解压缩到${root}/data/mpii目录下。如果您已经拥有MPII数据集,则可以创建指向图像的软链接:ln-s<;path_to_mpii_image>;${root}/data/mpii/images。

在训练过程中,我们使用了合成遮挡。如果您想使用它,请按照他们的repo中的说明下载Pascal VOC数据集,并更新配置文件中的VOC参数。

${ROOT}|──Data/├─├──mpii/|└─├──annot/|└──Image/|└─├──h36M/└─├──annot/└──Image/├──s1/└──s5/.。

自监督(2DGT):使用数据集提供的地面真实2D关键点的三角剖分进行训练。

自我监督+精细化:用精细化模块进行培训。有关此设置的详细信息,请参阅Refiner/Readme.md。

要从头开始训练EpipolarPose模型,您需要在MPII数据集上预先训练该模型。

要使用自监督模型运行验证脚本,请使用预先训练的权重的路径更新实验的MODEL.RESUME字段/h36m/Valid-ss.yaml,然后运行:

要在验证集上运行完全受监督的模型,请使用预先训练的权重的路径更新MODEL.RESUME实验字段/h36m/valid.yaml,然后运行:

@inProcestions{kocabas2019eppoll,作者={Kocabas,Muhammed and Karagoz,Salih and Akbas,Emre},title={使用多视图几何进行3D人体姿势的自我监督学习},booktitle={IEEE计算机视觉与模式识别会议(CVPR)},月={6},年={2019}}。

我们感谢作者发布了他们的代码。也请考虑引用他们的作品。

此代码可免费用于非商业用途,并可在这些条件下重新分发。有关详细信息,请参阅许可证。第三方数据集和软件受其各自的许可证约束。