项目地址:https://ilovepose.github.io/coco/
论文总结
本文方法名为DARK,其提出一种编码和解码的方法,使得坐标到heatmap(用于训练)和heatmap到坐标(用于测试)能更加准确的表达。
论文中表达DARK可以减轻网络输入分辨率变小的损失(从 384 ∗ 288 384*288 384∗288到 256 ∗ 192 256*192 256∗192到 128 ∗ 96 128*96 128∗96);
论文内容
坐标解码
如果训练的模型效果好的话,网络预测的heatmap会与label同分布,即heatmap会如下公式所示,其中 x x x是heatmap中的预测元素坐标; μ \mu μ是高斯核中的中心坐标,即估计的keypoint位置;协方差 ∑ \sum ∑是一个对角矩阵, ∑ = [ σ 2 0 0 σ 2 ] \sum = \left[ \begin{matrix} \sigma^2 & 0 \\ 0 & \sigma^2 \end{matrix} \right] ∑=[σ200σ2]
![](https://i-blog.csdnimg.cn/blog_migrate/fd97c1353d9f50299945cce10a864736.png)
利用对数似然优化原则,可以将上述公式使用对数转换,来推测最大值位置:
![](https://i-blog.csdnimg.cn/blog_migrate/c9518e0065ede93f1dd967b1195d492b.png)
μ \mu μ是我们所需要预测的关键点位置,由于其是极值,则一阶导数为:
![](https://i-blog.csdnimg.cn/blog_migrate/03d3d502f6e56c3f7b05271c7e0aebc3.png)
在 μ \mu μ上使用二阶泰勒公式,其中 m m m为最大值:
![](https://i-blog.csdnimg.cn/blog_migrate/85dfbcc2434dd1c7f77cf2eca95a7a62.png)
![](https://i-blog.csdnimg.cn/blog_migrate/06f99550603be45cdc4ac2b963636c46.png)
最后就得到了我们所想要预测的关键点位置坐标:
![](https://i-blog.csdnimg.cn/blog_migrate/1b360c2e68fa0e1f5b90c1181ea99d64.png)
上述推导是基于预测的heatmap是一个理想的高斯分布的情况下的,现实情况下预测的heatmap会在最大值附近出现多个峰值,这对上述的decode方法会产生负面影响,所以因此要进行heatmap的处理。文中使用高斯核对heatmap进行预处理,来平滑多个峰值。高斯核的kernel_size一般与训练时的kernel_size对应。
所以,DARK的decoding分为三步:
- 先平滑heatmap分布【高斯核处理】
- 泰勒展开获得关键点的定位
- 分辨率的恢复(输入图片分辨率恢复到原图分辨率)
![](https://i-blog.csdnimg.cn/blog_migrate/8c8dfcc953b004c8a4b4442e673cdc1e.png)
坐标编码
在从原图分辨率的坐标 ( u , v ) (u,v) (u,v),映射到网络输入分辨率 ( u ′ , v ′ ) (u',v') (u′,v′)的坐标时,坐标会从整数映射成浮点数。映射函数如下图所示
![](https://i-blog.csdnimg.cn/blog_migrate/9f0de82d836ab18a5e45d8c394870327.png)
但一般使用 ( u ′ , v ′ ) (u',v') (u′,v′)产生heatmap时,会将坐标整数化,得到一个元素坐标,再使用高斯函数产生heatmap。这个整数的坐标和实际坐标时有一个偏差的,所以DARK在产生heatmap时,直接使用浮点数产生heatmap:
![](https://i-blog.csdnimg.cn/blog_migrate/98e46544554ba59bd792652af0338b4b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d1c3ee312e5128edac947a99837fefaf.png)
实验结果
使用高斯核平滑的对比实验结果如下,表2表示高斯核平滑处理可以提高0.3%的AP
![](https://i-blog.csdnimg.cn/blog_migrate/e8b2405d474d6f60243f69624d5fa491.png)
DARK的decoding和encoding的对比实验结果如下,可以看出encoding和decoing都是对结果有提升的。
![](https://i-blog.csdnimg.cn/blog_migrate/cfff3008f85c7abc8786deb8e05fed6f.png)
不同分辨率使用DARK方法的对比实验结果如下,可以看出dark在小分辨率的模型上有更高的受益;
![](https://i-blog.csdnimg.cn/blog_migrate/2ec5d719b3b163fd3f31f02a247becd2.png)
从下表可以看出,当指标体现越严格时,DARK的优势会越明显,表明DARK方法对于keypoint预测的稳定性是有帮助的。
![](https://i-blog.csdnimg.cn/blog_migrate/4f10151c29690c21d6d871f3a113a657.png)
下表是DARK应用于各个网络上的结果,可以看出DARK是模型无关的方法,可以应用于各种模型中;
![](https://i-blog.csdnimg.cn/blog_migrate/6b198d8988c925881ed94bfa77d67333.png)
![](https://i-blog.csdnimg.cn/blog_migrate/048f3991805e2349f5e69fc0cc953873.png)