Stacked Hourglass Networks for Human Pose Estimation 用于人体姿态估计的堆叠沙漏网络

news2024/11/24 6:19:52

Stacked Hourglass Networks for Human Pose Estimation

用于人体姿态估计的堆叠沙漏网络

        这是一篇关于人体姿态估计的研究论文,标题为“Stacked Hourglass Networks for Human Pose Estimation”,作者是 Alejandro Newell, Kaiyu Yang, 和 Jia Deng,来自密歇根大学。论文介绍了一种新颖的卷积神经网络架构,用于人体姿态估计任务。

论文地址:https://arxiv.org/pdf/1603.06937.pdf

源码链接:http://www-personal.umich.edu/~alnewell/pose

        本文主要是介绍了一个在当时是新的姿态估计的网络结构。由于本人在研究自动驾驶领域中车道线识别[注] 时使用到此网络结构,故这里主要是对整个网络的结构和思想进行一个梳理,可以进一步明白后序一些基于此网络结构的工作,不涉及到 姿态估计领域 的一些见解和讨论,所以本文主要引出和介绍 hourglass 网络

注:

《Key Points Estimation and Point Instance Segmentation Approach for Lane Detection》

论文:https://arxiv.org/abs/2002.06604

代码:https://github.com/koyeongmin/PINet

        这项工作介绍了一种用于人类姿态估计任务的新颖卷积网络架构。特征在所有尺度上进行处理和整合,以最好地捕捉与身体相关的各种空间关系。此论文展示了自下而上、自上而下的重复处理与中间监督相结合对于提高网络性能至关重要。作者将该架构称为“堆叠沙漏”网络(hourglass),该网络基于池化和上采样的连续步骤,以产生最终的一组预测。在FLIC和MPII基准测试中取得了最先进的结果,超过了所有关于人体姿态估计领域的方法。

堆叠的沙漏模块组成:

        作为视觉领域一个公认的问题,多年来,姿态估计一直困扰着研究人员,面临着各种艰巨的挑战。一个好的姿态估计系统必须对遮挡和严重变形具有鲁棒性,在罕见和新颖的姿势上取得成功,并且对由于服装和照明等因素导致的外观变化不变。早期的工作使用强大的图像特征和复杂的结构化预测来解决这些困难,前者用于产生局部解释,而后者用于推断全局一致的姿势。

        在卷积神经网络(ConvNets)概念的提出以及使用下,其极大地重塑了这种传统的赛道,这是许多计算机视觉任务性能爆炸性增长的主要驱动力。最近的姿态估计系统普遍采用 ConvNets 作为其主要构建块,在很大程度上取代了手工制作的特征和图形模型;这种策略在标准基准上产生了巨大的改进。

        此论文作者继续沿着这条轨迹前进,引入了一种新颖的“堆叠沙漏”网络设计来预测人体姿势。该网络捕获并整合图像所有比例的信息。作者将该设计称为沙漏,基于对池化步骤的可视化,以及用于获得网络最终输出的后续上采样。与许多产生像素级输出的卷积方法一样,沙漏网络池化到非常低的分辨率,然后上采样并组合多个分辨率的特征。另一方面,沙漏与以前的设计不同,主要在于其更对称的拓扑结构。

        作者通过将多个沙漏模块端到端连续放置在一起来扩展单个沙漏。这允许跨尺度重复自下而上、自上而下的推理。结合使用中间监督,重复的双向推理对于网络的最终性能至关重要。最终的网络架构在两个标准姿态估计基准(FLIC 和 MPII 人体姿态 )的最新技术基础上实现了重大改进。在MPII上,所有关节的平均精度提高了2%以上,膝盖和脚踝等更困难的关节提高了4-5%。

示例输出和示例热图

        堆叠前沙漏模块与全卷积网络和其他设计紧密相连,这些设计在多个尺度上处理空间信息以进行密集预测。沙漏模块与其他设计的不同之处主要在于自下而上的处理(从高分辨率到低分辨率)和自上而下的处理(从低分辨率到高分辨率)之间的容量分布更对称。例如,完全卷积网络 和整体嵌套架构在自下而上的处理中都很重,但在自上而下的处理中很轻,它只包括跨多个尺度的预测的(加权)合并。作者不使用解池层或解卷层。取而代之的是,依靠简单的最近邻上采样和跳过连接进行自上而下的处理,另一个主要区别是,通过堆叠多个沙漏来执行重复的自下而上、自上而下的推理。

