当前位置: 首页 > news >正文

【人体姿态估计】(一)原理介绍

【人体姿态估计】(一)原理介绍

一、背景

人体姿态估计本质上是一个关键点检测的项目;

关键点检测在生活中的应用十分广泛,包括人脸识别、手势识别,而人体姿态估计则是对身体的关键点进行检测;

本文将介绍一些常见的数据集、评价指标以及比较经典的算法;

二、数据集和评估指标

首先关键点的评估指标参考以下文章:

COCO数据集评价指标 —— Keypoints - 简书 (jianshu.com)

COCO官方评价指标

其本质是通过点之间的欧式距离关系进行指标评估的;

其中要重点注意一个参数:

v = 0 : 未标注点
v = 1 : 标注了但是图像中不可见(例如遮挡)
v = 2 : 标注了并图像可见

最常见的人体姿态数据集为MPII和COCO数据集,其中COCO数据集如下图所示:

标注文件中需要重点关注categories部分;

其中keypoints代表种类,skeleton代表的是连线的规则;

三、Top Down算法

简介:一种自顶向下的方法,本质是先找人后找点;

其中最经典的网络为Mask RCNN,其步骤为先找人——实例分割——关键点检测;

下面看一下Mask RCNN和传统二阶段检测算法的区别:

从上图中可以看出,相比于传统二阶段检测网络,增加了mask branch的模块;

详细如下图所示:

对检测到的图像ROI进行降维特征提取,输出的通道数为需要检测的关键点数量;

单独将每一通道的图取出,可以看出是一个Heatmap,又称为热力图;

四、Bottom Up算法

简介:一种自底向上的方法,先找点后进行归纳;

其中最经典的算法为OpenPose;

源码:https://github.com/CMU-Perceptual-Computing-Lab/openpose

论文:[1812.08008] OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields (arxiv.org)

原理:

主要分为两个步骤,Parts Detection(点的预测)和Parts Association(点的连接)

其中先通过特征提取网络得到特征图,转换得到每个关键点的热力图;

其次关键在于通过PAF计算两个点的关联度;

上图表示了两个点之间的得分如何计算,首先通过点是否在真实连线的区间范围内来判断两点的关联性,其次计算得分;

想了解算法细节的可以看后续的代码讲解部分;

五、前沿算法

1、MSPN

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

上图为主要的结构模块;

从结构上看,优化了单个stage的结构,采用了降采样到上采样的两个过程(类似于U-Net);

具体看其中的关键结构:

在降采样和上采样的过程中会造成大量的特征信息丢失,因此采用上图所示的相邻阶段的特征聚合,以增强特征信息传播降低训练难度;对于一个降采样过程,输入包括三个部分:上阶段中相同size的降采样特征经过1*1卷积编码后的特征、上个阶段中相同size的升采样特征经过1 * 1卷积编码后的特征,以及当前stage的降采样特征;

下面是对每个stage输出的优化策略:

采用了由粗到细的多分支监督的方式来优化stage的能力,如上图所示,对于每个stage的特点,采用不同的kernel-size的高斯核制作标签;

2、HRNet

参考:刷新三项COCO纪录!姿态估计模型HRNet开源了,中科大微软出品 | CVPR (qq.com)

简介:高分辨率网络(High-Resolution Net)的缩写,在表征学习的整个过程中,都能够保持高分辨率表征,因此为模型设计了并联结构,把不同分辨率的子网络,用新的方式连在一起;

上图是现有的一些方法:

  • (a)对称结构,先下采样,再上采样,同时使用跳层连接恢复下采样丢失的信息;
  • (b)级联金字塔;
  • (c)先下采样,转置卷积上采样,不使用跳层连接进行数据融合;
  • (d)扩张卷积,减少下采样次数,不使用跳层连接进行数据融合;

上图是HRNet的结构,主要有两个特点,并行连接高分辨率子网和重复的多尺度融合;

相比于传统的下采样特征提取,该网络通过上采样和下采样,并且在特征提取过程中融合不同形状的特征;

补充信息

