High-Resoultion Net(HRNet) 论文笔记

前言

现在许多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与现有的其它广泛使用的网络相比有以下优点:

  1. 现有的其它网络都是以串联的方式连接high-to-low分辨率的子网,然后再通过low-to-high的过程恢复高分辨率;而HRNet是并行连接high-to-low分辨率的子网,因此,它可以在整个过程中保持高分辨率的表示,预测的heatmap可能在空间上更加精确;
  2. 大多数现有的融合方式都是将低级特征表示与高级特征表示聚合起来,而HRNet借助相同深度和类似层级的低分辨率表示进行重复的多尺度融合,以增强高分辨率表示,这使得对于姿态估计来说,高分辨率表示也很丰富。

实现方法

人体姿态估计,也就是关键点检测,目标是从一个大小为 W × H × 3 W \times H \times 3 的图像 I I 上检测出 K K 个关键点的位置。目前主流的方法将关键点预测转换为预测 K K 个大小为 W × H W^{'} \times H^{'} 的heatmap: { H 1 , H 2 , . . . , H k } \lbrace H_1,H_2,...,H_k \rbrace ,其中每个heatmap H k H_k 说明了第 k k 个关键点位置的置信度。

本文遵循被广泛采用的pipeline来用一个卷积网络预测关键点,该网络包括主干部分,主体部分和一个回归器:

  • 主干部分包括两个跨步卷积,以降低分辨率;
  • 主体部分输出的特征图的像素,和输入主体部分的特征图的像素是一样的;
  • 回归器用来估计heatmap,在heatmap中选择关键点的位置并将其转换为完整分辨率。

本文的HRNet主要关注的是主体部分。

1. 顺序的多分辨率子网

现有的用于姿态估计的网络是将high-to-low分辨率的子网串联起来,每个子网组成一个阶段,包括一系列的卷积,并且在相邻子网间有一个下采样层来将分辨率减半。设 N s r N_{sr} 表示在第 s s 个阶段中的分辨率索引为 r r 的子网(该子网的分辨率是第一个子网分辨率的 1 2 r 1 \frac{1}{2^r-1} ),那么有 S S 个阶段的high-to-low子网可以被表示为:
在这里插入图片描述

2. 并行的多分辨率子网

HRNet首先从一个高分辨率子网开始,作为第一阶段;然后逐步将high-to-low分辨率的子网一个接一个的添加进来,以组成更多的阶段;同时并行链接多分辨率的子网。那么下一阶段并行子网的分辨率就会包括前一阶段一个较低阶段的子网的分辨率。下式是网络结构的一个例子,它包括4个并行的子网:
在这里插入图片描述

3. 重复的多尺度融合

在并行子网中引入交换单元(exchange unit),从而每个子网可以重复地接收来自其它并行子网的信息。下面是信息交换机制的一个例子,将第三个阶段划分为几个交换块(exchange block),每个块包括3个并行的卷积单元(convolution unit),每个块之间有一个交换单元:
在这里插入图片描述
其中 C s r b C^b_{sr} 表示在第 s s 个阶段中的第 b b 个块,分辨率为 r r 的卷积单元, ϵ s b \epsilon_s^b 是相对应的交换单元。

在这里插入图片描述
上图是交换单元的说明,从左到右分别说明了交换单元如何为high,medium和low的像素将信息聚合起来。输入为 s s 个响应图: { X 1 , X 2 , . . . , X s } \lbrace X_1,X_2,...,X_s \rbrace ,输出也为 s s 个响应图: { Y 1 , Y 2 , . . . , Y s } \lbrace Y_1,Y_2,...,Y_s \rbrace ,它们的分辨率和宽度和输入是一样的。每个输出都是对输入的响应图的聚合: Y k = i = 1 s a ( X i , k ) Y_k= \sum^s_{i=1}a(X_i,k) ,每个阶段之间的交换单元还有一个额外的输出 Y s + 1 : Y s + 1 = a ( Y s , s + 1 ) Y_{s+1}:Y_{s+1}=a(Y_s,s+1)

方程 a ( X i , k ) a(X_i,k) 表示对 X i X_i 进行上采样或下采样,将像素从 i i 转换为 k k

扫描二维码关注公众号,回复: 10166058 查看本文章
  • 对于下采样,采用 3 × 3 3 \times 3 的跨步卷积。比如一个 3 × 3 3 \times 3 的跨步卷积以步长为2滑动时,就是在进行2倍的下采样;两个连续的 3 × 3 3 \times 3 的跨步卷积以步长为2滑动时,就是在进行4倍的下采样。
  • 对于上采样,采用 1 × 1 1 \times 1 卷积的简单最近邻采样,以使通道的数量能够对齐

如果 i = k i=k ,那么 a ( , ) a(·,·) 只是一个确定的连接 a ( X i , k ) = X i a(X_i,k)=X_i

4. heatmap的估计

根据最后一个交换单元输出的高分辨率表示来回归heatmap,将损失函数定义为均方误差,它用于比较预测的heatmap和gt heatmap,通过2D高斯生成标准偏差为1个像素的gt heatmap,其中心位于每个关键点的gt location上。


结论

HRNet虽然融合了不同分辨率的特征表示,但和FPN还是不同的,HRNet在整个过程中是持续保持高分辨率的,不需要从低分辨率恢复到高分辨率。作者认为HRNet也可用于其它密集检测任务,如实例分割,目标检测,图像转换等。

发布了39 篇原创文章 · 获赞 1 · 访问量 1204

猜你喜欢

转载自blog.csdn.net/qq_30146937/article/details/104789917
今日推荐