论文地址: 《Distribution-Aware Coordinate Representation for Human Pose Estimation》
GitHub 地址: https://github.com/ilovepose/DarkPose
解决问题
编解码过程,关键点坐标变换产生误差。
创新点
1、基于泰勒展开的高效坐标解码;
2、无偏亚像素中心坐标编码。
算法原理
解码过程
原图经过模型降采样得到feature map即为heatmap,在预测生成的heatmap上找到极大值点坐标,映射回原图,得到关键点坐标,此过程存在量化误差。举例说明:
图片大小:W*H
降采样倍数s:4
关键点真值(x,y),x取11,y取11.
heatmap上真实坐标为(2.75,2.75),如果模型拟合准确,得到heatmap上寻找到极大值点(3,3),映射回原图,得到预测坐标(12,12)。因此此过程存在量化误差。
为解决此问题,标准做法如式1,在第二大极大值方向增加偏置0.25,
m为第一极大值点,s为第二极大值点,p为预测输出。
个人认为0.25由来:
四舍五入误差期望,误差服从(0,0.5)均匀分布,因此误差期望为(0+0.5)/2=0.25.
性能如表1所示,
增加0.25偏置带来性能大幅提升,作者为了更精确预测坐标,引入下面解码方法。
预测生成高斯heatmap如式3,
寻找G中准确极大值点u,即为寻找P=log(G)中极大值点u
P在u处一阶导数为0,
m为量化近似值(整数),u为准确值(浮点数),u处的P值,可用m处P值逼近,泰勒级数展开如式7
P在m处二阶导数如式8,根据式5、7、8克可得到式9,
式9即为通过m逼近得到预测值。
由于预测heatmap不满足高斯分布,存在多个峰值,如图3,因此会先进行高斯平滑
编码过程
g为关键点在原图上真值,g’为经过降采样后得到featuremap上坐标值,g’‘为经过四舍五入量化后得到,关键点坐标值。
依据g’‘生成高斯heatmap,产生量化误差,因此作者使用g‘代替g’',生成无偏高斯heatmap。
实验结果
在coco数据上性能提升明显,在coco val数据集上,HRNet-W32上计算量仅增加16.4% (1.8/11.0 GFLOPs),AP由66.9->70.7.
总结
DARK有效降低编解码过程产生量化误差,而且计算量未出现明显提升。