一篇比较老的文章, CVPR 2017的, 链接地址
概括
论文采用了top-down的方法, 即先检测出人, 然后再坐单人pose检测. 检测人的方法使用了faster-rcnn, 单人pose方法是已reset结构为基础的网络. 关于faster-rcnn我不是很了解而且网上介绍很多, 略去不表, 下面着重介绍pose检测这块.
pose estimation
- person box cropping. 检测出来的框有大有小, 为了尽量保持框里的人形状不发生剧烈改变, 首先先对检测出的框进行扩充, 扩充后的大小仍然保留原来的比例, 然后训练时对框进行1~1.5倍之间的随机缩放(测试时固定为1.2倍), 然后crop出一个固定353x257大小的图片.
- 然后通过一个CNN网络得到输出为
h x w x k x 3
的output featuremap. k是关节点类型的个数, coco数据集中是17; h, w是最后的输出大小, 3表示一层heatmap channel, 一层 x offset channel, 一层 y offset channel. 然后再通过一个空洞卷积使其上采样到输入大小(353 x 257) - 网络的输出不再是之前常用的一个heatmap, 而是另外加了2个offset, 分别是该heatmap每个地方到正确的关节点位置的x offset 和 y offset. 那么最终我们去得到每个heatmap上关节点的正确位置, 不再是直接通过第一层的heatmap channel就得出结果, 而是要三个channel融合到一起, 再从得到的最终结果上寻找最大响应值. 融合方式为:
G是bilinear interpolation kernel (一直没找到资料到底是什么函数映射), h k h_{k} h