OpenMMLab-AI实战营第二期-课程笔记-Class 2:人体姿态估计与MMpose

news2025/1/12 12:06:50

Class 2:人体姿态估计与MMpose

文章目录

  • Class 2:人体姿态估计与MMpose
    • **人体姿态估计概述**
      • **what?**
      • **下游任务**
    • **2D 姿态估计**
      • **主流算法**
        • **基于回归坐标的方法**
        • **基于热图(heatmap)的方法**
      • **多人姿态估计**
      • **基于回归的自顶向下方法**
        • DeepPose
        • RLE
      • **基于热力图的自顶向下方法**
      • **自底向上方法**
        • SPM
        • SPR
      • **基于Transformer的方法**
        • PRTP
        • TokenPose
    • **3D 姿态估计**
      • 思路1:直接预测
      • 思路2:利用视频信息
      • 评估指标
        • PCP:
        • PDJ
        • PCK
    • 总结

主讲人:卢策吾 上海交通大学电院计算机系教授、博士生导师

课程地址:人体关键点检测与MMPose_哔哩哔哩_bilibili

MMPose主页:https://github.com/open-mmlab/mmpose

人体姿态估计概述

what?

人体姿态估计(Human Pose Estimation)是计算机视觉领域中的一个重要研究方向,也是计算机理解人类动作、行为必不可少的一步,人体姿态估计是指通过计算机算法在图像或视频中定位人体关键点,目前被广泛应用于动作检测、虚拟现实、人机交互、视频监控等诸多领域。

image-20230602104021436 image-20230602104648875

下游任务

  1. 行为识别:PoseC3D:基于人体姿态识别行为动作
  2. GC动画
  3. 人机交互
  4. 动物行为分析

最有趣:做cg动画,现在有很多工作是能够通过你的表情姿态,来驱动一个动画做很多有趣的东西

在这里插入图片描述

2D 姿态估计

2D Human Pose Estimation (以下简称 2D HPE) 旨在从图像或者视频中预测人体关节点(或称关键点,比如头,左手,右脚等)的二维空间位置坐标。2D HPE 的应用场景非常广泛,包括动作识别,动画生成,增强现实等。传统的 2D HPE 算法,设计手工特征提取图像信息,从而进行关键点的检测。近年来随着深度学习的快速发展,基于深度学习的 2D HPE 算法取得了重大突破,算法精度得到了大幅提升。

主流算法

基于回归坐标的方法

早期一些深度学习方法用神经网络直接预测人体关键点的 2D 坐标 。

在这里插入图片描述

DeepPose 是这类方法的经典代表。DeepPose 采用级联的神经网络来预测人体各个关键点的相对坐标。每一个阶段都拿上一阶段的输出坐标作为输入,并进一步预测更为准确的坐标位置。最终,将预测得到的归一化的相对坐标转换为绝对坐标。

直接回归坐标的方法思路直接,可以直接获得关键点位置,往往有更快的预测速度。然而,由于人体姿态的自由度很大,直接预测坐标的建模方式对神经网络的预测并不友好,预测精度受到了一定制约。

基于热图(heatmap)的方法

近些年,基于热图(heatmap)的人体姿态估计方法成为了主流。基于热图的方法在每个位置预测一个分数,来表征该位置属于关键点的置信度。根据预测的热图,进一步提取关键点的坐标位置。基于热图的方法更好地保留了空间位置信息,更符合卷积神经网络(Convolutional Neural Network, CNN)的设计特性,从而取得了更好的预测精度。

模型预测热力图比直接回归坐标相对容易,模型精度相对更高,因此主流算法更多基于热力图 但预测热力图的计算消耗大于直接回归.

算法流程:

在这里插入图片描述

多人姿态估计

当前主流的 2D HPE 方法主要可以分为自底向上(bottom up)和自顶向下(top down)两种方式。自底向上的方法同时预测图片中的所有关键点,然后将不同类型的关键点组合成人体。自顶向下的方法首先检测出输入图片中的一个或者多个人,然后对于每个个体单独预测其关键点。

image-20230602112816409 image-20230602112855133

自底向上方法的推断时间不随人数的增加而上升,而自顶向下的方法对于不同尺寸的人体更加鲁棒。

基于回归的自顶向下方法

DeepPose

在这里插入图片描述

优势:

  • 回归模型理论上可以达到㱙限精度,热力图方法的精度受限于特征图的空间分辨率
  • 回归模型不需要维持高分辨率特征图,计算层面更高效,相比之下,热力图方法需要计算和存储高分 辨率的热力图和特征图,计算成本更高

