论文笔记:Towards accurate multi-person pose estimation in the wild(G-RMI)-程序员宅基地

技术标签: G-RMI  基于 OKS 的非最大抑制  姿态估计  Pose Rescoring  多人姿态估计  人体姿态估计  

Towards accurate multi-person pose estimation in the wild

1、摘要

作者提出了新的自顶向下的多人姿态估计方法。首先使用 F a s t e r   R C N N Faster~RCNN Faster RCNN 预测可能包含人体目标的边界框的位置和大小。然后估计每个提议边界框可能包含的关键点。使用全卷积 R e s N e t ResNet ResNet 预测每个关键点的密度热图和偏移量。为了合并输出,作者引入了一种新的聚合过程来获得高度定位的关键点预测。作者还使用了一种新形式的基于关键点的非最大值抑制,而不是更粗糙的框级非最大抑制,以及一种新形式的基于关键点的置信度得分估计,而不是框级得分。

2、方法

如图 1 1 1 所示为算法处理过程。


在这里插入图片描述
1 1 1 首先使用 F a s t e r   R C N N Faster~RCNN Faster RCNN 检测人体目标,然后裁剪相应目标图像块,使用姿态估计器定位关键点,并且对相应提议重新打分。


2.1、人体检测

使用空洞卷积替代的 R e s N e t − 101 ResNet-101 ResNet101 作为 F a s t e r   R C N N Faster~RCNN Faster RCNN 检测器网络主骨,输出步长等于 8 8 8 像素。


2.2、姿态估计

姿态估计器在给定人体边界框的基础上预测 17 17 17 个人体关键点。对于每个空间位置,首先分类它是否在每个关键点附近(称之为“热图”),然后预测二维局部偏移向量,以获得相应关键点位置的更精确估计

如图 2 2 2 所示,每个关键点对应 3 3 3 个输出通道。


在这里插入图片描述
2 2 2:网络目标输出。左和中:左肘关键点热图目标。右:偏移场 L 2 L2 L2 幅度(以灰度显示)和二维偏移向量以红色显示。

图像裁剪:首先通过扩展人体检测器返回的盒子的高度或宽度,使所有盒子具有相同的固定纵横比,而不扭曲图像纵横比。然后进一步扩大框来包含图像上下文:评估时缩放因子等于 1.25 1.25 1.25,训练时,缩放因子在 1.0 1.0 1.0 1.5 1.5 1.5 之间。之后将图像高度调整为 353 353 353,图像宽度调整为 257 257 257。纵横比为 353 / 257 = 1.37 353/257=1.37 353/257=1.37


热图和偏移预测:使用全卷积的 R e s N e t − 101 ResNet-101 ResNet101 产生热图(每个关键点一个通道)和偏移(每个关键点两个通道, x x x y y y),一共 3 K 3K 3K 个通道, K = 17 K=17 K=17 为关键点数量。使用空洞卷积产生 3 K 3K 3K 个预测,输出步长为 8 8 8 像素,并使用双线性插值上采样至 353 × 257 353\times257 353×257

若第 k k k 个关键点定位于 x i x_i xi f k ( x i ) = 1 f_{k}\left(x_{i}\right)=1 fk(xi)=1,否则为 0 0 0。对每个位置 x i x_i xi 每个关键点 k k k,计算概率 h k ( x i ) = 1 h_{k}\left(x_{i}\right)=1 hk(xi)=1,如果 ∣ ∣ x i − l k ∣ ∣ ≤ R | | x_{i}-l_{k}| | \leq R xilkR,即,到第 k k k 个关键点的位置 l k l_k lk 在半径为 R R R 的盘内。生成 K K K 个这样的热图,为每个位置和关键点独立解决二分类问题。

除了热图,为每个位置 i i i 和每个关键点 k k k 生成 2 − D 2-D 2D 偏移向量。 F k ( x i ) = l k − x i F_k(x_i)=l_k-x_i Fk(xi)=lkxi。一共生成 k k k 个这样的向量场,分别为每个位置和关键点求解回归问题。

生成热图和偏移场后,将两者结合生成高度局部化激活图 f k ( x i ) f_k(x_i) fk(xi)
(1) f k ( x i ) = ∑ j 1 π R 2 G ( x j + F k ( x j ) − x i ) h k ( x j ) f_{k}\left(x_{i}\right)=\sum_{j} \frac{1}{\pi R^{2}} G\left(x_{j}+F_{k}\left(x_{j}\right)-x_{i}\right) h_{k}\left(x_{j}\right)\tag1 fk(xi)=jπR21G(xj+Fk(xj)xi)hk(xj)(1)
其中, G ( ) G() G() 为双线性插值核。这是霍夫投票的形式:图像裁剪网格中的每个点 j j j 投下一张投票,并对每个关键点的位置进行估计,投票由它在相应关键点的影响盘中的概率加权得到。归一化因子等于盘面积,并确保如果热图和偏移是完美的,那么 f k ( x i ) f_k(x_i) fk(xi) 将是以第 k k k 个关键点的位置为中心的单位质量的 δ \delta δ 函数。

