文章来源 | 极链AI云(性价比最高的共享算力平台,助力你的技术成长~首次注册可获免费100小时GPU使用时长!官网地址:https://cloud.videojj.com/)
作者 | ygu86【极链AI云技术原创获奖者】
原文地址 | 人体姿态估计论文笔记( 官网论坛)已获授权
最近在研究CenterNet,发现其使用的backbone network除了传统熟悉的ResNet以外,还用到了一种叫Hourglass Network的结构,且效果优于ResNet。
经调查发现Hourglass最早于2016年提出,且在ECCV 2016发表用于人体姿态估计任务,故本文先对此网络结构做大致介绍。
中心思想
本论文提出了一种新的卷积网络结构,称为堆叠式沙漏网络,用于人体姿态估计。该网络在各个尺度提取特征,以重复的自下而上(bottom-up)、自上而下(top-down)处理架构并结合残差模块(residual module)以及中间监督(intermediate supervision)的方法对网络性能起到了显著提升。
网络结构
堆叠式沙漏网络(stacked hourglass network)顾名思义由多个沙漏模块(hourglass module)组合而成,其总体结构如上图Fig. 1所示:
◆ 图片输入尺寸为256x256,先经过一个步长为2的7x7卷积层,再经过一个残差模块(residual module, 如下图Fig. 4所示)和一个最大池化层(max pooling)将分辨率从256降至64,随后再接入两个残差模块后进入沙漏模块环节;
◆ 每个沙漏模块都是对称的,具体细节如下图Fig. 3所示稍后再详细介绍,整个网络由多个沙漏模块组成,本论文选用8个模块。
◆ 当达到输出分辨率时,再接入两个1x1的卷积层用于检测。网络最终的输出是一组heatmaps用于预测每个关键点在每个像素点存在的概率,heatmap数量为期望预测的关键点个数;
◆ 损失函数采用Mean Squared Error(MSE)来比较预测的heatmap与ground-truth的heatmap(在关键点中心周围使用标准差为1的2D高斯分布)。
沙漏模块结构如上图Fig. 3所示,其目地为了更好的捕捉多个尺度的信息,具体细节如下:
◆ 每个沙漏模块都是对称的,bottom-up过程通过卷积及最大池化操作将特征图从高分辨率降至低分辨率;
◆ 在每次最大池化操作时,网络会生成一个新的分支并对池化前的特征图进行更多的卷积操作;
◆ 当特征图达到最低分辨率(4x4)时,网络开始以最邻近差值(nearest neighbor upsampling)方式进行top-down过程对特征图上采样并于先前额外分支进行过额外卷积操作的对应特征图以点加方式融合。
除了上述的大致架构外,本论文还有两个细节,如下:
◆ 上图Fig. 3中的每一个框都代表一组残差模块,具体细节由下图Fig. 4. Left所示:每个模块包含三次卷积操作,分别为1x1,3x3,1x1。所有的卷积核不改变尺寸,只改变通道数,头两次卷积操作将特征图通道数减半至128,最后一次卷积操作还原至256用于残差操作;
◆ 除了上述的残差模块外,每个沙漏模块后都接了一个中间监督模块对当前特征图进行预测,具体细节由下图Fig. 4. Right所示:当每次沙漏模块结束后,网络对得到的特征图先进行一次1x1的卷积操作(通道数为256),随后网络分为两个分支,上下半分支各进行一次1x1的卷积操作,上半分支的通道数为256,下半分支的通道数为预测的关键点个数用于生成中间的heatmap以计算损失(图中蓝色框部分)。最后,生成的中间heatmap会再经过一次通道数为256的1x1卷积并于上半分支的特征图以点加方式融合用于下一个沙漏模块的输入。
◆ 最后值得一提的是,所有的沙漏模块都不共享参数且所有中间监督生成的loss都与网络最终输出的loss相加用于反向传播。
实验结果
本论文基于FLIC与MPII Human Pose数据集进行训练与测试,其中FLIC包含5003张图片(训练集3987,测试集1016),MPII数量大约40K(28K作为训练集,11K作为验证集),评测指标采用标准的Percentage of Correct Keypoints(PCK)指标,实验结果如下。
可以看出比起同时期的其他算法,本论文还是有明显提升的,但由于时间较早(2016年),并没有在当前更流行的MS COCO Keypoint Detection数据集上做实验且本论文只对图片最中间的单人做姿态估计。
本文已获平台作者原创授权,想要认识更多深度学习小伙伴,交流更多技术问题,欢迎关注公众号“极链AI云”(为你提供性价比最高的共享算力平台,官网地址:https://cloud.videojj.com/)