Stacked Hourglass Networks for Human Pose Estimation的论文学习

Stacked Hourglass Networks for Human Pose Estimation的论文学习

名词解析

由于是第一次看相关论文,对自己不太熟悉的专用术语作一个记录:

  1. pipeline ,一个典型的机器学习构建包含若干个过程

    1、源数据ETL
    
    2、数据预处理
    
    3、特征选取
    
    4、模型训练与验证
    

    以上四个步骤可以抽象为一个包括多个步骤的流水线式工作,从数据收集开始至输出我们需要的最终结果。因此,对以上多个步骤、进行抽象建模,简化为流水线式工作流程则存在着可行性,对利用spark进行机器学习的用户来说,流水线式机器学习比单个步骤独立建模更加高效、易用。

    管道机制在机器学习算法中得以应用的根源在于,参数集在新数据集(比如测试集)上的重复使用。

    管道机制实现了对全部步骤的流式化封装和管理(streaming workflows with pipelines)。注意:管道机制更像是编程技巧的创新,而非算法的创新。
    https://www.imooc.com/article/35451

  2. convolutional neural networks:CNN,ConvNets ,卷积神经网络。它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。 它包括卷积层(convolutional layer)和池化层(pooling layer)。
    https://blog.csdn.net/weixin_42451919/article/details/81381294

  3. 池化层(pooling layer):除了卷积层,卷积网络也经常使用池化层来缩减模型的大小,提高计算速度,同时提高所提取特征的鲁棒性。
    https://www.jianshu.com/p/b742c8c92b26

  4. hand-crafted features :顾名思义人为设计的特征,即直接设计特征本身,根据仿照人类视觉的特点对什么样的特征敏感,什么样的特征不敏感提取图像中有区分能力的特征,因此提取出来的特征每一维往往都有具体的物理含义。
    hand-crafted rules实现的人工智能,其本质就是通过许多if判断语句去实现,然而并不能完成比较复杂的任务,由于需要编写大量的if语句,工作量非常大不说还会经常出现一些可笑的错误,早期的一些所谓智能聊天机器人,基本都是用这种技术。

  5. stacked hourglass: 堆积沙漏模型,即本文讲述的重点。
    动机:捕捉不同尺度下图片所包含的信息.
    局部信息,对于比如脸部、手部等等特征很有必要,而最终的姿态估计需要对整体人体一致理解. 不同尺度下,可能包含了很多有用信息,比如人体的方位、肢体的动作、相邻关节点的关系等等.
    在这里插入图片描述
    图 - 单个hourglass模块示例. 图中个方框分别对应一个residual模块. 整个hourglass中,特征数是一致的.
    hourglass设置:
    首先Conv层和Max Pooling层用于将特征缩放到很小的分辨率;
    每一个Max Pooling(降采样)处,网络进行分叉,并对原来pre-pooled分辨率的特征进行卷积;
    得到最低分辨率特征后,网络开始进行upsampling,并逐渐结合不同尺度的特征信息. 这里对较低分辨率采用的是最近邻上采样(nearest neighbor upsampling)方式,将两个不同的特征集进行逐元素相加.
    整个hourglass是对称的,获取低分辨率特征过程中每有一个网络层,则在上采样的过程中相应低就会有一个对应网络层.
    得到hourglass网络模块输出后,再采用两个连续的 1×1 Conv层进行处理,得到最终的网络输出.
    Stacked Hourglass Networks输出heatmaps的集合,每一个heatmap表征了关节点在每个像素点存在的概率.
    Residual模块提取了较高层次的特征(卷积路),同时保留了原有层次的信息(跳级路)。不改变数据尺寸,只改变数据深度。可以把它看做一个保尺寸的高级“卷积”层。
    https://www.cnblogs.com/z1141000271/p/9962464.html

  6. ground truth:在有监督学习中,数据是有标注的,以(x, t)的形式出现,其中x是输入数据,t是标注。正确的t标注是ground truth, 错误的标记则不是。(也有人将所有标注数据都叫做ground truth),如果标注数据不是ground truth,那么loss的计算将会产生误差,从而影响到模型质量。
    https://blog.csdn.net/wuruiaoxue/article/details/78761498

  7. RMSProp :RMSProp算法的全称叫 Root Mean Square Prop,是Geoffrey E. Hinton在Coursera课程中提出的一种优化算法。在上面的Momentum优化算法中,虽然初步解决了优化中摆动幅度大的问题,所谓的摆动幅度就是在优化中经过更新之后参数的变化范围,如下图所示,蓝色的为Momentum优化算法所走的路线,绿色的为RMSProp优化算法所走的路线。 蓝色的为Momentum优化算法所走的路线,绿色的为RMSProp优化算法所走的路线。 RMSProp算法对梯度计算了微分平方加权平均数。这种做法有利于消除了摆动幅度大的方向,用来修正摆动幅度,使得各个维度的摆动幅度都较小。另一方面也使得网络函数收敛更快。
    https://blog.csdn.net/willduan1/article/details/78070086

  8. MSE: Mean Squared Error :均方误差是指参数估计值与参数真值之差平方的期望值;
    作用:可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。
    在这里插入图片描述这里的y是测试集上的。用 真实值-预测值 然后平方之后求和平均。
    猛着看一下这个公式是不是觉得眼熟,这不就是线性回归的L2损失函数嘛!!! 对,在线性回归的时候我们的目的就是让这个损失函数最小。那么模型做出来了,我们把损失函数丢到测试集上去看看损失值不就好了嘛。简单直观暴力!

  9. Ablation Experiments:消融实验,在机器学习,特别是复杂的深度神经网络的背景下,已经采用“消融研究”来描述去除网络的某些部分的过程,以便更好地理解网络的行为。消融研究对于深度学习研究至关重要 。理解系统中的因果关系是产生可靠知识的最直接方式(任何研究的目标)。
    消融是一种非常省力的方式来研究因果关系。如果您采用任何复杂的深度学习实验设置,您可能会删除一些模块(或用随机的模块替换一些训练有素的功能)而不会降低性能。消除研究过程中的噪音:进行消融研究。
    第二种解释:你朋友说你今天的样子很帅,你想知道发型、上衣和裤子分别起了多大的作用,于是你换了几个发型,你朋友说还是挺帅的,你又换了件上衣,你朋友说不帅了,看来这件衣服还挺重要的。
    https://blog.csdn.net/FJY_sunshine/article/details/82732914

  10. 中继监督优化(intermediate supervision)在这里插入图片描述Hourglass网络输出heatmaps集合(蓝色方框部分),与真值进行误差计算。 其中利用1×1的Conv层对heatmaps进行处理并将其添加回特征空间中,作为下一个hourglass model的输入特征。每一个Hourglass网络都添加Loss层.Intermediate Supervision的作用在一篇论文中提到:如果直接对整个网络进行梯度下降,输出层的误差经过多层反向传播会大幅减小,即发生vanishing gradients现象。
    为解决此问题,这篇论文在每个阶段的输出上都计算损失。这种方法称为intermediate supervision,可以保证底层参数正常更新。
    https://www.cnblogs.com/z1141000271/p/9962464.html