该过程如图 3 3 3 所示。


在这里插入图片描述
3 3 3 预测每个关键点附近的盘状热图和盘内精确关键点的偏移场幅值


训练:使用两个卷积输出头,一个输出 s i g m o i d sigmoid sigmoid 函数产生概率热图 h k ( x i ) h_k(x_i) hk(xi)。训练目标是 0 0 0 1 1 1 组成的热图。相应的损失函数 L h ( θ ) L_h(\theta) Lh(θ) 分别是每个位置和关键点的 l o g i s t i c logistic logistic 损失之和。为加速训练, R e s N e t ResNet ResNet 50 50 50 层添加中间监督

偏移损失为:
(2) L o ( θ ) = ∑ k = 1 : K ∑ i : ∥ l k − x i ∥ ≤ R H ( ∥ F k ( x i ) − ( l k − x i ) ∥ ) L_{o}(\theta)=\sum_{k=1 : K} \sum_{i :\left\|l_{k}-x_{i}\right\| \leq R} H\left(\left\|F_{k}\left(x_{i}\right)-\left(l_{k}-x_{i}\right)\right\|\right)\tag2 Lo(θ)=k=1:Ki:lkxiRH(Fk(xi)(lkxi))(2)
其中, H ( u ) H(u) H(u) H u b e r Huber Huber 鲁棒损失, l k l_k lk 为第 k k k 个关键点位置,仅计算每个关键点半径 R R R 的盘内的位置 x i x_i xi 的损失。最终损失函数为:
(3) L ( θ ) = λ h L h ( θ ) + λ o L o ( θ ) L(\theta)=\lambda_{h} L_{h}(\theta)+\lambda_{o} L_{o}(\theta)\tag3 L(θ)=λhLh(θ)+λoLo(θ)(3)
其中, λ h = 4 \lambda_h=4 λh=4 λ o = 1 \lambda_o=1 λo=1。计算一个 m i n i b a t c h minibatch minibatch 中所有图像的损失和,然后随机梯度下降。

模型训练中的一个重要考虑是,在热图损失的计算中,如何处理图像裁剪中存在多人的情况。当计算中间层的热图损失时,作者排除了背景人关键点周围盘中的贡献。当计算最后一层的热图损失时,我们只将前景人关键点周围盘内视为正的,而将其他一切视为负的,这迫使模型正确预测框中央人物的关键点。


姿态重打分:测试时,将模型用于每个图像裁剪,而不是仅依赖人检测器置信度。考虑每个关键点置信度。最大化位置,平均化关键点产生最终实例级姿态检测分数。
(4) score ⁡ ( I ) = 1 K ∑ k = 1 K max ⁡ x i f k ( x i ) \operatorname{score}(\mathcal{I})=\frac{1}{K} \sum_{k=1}^{K} \max _{x_{i}} f_{k}\left(x_{i}\right)\tag4 score(I)=K1k=1Kximaxfk(xi)(4)


基于 OKS 的非最大抑制:使用目标关键点相似度来度量两个候选姿态检测是否重叠。姿态估计器输出处的更精细的 O K S − N M S OKS-NMS OKSNMS 更适合于确定两个候选检测是对应于 F P FP FP (同一个人的双重检测)还是 T P TP TP(两个人彼此非常接近)。


3、实验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


4、总结

  1. 热图和偏移场生成方法
  2. 姿态重打分
  3. 基于 OKS 的非最大抑制
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_41665360/article/details/91432434

智能推荐

[Intensive Reading]MOT:FairMOT_fairmot实现mot评估-程序员宅基地

文章浏览阅读2.1k次,点赞5次,收藏10次。简介《FairMOT:A Simple Baseline for Multi-Object Tracking》是一个online的多目标跟踪(MOT)算法,基于TBD(Traking-by-Detection)的策略,FairMOT主要就是基于JDE做的改进,可以简单的理解为,FairMOT是将JDE的YOLOv3的主干,改成了CenterNet,也就是将检测的方法由Anchor-base换成了Anchor-free,然后同样在已有检测模型上加了了embeeding分支,模型输出检测的结果和embeedi_fairmot实现mot评估

VS 2008 显示代码行数/改变程序格式风格_vs2008显示行数-程序员宅基地

文章浏览阅读3.9k次。VS 2008 显示代码行数:开发环境C#,其他类同操作。工具-》选项-》文本编辑器-》C#里的显示“行号”勾上即可。-------------------------------------------------------------------------------------------------------改变VS程序风格:java风格: private v_vs2008显示行数

Web前端设计全方位解析:面试题总结+答案详解_前端实现填空题-程序员宅基地

文章浏览阅读1.5k次,点赞21次,收藏29次。面试习题大总结,进来免费白嫖啦_前端实现填空题

0043期基于python的CNN训练识别吃的-含数据集-程序员宅基地

文章浏览阅读681次,点赞19次,收藏14次。083基于深度学习的手势识别小程序版本_含10多种模型包括alexnet、DenseNet、DLA、GoogleNet、Mobilenet、ResNet、ResNeXt、ShuffleNet、VGG、EfficientNet和Swin transformer等10多种模型。117nlp自然语言处理-文本情感分类-joy-sadness-anger-fear-love-surprise。运行02深度学习模型训练.py就会将txt文本中记录的训练集和验证集进行读取训练,训练好后会保存模型在本地。

如何使用 Workbench 远程连接到 MySQL 数据库 -MySQL Workbench 使用教程_mysql workbench连接数据库-程序员宅基地

文章浏览阅读1.5w次,点赞12次,收藏88次。MySQL Workbench 是一款专门为 MySQL 设计的可视化数据库 GUI 管理工具,我们可以在自己的计算机上,使用图形化界面(GUI)远程管理 MySQL 数据库。有关 MySQL 远程管理软件,你可以选择 Windows 下的 HeidiSQL,MacOS 下的 Sequel Ace 或者 MySQL 官方推出的跨平台客户端 MySQL Workbench 。如果你需要针对自己的工作流对数据库操作,定制开发,推荐一下卡拉云,详情见文末。本._mysql workbench连接数据库

WPF随笔(四)--窗口多屏显示及全屏_wpf 拖拽分屏后页面部分黑屏-程序员宅基地

文章浏览阅读1w次,点赞4次,收藏29次。当有多台显示设备,比如有两台显示器时,让WPF窗体在不同显示器上呈现不同内容就显得尤为必要。同时让窗口全屏显示也能取得较好的呈现效果。一般来讲WPF项目默认都是从MainWindow开始启动的。多屏显示的思路很简单,就是遍历当前所有硬件显示设备,然后实例化不同的窗体并分别设置其位置在不同的显示设备上。遍历显示设备 public MainWindow(string sysName..._wpf 拖拽分屏后页面部分黑屏

随便推点

【算法题】一种字符串压缩表示的解压(js)-程序员宅基地

文章浏览阅读100次。全部由小写英文字母组成,压缩后不会出现@,故输出不合法。两个d不需要压缩,故输入不合法。_一种字符串压缩表示的解压

matplotlib将figure转化为numpy的array矩阵格式_manager.canvas.figure转换成array-程序员宅基地

文章浏览阅读3.7k次,点赞3次,收藏10次。最近碰到一个问题,python读入视频,并处理每一张图片,并将处理的结果用quiver显示为矢量图,然后将矢量图转化为numpy数据。在这整个过程中碰到以下问题:1)怎么使用quiver,这个用起来有很多参数需要设置,没有MATLAB用起来方便,不过这个不是本博文的重点。2)怎么将矢量图的效果转化为numpy数据,这个我在百度上搜索了好多博文,但是都不是我想要的效果,当我科学上网时,发现matplotlib有官方的介绍,这里贴出链接3)成功的转化为numpy后,又发现我的数据又多了轴参数,致使整个_manager.canvas.figure转换成array

机器学习与数据挖掘-实验二_《机器学习与数据挖掘》实验二-程序员宅基地

文章浏览阅读1.1k次。1. 根据给定数据集(存放在data1.txt文件中,二分类数据),编码实现基于梯度下降的Logistic回归算法,画出决策边界;2. 从UCI中选择鸢尾花数据集(多分类数据),使用Sklearn实现Logistic回归;实现第一个决策边界的代码如下:(注意格式)import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom sklearn import linear_modelfrom sklearn._《机器学习与数据挖掘》实验二

扔掉工具类,Mybatis 一个简单配置搞定数据加密解密!-程序员宅基地

文章浏览阅读185次。前言:介绍一个简单的MyBatis加解密方式,日常学习工作中提及这种方法的比较少,所以拿来说说,如果已经知道这种方法的忽略本文!一、背景在我们数据库中有些时候会保存一些用户的敏感信息,比如:手机号、银行卡等信息,如果这些信息以明文的方式保存,那么是不安全的。假如:黑客黑进了数据库,或者离职人员导出了数据,那么就可能导致这些敏感数据的泄漏。因此我们就需要找到一种方法来解决这个问题。二、解决方案由于我..._mybatis-flex 数据加解密

女生适不适合进入IT行业做Linux运维工程师?-程序员宅基地

文章浏览阅读2.4k次。 不知从何时起有那么一个不成文的理论:女生不适合做IT。在很多人看来,IT is a men’s world,女生学IT是件匪夷所思的事情。在传统的思维当中..._linux推不推荐入行

如何看懂congestion map-程序员宅基地

文章浏览阅读2.1k次,点赞6次,收藏22次。最近有一些同学问congestion map怎么看。这里详细介绍一下。congestion map可以非常直观的看到,绕线有问题的区域。另外congestion map对于及早发现flo..._congestion map

推荐文章

热门文章

相关标签