论文阅读:《RMPE: Regional Multi-Person Pose Estimation》ICCV 2017

本文介绍了一种名为RMPE的多人姿态估计方法,该方法由上海交通大学和腾讯优图实验室联合提出,并被ICCV 2017接收。论文针对传统自顶向下方法的不足进行了改进,通过引入STN、SPPE和SDTN等模块提高检测精度和估计准确性。

概述

论文地址:https://arxiv.org/abs/1612.00137v3
项目主页:RMPE: Regional Multi-person Pose Estimation

这篇论文是上海交大和腾讯优图的论文,被 ICCV 2017接收。它对于多人姿态估计的方法采用传统的自顶向下的方法,即先检测人,再识别人体姿态。检测使用的是SSD-512,识别人体姿态使用的是state-of-the-art的Stacked Hourglass方法。

Motivation

论文分析了当前姿态估计的两种方法存在的问题——对于自顶向下的方法,检测的误差是很大的一个影响,即使在检测任务下是正确的,提取的proposal也不适用于单人的姿态估计方法;同时,冗余的检测框也使得单人的姿态被重复估计;对于自底向上的方法,当两个人比较靠近时,人体关键点分配到每个人身上会出错,这也是该方法的challenge。作者采用自顶向上方法,致力于解决对于imperfect proposal,通过调整,使得crop的person能够被单人姿态估计方法很好的识别,从而克服检测带来的定位误差。

网络框架

这里写图片描述
整个过程分为3步:

第一步是用SSD检测人,获得human proposal

第二步是将proposal输入到两个并行的分支里面,上面的分支是STN+SPPE+SDTN的结构,即Spatial Transformer Networks + Single Person Pose Estimation + Spatial de- Transformer Networks,STN接收的是human proposal,SDTN产生的是pose proposal。下面并行的分支充当额外的正则化矫正器。

第三步是对pose proposal做Pose NMS(非最大值抑制),用来消除冗余的pose proposal。

方法细节

  • Symmetric STN + SPPE + SDTN
    这里写图片描述

1.将上一步得出的human proposal在长宽方向上个延迟20%,以确保可以把人完整的框起来。而且经过验证,这样确实可以把大部分的人整个框起来。

2.经过一个STN网络将延伸过的图像进行仿射变换,可以生成一个比较精确的、适合作为SPPE输入。

3.把SPPE的输出经过与前边相反的STN变换,将坐标变换回原来的坐标系,完成整个的识别过程。

  • Parallel SPPE

并行的SPPE作为正则化作用,用来进一步加强STN提取优质的human proposal。这一支的label设置为single person pose。训练时使用2条支路输出的总误差来训练网络,在测试时将下面的 Parallel SPPE丢掉,只使用Symmetric STN进行前向传播。

  • Parametric Pose NMS

首先选择置信度最高的pose作为参考,靠近它的pose通过淘汰标准来消除。对于剩下的pose,重复上述过程,直到消除冗余姿势,并且仅返回唯一的pose。

  • Pose-guided Proposals Generator

symmetric STN + SPPE应该用SSD产生的人体建议框充分训练,需要适当的数据增强。这里主要是在训练过程中增加proposal的数量,虽然每一张图片都只有K个人,每个人只会产生一个bbox,但是可以根据ground truth的proposals,生成和其分布相同的多个proposals一起训练。

实验结果

这里写图片描述

PS:具体的公式推导详见论文

### 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可视化结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值