劣势:

  • 图像到关键点坐标的映射高度非线性,导致回归坐标比回归热力图更难,回归方法的精度也弱于热力 图方法,因此 DeepPose 提出之后的很长一段时间内,2D 关键点预测算法主要基于热力图

RLE

image-20230602113646940

RLE整体设计 :

  • RLE 的目标是建模关键点位置的概率分布,即给定图像 I ,给出每个关键点 x 的位置分布 P Θ ( x ∣ I ) P_{\Theta}(x \mid I) PΘ(xI) 可以基于标准化流构建该分布,但 RLE 算法还引入了两个技巧以降低模型拟合真实分布的难度:

    1. 重参数化.

      为降低建模分布的难度,假设所有关键点的分布属于同一个位置尺度族,即所有分布由某个零均值的 基础分布通过平移缩放得来。基于这个假设,让标准化流拟合该基础分布 x ˉ \bar{x} xˉ ,卷积网络预测平移缩放参 μ ^ \widehat{\mu} μ σ ^ \hat{\sigma} σ^
      推理阶段,将卷积网络预测的平移参数 μ ^ \widehat{\mu} μ 作为 关键点的预测结果,不需要推理标准化流,保证计算高效性。

    2. 残差似然函数

      借鉴残差网络的思路,进一步假设 x ˉ \bar{x} xˉ 的概率密度为标准高斯分布 Q ( x ˉ ) Q(\bar{x}) Q(xˉ) 与一个变形分布 G ϕ ( x ˉ ) G_{\phi}(\bar{x}) Gϕ(xˉ) 之积(或对数概率密度之和),如果 Q ( x ˉ ) Q(\bar{x}) Q(xˉ) 已经可以很好拟合数据,变形分布的对数退化为,让标准化流拟合该变形分布可以进一步降低模型训练的难度

image-20230602114012237

基于热力图的自顶向下方法

在这里插入图片描述

e.g. CPM(Convolutional Pose Machines) 利用序列化的卷积神经网络来学习纹理信息和空间信息,实现 2D 人体姿态估计。CPM 通过设计多阶段的网络结构逐渐扩大网络的感受野,获取远距离的结构关系。每一阶段融合空间信息,纹理信息和中心约束来得到更为准确的热图预测。

image-20230602143721232

HRNet 针对人体姿态估计设计了一个高效的网络结构。不同于以往方法利用低分辨率的特征预测高分辨率的热图,HRNet 设计了多个不同分辨率的平行分支。高分辨率特征始终被保持,并且不同尺度的特征能够相互融合。这种设计结合局部纹理特征和全局语义信息,实现了更加准确和鲁棒的姿态预测。

自底向上方法

Step 1. 使用关键点模型 检测出所有人体关键点
Step 2. 基于位置关系或其他辅助信息将关键点组合成不同的人

SPM

SPM首次提出了人体姿态估计的单阶段解决方案,在取得速度优势的同时,也取得了不逊色于二阶段方 法的检测率。并且该方法可以直接从2D图像扩展到3D图像的人体姿态估计。

在这里插入图片描述

SPR

为了统一人体实例和身体关节的位置信息,为多人姿势估计提供单阶段解决方案,SPR引入了一个辅助 关节,即根关节以表示人员实例位置,它是唯一标识关节。

在这里插入图片描述

基于Transformer的方法

PRTP

人体姿态估计和物体检测有一定相似性,都涉及对图像内容的定位 在 DETR 中 query 通过注意力机制逐渐聚焦到特定物体上 姿态估计可模仿 DETR:让 query 逐渐聚焦到特定人体关键点上.

image-20230602144827590 在这里插入图片描述

TokenPose

将视觉 token 和 关键点 token 一起送入 encoder 可以同时从图像中学习外观视觉表现和关键点间的 约束关系
分类模型 ViT 也使用类似方法,将一个分类 token 和visual token 一起做自注意力

在这里插入图片描述

3D 姿态估计

3D Human Pose Estimation(以下简称 3D HPE )的目标是在三维空间中估计人体关键点的位置。3D HPE 的应用非常广泛,包括人机交互、运动分析、康复训练等,它也可以为其他计算机视觉任务(例如行为识别)提供 skeleton 等方面的信息。关于人体的表示一般有两种方式:第一种以骨架的形式表示人体姿态,由一系列的人体关键点和关键点之间的连线构成;另一种是参数化的人体模型(如 SMPL ),以 mesh 形式表示人体姿态和体型。

image-20230602145048969

思路1:直接预测

直接基于从 2D 图像回归 3D 坐标,但 2D 图像不包含深度,这是一个病态问题 实际上隐式借助了语义特征或人体的刚性实现了 3D 姿态的推理。

