概述
这篇论文是中国科技大学和微软亚洲研究院的论文,被 CVPR2019接收。
Motivation。
已经存在的大多数方法都是从低分辨率恢复高分辨率,相反,本文一直保持高分辨率,这样预测的heatmap更加精确,预测的关节点更加准确。
网络框架
网络从一个高分辨率子网开始,逐步添加高到低分辨率子网来形成更多阶段,并且并行连接多个分辨率子网,然后执行多尺度融合。
网络细节
以输入256x192为例,通过stem net, stem net结构如下:
3x3 conv,通道3->64,stride=2,padding=1
3x3 conv,通道64->64,stride=2,padding=1
bottleneck(64,64,stride=1,None) # 通过一个bottleneck,通道由64变为256
3个bottleneck(256,64) # 通道256变为256
然后通过transtion1层,注意:所有的transtion层都是在原来层的基础上新增一个低分辨率分支。transtion1如下:
上一步输出为(64,64,48)(即C通道、H高度、W宽度),分别通过两个分支
一个分支为3x3conv,通道256->32,stride=1,padding=1,这一分支是论文里面所提到的高分辨率层。
另一个分支是3x3conv,通道256->64,stride=2,padding=1。上分支输出分辨率是下分支的二倍,而通道数是下分支的1/2.
然后通过stage2层:注意stage层主要通过BasicBlock进一步提取图像特征,并且进行多尺度融合。结构如下:
上一步输出两个结果,一个通过BasicBlock(32,32,1) + 3个BasicBlock(32,32),另一个通过BasicBlock(64,64,1) + 3个BasicBlock(64,64),然后上分支通过卷积将通道数加倍,分辨率减半,与下分支融合;下分支通过卷积将通道数减半,进行两倍上采样,与上分支融合。
其他阶段的类似,不过stage4,所有低分辨率都向分辨率融合,然后在最高分辨率进行heatmap预测。对于HRNet-W32指的是最高分辨率的通道数为32。
与其他网络的对比
图(a)是沙漏网络,它通过重复的top-down和bottom-up来提取多尺度特征,然后相邻两个分辨率进行融合。
图(b)是CPN。它分为global net和refine net。global net负责检测容易检测的关节点,refine net检测难的关节点。global net是FPN的结构,输出4个不同分辨率的heatmaps,然后分别在每个heatmap上做MSE(均方误差)作为global loss;global net输出的4个feature maps,先通过卷积时的通道数相同,然后输入到refine net,再通过bottleneck,再进行上采样,使得所有feature maps的通道数和分辨率相同。refine net为了检测难的关节点,需要用到上下文信息,所以这里进行了concat操作。然后进行卷积输出最终的heatmap。
图©是将上采样方法换成了反卷积。图(d)是和扩张卷积的结合。