论文: 《Deep High-Resolution Representation Learning for Human Pose Estimation》
github地址: https://github.com/HRNet/deep-high-resolution-net.pytorch
HRNet V2论文: 《High-Resolution Representations for Labeling Pixels and Regions》
github地址: https://github.com/HRNet
解决问题
现存的方法是通过一个由高到低的网络结构所产生低分辨率特征拟合高分辨率特征。降采样过程产生损失。
创新点
作者通过重复的多尺度融合,使得每个从高到低的分辨率表征一遍又一遍地接收来自其他并行表征的信息,从而产生丰富的高分辨率表征,从而预测关键点热图更加准确。
算法原理
HRNetV1
HRNet共有四个stage,每个stage相对于前一个stage,扩展一个分支,该分支输出特征降采样2倍,channel扩充2倍。
transition:用于进入下一个stage生成低分辨率特征,同时扩展分支,通过卷积(kernal=3,stride=2)实现;
fuse:用于多尺度分辨率特征融合;stage1不存在;其中,
上采样:通过卷积(kernal=1)将channel对齐,upsampling层最近邻实现上采样;
下采样:通过卷积(kernal=3,stride=2)实现。比如降采样4倍时,通过卷积(kernal=3,stride=2),channel不改变,降采样2倍,再通过(kernal=3,stride=2),channel对齐,实现降采样4倍。
stage1中每个block使用Bottleneck,其余stage使用Basicblock;右图为bottleneck,左图为basicblock.
HRNet V2
应用于分割
相对于HRNet V1
1、修改最邻近为双线性插值上采样;
2、多尺度特征融合,修改add为concat;如下图b所示。
应用于检测-HRNet V2p
相对于HRNet V1
1、修改最邻近为双线性插值上采样;
2、多尺度特征融合,修改add为concat;
3、通过avgpooling产生多个尺度输出,如上图c所示。
实验结果
HRNetV1
HRNet V2
应用于分割
应用于检测
总结
网络全程保持高分辨率,中间多次进行多尺度融合,比较好的保存下原始特征。