开源实现

https://github.com/shihenw/convolutional-pose-machines-release(caffe版本)
https://github.com/psycharo/cpm (tensorflow版本,但是只有用pre-trained model做predict,没有training)

论文原文下载地址:https://www.researchgate.net/publication/301880946_Convolutional_Pose_Machines

论文阅读笔记:

思路通过关键点的连线判断四肢的方向和位置(比如,手肘,肩膀,手腕,膝盖,脚踝,臀部等14个关键点)。(但是我觉得关键点的难度应该是在人体的姿势变化大,关键点不清晰和被遮挡等问题上)

摘要姿势识别即关键点定位技术, a sequential architecture(序列化结构。把一个网络分成几个序列化的模块)组成卷积的网络,在特征图上进行一系列的操作。解决组合序列化的模块,一旦网络过长,可能会出现梯度消失的现象,可能会杀死前面的序列的问题。将训练结果在多个数据库上进行评估。

方法:

1. 序列化网络:

  详见核心和特色:sequential网络架构。

2.Keypoint Localization

第一个Stage:14个特征图,就对应14个关键点,特征图预测每个点在图像中每一个部位的概率。

3.Sequential prediction:

感受野大小9*9,26*26,60*60..........,400*400(经过卷积之后,能看到的区域越来越大,可以更好地得到上下文信息,能看到更大的感受野,就有更高的准确率)分多个stage的好处就在于加卷积的时候,感受野越来越大。

纠错:关键点之间是互相影响的,要分辨出不同的关键点,需要更大的感受野通过其他关键点信息判断关键点。

如何得到更大的感受野:

  1)加更多的卷积层,网络越深,最后一层卷积层看到的越向前,获得的感受野更大。

  2)增大kernel size。

4.关于梯度下降的问题:

卷积层多了,就会出现梯度消失的问题。

Intermediate Supervision方法:

红色是正常传,epoch是每一次迭代,传到Stage2梯度就无法再变化了。

我理解的Intermediate Supervision:每一个阶段的Stage都已经有一个结果了,得出每个Stage的Loss,Loss1,Loss2.Loss3,每一层都有一次监督,每一层都能有参数的更新。

5.训练:

1.Loss Function:

Grand Truth:一个点的坐标与标准的欧氏距离。

在每一个关键点的真实位置上,放置一个高斯响应。标定后生成label数据。

2.数据拓展:

为了丰富训练样本,对原始图片进行随机旋转缩放镜像。

 

论文核心思想和特色:

一.Sequential网络的架构:

1. 在每一个尺度下,计算各个部件的响应图
2. 对于每个部件,累加所有尺度的响应图,得到总响应图
3. 在每个部件的总响应图上,找出相应最大的点,为该部件位置

六个Stage,

第一个Stage:输入图像,经过卷积得到46*46*15(14+1,14为关键点,1为背景)的特征图。

第二个Stage:输入图像,经过卷积46*46*32(纹理特征),之后综合前一个Stage的结果进行连接。得到46*46*48(35+15+1(中心约束))之后再卷积得到,46*46*15.

第三个Stage之后:直接拿到第二个Stage的中间结果,卷积成46*46*128.分成四个46*46*32和前一个阶段性预测结果进行卷积。

Center Map:在人的周围加上一个高斯响应。Stage2之后都会有一个Center map的聚拢。提前生成的高斯函数模板,用来把响应归拢到图像中心。

二:.各部件响应图来表达各部件之间的空间约束

响应图和特征图一起作为数据在网络中传递。

三:中继监督:

人体姿势识别,Convolutional pose machines文献阅读笔记。的更多相关文章

  1. Convolutional Pose Machines(理解)

    0 - 背景 人体姿态识别存在遮挡以及关键点不清晰等主要挑战,然而,人体的关键点之间由于人体结构而具有相互关系,利用容易识别的关键点来指导难以识别关键点的检测,是提高关键点检测的一个思路.本文通过提出 ...

  2. Convolutional Pose Machines

    Convolutional Pose Machines 2018-12-10 18:17:20 Paper:https://www.cv-foundation.org/openaccess/conte ...

  3. 文献阅读笔记——group sparsity and geometry constrained dictionary

    周五实验室有同学报告了ICCV2013的一篇论文group sparsity and geometry constrained dictionary learning for action recog ...

  4. Learning local feature descriptors with triplets and shallow convolutional neural networks 论文阅读笔记

    题目翻译:学习 local feature descriptors 使用 triplets 还有浅的卷积神经网络.读罢此文,只觉收获满满,同时另外印象最深的也是一个浅(文章中会提及)字. 1 Cont ...

  5. 从DeepNet到HRNet,这有一份深度学习“人体姿势估计”全指南

    从DeepNet到HRNet,这有一份深度学习"人体姿势估计"全指南 几十年来,人体姿态估计(Human Pose estimation)在计算机视觉界备受关注.它是理解图像和视频 ...

  6. 论文阅读笔记(十六)【AAAI2018】:Region-Based Quality Estimation Network for Large-Scale Person Re-Identification

    Introduction (1)Motivation: 当前的行人重识别方法都只能在标准的数据集上取得好的效果,但当行人被遮挡或者肢体移动时,往往效果不佳. (2)Contribution: ① 提出 ...

  7. 用华为HMS ML kit人体骨骼识别技术,Android快速实现人体姿势动作抓拍 

      你有没有过这种体验,拍照时对着镜头,脑子一片空白.表情僵硬.手和脚无处安放,最后拍出来的照片很是奇怪.拍照软件中的固定姿势抓拍功能可以帮助你:选择一个你想要的姿势模板,当你摆出同款姿势时,软件会进 ...

  8. Kinect 开发 —— 姿势识别

    姿势和手势通常会混淆,但是他们是两个不同的概念.当一个人摆一个姿势时,他会保持身体的位置和样子一段时间.但是手势包含有动作,例如用户通过手势在触摸屏上,放大图片等操作. 通常,游戏者很容易模仿指定姿势 ...

  9. 人体行为识别(骨架提取),搭建openpose环境,VS2019(python3.7)+openpose

    这几天开始接触人体行为识别,经过多方对比后,选择了现在最热的人体骨架提取开源库,openpose. 下面就不多说了,直接开始openpose在win10下的配置: 需求如下:1. VS2019    ...

随机推荐

  1. ubuntu系统下mysql重置密码和修改密码操作

    一.忘记密码后想重置密码 在介绍修改密码之前,先介绍一个文件/etc/mysql/debian.cnf.其主要内容如下图: 里面有一个debian-sys-maint用户,这个用户只有Debian或U ...

  2. identity server4 证书

    我们需要对token进行签名, 这意味着identity server需要一对public和private key. 幸运的是, 我们可以告诉identity server在程序的运行时候对这项工作进 ...

  3. pybind11 安装

    Prerequisites: $ sudo apt-get install python-dev  (or python3-dev) $ sudo apt-get install cmake $ su ...

  4. openstack-mitaka部署

    详见我在51cto的一篇博客:http://egon09.blog.51cto.com/9161406/1839667

  5. OpenMP并行程序设计——for循环并行化详解

    在C/C++中使用OpenMP优化代码方便又简单,代码中需要并行处理的往往是一些比较耗时的for循环,所以重点介绍一下OpenMP中for循环的应用.个人感觉只要掌握了文中讲的这些就足够了,如果想要学 ...

  6. Redis入门之增删改查等常用命令总结

    Redis是用C语言实现的,一般来说C语言实现的程序"距离"操作系统更近,执行速度相对会更快. Redis使用了单线程架构,预防了多线程可能产生的竞争问题. 作者对于Redis源代 ...

  7. Kickstart 和 Cobbler ks.cfg文件详解

    ks.cfg文件组成大致分为3段 命令段 键盘类型,语言,安装方式等系统的配置,有必选项和可选项,如果缺少某项必选项,安装时会中断并提示用户选择此项的选项 软件包段 %packages @groupn ...

  8. 【算法】—— LRU算法

    LRU原理 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”. 实现1 最常见的 ...

  9. IntelliJ IDEA 2018 设置代码超出限制自动换行(最新版)

    环境信息 * IntelliJ IDEA版本:ULTIMATE 2018.2.3:* 系统:Windows 10: 怎么设置IntelliJ IDEA 2018代码一行的换行宽度限制呢? 设置方法:` ...

  10. BZOJ2527[Poi2011]Meteors——整体二分+树状数组

    题目描述 Byteotian Interstellar Union (BIU) has recently discovered a new planet in a nearby galaxy. The ...