在这里插入图片描述

这类方法不依赖 2D HPE,直接从图像回归得到 3D 关键点坐标。代表作 C2F-Vol 借鉴了 2D HPE 中的 Hourglass 网络结构,并以 3D Heatmap 的形式表示 3D pose。为了降低三维数据带来的巨大存储消耗,采用了在 depth 维度上逐渐提升分辨率的方法。

思路2:利用视频信息

基于视频的方法就是在以上两类方法的基础上引入时间维度上的信息。相邻帧提供的上下文信息可以帮助我们更好地预测当前帧的姿态。对于遮挡情况,也可以根据前后几帧的姿态做一些合理推测。另外,由于在一段视频中同一个人的骨骼长度是不变的,因此这类方法通常会引入骨骼长度一致性的约束限制,有助于输出更加稳定的 3D pose。

在这里插入图片描述

VideoPose3D 以 2D pose 序列作为输入,利用 Temporal Convolutional Network (TCN) 处理序列信息并输出 3D pose。TCN 的本质是在时间域上的卷积,它相对于 RNN 的最大优势在于能够并行处理多个序列,且 TCN 的计算复杂度较低,模型参数量较少。在 VideoPose3D 中,作者进一步利用 dilated convolution 扩大 TCN 的感受野。具体的网络结构与 SimpleBaseline3D 类似,采用了残差连接的全卷积网络。除此以外,VideoPose3D 还包含了一种半监督的训练方法,主要思路是添加一个轨迹预测模型用于预测根关节的绝对坐标,将相机坐标系下绝对的 3D pose 投影回 2D 平面,从而引入重投影损失。半监督方法在 3D label 有限的情况下能够更好地提升精度。

评估指标

PCP:

P C P 以肢体的检出率作为评价指标
考虑每个人的左右大臂、小臂、大腿、小腿共计 4 × 2 = 8 4 \times 2=8 4×2=8 个肢体
如果两个预测关节位置和真实肢体关节位置之间的距离小于等于肢体长度的一半,则认为肢体已检测到 且是正确的部分。

PDJ

PDJ 以关节点的位置精度作为评价指标
通常考虑头、肩、时、腕、臀、膝、踝几个关键点,如果预测关节和真实关节之间的距离在躯干直径的 某个比例范围内,则认为检测到检测到了关节。并且可以通过改变该比例,可以获得不同程度的定位精 度的检测率。

PCK

PCK以关键点的检测精度作为评价指标
如果预测关节和真实关节之间的距离在某个阈值(可变)内,则认为检测到的关键点是正确的。在2D 与3D (PCK3D) 任务中均可使用。

PCK阈值通常是根据对象的比例设置的,对象的比例封闭在边界框内。例如,阈值可以是: PCKh@0.5 阈值=头部骨骼链接的 50 50 % ;PCK@0.2 50阈值=0.2*躯干直径;有时也以 150   m m 150 \mathrm{~mm} 150 mm 作为阈值

PCK based mAP以关键点相似度 (OKS) 作为评价指标计算mAP,OKS是MS COCO竞赛指定的关键点 评价指标

总结

image-20230602150555472

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

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

相关文章

5. 垃圾收集器G1ZGC详解

JVM性能调优 1. G1收集器(-XX:UseG1GC) 本文是按照自己的理解进行笔记总结,如有不正确的地方,还望大佬多多指点纠正,勿喷。 课程内容: 1、G1垃圾收集器详解 2、每秒几十万并发的系统JVM级别如何优化 3、ZGC垃圾收集器详解 4、…

设置 session rdp 时间限制

起因:一台服务器 2016版本,每当退出远程桌面后,过一段时间,用户所有的进程就会自动关闭,导致后台运行的任务出现异常。 运行 gpedit.msc, 根据以下资料设置后,记得重启,不然不会生效 前三个选…

汽车出海势头旺,汽车零部件企业如何破浪前行?

随着国内汽车市场逐渐饱和,中国汽车企业开始寻求“汽车出海”的新市场增长点。在政府加大汽车出海政策支持力度下,根据中汽协数据,一季度的新能源汽车出口达24.8万辆,同比增长1.1倍。中国汽车行业持续深耕海外市场,出口…

节省公司资源,可以使用生产力分析系统!

经常出现有人下班后忘记关机的情况,不仅给公司造成损失,还浪费电力资源。虽说公司内通常会装有摄像头,可以看到具体是哪台电脑忘记关,但总不能让已经到家的职工,又返回公司关机吧。使用生产力分析系统,可以…