总结

本文使用全卷积网络解决人体姿态分析问题,截至2016年5月,在MPII姿态分析竞赛中暂列榜首,PCKh(误差小于一半头高的样本比例)达到89.4%。与排名第二的CPM(Convolutiona Pose Machine)1方法相比,思路更明晰,网络更简洁。该论文体现了从模块到网络再到完整网络的设计思想。

使用的初级模块称为Residual Module,得名于其中的旁路相加结构。
在这里插入图片描述

作用:Residual模块提取了较高层次的特征(卷积路),同时保留了原有层次的信息(跳级路)。不改变数据尺寸,只改变数据深度。可以把它看做一个保尺寸的高级“卷积”层。
在这里插入图片描述

上下两个半路都包含若干Residual模块(浅绿),逐步提取更深层次特征。但上半路在原尺度进行,下半路经历了先降采样(红色/2)再升采样(红色*2)的过程。

降采样使用max pooling,升采样使用最近邻插值。n阶Hourglass子网络提取了从原始尺度到1/2 n 1/2n1/2^n尺度的特征。不改变数据尺寸,只改变数据深度。

在这里插入图片描述

以一个Hourglass(深绿色)为中心,可以从彩色图像预测K个人体部件的响应图。原始图像经过一次降采样(橙色),输入到Hourglass子网络中。Hourglass的输出结果经过两个线性模块(灰色),得到最终响应图。期间使用Residual模块(浅绿)和卷积层(白色)逐步提取特征。而本文用的是以两个Hourglass(深绿色)为中心的二级网络。二级网络重复了一级网络的后半结构。第二个Hourglass的输入包含三路: 第一个Hourglass的输入数据 ,第一个Hourglass的输出数据 ,第一级预测结果 。这三路数据通过串接(concat)和相加进行融合,它们的尺度不同,体现了当下流行的跳级结构思想。如下图所示:

在这里插入图片描述
总结起来SHN的方法值得学习的地方有四点:使用模块进行网络设计 ,先降采样,再升采样的全卷积结构 , 跳级结构辅助升采样 ,中继监督训练。

评测数据集:在FLIC数据集上的PCK@0.2分别elbows(99%),elbows(97%)

https://blog.csdn.net/qq_38522972/article/details/82958077

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值