OpenPose 论文思想主要概括
Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
论文地址:https://arxiv.org/abs/1611.08050
文章的核心是提出一种利用Part Affinity Fields(PAFs)的自下而上的人体姿态估计算法。研究自下而上算法(得到关键点位置再获得骨架)而不是自上而下算法(先检测人,再回归关键点),是因为后者运算时间会随着图像中人的个数而显著增加,而自下而上所需计算时间基本不变。
PAFs是用来描述像素点在骨架中的走向,用L(p)表示;关键点的响应用S(p)表示。先看主体网络结构,网络采用VGG pre-train network作为骨架,有两个分支分别回归L(p)和S(p)。每一个stage算一次loss,之后把L和S以及原始输入concatenate,继续下一个stage的训练。随着迭代次数的增加,S能够一定程度上区分结构的左右。loss用的L2L2范数,S和L的ground-truth需要从标注的关键点生成,如果某个关键点在标注中有缺失则不计算该点。
对于S,每一类关键点有一个channel,生成ground-truth的时候是按照多个高斯分布取max的方法来保留各个点的响应峰值。对于L 则复杂一点,先看准确定义,对于第k个person的第c个肢干上的PAFs:
在得到关键节点以及边权之后,计算姿态骨架已经完全转化成了一个图问题。文中没有采用全局优化的方法,而是利用匈牙利算法对相邻节点进行了最优匹配(比如一堆左手腕节点和一堆左手肘节点,利用小臂的PAF计算边权,再进行最优匹配),最后获得整个的人形姿态骨架。
实验效果也非常好,主要是速度快。附带代码地址 https://github.com/CMU-Perceptual-Computing-Lab/openpose