Towards Accurate Multi-person Pose Estimation in the Wild 论文阅读
论文概况
论文名:Towards Accurate Multi-person Pose Estimation in the Wild
作者(第一作者)及单位:George Papandreou, 谷歌
发表期刊/会议:CVPR2016
被引次数(截止到发博日期,以谷歌学术为数据来源):52
主要方法
论文实现的是多人的姿态估计,使用的是自顶向下(top-down)的方法,即:先由目标检测方法把人检测出来,然后再进行单人的姿态估计。这篇论文的总体流程是:第一步,使用Faster-RCNN进行人的检测。第二步,进行姿态估计。
第一步、使用Faster-RCNN进行人的提取
这部分看起来没什么好说的,但是,读论文就要事无巨细,所以来看一下详细实现。
文章中使用了基于ResNet101的Faster-RCNN,但是做了一些更改,就是把卷积操作用atrous convolution给修改了,具体修改可以看一下原文的参考文献,我们这里看一下atrous convolution是什么,atrous convolution频繁的在deeplab的论文里出现,这里特意找了一下,如下图:

图(b)就是atrous convolution,接下来我们看一个二维的卷积,如图:

这幅图虽然是讲的时空金字塔池化,但是上面的卷积核我们可以直观的看到,可以说就是带孔的卷积,这样可以用相对更少的参数得到更大感受野的feature map(这样说也不知道对不对),论文中这么做的目的是为了让ResNet的输出由原来的stride=32变成stride=8,这样子就可以产生更“稠密”的feature map,我的理解是具有更大的感受野和更多的信息。另外,这里用的Faster-RCNN是重新训练过的,并且训练的时候只保留“人”这一个类别。
第二步、姿态估计
这部分是本文的重头戏,其骨干就是用ResNet来同时做了分类和回归。
1.图片分割
之前说过,我们首先要通过一个Faster-RCNN来检测人,但是我们知道检测框的大小不一样,那么应该如何处理呢。让我来做的话,二话不说,直接resize成我的网络输入大小,但实际上这样子会使我的人的图像长宽比失真,最终导致我的模型训练效果不佳。本文使用了一个比较好的方法,我觉得以后做类似任务的时候都可以这么处理。
- 将检测出来的框的长或宽扩展,使检测框符合一个长宽比x。
- 然后将整个框保持长宽比不变进行扩大,论文里说训练的时候按照1.0-1.5的比例随机扩大,也算是数据集增强的一部分,然后测试的时候就按1.25的比例扩大。
- 将上面的框框出来的区域裁剪,然后resize成257*353的大小,注意,之前的长宽比x=353/257=1.37,这样,即使经过resize,图片也不会失真。
2.分类和回归问题
前面说过,这部分主要是做了分类和回归。对于分类问题,论文中将以关节点为中心,以R为半径的区域归为1,其余位置为0。对于回归问题,回归了一个向量,也就是偏移量,定义为:
\[
F_{k}(x_{i})=l_k-x_i
\]
其中l_k为关节点坐标。为什么要这样呢?直接回归出关节点不好吗,实际上直接回归是很难的,谷歌的deeppose论文就是直接回归的,但是也是用了很多了阶段不停地修正才能得到真正的坐标,我曾经试过只用一个阶段单纯的回归坐标,但是结果是所有的预测结果都是一样的,必须经过修正才可以让网络学到真正能识别关节的特征,所以这就是本文的两步走策略,我先找到一个大概区域,然后根据我预测的偏移量投票出我真正的关节点坐标,那么怎么得到呢,公式如下:
\[
f_k(x_i)=\sum_{j}\frac{1}{\pi R^2}G(x_j+F_k(x_j)-x_i)h_k(x_j)
\]
其中G()是 bilinear interpolation kernel,恕我才疏学浅,这个函数找了很久都不知道是什么,看字面是双线性内插算法,但是双线性内插公式要有四个已知点,这部分等以后搞懂了再说吧。但是论文中提到,如果heatmap(也就是那个圆)和offset(偏移向量)都是完美的话,那么f应该是冲击响应函数,我们看一下论文里的图片,直觉上理解一下。


