hrnet相关的两篇文章
CVPR2019   Deep High-Resolution Representation Learning for Human Pose Estimation
 
 
 
        提出了一种新的架构,即高分辨率网络(HRNet),它能够在整个过程中维护高分辨率的表示。我们从高分辨率子网作为第一阶段始,逐步增加高分辨率到低分辨率的子网(gradually add high-to-low resolution subnetworks),形成更多的阶段,并将多分辨率子网并行连接。在整个过程中,我们通过在并行的多分辨率子网络上反复交换信息来进行多尺度的重复融合,使得每一个高分辨率到低分辨率的表征都从其他并行表示中反复接收信息,从而得到丰富的高分辨率表征.
 
网络示意图如下:

本文的贡献点:
1)我们的方法是,平行地连接从高到底分辨率的子网络,与目前绝大多数串联连接的网络不同。因此,我们的网络可以维持高分辨率特征,而不是通过一个从低到高的操作来恢复出一个高分辨率特征。 因此,预测的热图(heatmap)在空间上可能更精确。
2) 大多数现有的融合方案都是聚合低层(low-level)和高层(high-level)的表示( representations)。而本文提出的网络,使用重复的多尺度融合, 利用相同深度和相似级别的低分辨率表示来提高高分辨率表示。
(i) Our approach connects high-to-low resolution subnetworks in parallel rather than in series as done in most existing solutions. Thus, our approach is able to maintain the high resolution instead of recovering the resolution through a low-to-high process, and accordingly the predicted heatmap is potentially spatially more precise. 
(ii)Most existing fusion schemes aggregate low-level and highlevel representations. Instead, we perform repeated multiscale fusions to boost the high-resolution representations with the help of the low-resolution representations of the same depth and similar level, and vice versa, resulting in that high-resolution representations are also rich for pose estimation. Consequently, our predicted heatmap is potentially more accurate.
 
 
网络结构如下图所示。

高分辨率与低分辨率的融合方式如下:

高分辨需要先用一个或者若干个连续的stride=2的3x3卷积(2个连续的stride=2的3x3卷积为 4倍的 downsampling)降低到与低分辨率相同,然后使用element wise sum,对不同分辨率进行求和。
低分辨率要先用一个上采样(Upsample,使用最近邻插值,使用2倍或者4倍的上采样率)的方式提升到与高分辨相同,然后使用1x1卷积使得通道数与高分辨一致,然后再进行sum操作。
 
最终不同分辨率的输出融合方式如下图:

 
 
最后在coco 人形关键点检测的结果如下:

附录:
 
各种网络的不同分辨率的组合融合方式

High-to-low and low-to-high.

      high-to-low process的目标是生成低分辨率和高分辨率的表示,low-to-high process的目标是生成高分辨率的表示[4,11,23,72,40,62]。这两个过程可能会重复多次,以提高性能[77,40,14]。
 
      具有代表性的网络设计模式包括:
 
      (i)Symmetric high-to-low and low-to-high processes。Hourglass及其后续论文[40,14,77,31]将low-to-high proces设计为high-to-low process的镜子。
 
      (ii)Heavy high-to-low and light low-to-high。high-to-low process是基于ImageNet分类网络,如[11,72]中使用的ResNet,low-to-high process是简单的几个双线性上采样[11]或转置卷积[72]层。
 
      (iii)Combination with dilated convolutions。在[27,51,35]中,ResNet或VGGNet在最后两个阶段都采用了扩张性卷积来消除空间分辨率的损失,然后采用由light lowto-high process来进一步提高分辨率,避免了仅使用dilated convolutions的昂贵的计算成本[11,27,51]。图2描述了四种具有代表性的姿态估计网络。

Multi-scale fusion.

最直接的方法是将多分辨率图像分别送入多个网络,并聚合输出响应映射[64]。Hourglass[40]及其扩展[77,31]通过跳过连接,将high-to-low process中的低级别特征逐步组合为low-to-high process中的相同分辨率的高级别特性。在cascaded pyramid network[11]中,globalnet将high-to-low process中的低到高级别特征low-to-high level feature逐步组合到low-to-high process中,refinenet将通过卷积处理的低到高特征进行组合。我们的方法重复多尺度融合,部分灵感来自深度融合及其扩展[67,73,59,80,82]。
 
 
 
 
 
 

