Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields.md

提出一种高效检测图像中多人2D姿态的方法。使用非参数表示Part Affinity Fields (PAFs)关联个体身体部位。此方法编码全局上下文,实现快速准确的姿态估计,不受人数限制。在COCO2016关键点挑战赛中排名第一。
部署运行你感兴趣的模型镜像

来源

CVPR Oral 2017

Zhe Cao

Tomas Simon

Shih-En Wei

Yaser Sheikh

The Robotics Institute, Carnegie Mellon University

Abstract

  • We present an approach to efficiently detect the 2D pose of multiple people in an image. The approach uses a non-parametric representation, which we refer to as Part Affinity Fields (PAFs), to learn to associate body parts with individuals in the image. The architecture encodes global context, allowing a greedy bottom-up parsing step that maintains high accuracy while achieving realtime performance, irrespective of the number of people in the image. The architecture is designed to jointly learn part locations and their association via two branches of the same sequential prediction process. Our method placed first in the inaugural COCO 2016 keypoints challenge, and significantly exceeds the previous state-of-the-art result on the MPII Multi-Person benchmark, both in performance and efficiency.

    • 目标:通过将图片中已检测到的人体关键点正确的联系起来估计人体姿态。

    • 方法:PAF(Part Affinity Fields)—-> 部分区域亲和。该架构编码全局上下文,贪婪的down-to-top的解析步骤,达到实时,性能与图片中的人数无关。该架构被设计用来,通过两个分支的相同的顺序预测过程,联合学习关键点位置和他们之间的联系。

Introduction

前人的工作
Challenges in 基于找到每个个体身体部位的方法
  1. 人数,位置,尺度

  2. 空间干扰。四肢关节的接触,遮挡使得 连接 困难

  3. 执行时间与人数相关

自顶向下的方法

分为两步

  1. Detection 检测人的位置

  2. Pose Estimation

方法缺陷

  1. 利用现有的技术,Detection + Pose Estimation

  2. 距离近,检测失败

  3. 计算量 = 人数 * Time

自底向上的方法

  • 先检测关键点,再连接。有着消除计算量随着人数增加的潜力。

不足:没能利用其他身体部位和其他人的全局线索,导致检测效率并没有降低全局推断(如何连接)的时间。

  • Pishchulin et al. 每个图几小时。全连接关键点,用整数线性规划的方法求解

  • Insafutdinov et al. 几分钟。基于ResNet的身体部位检测,对总的身体部位的检测数量有限制,直接结果不精确需要额外的逻辑回归。

This Paper

**创新:**Jointly Learning Parts Detection and Parts Association

  • 同时学习,PAFs 和 Key Positions。

    • PAFs: 在图像域编码着四肢位置和方向的2D矢量

    • CMP: Part Detection Comfidence Maps

  • Greedy pasing Algorithm

    1. 二分配(图论算法)

    2. 姿态解析

Method

Simutaneous Detection and Association
  • Each branch is an iterative prediction architecture, to refine the predictions over successive stages, t ∈ {1, … , T }, with intermediate supervision at each stage.

* each stage predict one part or limb *

  • 在分支,之前stage的预测和VGG得到的特征,一起用来产生下一个stage的预测

  • 在每个stage之后都有两个损失函数,分别来自两个分支,一个分支一个(这里设计了一个mask,由于训练数据中并不是所有的关键点

和肢体都有标签,mask就是用来handle这个的)

Confidence Maps for Part Detection
Part Affinity Fields for Part Association

part affinity fields that preserves both location and orientation information across the region of support of the limb

  1. it encodes only the position, and not the orientation, of each limb

  2. it reduces the region of support of a limb to a single point.

Multi-Person Parsing using PAFs
  • 简化连接问题为最大匹配问题,之后结合detectio能得到的关键点联合决策该连接是否正确。

  • 可以做这样的简化的原因在于,该文章提出的PAFS。首先学习到的PAFs,具有大范围的感受野,再者,PAFs得到的是一个向量的集合,向量提供了方向的信息,对于简化解析匹配很重要。

  • assemble the connections that share the same part detection candidates into full-body poses of multiple people.

您可能感兴趣的与本文相关的镜像

Qwen-Image-Edit-2509

Qwen-Image-Edit-2509

图片编辑
Qwen

Qwen-Image-Edit-2509 是阿里巴巴通义千问团队于2025年9月发布的最新图像编辑AI模型,主要支持多图编辑,包括“人物+人物”、“人物+商品”等组合玩法

### OpenPose 实时多人 2D 姿态估计 OpenPose 是由卡内基梅隆大学感知计算实验室开发的一项开创性技术,旨在实现实时多人2D姿态估计。该系统能够在同一场景中同时检测多个人体的关键点,包括身体、手部、面部和脚部的位置[^1]。 #### 部分亲和域 (Part Affinity Fields) 为了提高姿态估计的准确性并解决遮挡问题,OpenPose引入了部分亲和域(Part Affinity Fields, PAFs)的概念。PAFs用于表示不同部位之间的连接关系,具体来说: - **定义**:对于每一对相连的身体部件(如肩膀到肘),构建一个二维向量场来描述这对部件的方向性和置信度。 - **作用机制**:通过分析这些向量场中的梯度方向可以推断出各个肢体间的相对位置以及它们之间是否存在关联。这使得即使某些关节被遮挡或不可见的情况下也能正确重建完整的骨架结构[^3]。 ```python import cv2 from openpose import pyopenpose as op params = dict() params["model_folder"] = "path/to/models" opWrapper = op.WrapperPython() opWrapper.configure(params) datum = op.Datum() cap = cv2.VideoCapture(0) while True: ret, frame = cap.read() datum.cvInputData = frame opWrapper.emplaceAndPop([datum]) # Display keypoints and part affinity fields on the image cv2.imshow("Keypoints", datum.cvOutputData) if cv2.waitKey(1) & 0xFF == ord('q'): break cv2.destroyAllWindows() ``` 此代码片段展示了如何利用OpenPose库读取摄像头输入,并显示处理后的图像,其中包含了检测到的人体关键点及其对应的PAF可视化结果。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值