论文解读 | Fusing wearable imus with multi-view images for human pose estimation: A geometric approach

CVPR2020 | Fusing wearable imus with multi-view images for human pose estimation: A geometric approach

作者: Zhe Zhang, Chunyu Wang, Wenhu Qin, Wenjun Zeng (东南大学&微软亚研院)
网址: https://github.com/CHUNYUWANG/imu-human-pose-pytorch
论文: https://www.microsoft.com/en-us/research/uploads/prod/2020/02/2003.11163.pdf

  微软亚研院的工作,王春雨老师带的实习生做的,发在了CVPR2020上(实习生还是我们学校的,看着人家我只能流下了CVPR的口水,王老师水平还是很高的,我们组里的师兄也在他手下实习)。文章做的工作是利用多视角图像以及IMU信息获取3D人体姿态。和这篇文章关系紧密的文章主要有:Simple baselines,Cross view fusion,都是亚研院的工作。

  文章主要有两个工作,一个是使用多视角图像配合IMU提供的关节方向信息进行特征融合,以此缓解遮挡情况带来的性能下降,进而得到准确的2D姿态估计结果,这篇文章融合多视角特征的思想不同于近几年有代表性的文章如learnable triangulation,cross view,这篇文章没有用基于对极几何的方法,而是采用基于IMU和肢体长度的方法来融合,非常独特;另一个是将多视角的2D姿态结果lifting到3D空间,这篇文章求解3D姿态的方法是一种基于优化的方法,通过最小化重投影误差来求解最优的3D姿态,不同于基于三角量测的方法。

  这里我先解释一下IMU信息的使用思想,便于大家一开始就理解。作者把IMU当成一种相连关节点之间的方向信息,例如有了肩膀和手肘,IMU会提供肩膀到手肘的3D方向信息,也就是大臂的方向信息,再配合上各个肢体部位的平均长度(可以先用训练集算出来),就可以提供很多软、硬限制,以及为多视角融合提供信息,具体下面会展开讲。

2D Pose Estimation

首先来看如何用IMU来融合多视角图像得到2D姿态
在这里插入图片描述
这里直接用论文里的图来说明,先考虑只有一个视角的情况,理解了这个,多视角的也就理解了,多视角和单视角本质上没有什么不同,只是融合的信息源多了些罢了。

J1 J2代表不同关节点的heatmap,对于J1上的一个点Yp,Yp的值代表了J1位于Yp这个位置的置信度。根据相机的中心C,我们其实可以知道这中关节的真实位置P一定是在C-Yp线上的,只是深度信息无法确定。我们先不管深度信息,在这条线上按照log-uniformly取样K个点作为候选点。
这时候,IMU信息要派上用处了,对于J1和J2的关系,我们有IMU提供的3D方向信息,同时我们也有由训练集算出来的J1-J2肢体的平均长度,那么对于每一个候选点Pk,都可以唯一确定一个Qk,这个Qk代表的就是J2这个关节点在空间中的位置。然后,我们把这些Qk分别投影回J2这张热图中得到K个Yqk。
按照逻辑,如果某个Qk重投影回得到的Yqk的置信度很高,那就说明这个Qk的3D位置是比较可靠的,进而说明Yp这个位置也是比较可靠的。这样对J1所有的点都做一次计算,将J1各点的原始值与J2中对于置信度最高的Yqk融合,最后就能得到融合了多视角信息的J1了。具体公式如下:
在这里插入图片描述
对于多视角情况,原理都是一样的,只不过融合的源多了几张图罢了,最后的计算方法只不过是对其他视角融合的置信度做一下平均就行。
在这里插入图片描述

最后的效果论文里也给了图,可以看到融合前被遮挡关节定位不准确,甚至是错误的,融合后已经非常准确了。不过这种融合方法会使得融合后的图像出现很多条高亮线,这个是因为对于一个正确的Yqk,它其实是会对应原图中的一条线的,这是由于我们不知道深度信息,进行了log-uniformly采样导致的。这个问题在只有一个视角的时候是很大的,但是到了多视角的情况下,会被缓解,因为采用了取平均。我个人觉得调整兰姆达也可以,兰姆达越大这种影响就越小,但同时多视角融合效果也会被削弱,最后作者是采样兰姆达等于0.5。
在这里插入图片描述

2D to 3D

讲完了2D预测,接下来就是2D to 3D了。这里先用三角量测得到盆骨的3D位置,因为盆骨的2D预测非常准,所以直接三角量测得到的3D结果也很准。对于其他关节点位置,就要进一步用优化方法得到了。以盆骨为中心建立一个2m为边长的正方体容器,然后分为N×N×N个小容器,关节点可以落在这些小容器里,具体怎么落最优,作者采用了如下的后验计算公式:
在这里插入图片描述
先别慌,看着复杂其实挺好理解的,可以分为四部分,第一个Z(f)就是个配分函数,第二部分叫unary potential,其实就是有一个关节点落在某个容器后,重投影回2D heatmap里去找置信度,然后让所有关节点置信度相乘最大就是最优的。
第三部分是一个硬限制,也就是肢体长度限制,对于某种姿态,要是某个肢体的长度超过了限度,就直接判0,否认掉这种姿态组合。
在这里插入图片描述
最后一个是一个软限制,具体而言就是,对于一个肢体,你可以通过对于的两个关节点3D位置来计算方向向量,然后把这个向量去和IMU得到的方向向量做点积,两个方向越接近,这一项得分就越高。最后这四类全都是连乘,用动态规划的方法求出得分最高的情况就是最优的3D姿态了
在这里插入图片描述

Results

最后贴一下在Total Capture和Human 3.6M上的结果,Human3.6M没有IMU信息,作者用3D标注做了方向信息的计算用于训练和测试:
在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值