HRNET网络结构简单分析的更多相关文章

  1. 简单分析JavaScript中的面向对象

    初学JavaScript的时候有人会认为JavaScript不是一门面向对象的语言,因为JS是没有类的概念的,但是这并不代表JavaScript没有对象的存在,而且JavaScript也提供了其它的方 ...

  2. CSipSimple 简单分析

    简介 CSipSimple是一款可以在android手机上使用的支持sip的网络电话软件,可以在上面设置使用callda网络电话.连接使用方式最好是使用wifi,或者3g这样上网速度快,打起电话来效果 ...

  3. C#中异常:“The type initializer to throw an exception(类型初始值设定项引发异常)”的简单分析与解决方法

    对于C#中异常:“The type initializer to throw an exception(类型初始值设定项引发异常)”的简单分析,目前本人分析两种情况,如下: 情况一: 借鉴麒麟.NET ...

  4. 透过byte数组简单分析Java序列化、Kryo、ProtoBuf序列化

    序列化在高性能网络编程.分布式系统开发中是举足轻重的之前有用过Java序列化.ProtocolBuffer等,在这篇文章这里中简单分析序列化后的byte数组观察各种序列化的差异与性能,这里主要分析Ja ...

  5. 简单分析Java的HashMap.entrySet()的实现

    关于Java的HashMap.entrySet(),文档是这样描述的:这个方法返回一个Set,这个Set是HashMap的视图,对Map的操作会在Set上反映出来,反过来也是.原文是 Returns ...

  6. Ffmpeg解析media容器过程/ ffmpeg 源代码简单分析 : av_read_frame()

    ffmpeg 源代码简单分析 : av_read_frame() http://blog.csdn.net/leixiaohua1020/article/details/12678577 ffmpeg ...

  7. FFmpeg的HEVC解码器源码简单分析:解析器(Parser)部分

    ===================================================== HEVC源码分析文章列表: [解码 -libavcodec HEVC 解码器] FFmpeg ...

  8. FFmpeg资料来源简单分析:libswscale的sws_getContext()

    ===================================================== FFmpeg库函数的源代码的分析文章: [骨架] FFmpeg源码结构图 - 解码 FFmp ...

  9. wp7之换肤原理简单分析

    wp7之换肤原理简单分析 纠结很久...感觉勉强过得去啦.还望各位大牛指点江山 百度找到这篇参考文章http://www.cnblogs.com/sonyye/archive/2012/03/12/2 ...

随机推荐

  1. JS 知识图

  2. vue组件间的传值方式及方法调用汇总

    1.传值 a.父组件传子组件 方法一: 父页面: <myReportContent v-if="contentState==1" :paramsProps='paramsPr ...

  3. 【SQL server】SQL server基础(一)

    一.关系型数据库 关系型数据库的基本元素是二维表,这些二维表可以被独立或者通过join语句连接起来使用.主键和外键是用来连接二维表之间的主要工具 1.主键(primary key)和外键(foreig ...

  4. 【OGG 故障处理】OGG-01031

    故障原因 -------------------- 网络异常,导致DP进程异常中断   故障现象 -------------------- 源端DP 进程全部挂起,且启动失败 GGSCI 34> ...

  5. C# 普通的辅助类

    在数字前面补0 /// <summary> /// 在数字前面添加0 /// </summary> /// <param name="num"> ...

  6. Ubuntu系统---开机总会显示错误报告处理

    Ubuntu系统---开机总会显示错误报告处理 使用ubuntu16.04,开机总会显示错误报告,略烦人,查找方法关闭.一.临时关闭sudo service apport stop(重启后失效) 二. ...

  7. Reverse链表

    之前学习了关于reverse数组相关的东东(http://www.cnblogs.com/webor2006/p/6727419.html),这次再来对链表进行reverse一下,在面试中也很容易被问 ...

  8. phpstudy修改端口及网站根目录和访问 localhost 显示目录文件夹

    一.其它选项菜单=>phpStudy设置=>端口常规设置(勾选允许目录列表): 二. Apache http端口:80 网站目录:D:\phpStudy\PHPTutorial\WWW 默 ...

  9. SQLCommand命令、DbTransaction事务

    一.SqlDataReader SqlConnection conn = new SqlConnection("server=10.126.64.11;user=it_oper;pwd=IT ...

  10. 前端知识体系:JavaScript基础-作用域和闭包-词法作用域和动态作用域

    词法作用域和动态作用域 1.作用域: 作用域是指程序代码中定义变量的区域 JavaScript采用词法作用域,也就是静态作用域 2.词法作用域和动态作用域 因为JavaScript采用的是词法作用域, ...