array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 【论文笔记-03】RMPE:Regional Multi-Person Pose Estimation - 爱码网

【论文地址】https://arxiv.org/pdf/1612.00137.pdf

这篇Paper是交大和腾讯优图共同提出的AlphaPose多人姿态估计,从实验结果看来各项指标要比CMU OpenPose好很多。

【Abstract】

复杂环境下多人姿态识别是具有十分挑战性的。尽管当前最好的人体检测算法已经取得了很好的效果,但是仍然存在一些定位和识别错误。这些错误势必会导致单人姿态估计(Single-Person Pose Estimator,SPPE)失败,特别是那些基于人体检测的方法。因此,本文提出了一种新颖的区域的多人姿态估计框架,以方便在存在不准确的人体检测边界框的情况下进行姿态估计。本文的框架主要包含三个部分:

  1. Symmetric Spatial Transformer Network(SSTN)
  2. Parammetric Pose Non-Maximum-Suppression(NMS)
  3. Pose-Guided Proposals Generator (PGPG)

该算法可以处理不准确的 边界框 (bounding boxes) 和 冗余检测(redundant detections),在MPII数据集上取得了76.7 mAP。

【Introduction】

当前流行的多人姿态估计算法有两大类:一类是two-step framework,另外一类是part-based framwork。

two-step framework:通俗的讲就是两步走,第一步首先检测输入图像中所有的人体边界框,第二步对每一个人体检测框进行姿态估计。本文就是采用这种。

part-based framework:首先检测输入图像中所有的肢体节点(body parts),然后进行拼接操作,跟拼乐高一样的道理。将这些肢体节点拼接成人。CMU的OpenPose采用这种。

两种方法各有利弊,第一类算法依赖于人体检测框的质量,一般情况都是通过目标检测算法去检测得到人体区域;第二类算法在两人离的很近的情况下,会出现懵逼的情况,到底这个肢体节点属于哪个的。而且由于仅仅依赖肢体节点之间的连接关系,会导致此方法失去对全局的信息获取。

这篇Paper是属于第一类方法,本文目标是无论在第一步获取到人体检测框正确与否,都希望可以检测出正确的人体的姿态。很好奇,这篇paper到底是怎么弥补人体检测不足的?接着讲。为了说明之前方法的不足,本文使用了当前做流行的目标检测算法Faster-RCNN和SPPE Stacked Hourglass进行实验,主要问题是对输入图像的检测定位错误以及冗余检测问题,如下图1和图2所示:SPPE对于人体检测框是定位是十分苛刻的,图1中使用IoU>0.5的黄色人体检测框作为SPPE的输入,对比groundtruth可以发现并没有检测到正确的人体姿态。图2展示了冗余的检测问题,对于同一目标产生了多个人体检测框,从而导致姿态检测出问题。

【论文笔记-03】RMPE:Regional Multi-Person Pose Estimation

【论文笔记-03】RMPE:Regional Multi-Person Pose Estimation

为了解决上述问题,这篇paper提出了一种区域多人姿态检测(RMPE)框架来提升SPEE-based行人姿态检测的性能。设计了SSTN网络并将其添加到SPPE结构中,从而在不精准的人体检测框内提取到高质量的人体区域。为了优化该网络,引入了一种新型的并行SPPE分支。这篇paper使用了parametric pose NMS来解决冗余检测的问题。parametric pose NMS通过使用新的姿态距离度量来比较姿态的相似性,从而消除冗余的姿态。姿态距离参数通过数据驱动的方式进行优化。最后,这篇paper又提出一种PGPG的方法来做数据增强。通过学习人体检测器在不同姿态下的输出分布,我们可以去拟合生成人体边界框,从而产生大量的训练样本。

RMPE框架是通用的,适用于不同的人体检测器和单人姿态估计。在MPII数据集,取得76.7mAP。

【Regional Multi-person Pose Estimation】

RMPE框架如图3所示,首先通过目标检测算法获得人体检测框,然后将这些检测框输入到SSTN+SPPE模块,可以自动的检测出人体姿态。在利用parametric Pose NMS进行refine。在训练过程中,使用Parallel SPPE来避免局部最优并进一步提升SSTN的性能。利用PGPG方法来对训练数据集做数据增强。下面进行一一详细分析:

【论文笔记-03】RMPE:Regional Multi-Person Pose Estimation

  • Symmetric STN 和 Parallel SPPE

目标检测算法提取的人体检测框非常不适合SPPE,这是因为SPPE算法是训练在单人图像上并且对定位错误十分敏感。通过细小的转换和裁剪的方法可以有效提升SPPE的准确度。SSTN + Parallel SPPE可以在不精准的人体检测框情况下有效的提升SPPE的性能。SSTN + Parallel SPPE的结构如下图4所示:

【论文笔记-03】RMPE:Regional Multi-Person Pose Estimation

  • Parametric Pose NMS
  • Pose-guided Proposals Generator 

 

未完待续,去看STN的paper了 

相关文章: