【OpenMMLab AI实战营第二期笔记】人体关键点检测与MMPose

news2024/11/24 15:22:45

人体关键点检测与MMPose

介绍

人体姿态估计(Human Pose Estimation)是计算机视觉领域中的一个重要研究方向,也是计算机理解人类动作、行为必不可少的一步,人体姿态估计是指通过计算机算法在图像或视频中定位人体关键点,目前被广泛应用于动作检测、虚拟现实、人机交互、视频监控等诸多领域。本次课程涵盖人体姿态估计的介绍与应用、2D 姿态估计、3D 姿态估计、DensePose、Body Mesh 以及 MMPose 等内容。

什么是人体姿态估计

从给定的图像中识别人脸、手部、身体等关键点

3D姿态估计:预测人体关键点在三维空间中的坐标,可以在三维空间中还原人体的姿态

人体参数化模型:从图像或者视频中会付出运动的3D人体模型

PoseC3D:基于人体姿态识别动作

2D姿态估计

2D人体姿态估计:在图像上定位人体关键点的坐标

基本思路:基于回归

将关键点检测问题建模成一个回归问题,让模型直接回归关键点的坐标

深度模型直接回归坐标有些困难,精度不是最优

基本思路:基于热力图

并不直接回归关键点的坐标,而是预测关键点位于每个位置的概率

热力图可以基于原始关键点坐标生成,作为训练网络的监督信息

网络预测的热力图也可以通过求极大值等方法得到关键点坐标

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

多人姿态估计:自顶向下方法

整体精度受限于检测器的精度
速度和计算量会正比于人数
一些新工作考虑将两个阶段聚合成一个阶段

多人姿态估计:自底向上方法

优点:推理速度与人数无关

多人姿态估计:单阶段方法

一步实现人体的检测与姿态估计

基于回归的自顶向下方法

DeepPose

以分类网络为基础,将最后一层分类改为回归,一次性预测所有关键点的坐标

通过最小化平方误差训练网络

通过级联提升精度

优势:

回归模型理论上可以达到无限精度,热力图方法的精度受限于特征图的空间分辨率

回归模型不需要维持高分辨率特征图,计算层面更高效,相比之下,热力图方法需要计算和存储高分辨率的热力图和特征图,计算成本更高

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

RLE(ResidualLog-likelihood Estimation)

核心思路:对于关键点的位置进行更准确的概率建模,从而提高位置预测的精度

经典回归范式

模型预测关键点坐标与真值计算误差作为损失,背后隐含了高斯分布的假设,但不一定符合数据的实际分布

RLE的范式
显示建模关键点的概率分布,通过最大似然拟合最优的位置分布

RLE的整体设计

RLE的目标是建模关键点位置的概率分布,即给定图像,给出每个关键点的位置分布

可以基于标准化流构建该分布,但RLE算法还引入了两个技巧以降低模型你和真实分布的难度

  1. 重参数化
  2. 残差似然函数

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

Hourglass模块

Hourglass模型在FLIC和MPII数据集上的性能在当时处于领先,在MPII上每一项在当时都达到SOTA.

在这里插入图片描述

Simple Baseline(2018)

力求结构简单,使用ResNet配合反卷积形成编码器-解码器结构

HRNet

核心思路:在下采样时通过保留分辨率分支来保持网络全过程特征图的高分辨率与空间位置信息,并设计了独特的网络结构实现不同分辨率的多尺度特征融合

自底向上方法

Part Affinity Filelds & OpenPose

基本思路:基于图像同事预测关节位置和四肢走向,利用肢体走向辅助关键点的聚类:即,如果某两个关键点由某段肢体相连,则这两个关键点同属于同一个人

单阶段方法

SPM

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

Structured Pose Representation(SPR)

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

但是SPR存在明显弊端,例如由于可能存在交大的姿势变化,可能涉及身体关节和根关节之间的远距离位移,这给从图像表示映射到矢量域的位移估计带来困难。

