今天跟大家分享一篇来自微软亚洲研究院新出并已经开源的3D姿态估计的文章:Cross View Fusion for 3D Human Pose Estimation,大幅降低了3D姿态估计的误差。
在H36M数据集上,MPJPE(关节点误差均值)从之前最好结果的52mm直降到26mm,可谓大幅改进,相信该算法必将成为该领域重要参考。
该文作者信息:
该文作者来自中国科技大学、微软亚洲研究院(MSRA)、图森科技,主要为第一作者Haibo Qiu在MSRA实习期间的工作。
主要改进点
作者在该文中研究的是计算3D人体关节点的绝对值,即在场景中关节点的3D世界坐标(x,y,z),以mm(毫米)为单位的三个坐标尺度。
通常的做法是对于不同的视图(即不同角度摄像头拍摄的图像),分别进行2D姿态估计,然后从多个摄像头的2D人体姿态计算3D人体姿态(如使用Pictorial Structure Model方法)。
作者并没有打破这一整体思路,只是认为不仅在计算3D姿态时,不同视图可以相互参考,在各自独立计算2D姿态时,也可以进行跨视图的特征融合(Cross View Fusion )。
如下图:
不同视图使用CNN网络检测得到heatmap后,heatmap间进行交叉特征融合,然后融合的heatmap再各自独立进行监督训练。
作者认为真实3D场景中存在的对极几何约束可以用于特征融合,
如下图:
不同视图融合方法如下:
将几何先验加入到网络特征融合中,这是本文一大创新点,后续的实验也证明该方法很有效。明显提升了2D姿态估计的效果。
下图为这种特征融合有效改进了2D姿态估计的例子:
上图中,有些视图中检测到的关节点位置不准,但另外容易进行2D姿态估计计算的视图可以帮助辅助改进检测效果。
在3D姿态估计的流程中经常使用的Pictorial Structure Model方法获取3D位置,此时将人体关节点看为图结构,如下:
使用动态规划计算方法,在优化人体关节3D位置时求取2D姿态估计的 Heatmap 与 人体关节连接边限制的最大后验概率。
其中需要进行3D空间的离散化,而这个过程离散化的bin过大会使得精度不足,而bin过小则造成计算量呈几何倍数增长。
于是,作者发明了迭代的Pictorial Structure Model方法(RPSM),如下图:
在粗粒度的空间离散化后,算法优化得到人体关节点位置,再进行更加细致的空间离散划分,最终得到的关节点位置精度高,而付出的时间代价只是略微增长。
实验结果
作者在H36M与MPII数据集上进行了实验:
可见跨视图的特征融合(Fusion)和RPSM均可以大幅改进算法精度。
下表为在H36M数据集上与SOTA算法的精度比较:
该文提出的算法直接将平均误差腰斩!
作者在Total Capture 数据集上进行了实验,如下表:
与其他SOTA算法相比,同样取得了大幅度改进!
实验中不同误差级别的图像关键点结果可视化实例:
论文地址:
https://chunyuwang.netlify.com/img/ICCV_Cross_view_camera_ready.pdf
代码地址:
https://github.com/microsoft/multiview-human-pose-estimation-pytorch