后面就是实验结果,其中还提到了基于OKS的非最大值抑制,但是可惜没有说具体怎么做,关于非最大值抑制的相关问题,由于这个也很重要,以后单写一篇随笔吧。
Towards Accurate Multi-person Pose Estimation in the Wild 论文阅读的更多相关文章
- DensePose: Dense Human Pose Estimation In The Wild(理解)
0 - 背景 Facebook AI Research(FAIR)开源了一项将2D的RGB图像的所有人体像素实时映射到3D模型的技术(DensePose).支持户外和穿着宽松衣服的对象识别,支持多人同 ...
- 对DensePose: Dense Human Pose Estimation In The Wild的理解
研究方法 通过完全卷积学习从图像像素到密集模板网格的映射.将此任务作为一个回归问题,并利用手动注释的面部标注来训练我们的网络.使用这样的标注,在三维对象模板和输入图像之间,建立密集的对应领域,然后作为 ...
- (转)Awesome Human Pose Estimation
Awesome Human Pose Estimation 2018-10-08 11:02:35 Copied from: https://github.com/cbsudux/awesome-hu ...
- paper 154:姿态估计(Hand Pose Estimation)相关总结
Awesome Works !!!! Table of Contents Conference Papers 2017 ICCV 2017 CVPR 2017 Others 2016 ECCV 20 ...
- 手势估计- Hand Pose Estimation
http://blog.csdn.net/myarrow/article/details/51933651 1. 目前进展 1.1 相关资料 1)HANDS CVPR 2016 2 ...
- human pose estimation
2D Pose estimation主要面临的困难:遮挡.复杂背景.光照.真实世界的复杂姿态.人的尺度不一.拍摄角度不固定等. 单人姿态估计 传统方法:基于Pictorial Structures, ...
- Social Grouping for Multi-Target Tracking and Head Pose Estimation in Video(翻译)
0 - ABSTRACT 许多计算机任务在缺少上下文信息的情况下的处理会更加困难.例如,在多相机跟踪任务下,行人可能在不同照相机下面因为有这不同的姿势和灯光条件而看起来很不一样.类似地,在低分辨率高角 ...
- 论文笔记: Mutual Learning to Adapt for Joint Human Parsing and Pose Estimation
Mutual Learning to Adapt for Joint Human Parsing and Pose Estimation 2018-11-03 09:58:58 Paper: http ...
- 论文阅读理解 - Stacked Hourglass Networks for Human Pose Estimation
http://blog.csdn.net/zziahgf/article/details/72732220 keywords 人体姿态估计 Human Pose Estimation 给定单张RGB图 ...
随机推荐
- Linux下jmap命令查看内存使用
Linux下jmap命令查看内存使用 jmap -heap 1234(1234为进程号) jmap是JDK自带的一个工具,非常小巧方便,其支持参数如下: -heap 打印heap空间的概要 ...
- 使用Fiddler监控来自手机客户端的请求
环境配置组成: 1 手机 2 安装Fiddler的PC 设置要点: 1 手机和PC应在同一个局域网内 我的做法是:PC安装WIFI热点,手机连接热点上网 PC的IP是192.168.95.1 手机的 ...
- webapi中的模型验证
mic: https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/model-valida ...
- crobtab不执行定时任务的原因及解决办法
服务未能启动或者权限问题.路径问题,网上很多种解决办法,就不多的说了. 1.查看crond日志: cat /var/log/cron 刚开始我的日志里面并没有执行写的脚本. 原因在于在脚本开始没有写s ...
- GoBelieve service部署常见问题总结
问题1: 大家好,我按照文档的步骤编译im时(make install),出现 can't load package: package main: app_route.go:1:1: expected ...
- NOIP模拟赛D2T1自己的解题思路
T1题目在此: 数轴上有n个球,每个球直径为1,第 ii 个球的左端点为pi即占据了数轴上[pi,pi+1][pi,pi+1]).在 P位置有一堵墙.有q个操作,每次要么以x位置为左端点放一个新球(如 ...
- select2 多选 排序(版本3.4.6)
使用select2多选,页面选择值的顺序与传到control的值的顺序不一致,为了方便,没有改变本来js文件,在页面上面通过change方法改变. 1.页面代码(添加修改使用同一个页面) <li ...
- docker-maven-plugin 完全免Dockerfile 文件
# DockerSpringBootPlugin docker-maven-plugin 完全免Dockerfile 文件 使用docker-maven-plugin 进行完全免 Dockerfile ...
- 【Linux】计划任务
计划任务的意义 计划任务 创建和管理在指定时间自动执行的任务 注意事项 要使任务计划在指定时间自动运行,计划任务的服务必须是启动的 计划任务分类 使用at命令调用atd进程设置在某个特定的时间,执行一 ...
- Redis(一):NoSQL入门和概述
NoSQL入门和概述目录导航: NoSQL入门概述 3V+3高 当下的NoSQL经典应用 NoSQL数据模型简介 NoSQL数据库的四大分类 在分布式数据库中CAP原理CAP+BASE NoSQL 入 ...