Alphapose算法
以下内容仅供个人学习,理解。
4.2.1 Alphapose算法简介:
Alphapose是多人姿态估计方法。目前多人姿态估计的方法分为两类:一种是自顶向下,另一种是自底向上。自顶向下检测方法是先检测图片中的每个人的边界框,再独立检测每个人体边界框中的姿态。这种方法的缺点是高度依赖人体边界框的检测质量,如果人体边界框定位不准确,就无法正确预测人体姿态。自底向上是先检测出图像中的所有关节点,然后拼接得到人体骨架,这种方法的缺点是当人体距离相近时,关节点的分组容易出现模棱两可的情况,肢体关节不知道如何匹配到相应的骨架。Alphapose采用的是自顶向下的方法。
4.2.2 存在的问题:
目前自顶向下检测的方法存在两个问题。
- 边界框定位错误:
下图 是用Faster-RCNN(目标检测器)和SPPE(堆叠沙漏模型)进行人体姿态估计的结果,红色虚线框是人体真实位置,黄色虚线框是Faster-RCNN检测出的人体位置,黄色虚线框与红色虚线框的IoU>0.5(IoU指检测边界框和真实框的重叠面积),IoU>0.5说明黄色虚线框能够正确检测出人体。右边两张是经过SPPE进行估计出的关节点热图,热图中高亮区域表示有关节点的概率。由图2.2.1可知即使在IoU > 0.5认为边界框定位准确的情况下,黄色虚线框的关节点热图仍然不能检测出关节点位置,也就是说SPPE并没有预测出人体姿态,这是因为边界框的定位会影响SPPE的检测效果,如果想要正确检测出人体,就必须定位出更准确的人体边界框。
边界框定位错误
- 冗余的姿态:
下图中左图显示了Faster-RCNN检测到的人体边界框,右图显示了估计的人体姿态。每个边界框经过SPPE都会产生一个姿态,因为每个边界框都是独立操作的,所以一个人会估计出多个姿态。但我们最后只需要一个姿态,其他的姿态都是多余的,并且会对最后估计姿态产生影响,因此需要删除多余姿态。
冗余的姿态
4.2.3 Alphapose网络结构
为了解决上面两个问题,Alphapose提出了一种区域多人姿态估计(RMPE)框架,如图所示。(RMPE)框架改进了基于sppe的人体姿态估计算法的性能。为了从边界框中提取出高质量的单人区域,设计了一种附加在SPPE上的对称空间变换网络(SSTN),为了优化该网络又并联了一条SPPE支路。针对姿态冗余问题,提出了参数化姿态非最大抑制( Parametric Pose NMS),制定一个度量标准测量姿态间的相似度,从而消除冗余的姿态。最后,用姿态引导区域框生成器(PGPG)来增强训练样本,通过学习不同姿态人体检测器的输出分布,模拟人体边界框的生成,生成大量的训练样本。
区域多人姿态估计(RMPE)框架
4.2.4 SSTN对称空间变换网络
为了解决问题一:边界框定位错误,Alphapose提出了SSTN(对称空间变换网络),如图1-6所示。如果人体检测框定位不准确,可以通过SSTN对人体检测框进行空间变换(移动或剪裁)使人体处于人体检测框的中央。
SSTN包括两部分:STN(空间变换网络)和SDTN(反向空间变换网络)。
STN利用移动、剪裁等空间变换使边人体处于检测框的中央;
SDTN将SPPE估计出的人体姿态线和图片反向变换到输入图像中。
Parallel SPPE的作用:优化STN,Parallel SPPE先估计出人体姿态,然后判断人体姿态的中心点是否在人体检测框的中心,不在中心就返回较大误差,进而达到优化STN的目的,促使STN提取更精确的人体检测框。Parallel SPPE只在训练阶段使用,在测试阶段没有Parallel SPPE。
SSTN对称空间变换网络
4.2.5 parametric pose NMS参数化非极大值抑制
图片经过检测器会生成的多个人体检测框,但在用SPPE进行人体姿态估计时,多余的人体检测框也会生成相应的人体姿态,这就导致了姿态冗余,会降低人体姿态估计的精度,为了消除冗余的姿态,之前的方法大都采用非极大值抑制(NMS)。
而为了提高人体姿态估计的精度,必须消除冗余的姿态。因此Alphapose提出了parametric pose NMS参数化非极大值抑制,用这种方法可以有效的消除冗余的姿态。
参数化非极大值抑制由两种消除标准组成:置信度消除和距离消除,冗余姿态只要满足其中一个消除标准就会被消除。
(1)置信度消除:消除置信度相似的关节点。
上图公式中各参数含义:
Pi和Pj:人体姿态
Bi:Pi检测框的1/10
ki和kj:Pi和Pj的关节点坐标
ci和cj:Pi和Pj关节点的置信度
原理:统计两个姿态关节点置信度相似的总个数,原理如图所示:
置信度消除
步骤如下:
1.根据置信度得分进行排序。
2.首先选择置信度最高的姿态Pi作为参考姿态,判断姿态Pj是否需要被消除。
3.如果关节点kj在Bi范围内,且此时两个关节点的置信度分数相似,则函数值是1,不相似函数值为1。
4.如果关节点kj不在Bi范围内,函数值为0
5.重复步骤3和4,对比姿态的17个关节点后,统计相似关节点的总数,如果超过五个,姿态Pj就会被消除
6.重复上述过程,直至检测框列表为空。
(2)距离消除:消除位置相近的关节点。
图1-2中公式是用来计算两个姿态关节点的空间距离总和,选取置信度较高的姿态Pi,如果Pj姿态与Pi距离比较近,这说明两者重叠度较高,那么Pj就会被消除。
4.2.6 PGPG姿态引导区域框生成器
对于Alphapose,适当的数据增强有助于训练SSTN+SPPE模块,一种增强方法是在训练阶段使用检测出来的人体检测框,但是由于在进行目标检测只能生成一个人体检测框,所以STN+SPPE模块得不到充分训练,因此需要PGPG进行数据增强。
数据集图片中的每个人都有一个标签检测框,这些图片经过目标检测器,每个人都会产生一个预测框,我们的目的是尽可能让预测框和标签框重合,但实际情况是预测框总会或多或少的偏离标签框,我们的SSTN+SPPE模块就是针对偏移较大的预测框进行矫正,如果想训练SSTN+SPPE模块,我们就需要大量的预测框,我们可以模拟预测框的偏移生成大量的预测框,这样就可以训练SSTN+SPPE模块。但是不同姿态的检测框和标签检测框之间的偏移量分布是不同的,例如躺着和站着是两种姿态,它们的偏移量分布是不同的。Alphapose用P(δB|atom§)表示原子姿态P的偏移量分布,atom§是原子姿态(代表一个种类的姿态,通过聚类获得),原子姿态的含义可以这样理解,在一张图片里有两个人都是站立的姿态,但一个是大人,一个是小朋友,他们两者的高度和宽度有很大区别,但他们的原子姿态是一样的(都是站立姿态)。
计算每个原子姿态预测框的偏移量,将这些偏移量与标签框进行归一化处理后,原子姿态偏移量会形成一个频率分布,将频率分布拟合成高斯混合分布。就得到了不同原子姿态的高斯混合分布。根据这些高斯分布,生成大量预测框,就可以训练SSTN+SPPE模块。
Alphapose算法相关推荐
- Windows10下的AlphaPose配置,人体摔倒姿态识别
AlphaPose为上海交大MVIG组提出的实时多人姿态估计算法,属于自顶向下的方法,即先要通过目标检测算法定位人体,再通过单人姿态估计定位每个人体框中的关键点. (AlphaPose算法流程) 实验 ...
- 计算机视觉各领域前沿算法积累
目录 一.目标检测 1.SSD 2.PaddleDetection 3.mmdetection 4.mediapipe 二.单目标跟踪 1.pytracking 2.pysot 3.SiamMask ...
- 深度学习人体姿态估计算法综述
https://www.infoq.cn/article/6Btg0-1crfmb7svRGa6H 人体骨架是以图形形式对一个人的方位所进行的描述.本质上,骨架是一组坐标点,可以连接起来以描述该人的位 ...
- CRNN:端到端不定长文字识别算法
点击上方"AI搞事情"关注我们 ❝ 论文:<An End-to-End Trainable Neural Network for Image-based Sequence R ...
- 动作分析 姿态估计_单人或多人的人体姿态骨架估计算法概述
原标题:单人或多人的人体姿态骨架估计算法概述 如何在大片中实现人物的特效,最终应用人体姿态估计.本博客介绍了使用深度学习技术及其应用的多人姿势估计方法. 人体骨骼骨架以图形格式表达人体运动.基本上,它 ...
- CVPR2019 | AlphaPose升级!上交大开源密集人群姿态估计代码
点击我爱计算机视觉标星,更快获取CVML新技术 前几天52CV报道了一篇非常棒的姿态估计的论文,CVPR2019 | 微软.中科大开源基于深度高分辨表示学习的姿态估计算法,其实上交大卢策吾老师组在这个 ...
- 人工智能 信道估计 深度学习_深度学习人体姿态估计算法综述
作者 | Bharath Raj 译者 | 李志 编辑 | Vincent AI 前线导读:人体姿态估计的任务是从包含人体的图片中检测出人体关键点,并恢复人体位姿.随着深度学习的发展,越来越多的深度学 ...
- 姿态估计相比Mask-RCNN提高8.2%,上海交大卢策吾团队开源AlphaPose
由上海交通大学卢策吾团队发布的开源系统AlphaPose近日上线,该开源系统在标准测试集COCO上较现有最好姿态估计开源系统Mask-RCNN相对提高8.2%.Mask-RCNN是2017年以来计算机 ...
- Talk预告 | 上海交通大学计算机系博士生李杰锋方浩树:多人场景,全身136关键点检测与跟踪框架AlphaPose技术讲解
本期为TechBeat人工智能社区第466期线上Talk! 北京时间12月28日(周三)20:00,上海交通大学计算机系博士生--李杰锋&方浩树的Talk将准时在TechBeat人工智能社区开 ...
最新文章
- Qt学习之路(29): 绘图设备
- signalr 连接数量的限制_LED灯珠常用的连接方式优缺点分析!
- 数据“土豪”电信云告诉你,如何“玩转”数据生态
- C语言实现哈密尔顿hamiltonian算法(附完整源码)
- java 国际化 properties_java Properties 读取文件,国际化
- 2018年中国银行业十件大事,“Fintech深度融合,科技子公司遍地”...
- 使用get set方法添减属性_头皮银屑病“克星”使用方法,你GET了吗?
- 2020-1024=996,2020年程序员还会难吗?
- maven中的snapshot来源与注意事项
- unity3d 人物对话_RPG角色对话编辑器系统RPG Conversation/Dialogue Editor 1.2.0
- MySQL窗口函数(分组内排序、筛选)
- 读书笔记-《人人都是产品经理V1.1》
- 国产处理器服务器操作系统安装(海之舟服务器操作系统安装说明)
- oracle distinct 用法
- 涤纶电容的作用原理及优点缺点
- 简单工厂/工厂方法/抽象工厂
- 关于10G/40G/100G数据中心光纤布线知识
- 2020年程序员客栈云端收入排行榜
- 洛谷 JAVA 题解 P1618 三连击(升级版)
- GPS时间以及周内秒
热门文章
- 过滤器(Filter)和拦截器(Interceptor)的区别
- linux mc服务器 mod_linux如何搭建mc服务器地址
- Linux查看进程命令有哪些?
- Linux查看进程命令
- 3ds Max 如何快速定位关键帧?
- 世界上最强的超级计算机们[图]
- linux tar.xz 解压命令,tar.xz后缀文件创建和解压命令
- 计算机word10怎么输入度数,Word2010怎么输入度数
- oracle是用什么端口号,oracle10g常用端口号
- Java并发包中常用类小结(一)