单个“沙漏”模块的图示

         “hourglass” 结构很像 FCN,结构最大的不同点就是更加对称的容量分布(包括特征从高分辨率到低分辨率,从低分辨率到高分辨率),FCN 或者 holistically-nested 结构都是高分辨率到低分辨率(down-top)容量比较大、结构较复杂;低分辨率到高分辨率(top-down)结构较为简单。 这里的结构也与一些做分割,样本生成,去噪自编码器,监督/半监督特征学习等的结构很像,但是操作的本质不同, "hourglass" 没有使用 unpooling 操作或者是解卷积层,而是使用了最简单的最近邻上采样和跨层连接来做 top-down(上采样)。还有一个不一样的点是,本文工作堆叠了多个 “hourglass” 的结构来构建整个网络。

hourglass网络架构

Hourglass Design(沙漏结构设计)

        作者选择使用带有跳过图层的单个管道来保留每个分辨率的空间信息。该网络达到 4x4 像素的最低分辨率,允许应用较小的空间过滤器来比较图像整个空间的特征。

        沙漏的设置如下:卷积和最大池化层用于处理分辨率非常低的特征。在每个最大池化步骤中,网络都会分支,并以原始预池化分辨率应用更多卷积。在达到最低分辨率后,网络开始自上而下的上采样序列和跨尺度的特征组合。为了将两个相邻分辨率的信息汇集在一起,对较低分辨率进行最近邻上采样,然后逐元素添加两组特征。沙漏的拓扑结构是对称的,因此对于下降过程中存在的每一层,都有一个相应的上升层。

top-down : 采用卷积层 + maxpooling

down-top : 采用最近邻上采样 + 跨层连接

        在达到网络的输出分辨率后,应用连续两轮 1x1 卷积以产生最终的网络预测。网络的输出是一组热图,其中对于给定的热图,网络预测每个像素处关节存在的概率。

Layer Implementation(层的实现)

        作者设计大量使用了残余模块。从不使用大于 3x3 的筛选器,并且瓶颈限制了每层的参数总数,从而减少了总内存使用量。网络中使用的模块如图所示。

Stacked Hourglass with Intermediate Supervision

        这种通过端到端堆叠多个沙漏来进一步发展的网络架构,将一个沙漏的输出作为输入馈送到下一个沙漏中。为网络提供了一种重复自下而上、自上而下的推理机制,允许重新评估整个图像的初始估计和特征。这种方法的关键是预测可以应用损失的中间热图。预测是在通过每个沙漏后生成的,其中网络有机会处理本地和全局上下文中的特征。随后的沙漏模块允许再次处理这些高级特征,以进一步评估和重新评估更高阶的空间关系。这与其他姿态估计方法类似,这些方法在多个迭代阶段和中间监督下表现出强大的性能。

        通过将中间预测映射到具有额外 1x1 卷积的更多通道,将它们重新集成回特征空间。这些特征与前一个沙漏阶段输出的特征一起被加回沙漏的中间特征中。生成的输出直接用作生成另一组预测的下一个沙漏模块的输入。在最终的网络设计中,使用了八个沙漏。需要注意的是,权重不会在沙漏模块之间共享,并且使用相同的基本事实对所有沙漏的预测应用损失。

训练结果

        此网络在两个基准数据集上进行评估,即 FLIC 和 MPII Human Pose 。FLIC 由从电影中拍摄的 5003 张图像(3987 张训练,1016 张测试)组成。这些图像在上半身进行了注释,大多数人物都直视相机。MPII Human Pose 由大约 25k 张图像组成,带有多人的注释,提供 40k 注释样本(28k 训练,11k 测试)。没有提供测试注释,因此在所有的实验中,训练图像的子集上进行训练,同时在大约 3000 个样本的保留验证集上进行评估。MPII由从各种人类活动中拍摄的图像组成,并具有一系列具有挑战性的广泛表达的全身姿势。

示例输出

FLIC结果、MPII上的PCKh比较 、MPII人体姿势的结果

        在 MPII 人体姿势数据集上的所有关节上都取得了最先进的结果。所有数字都可以在表中看到,PCK 曲线也可以在图中看到。在手腕、肘部、膝盖和脚踝等困难的关节上,比最新的最新结果平均提高了 3.5% ,平均错误率从 16.3% 下降到 12.8%。最终肘部准确率为91.2%,手腕准确率为87.1%。网络对MPII所做的预测示例如图所示。

堆叠沙漏网络的视觉应用

        堆叠沙漏网络架构最初是为了人体姿态估计任务而设计的,但由于其能够有效地捕捉不同尺度的空间信息并在多个分辨率上进行特征整合,这种架构在其他计算机视觉任务中也显示出了潜力和应用价值。

