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(Centos系统)部署项目(vue+nginx+tomcat)
条件,在服务器安装好tomcat,nginx; 安装nginx命令:# yum install nginx 启动Nginx命令:# systemctl start nginx.service 给权限 ...
- PAT——1045. 快速排序(25)
著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边. 给定划分后的N个互不相同的正整数的排列,请问有多 ...
- keepalived 的进程/usr/sbin/keepalived -D 只有2个
操作系统:openSUSE 11.3 (x86_64) /usr/sbin/keepalived -D 只有2条 日志:ls /var/log/messages* -lrth Can't init ...
- ubuntu下面显示隐藏文件快捷键
ubuntu下面显示隐藏文件快捷键 ctrl + H这个快捷键可以在ubuntu系统下显示隐藏的文件夹和文件
- 获取Linux下的IP地址 java代码
/** * 获取Linux下的IP地址 * * @return IP地址 * @throws SocketException */ public static String getLinuxLocal ...
- PHP的strtotime()函数2038年bug问题
最近在开发一个订单查询模块的时候,想当然的写了个2099年的日期,结果PHP返回了空值,肯定是发生溢出错误了,搜索了网上,发现下面这篇文章,但是我的问题依然没有解决,要怎么得到2038年以后的时间戳呢 ...
- day 93 Django学习之django自带的contentType表
Django学习之django自带的contentType表 通过django的contentType表来搞定一个表里面有多个外键的简单处理: 摘自:https://blog.csdn.net/a ...
- 项目-高性能TcpServer - 目录
1.项目-高性能TcpServer - 1.网络通信协议 https://blog.csdn.net/arno1988/article/details/82463225 2.项目-高性能TcpServ ...
- Python学习 :面向对象 -- 类的成员
类的成员 一.字段 - 字段可以分为'普通字段'和'静态字段'两种 - 普通字段(保存在对象中,执行时只能通过对象来进行访问) - 静态字段(保存在类中,在内存中只保存一份数据(可以有效地节约内存的空 ...
- 八球胜负 HDU-2537
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ int a,b,n,i; c ...