zoukankan      html  css  js  c++  java
  • 基于深度学习的人体姿态估计综述

    定义

    姿态估计:在人体关节连接的所有姿势空间中搜索某个特定姿势,本质为关节点的定位。

    人体骨架以一种图的方式表示了人的方位姿态,本质上是一组能被连接起来表示人体姿态的坐标。坐标点又称为关节或关键点,两坐标点之间的连接称为肢体--limb

    姿势空间的子集:

    骨架表示的示例:

    准确的说左侧是openpose中的格式

    2D Pose Estimation: 从RGB图像中估计每个关节点的2D姿势坐标,2D pose (x,y)
    3D Pose Estimation: 从RGB图像中估计每个关节点的3D姿势坐标,3D pose (x,y,z),z---the depth

    应用

    1. 动作识别
    2. 训练机器人
    3. 游戏中跟踪交互对象的动作
    4. 动画视频中增强现实--动作渲染

    难点

    1. 关节的特点:强大而复杂的表达能力;小且几乎看不见
    2. 遮挡、服装和照明变化

    2D Pose估计

    传统的方法是:过可变形区域建模,缺点是表性能力差,没有考虑上下文信息。

    基于深度学习的方法:

    DeepPose——第一篇将基于卷积神经网络的深度学习方法 应用到姿势估计的论文

    0.将关节点估计建模为回归问题,证明了从整体推理隐藏的关节点的合理性,展示了CNN强大的表现力。
    1.将alexnet前面的七层拿出来,加一个2K的向量(x,y)*k. k-----人体骨骼建模的关节点个数
    2.再级联一个同样的回归器,对1阶段粗回归得到的关节点位置从原图上裁剪得到ROI区域,再一次回归精修位置----此时分辨率变大

    弊端:直接回归一组向量作为xy坐标很困难,增加了学习的复杂度,降低了泛化能力,因此某些地方表现一般。
    最新的SOTA方法:是回归K张heatmap,代表某种关节点发生在此对应像素位置的置信度。如下面论文

    Efficient Object Localization Using Convolutional Networks

    • 并行的在多分辨率图片上操作
    • 精修时直接从第一层回归器拿特征图ROI,而不是去原图拿ROI
      优点:热图预测比直接回归关节点效果好
      不足:没有考虑人体的结构建模------人体具有高度对称性,部位比例关系,物理连接性(肘一定是连接腕关节或肩关节),贯通性以及关节局限性(比如肘向后弯曲限制)等,通过建模这种结构关系可以使关键点的确定更容易,使遮挡关节的估计变成可能。

    Human Pose Estimation with Iterative Error Feedback迭代残差反馈

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

    不同尺度的图像包含容易识别出人物朝向,四肢的排列及关节的连接关系的重要线索。较小的分辨率捕捉高阶特征及全局信息。
    虽然局部信息对于局部特征比如手、脸的识别至关重要,但是最终的姿势估计需要全局信息。
    沙漏网络的特征:池化和上采样的堆叠,中间监督---每个沙漏块的输出,利用跳层连接保持空间信息
    沙漏网络的设计动机:捕捉各种尺度的信息capture information at every scale

    利用上采样提高分辨率,但将卷积参数放在别的模块中

    Simple Baselines for Human Pose Estimation and Tracking 2018

    SOTA : mAP of 73.7% on COCO

    结构:Resnet+反卷积层-------极度简洁
    利用反卷积提高分辨率,直接将卷积参数放在反卷积模块中。

    采用均方误差损失,即计算预测热图与真值热图的均方误差
    真值热图的由来:The targeted heatmap Hk for joint k is generated by applying a 2D Gaussian centered on the kth joint’s ground truth location with std dev = 1 pixel.
    最终这里的热图上关键点怎么确定,通过局部最大???Best performing methods on 2D pose estimation are all detection based and generate a likelihood heat map for each joint and locate the joint as the point with the maximum likelihood in the map.

    Deep High-Resolution Representation Learning for Human Pose Estimation -----[HRNet]

    论文思路:以往的论文都是 特征图从 高分辨率--->低分辨率---->高分辨率 的变化,HRNet全程保持高分辨率不变。

    网络结构:

    • 从最大分辨率网络逐步分出多个不同分辨率的子网络,并行连接运行。
    • 并行的不同分辨率子网络间通过多尺度融合实现信息流通
    • 也没有使用stacked那样的中间监督

    Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields (CVPR’17)-----OpenPose

    CPN(级联金字塔网络,2017coco关键点冠军--- Cascaded Pyramid Network for Multi-Person Pose Estimation

    多阶段;整合来自金字塔的多个尺度的特征,通过扩大感受野的方式以及在线的关键点难例挖掘损失(OHKM loss)来优化对难例关键点的检测

    alphapsoe1 & alphapsoe2(解决人体框不准和拥挤场景姿态估计

    姿态估计模型评价指标:

    1. 正确检测的肢体百分数------PCP
      PCP@0.5------检测到的肢体两个关节点位置小于肢体长度的一半认为肢体检测正确

    2. 正确检测的关键点的百分数------PCK
      PCK@0.2------预测关节点位置与真实关节点位置<0.2L_body(躯干距离)即为正确检测
      PCKh@0.5-----预测关节点位置与真实关节点位置<0.5L_head(0.5倍的头部对角线长度作为判定阈值)即为正确检测

    3. 正确检测的关节点百分数-----PDJ

    4. 基于mAp的目标关节点相似度-----OKS

      其中s^2 = H_obj * W_obj

      coco中关键点评估用,作用类似检测中的IOU

    显然,在关键点估计的距离模型中,不同目标不同类型的关键点最重要的要考虑的因素就是目标尺度的不同导致的关键点距离的巨大差异

    另外, AP:the mean of AP scores at 10 positions, OKS = 0.50, 0.55, . . . , 0.90, 0.95

    heatmap的生成

    1. HR-net中是用模型最后层输出的特征图作为计算关键点的基准,根据最大响应找到预测的关键点
    2. Heatmap的是以真实关键点在heatmap位置为中心,做一个以1个像素为标准差sigma的二维高斯分布得到真实的heatmap_score.
    3. 由3 sigma定理知:在gt_point附近(-3sigma,3sigma)内,即(-3,3)像素宽度才有heat_score>0.
  • 相关阅读:
    软件架构感悟.
    浏览器缓存技术
    as到底干嘛了???
    关于WebForm开发问题(给新手的建议)
    疑难问题ASP.NET
    破解hash算法.高手请进,求解.
    (MVC和JVPL模式)Moon.Web架构谈
    Moon.NET框架架构及介绍
    调用API设置安卓手机的Access Point
    gtShell 为你常用的目录建立标签并快速跳转
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/13398853.html
Copyright © 2011-2022 走看看