例如在目标检测和识别领域,由于堆叠沙漏网络能够生成高分辨率的输出,它可以用来检测和识别图像中的物体。特别是在需要精确定位物体边界的情况下,这种网络架构可以提供有用的特征。

其次在语义分割任务中,需要对图像中的每个像素进行分类。堆叠沙漏网络通过自底向上和自顶向下的路径,能够有效地整合局部和全局信息,这对于提高分割的准确性是非常有帮助的。

堆叠沙漏网络的改进与优化

网络剪枝:
        通过移除网络中不重要的权重和神经元来减少网络的复杂性。网络剪枝可以显著减少计算量,同时尽量保持网络性能。
量化:
        将浮点数权重和激活值转换为低精度表示(如int8或int16),以减少模型大小和加快计算速度。量化后的模型可以在不显著降低性能的情况下加速推理过程。
多尺度检测:
        优化网络的多尺度检测策略,减少在不同尺度上的重复计算。可以通过共享特征图或使用更有效的金字塔池化层来实现。
使用更高效的层:
        替换网络中的一些层为更高效的实现。例如,使用深度可分离卷积(depthwise separable convolutions)代替标准卷积可以减少计算量。
模型并行化:
        利用多GPU或多核CPU进行模型的并行计算,以加速前向传播和反向传播过程。
优化的采样策略:
        在训练过程中,使用更有效的采样策略,如随机采样或分层采样,以减少不必要的计算。
轻量化设计:
        设计轻量级的堆叠沙漏网络版本,通过减少层数、通道数和滤波器大小来降低模型复杂度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1591780.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CADMap3D2024 2023下载地址及安装教程

CAD Map 3D是由Autodesk开发的一款专业的地图制作和GIS(地理信息系统)软件。它是AutoCAD系列软件的一个扩展,提供了一系列特定于地理数据的工具和功能。 CAD Map 3D主要用于处理和管理与地理空间相关的数据,在地图制作、城市规划…

数据结构学习之路--实现带头双向循环链表的详解(附C源码)

嗨嗨大家~本期带来的内容是:带头双向循环链表的实现。在上期文章中我们提到过带头双向循环链表,那么它的实现又是怎样的呢?今天我们来一探究竟! 目录 前言 一、认识带头双向循环链表 1 认识双向链表 2 带头双向循环链表的定…

这 6 个探索性数据分析(EDA)工具,太实用了!

当进行数据分析时,探索性数据分析(EDA)是一个至关重要的阶段,它能帮助我们从数据中发现模式、趋势和异常现象。而选择合适的EDA工具又能够极大地提高工作效率和分析深度。 在本文中,我将介绍6个极其实用的探索性数据分析(EDA)工具&#xff0…

UTONMOS元宇宙游戏特点

在元宇宙的世界里,游戏不再只是一种娱乐方式,而是一种全新的生活体验。UTONMOS元宇宙游戏带你穿越虚拟与现实的边界,开启一段前所未有的冒险之旅。 在这个充满无限可能的UTONMOS元宇宙游戏中,你将成为自己游戏世界的主角。可以自…

Java(多线程)

一、基本概念 进程:一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。线程:操作系统中能够进行运算的最…

蓝桥杯 2019 省A 糖果 动态规划/二进制

#include <bits/stdc.h> // 包含标准库中的所有头文件 using namespace std;int main() {int n,m,k; // 定义变量n&#xff08;糖果包数&#xff09;、m&#xff08;口味数&#xff09;、k&#xff08;每包糖果的个数&#xff09;cin>>n>>m>>k; // 输入…

院子里种点什么树风水好呢?

植物本身是一个丰富的生活领域&#xff0c;有着强烈的视觉暗示。其实&#xff0c;在家中养植物&#xff0c;是有许多好处的&#xff0c;它不仅能够装点庭院的环境让家更美丽&#xff0c;还能调节室内的空气质量&#xff0c;对家人的运势也有着非常大的帮助。 不过&#xff0c;并…

Android 四大组件启动

service: startService启动过程分析 - Gityuan博客 | 袁辉辉的技术博客 在整个startService过程&#xff0c;从进程角度看服务启动过程 Process A进程&#xff1a;是指调用startService命令所在的进程&#xff0c;也就是启动服务的发起端进程&#xff0c;比如点击桌面App图标…

Java 中文官方教程 2022 版(四十九)

原文&#xff1a;docs.oracle.com/javase/tutorial/reallybigindex.html JAXB 示例 原文&#xff1a;docs.oracle.com/javase/tutorial/jaxb/intro/examples.html 以下部分描述如何使用包含在 JAXB RI 捆绑包中的示例应用程序。JAXB RI 捆绑包可从jaxb.java.net获取。下载并安装…