测量不确定度

不确定度与误差区别 相同点:都是评价测量结果质量高低的重要指标,都可以作为测量结果的精度评定参数。 不同点:测量误差是结果与真值之差,以真值为约定中心;而不确定度则是以估计值为约定中心,因此误差是…

SpringBoot使用SSE进行实时通知前端

SpringBoot使用SSE进行实时通知前端 说明maven依赖SSE工具类代码 Controller测试代码测试结果如下:注意将超时时间由原来的0改为默认的30秒,会报错。将springboot降为低版本如1.4.2.RELEASE。 说明 项目有个需求是要实时通知前端,告诉前端这个任务加载好…

数字孪生:让ECU在数字环境中“栩栩如生”

很多汽车广告中都会展示这样一个画面:在快要猛烈撞击障碍物之时,汽车所配备的防撞预警功能在最后关头实现停驶,守护车内老少一家人的生命安全。 近年来,汽车安全性能成为众多厂商广告中的主打,侧面印证了安全在当下消…

【传感器】最小二乘法实现磁力计椭球校准

总体思路 磁力计的数据在实际中是椭球的形状,在此之前使用了球体拟合进行校准,也就是简化为正球体的模型,得出的结果比较差,航向计算不准,还是需要用椭球的模型来估计偏移量,先使用标准的椭球方程&#xf…

微信小程序相关问题整理(一)

文章目录 1、引入 vant-weapp UI2、配置小程序 tabBar3、小程序登录授权流程4、小程序支付(微信支付)5、小程序分享6、小程序打开内置地图(腾讯地图)7、小程序打开app8、小程序打开其他小程序9、小程序获取当前地理位置额外&#…

项目上线出Bug:我踩过的4个大坑及事后反思

最近参与的拥有7大模块的系统项目,从去年11月开始开发,共5个月左右。 该项目是用JavaNode.js开发,开发人员含外包将近10位,测试人员A从头跟到尾,其他测试人员都是紧急时刻从其他项目临时调来,包含兄弟部门…

【LeetCode】HOT 100(2)

题单介绍: 精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍&#…

精通编辑和校对:避免常见错误的实用方法

编辑和校对是提高写作质量的关键环节。为了精通编辑和校对,我们需要了解常见的错误并学会避免它们。 以下是一些实用方法,帮助你在编辑和校对过程中避免常见错误。 1.充分理解文本内容和目的 在开始编辑和校对之前,确保充分理解文本的内容和…

今天教会你如何在Chrome中正确使用ChatGPT!

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享博主 🐋 希望大家多多支持一下, 我们一起进步!😄 🏅 如果文章对你有帮助的话,欢迎评论 💬点赞&#x1…

笔记本电脑无法正常启动怎么办?

随着计算机技术的发展,笔记本电脑在性能上已经不比台式机落后,并且因其便于携带的优势,受到广大用户的喜爱。那么,在笔记本电脑无法正常启动时,我们该怎么办呢? 笔记本电脑无法正常启动的原因 笔记本电脑无…

这就是00后吗,工作没两年,跳槽到我们公司起薪20K都快接近我了

在程序员职场上,什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事,我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事,可遇不可求,向他学习还来不及呢。 真正让人反感的,是技术平平&…

Vue3-02-响应性 reactive

1. setup setup 是一个组件选项,组合式 API 就定义在 setup 中,包括 data、methods、computed 和 watch 等,都定义在 setup 中。 setup 实际上是一个生命周期钩子函数,执行时间点相当于 Vue2 中 beforeCreate 和 created 的结合…

springcloud-alibaba (03)Sentinel规则-笔记

sentinel Sentinel提供的各种规则的简单说明01,流量控制一,流控规则(阈值类型:QPS)二,流控规则(阈值类型:并发线程数)三,高级选项 02,熔断降级一&…

day45_项目

SQL /* 在分页查询中,有一些常见变量名 pageNo 当前页(页码),默认是1 pageSize 每页展示数据的条数,需求给定 pageCount 共多少页pageCounttotal%pageSize0?(total/pageSize):(total/pageSize)1; total 共多少条数据,select count(id)计算出 */ -- 假设,每页展示4条 …

LEAP软件操作基础/安装与注册/基本原理和数据结构

本次内容突出与实例结合,紧密结合国家能源统计制度及《省级温室气体排放编制指南》,深入浅出地介绍针对不同级别研究对象时如何根据数据结构、可获取性、研究目的,构建合适的能源生产、转换、消费、温室气体排放(以碳排放为主&…

电力系统直流潮流计算研究【IEEE9节点】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…