前言
现在许多2D人体姿态估计网络采用的是Hourglass,SimpleBaseline等,它们都是将high-to-low分辨率的子网串联起来,然后再将低分辨率特征图恢复至高分辨率,如下图所示:
- (a)是Hourglass,它的high-to-low和low-to-high的过程是对称的,并且将具有相同分辨率的层进行跳层连接(skip-connection),目的是将低级特征和高级特征融合起来;
- (b)是级联金字塔网络,在high-to-low过程中一部分分类网络的结构很复杂,而low-to-high过程整体都是很简洁的。在图(b)的右半部分,将低级特征和高级特征结合起来;
- (c)是SimpleBaseline,使用转置卷积进行low-to-high这一过程,没有跳层连接;
- (d)是结合空洞卷积的网络,其中reg.表示常规卷积,dilated表示空洞卷积,strided表示跨步卷积,作用类似于池化,trans.表示转置卷积。
本文提出一种新的结构,称为High-Resolution Net(HRNet),它可以在整个过程中保持高分辨率的表示。首先从一个高分辨率子网开始,作为第一阶段;然后逐步将high-to-low分辨率的子网一个接一个的添加进来,以形成更多的阶段;同时并行链接多分辨率的子网。通过在整个过程中一遍又一遍地在并行多分辨率子网中交换信息来进行重复的多尺度融合。最终网络输出高分辨率的特征表示,并用它估计关键点。如下图所示:
在网络中,水平和垂直方向分别对应于网络的深度和特征图的尺度。
HRNet与现有的其它广泛使用的网络相比有以下优点:
- 现有的其它网络都是以串联的方式连接high-to-low分辨率的子网,然后再通过low-to-high的过程恢复高分辨率;而HRNet是并行连接high-to-low分辨率的子网,因此,它可以在整个过程中保持高分辨率的表示,预测的heatmap可能在空间上更加精确;
- 大多数现有的融合方式都是将低级特征表示与高级特征表示聚合起来,而HRNet借助相同深度和类似层级的低分辨率表示进行重复的多尺度融合,以增强高分辨率表示,这使得对于姿态估计来说,高分辨率表示也很丰富。
实现方法
人体姿态估计,也就是关键点检测,目标是从一个大小为 W × H × 3 W \times H \times 3 W×H×3的图像 I I I上检测出 K K K个关键点的位置。目前主流的方法将关键点预测转换为预测 K K K个大小为 W ′ × H ′ W^{'} \times H^{'} W′×H′的heatmap: { H 1 , H 2 , . . . , H k } \lbrace H_1,H_2,...,H_k \rbrace { H1,H2,...,H