《Ordinal Depth Supervision for 3D Human Pose Estimation》-CVPR2018 论文阅读
简介
《Ordinal Depth Supervision for 3D Human Pose Estimation》是一篇CVPR2018 Oral Presentation的工作,主要解决RGB的3D human pose estimation任务,也是当前的state-of-the-art.
这里对这篇文章做一个简单的总结,如有理解不对的地方,欢迎指正!!
方法
总结一下文章的中心思想,也就是下面的Figure1:
文章最创新的地方在于提出了用Ordinal的思想在辅助3D人体姿态估计任务的训练,2D标注的人体姿态估计数据库很多,比如COCO,MPII,FLIC…,并且具有多样性,也就是In-the-Wild的图片,但是3D人体姿态估计的数据库往往是在室内受限场景下面采集的(比如Human3.6M),场景单一,这样的环境下面训练的CNN模型很容易过拟合,导致对于自然图片无法很好的进行泛化。因此作者采用标注In-the-Wild的图片的Ordinal Depth的方法,使得CNN可以在In-the-Wild的图片上进行训练。
所谓的Ordinal Depth,就是关节点之间的相对深度,不需要知道每一个关节点的绝对物理深度,只需要知道关节点的深度顺序即可,这样我们同样可以采取Ranking Loss的监督进行网络的训练。如下图所示:
可以看到,网络预测的深度并不直接进行监督,而是采用深度值之间的大小关系进行Ranking监督,每一对关节点都可以构成一个loss,最后加和,这样就使得网络的训练成为可能。
那么如何充分利用In-the-Wild图片的2D标注呢?也就是结合2D关节点的GroundTruth同时对网络进行监督,很简单,使网络同时输出2D关节点的像素坐标以及3D的Depth值就可以:
这里作者使用的同时回归2D keypoints以及Ordinal Depth的方法,并不是直接对绝对位置进行回归,而是采用了“Volumetric Prediction”的方式,也就是说最后预测的是一个3维的Volume,其实也就是2D的HeatMap的拓展:
值得注意的是,这个方法也是该作者的团队在CVPR2017年提出的工作:《Coarse-to-Fine Volumetric Prediction for Single-Image 3D Human Pose》。通过预测每一个像素值的3D的Likelihood,最后取Max得到3D的坐标位置:
最后的Loss由2D的关节点L2损失以及Ordinal Depth Ranking Loss构成。这就解决了使用Ordinal Depth进行In-the-Wild图片的3D人体姿态估计问题。
在此之前,都是在介绍怎么使用Ordinal Depth在In-the-Wild图片上进行3D Pose的估计,进一步,如何将3D人体姿态估计数据库中的3D Pose也利用上呢?作者的做法是添加一个Reconstruction模块,输入Ordinal的Depth,输出实际物理距离的Depth:
这样,3D的人体姿态估计数据库就可以也用来训练这个模型了,新增的Reconstruction模块可以很容易的嵌入到目前的网络中去(几个全连接层而已):
结果
在Human3.6M,MPI-INF-3DHP等几个数据库上面都是state-of-the-art:
更多的实验结果可以去看作者的原文,包括Ablation验证各个component的效果以及最后各个数据库上面报告的结果。
最后给几个数据库的链接:
Human3.6M:http://vision.imar.ro/human3.6m/description.php
COCO关节点:http://cocodataset.org/#keypoints-2017
MPII:http://human-pose.mpi-inf.mpg.de/
LSP:http://sam.johnson.io/research/lsp.html
当然还有这篇文章的项目主页:https://www.seas.upenn.edu/~pavlakos/projects/ordinal/
里面包括了本文的文章、补充材料、代码以及数据。