对于关键点的开源代码和论文,可以参考这个地址:Keypoint Detection | Papers With Code

几种IOU的总结:一文读懂目标检测中的各种IoU损失函数 - 知乎 (zhihu.com)

相关文章:

【人体姿态估计】(一)原理介绍

【人体姿态估计】(一)原理介绍 一、背景 人体姿态估计本质上是一个关键点检测的项目; 关键点检测在生活中的应用十分广泛,包括人脸识别、手势识别,而人体姿态估计则是对身体的关键点进行检测; 本文将介…...

一种新的流:为 Java 加入生成器(Generator)特性

作者:文镭(依来) 前言 这篇文章不是工具推荐,也不是应用案例分享。其主题思想,是介绍一种全新的设计模式。它既拥有抽象的数学美感,仅仅从一个简单接口出发,就能推演出庞大的特性集合,引出许多全新概念。…...

《数据结构C++版》实验一:线性表的顺序存储结构

实验目的 1、实现线性表的顺序存储结构 2、熟悉C++程序的基本结构,掌握程序中的头文件、实现文件和主文件之间的相互关系及各自的作用 3、熟悉顺序表的基本操作方式,掌握顺序表相关操作的具体实现 实验内容 对顺序存储的线性表进行一些基本操作。主要包括: (1)插入:操作…...

ChatGPT的开源平替,终于来了!

最近这段时间,一个号称全球最大ChatGPT开源平替项目Open Assistant引起了大家的注意。 这不最近还登上了GitHub的Trending热榜。 https://github.com/LAION-AI/Open-Assistant 根据官方的介绍,Open Assistant也是一个对话式的大型语言模型项目&#xff…...

Redis基础

Redis6 1. NoSQL数据库简介 1.1 技术发展 技术的分类 1、解决功能性的问题:Java、Jsp、RDBMS、Tomcat、HTML、Linux、JDBC、SVN。 2、解决扩展性的问题:Struts、Spring、SpringMVC、Hibernate、Mybatis。 3、解决性能的问题:NoSQL、Jav…...

为什么重视安全的公司都在用SSL安全证书?

我们今天来讲一讲为什么重视安全的公司都在用SSL证书 SSL证书是什么? SSL安全证书是由权威认证机构颁发的,是CA机构将公钥和相关信息写入一个文件,CA机构用他们的私钥对我们的公钥和相关信息进行签名后,将签名信息也写入这个文件…...

嵌入式QT (使用 Qt Designer 开发)

一、使用 UI 设计器开发程序 1.1、 在 UI 文件添加一个按钮 1.2、在 UI 文件里连接信号与槽 所谓信号即是一个对象发出的信号,槽即是当这个对象发出这个信号时,对应连接的槽就发被执行或者触发。 UI 设计器里信号与槽的连接方法一: 在主窗…...

每日一个小技巧:今天告诉你拍照识别文字的软件有哪些

在现代社会里,手机已经成为了人们生活中必不可少的工具。它的功能众多,比如通讯、上网、拍照以及导航等,为我们的生活带来了许多便利。除此之外,手机还能帮助我们解决一些实际的问题,例如,当你需要识别图片…...

多版本VersionARXDBG

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、一级标题二级标题三级标题四级标题五级标题六级标题总结前言 提示:这里可以添加本文要记录的大概内容: VersionARXDBG,多版本,2023.4.22-4.23两天时间,分别研究了在多版本编译ARXDB…...

# 生成器

生成器 生成器是什么? 生成器(generator)是一种用来生成数据的对象。它们是普通函数的一种特殊形式,可以用来控制数据的生成过程。 生成器有什么优势? 使用生成器的优势在于它们可以在生成数据的同时控制数据的生成过程…...

Netty 源码解析(上)

序 Netty的影响力以及使用场景就不用多说了, 去年10月份后,就着手研究Netty源码,之前研究过Spring源码,MyBatis源码,java.util.concurrent源码,tomcat源码,发现一个特点,之前的源码都…...

Vue 消息订阅与发布