因此在SPR的基础上提出了Hierarchical SPR,根据自由度和变形程度将根关节和身体关节划分为四个层次

第一级:根关节
第二级:包含颈肩臂
第三级:包含头肘膝
第四级:包含手腕脚踝

基于Transformer的方法

PRTR

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

两阶段算法
人体检测阶段:使用DETR检测得出图中的不同的人
关键点检测阶段:同样使用DETR结构,不同的是query学习关键点信息,最终回归关键点位置

TokenPose

将视觉token和关键点tokern一起送入encoder可以同时从图像中学习外观视觉表现和关键点间的约束关系

分类模型ViT也是用类似方法,将一个分类token和visual token一起做自注意力

3D人体姿态估计

通过给定的图像预测人体关键点在三维空间中的坐标,可以在三维空间中还原人体的姿态

总结

在这里插入图片描述

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

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

相关文章

TDEngine3.0环境搭建总结

TDEngine3.0环境搭建总结 一、TDengine 介绍二、TDengine的下载三、TDengine Server安装及配置3.1 安装3.2 taos的参数配置3.3 启动3.4 taosAdapter 四、TDengine Client 安装4.1 linux客户端安装4.2 windows客户端安装 一、TDengine 介绍 TDengine 官网 TDengine的介绍   T…

算法工程师的岗位职责(合集)

