FPD: Fast Human Pose Estimation

文章地址:arxiv

这篇文章是电子科技大学和visionsemantics实验室联合发布的一篇文章.

文章目的:

人体姿态估计经过近几年的发展,在精度方面已经做的挺不错了,但越高的精度就意味着越深越宽的网络. 这样就造成了一个问题, 现有的state-of-the-art的模型没有办法在轻量级的设备上跑,例如普通的手机,没有很好的GPU的电脑等等. 文章的目的就是为了能够得到一个很轻量级的模型,在几乎不损失精度的情况下,能够运行在轻量级的设备上.

方法:

文章提出的方法也很容易理解. 首先是构造一个小模型,怎么构造? 直接把现有的Hourglass模型缩小一倍就好了. 具体而言,原生的hourglass模型有8个stage, 并且conv层通道数都是256, 那么小模型就是只有4个stage, conv层通道数为128的tiny-hourglass模型,文章叫做FPD(Fast Pose Distillation).

模型有了,怎么让它学习出来pose?文章提出使用一个teacher model来指导小网络学习. 大概意思是, 本来网络只需要将输出和label做一个L2 loss, 现在不仅需要和label做loss计算,和需要和teacher model的输出做L2 loss计算. 两者的和才是网络真正的loss. 并且设定了一个超惨 α \alpha α用来空着teacher model loss和label loss的比重. 具体公式如下:
在这里插入图片描述
其中 α \alpha α控制teacher model loss, 1 − α 1-\alpha 1α控制和label的loss. 两者均是 L2 loss. 论文通过实验表明 α = 0.5 \alpha=0.5 α=0.5时效果最好,但取其它值时差距也不大.

为什么加入teacher model结果会更好?
按照一般的想法,训练一个网络直接使用网络的输出和label做计算就可以了. 文章加入了额外的loss,即一个已经训练好的效果很好的teacher model的输出作为第二个label 来和网络的输出做loss计算,会发现这样网络学习到的效果会更好,并且可以用很小的网络就能学习到teacher model学习到的东西. (文章使用的teacher model是原生的hourglass, 两者大小分别为 26M 和 3M). 文章提出了几个观点:

  • 人体关节点容易被标错在遮挡很严重的图片里.也就是说label的值不一定保证全部都是对的.而一个好的teacher model可以纠正这个错误,预测出正确的关节点位置.
  • 一个很难去学习的图片,比如太复杂而人体不容易标出, teacher model可以学习到一些有关这些背景类的知识,从而指导模型去学习. 意思及时teacher model可以更好的表示困难的学习样本.
  • 还有一个就是原有的label可能并没有标出来. 例如人坐在凳子上, 脚踝点刚好位于图片边缘,label可能就没有这个点,而teacher model可以学习到.
  • 模型直接从ground truth学,可能很难收敛,但加入teacher model的预测值,相当于有两个label来指导网络去学习. 网络更易收敛
  • 最后一个不知道该怎么解释的理由. label就是只有关节点信息, 而teacher model不仅有关节点信息,还会有整张图片所有位置的信息,这些信息就有可能是促使小模型能够学习到足够信息的关键.

你可能感兴趣的:(FPD: Fast Human Pose Estimation)