多视觉任务的全能: HRNet

摘要:
多视觉任务的全能:HRNetHRNet是微软亚洲研究院的王井东老师领导的团队完成的,打通图像分类、图像分割、目标检测、人脸对齐、姿态识别、风格迁移、ImageInpainting、超分、opticalflow、Depthestimation、边缘检测等网络结构。以下文章主要参考了王老师在演讲中的解读,配合论文+代码部分,来为各位读者介绍这个全能的Backbone-HRNet。·特征融合部分SENet和HRNet区分比较大,SENet使用的对应通道相乘的方法,HRNet则使用的是相加。

多视觉任务的全能: HRNet

HRNet是微软亚洲研究院的王井东老师领导的团队完成的,打通图像分类、图像分割、目标检测、人脸对齐、姿态识别、风格迁移、Image Inpainting、超分、optical flow、Depth estimation、边缘检测等网络结构。

王老师在ValseWebinar《物体和关键点检测》中亲自讲解了HRNet,讲解地非常透彻。以下文章主要参考了王老师在演讲中的解读,配合论文+代码部分,来为各位读者介绍这个全能的Backbone-HRNet。

1. 引入

多视觉任务的全能: HRNet第1张

多视觉任务的全能: HRNet第2张网络结构设计思路

在人体姿态识别这类的任务中,需要生成一个高分辨率的heatmap来进行关键点检测。这就与一般的网络结构比如VGGNet的要求不同,因为VGGNet最终得到的feature map分辨率很低,损失了空间结构。

多视觉任务的全能: HRNet第3张

传统的解决思路

获取高分辨率的方式大部分都是如上图所示,采用的是先降分辨率,然后再升分辨率的方法。U-Net、SegNet、DeconvNet、Hourglass本质上都是这种结构。

多视觉任务的全能: HRNet第4张

虽然看上去不同,但是本质是一致的

2. 核心

普通网络都是这种结构,不同分辨率之间是进行了串联

多视觉任务的全能: HRNet第5张

不断降分辨率

王井东老师则是将不同分辨率的feature map进行并联:

多视觉任务的全能: HRNet第6张

并联不同分辨率feature map

在并联的基础上,添加不同分辨率feature map之间的交互(fusion)。

多视觉任务的全能: HRNet第7张

具体fusion的方法如下图所示:

多视觉任务的全能: HRNet第8张

同分辨率的层直接复制。

·

需要升分辨率的使用bilinear upsample + 1x1卷积将channel数统一。

·

需要降分辨率的使用strided 3x3 卷积。

·

三个feature map融合的方式是相加。

至于为何要用strided 3x3卷积,这是因为卷积在降维的时候会出现信息损失,使用strided 3x3卷积是为了通过学习的方式,降低信息的损耗。所以这里没有用maxpool或者组合池化。

多视觉任务的全能: HRNet第9张

HR示意图

另外在读HRNet的时候会有一个问题,有四个分支的到底如何使用这几个分支呢?论文中也给出了几种方式作为最终的特征选择。多视觉任务的全能: HRNet第10张

三种特征融合方法

(a)图展示的是HRNetV1的特征选择,只使用分辨率最高的特征图。

(b)图展示的是HRNetV2的特征选择,将所有分辨率的特征图(小的特征图进行upsample)进行concate,主要用于语义分割和面部关键点检测。

(c)图展示的是HRNetV2p的特征选择,在HRNetV2的基础上,使用了一个特征金字塔,主要用于目标检测网络。

再补充一个(d)图

多视觉任务的全能: HRNet第11张

HRNetV2分类网络后的特征选择

(d)图展示的也是HRNetV2,采用上图的融合方式,主要用于训练分类网络。

总结一下HRNet创新点·

将高低分辨率之间的链接由串联改为并联。在整个网络结构中都保持了高分辨率的表征(最上边那个通路)。·

在高低分辨率中引入了交互来提高模型性能。

3. 效果

3.1 消融实验多视觉任务的全能: HRNet第12张

1.对交互方法进行消融实验,证明了当前跨分辨率的融合的有效性。

多视觉任务的全能: HRNet第13张

交互方法的消融实现

2.证明高分辨率feature map的表征能力

多视觉任务的全能: HRNet第14张

1x代表不进行降维,2x代表分辨率变为原来一半,4x代表分辨率变为原来四分之一。W32、W48中的32、48代表卷积的宽度或者通道数。

3.2 姿态识别任务上的表现多视觉任务的全能: HRNet第15张

多视觉任务的全能: HRNet第16张