消息订阅与发布,也可以实现任意组件之间的通信。 订阅者:就相当于是我们,用于接收数据。 发布者:就相当于是媒体,用于传递数据。 安装消息订阅与发布插件: 在原生 JS 中 不太容易实现消息订阅与发布&…...

如何在你的云服务器/云主机上更新并使用最新版本的python(python3.11)

更新并使用最新版本的python3.11 第一步,登录云服务器,并更新系统包 打开您的终端(Terminal)或使用任意SSH客户端,输入如下命令来登录云主机: ssh 用户名IP地址 在输入密码后,您将成功登录到云…...

python学习——【第八弹】

前言 上篇文章 python学习——【第七弹】学习了python中的可变序列集合,自此python中的序列的学习就完成啦,这篇文章开始学习python中的函数。 函数 在学习其他编程语言的时候我们就了解过函数:函数就是执行特定任何以完成特定功能的一段代…...

铁路应答器传输系统介绍

应答器传输系统 应答器传输系统是安全点式信息传输系统,通过应答器实现地面设备向车载设备传输信息。 应答器可根据应用需求向车载设备传输固定的(通过无源应答器)或可变的(通过有源应答器)上行链路数据。 当天线单…...

Baumer工业相机堡盟工业相机如何通过BGAPI SDK直接实现Mono16位深度的图像保存(C#)

Baumer工业相机堡盟工业相机如何通过BGAPI SDK直接实现Mono16位深度的图像保存(C#) Baumer工业相机Baumer工业相机保存位深度12/16位图像的技术背景代码案例分享1:引用合适的类文件2:通过BGAPI SDK直接保存Mono12/16图像3&#xf…...

C语言入门篇——介绍篇

目录 1、什么是C语言 1、C语言的优点 3、语言标准 4、使用C语言的步骤 5、第一个C语言程序 6、关键字 1、什么是C语言 1972年,贝尔实验室的丹尼斯里奇和肯汤普逊在开发UNIX操作系统时设计了C语言,C语言是在B语言的基础上进行设计。C语言设计的初衷…...

Latex数学公式排版

文章目录 Latex使用最佳方式:读官方文档Latex中的字符数学公式排版1.引入宏包:2.公式排版基础3.数学符号(1).希腊字母(2).指数,上下标,导数(3).分式和根式(4).关系符(5).算符(6).巨算符(7).箭头 Latex使用 最佳方式:读官方文档 The not so short intro…...

【Linux】-关于Linux的指令(上)

作者:小树苗渴望变成参天大树 作者宣言:认真写好每一篇博客 作者gitee:gitee 如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 点 关 注 吧! TOC 前言 今天我们来讲关于Linux的基本指令,博主讲的指令会对应着Windows…...

【论文写作】引言写作的四个重要的语言点之时态!!!

在本篇文章当中,我们将着重介绍四个重要的写作语言要点之一的时态,其他语言点如下: 1. 时态 2. 标志性的衔接词 3. 主动、被动语态 4. 段落 1. 简单现在时和现在进行时 时态主要有现在时和现在进行时,看以下两个句子 I live in…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...

离线语音识别方案分析

随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...

k8s从入门到放弃之HPA控制器

k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...

边缘计算网关提升水产养殖尾水处理的远程运维效率

一、项目背景 随着水产养殖行业的快速发展,养殖尾水的处理成为了一个亟待解决的环保问题。传统的尾水处理方式不仅效率低下,而且难以实现精准监控和管理。为了提升尾水处理的效果和效率,同时降低人力成本,某大型水产养殖企业决定…...

Python环境安装与虚拟环境配置详解

本文档旨在为Python开发者提供一站式的环境安装与虚拟环境配置指南,适用于Windows、macOS和Linux系统。无论你是初学者还是有经验的开发者,都能在此找到适合自己的环境搭建方法和常见问题的解决方案。 快速开始 一分钟快速安装与虚拟环境配置 # macOS/…...

Qt的学习(二)

1. 创建Hello Word 两种方式,实现helloworld: 1.通过图形化的方式,在界面上创建出一个控件,显示helloworld 2.通过纯代码的方式,通过编写代码,在界面上创建控件, 显示hello world; …...