华为云配置安全组策略开放端口

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C &#x1f525;座右铭&#xff1a;“不要等到什么都没有了&#xff0c;才下…

文件上传【2】--靶场通关

1.前端禁用js绕过 上传文件&#xff0c;进行抓包&#xff0c;没有抓到&#xff0c;说明这里的验证是前端js验证跳出的弹窗 禁用js后&#xff0c;php文件上传成功。 2.文件上传.htaccess 上传png木马后连接不上 代码中存在.htaccess&#xff0c;判断此时应该就是需要用到.htac…

单细胞RNA测序(scRNA-seq)cellranger count的细胞定量和aggr整合

单细胞RNA测序(scRNA-seq)基础知识可查看以下文章: 单细胞RNA测序(scRNA-seq)工作流程入门 单细胞RNA测序(scRNA-seq)细胞分离与扩增 单细胞RNA测序(scRNA-seq)SRA数据下载及fastq-dumq数据拆分 单细胞RNA测序(scRNA-seq)Cellranger流程入门和数据质控 细胞定量…

[大模型]Qwen1.5-7B-Chat FastApi 部署调用

Qwen1.5-7B-Chat FastApi 部署调用 环境准备 在 Autodl 平台中租赁一个 3090 等 24G 显存的显卡机器&#xff0c;如下图所示镜像选择 PyTorch–>2.0.0–>3.8(ubuntu20.04)–>11.8&#xff08;11.3 版本以上的都可以&#xff09;。 接下来打开刚刚租用服务器的 Jupyt…

yolov9训练自己的数据—vehicle 4类

yolov9训练自己的数据 1 conda环境安装指定版本torch 2 预训练模型测试3 训练自己的数据集3.1 制作数据3.2 创建模型配置文件3.3 创建数据加载配置文件3.4 使用ClearML跟踪训练日志3.5 训练3.6 模型测试3.7 转换成TensorRT模型 4 参考文档 1 conda环境 下载yolov9代码&#xf…

Traefik和HAProxy全方位对比

在面对各种现代应用部署需求时&#xff0c;选择合适的反向代理和负载均衡器至关重要。Traefik&#x1f6a6;和HAProxy&#x1f6e1;️都是领先的解决方案&#xff0c;但它们各有特点&#xff0c;适用于不同的场景。本文将从多个维度全面对比Traefik&#x1f6a6;和HAProxy&…

MySQL基础知识——MySQL日志

一条查询语句的执行过程一般是经过连接器、 分析器、 优化器、 执行器等功能模块&#xff0c; 最后到达存储引擎。 那么&#xff0c; 一条更新语句的执行流程又是怎样的呢&#xff1f; 下面我们从一个表的一条更新语句进行具体介绍&#xff1a; 假设这个表有一个主键ID和一个…

vueRouter动态路由(实现菜单权限控制)

一、权限控制管理&#xff1a; 对于企业级的项目, 我们可能需要对项目做权限控制管理, 实现不同角色的用户登录项目根据所拥有的权限访问不同的页面内容&#xff0c;此时就需要使用到动态路由来对权限页面做限制。 【使用vue-router实现动态路由&#xff0c;达到实现菜单权限…

玩爆私域,和爱豆P图,每天几分钟 轻松日入300+【揭秘】

这个项目的亮点在于能够将你的照片与你喜欢的明星合成一张合影。这种合照在社交媒体上获得了相当高的点赞量。接着&#xff0c;我们可以通过引流和评论区互动&#xff0c;将感兴趣的粉丝转化为我们的微信好友&#xff0c;进而实现交易。你们可以查看我们的收益情况&#xff0c;…

matlab 安装 mingw64(6.3.0),OPENEXR

matlab安装openexr 1. matlab版本与对应的mingw版本选择2. mingw&#xff08;6.3.0&#xff09;下载地址&#xff1a;3. matlab2020a配置mingw&#xff08;6.3.0&#xff09;流程“4. matlab 安装openexr方法一&#xff1a;更新matlab版本方法二&#xff1a;其他博文方法方法三…

每日两题 / 3. 无重复字符的最长子串 84. 柱状图中最大的矩形(LeetCode热题100)

3. 无重复字符的最长子串 - 力扣&#xff08;LeetCode&#xff09; 双指针&#xff0c;l和r从字符串最左边开始&#xff0c;保存l和r之间的所有字符 移动r&#xff0c;若新加入的字符和已有字符重复&#xff0c;则不断移动l&#xff0c;直到l和r之间不出现重复字符 注意&#…