以上的姿态识别采用的是top-down的方法。

多视觉任务的全能: HRNet第17张

多视觉任务的全能: HRNet第18张

COCO验证集的结果

可以看到上图用红色箭头串起来的是不是和SELayer很相似。为什么说SENet是HRNet的一个特例,但从这个结构来讲,可以这么看:

· SENet没有像HRNet这样分辨率变为原来的一半,分辨率直接变为1x1,比较极端。变为1x1向量以后,SENet中使用了两个全连接网络来学习通道的特征分布;但是在HRNet中,使用了几个卷积(Residual block)来学习特征。

· SENet在主干部分(高分辨率分支)没有安排卷积进行特征的学习;HRNet在主干部分(高分辨率分支)安排了几个卷积(Residual block)来学习特征。

· 特征融合部分SENet和HRNet区分比较大,SENet使用的对应通道相乘的方法,HRNet则使用的是相加。之所以说SENet是通道注意力机制是因为通过全局平均池化后没有了空间特征,只剩通道的特征;HRNet则可以看作同时保留了空间特征和通道特征,所以说HRNet不仅有通道注意力,同时也有空间注意力。

HRNet团队构建了分类、分割、检测、关键点检测等库,工作量非常大,而且做了很多扎实的实验证明了这种思路的有效性。所以是否可以认为HRNet属于SENet之后又一个更优的backbone呢?还需要自己实践中使用这种想法和思路来验证。

4. 参考

https://arxiv.org/pdf/1908.07919

https://www.bilibili.com/video/BV1WJ41197dh?t=508

https://github.com/HRNet

免责声明:文章转载自《多视觉任务的全能: HRNet》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vue指令(7)v-onLinux wc文件统计下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Ubuntu下双显示器设定

自8.10后的版本,系统自带了xrandr工具,可以很好的实现双显示器。配置与使用如下: 介绍    X Windows 中有一个显示分辨率的概念,在默认情况下,这个显示分辨率为 max*max ,max等于你的所有连接上的显示器中最大分辨率中的最大值。例如我的笔记本液晶屏最大分辨率为 1024*768,外接显示器最大分辨率为 1280*1024,则...

单阶多层检测器: SSD(一)

  对于物体检测任务, 第4章的Faster RCNN算法采用了两阶的检测架构, 即首先利用RPN网络进行感兴趣区域生成, 然后再对该区域进行类别的分类与位置的回归, 这种方法虽然显著提升了精度, 但也限制了检测速度。 YOLO算法利用回归的思想, 使用一阶网络直接完成了物体检测, 速度很快, 但是精度有了明显的下降。   在此背景下, SSD(Singl...

深度学习—1*1卷积核

主要作用: 1、跨通道的特征整合 2、特征通道的升维和降维 3、减少卷积核参数(简化模型),对于单通道feature map 用单核卷积即为乘以一个参数,而一般情况都是多核卷积多通道,实现多个feature map的线性组合 4、可以实现与全连接层等价的效果。如在faster-rcnn中用1*1*m的卷积核卷积n(如512)个特征图的每一个位置(像素点)...

图像处理之卷积---任意卷积核的快速实现

卷积其实是图像处理中最基本的操作,我们常见的一些算法比如:均值模糊、高斯模糊、锐化、Sobel、拉普拉斯、prewitt边缘检测等等一些和领域相关的算法,都可以通过卷积算法实现。只不过由于这些算法的卷积矩阵的特殊性,一般不会直接实现它,而是通过一些优化的手段让计算量变小。但是有些情况下卷积矩阵的元素值无甚规律或者有特殊要求,无法通过常规手段优化,这个时候只...

Matconvet的学习笔记

首先是自己的实践总结后面是转载的别人的内容: 在配置Matconvet时首先要配置MATLAB的编译器,此时你就要查看你的MATLAB的版本支持的编译器有哪些;两个相匹配后,再把msvc120opts.bat文件拷到C:Program FilesMATLABR2014ainwin64mexopts下这样你在MATLAB命令窗口中使用mex -setup c...

SciPy模块应用

1.图像模糊         图像的高斯模糊是非常经典的图像卷积例子。本质上,图像模糊就是将(灰度)图像I 和一个高斯核进行卷积操作:,其中是标准差为σ的二维高斯核。高斯模糊通常是其他图像处理操作的一部分,比如图像插值操作、兴趣点计算以及很多其他应用。SciPy 有用来做滤波操作的scipy.ndimage.filters 模块。该模块使用快速一维分离的方...