算法工程师的岗位职责1 职责: 1、负责运动控制的数据采集、信号处理、仪器控制等模块研发和维护,包括关键技术方案设计/详细设计/调试/验证/测试/现场调试 2、编写软件使用说明书等相关技术性文件 3、完成项目中有关机器人轨迹设计、分析、控制的需求分析(7轴机械手…

Maven依赖传递

Maven 依赖传递是 Maven 的核心机制之一,它能够一定程度上简化 Maven 的依赖配置。本节我们将详细介绍依赖传递及其相关概念。 依赖传递 如下图所示,项目 A 依赖于项目 B,B 又依赖于项目 C,此时 B 是 A 的直接依赖,C…

java爬虫详解及简单实例

java爬虫是一种自动化程序,可以模拟人类在互联网上的行为,从网站上抓取数据并进行处理。下面是Java爬虫的详细解释: 1、爬虫的基本原理 Java爬虫的基本原理是通过HTTP协议模拟浏览器发送请求,获取网页的HTML代码,然后…

PS2024后期调色滤镜插件Alien Skin Exposure7

Exposure是一款常见的ps调色滤镜插件,相信许多朋友都曾经用过它。一张普通的图片经过后期调色处理后,可以得到更加靓丽的效果。因此选择一款专业性强、操作简单的后期调色软件很重要。那么,我们应该如何选择后期调色软件呢?下面给…

第三大章docker的部署

1. 红为写的命令 systemctl stop firewalld.service setenforce 0 #安装依赖包yum install -y yum-utils device-mapper-persistent-data lvm2 -------------------------------------------------------------------------------------------- yum-utils:提供了…

揭秘虚拟直播:3D场景与2D背景的区别

虚拟直播是指通过技术手段创造出虚拟场景,将主播或演员放置其中进行实时直播的一种形式。这种直播方式结合了虚拟现实(VR)、增强现实(AR)和实时渲染等技术,近年来,随着VR和AR技术的不断成熟和普…

Flink第八章:FlinkSQL

系列文章目录 Flink第一章:环境搭建 Flink第二章:基本操作. Flink第三章:基本操作(二) Flink第四章:水位线和窗口 Flink第五章:处理函数 Flink第六章:多流操作 Flink第七章:状态编程 Flink第八章:FlinkSQL 文章目录 系列文章目录前言一、常用函数1.快速上手案例2.连接外部数据…

chatgpt赋能python:Python岗位需求日渐增加

Python岗位需求日渐增加 Python编程语言在当前的IT行业中越来越受欢迎。其灵活性和易用性使得Python在各种领域中使用广泛,比如Web开发、数据科学、人工智能等。作为一名有10年Python编程经验的工程师,我认为Python是一种非常有前途的编程语言&#xff…

IDC MarketScape《决策支持分析数据平台供应商评估》报告发布,亚马逊云科技位列“领导者”

随着科学技术的不断发展,人们的生活方式也在不断改变。现在,人们可以通过互联网获得更多的信息,也可以通过智能手机随时随地与他人进行交流。此外,人工智能技术的进步也使得机器能够完成一些复杂的任务,从而提高了人们…

重磅新品 | 立仪发布高速版嵌入式光谱共焦G系列

重磅新品 | 立仪发布高速版嵌入式光谱共焦G系列 立仪科技作为国产光谱共焦技术的引领者,在光谱共焦技术上数年磨一剑,打破封锁,而此次研发出的嵌入式光谱共焦位移传感器G系列采用先进的FPGACPU硬件架构等技术自研而成并结合高强度LED光源、创…

python---变量和简单的数据类型

python---变量和简单的数据类型 1. 变量的命名2. 字符串2.1 使用方法修改字符串的大小写2.2 合并(拼接)字符串2.3 使用制表符或换行符来添加空白2.4 删除空白2.5 使用字符串时避免使用语法错误 3. 数字3.1 整数3.2 浮点数3.3 使用函数str()避免类型错误 …

基于springboot地方旅游系统的设计与实现

摘 要 本次设计内容是基于Springboot的旅游系统的设计与实现,采用B/S三层架构分别是Web表现层、Service业务层、Dao数据访问层,并使用Springboot,MyBatis二大框架整合开发服务器端,前端使用vue,elementUI技术&…

vue-admin-template刷新侧边栏数据丢失

使用vue-admin-template时,刷新页面侧边栏消失😒,仔细查看代码后找到原因,使用的路由与vuex有关,而在刷新页面时vue会重新加载vue实例,vuex中的数据会被初始化,所以看不到侧边栏是因为数据被重置…

虚拟现实 VR 智慧办公室可视化

“虚拟现实”是来自英文“Virtual Reality”,简称 VR 技术,其是通过利用计算机仿真系统模拟外界环境,主要模拟对象有环境、技能、传感设备和感知等,为用户提供多信息、三维动态、交互式的仿真体验。 图扑软件基于自研可视化引擎 H…

containerd 容器概述

containerd 容器概述 官方文档: https://containerd.io在 2016 年 12 月 14 日,Docker 公司宣布将 containerd 从 Docker 中分离,由开源社区独立发展和 运营。Containerd 完全可以单独运行并管理容器,而 Containerd 的主要职责是镜像管理和…

K8S-解决报错--总结日记

问题一:etcd和apiserver无法正常启动 问题查看nodes节点发生报错 解决方法/步骤 步骤一:K8S集群节点异常重启后,再终端执行kubectl get nodes命令,出现报错dial tcp 10.200.18.100:6443: connect: connection refused。 步骤二…

elementPlus 二次封装 el-upload

此案例是区分上传的文件还是图片&#xff1b; 需要注意的是 before-upload 事件&#xff0c;如果是返回了 false&#xff0c;也会默认走on-remove&#xff0c;需要在 remove事件里做file 的状态判断。 <template><el-upload class"upload-box" ref"…

python3a 之 循环与加速(for循环,list 简化,iterrows, enumerate )

1. map 的用法&#xff1a; 替代for循环&#xff0c;辅助加速 map(function, list) 简写 map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函数 [1, 4, 9, 16, 25] 提供了两个列表&#xff0c;对相同位置的列表数据进行相加 >>> map(lambda x, y: x y, …

做电商数据分析报表做到废?BI平台试过了?

层出不穷的临时分析需求、大量的重复性操作、眨眼流失的时间&#xff0c;那是电商数据分析人员才都懂的感受。每日一问&#xff0c;今天你做电商数据分析报表做到废了吗&#xff1f;怎么改变这种情况&#xff1f;或许BI大数据分析平台可以一试。 BI大数据分析平台&#xff1a;…