开源实现

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. SQL MID() 函数

    MID() 函数 MID 函数用于从文本字段中提取字符. SQL MID() 语法 SELECT MID(column_name,start[,length]) FROM table_name 参数 ...

  2. WEB框架-Django组件学习-分页器学习

    1.分页器基础学习 1.1 补充知识-批量创建 数据库中数据批量创建,不要每创建一个就往数据库中塞一个,会造成撞库,造成大量I/O操作,速速较慢,应该采用一次性创建大量数据,一次性将大量数据塞入到数据 ...

  3. Exp6 信息搜集与漏洞扫描 20165110

    Exp6 信息搜集与漏洞扫描 20165110 一.实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 二.实践内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描 ...

  4. Codeforces Round 1153(div. 2)

    这场奇差.ABCD四题.179名. 但是E在现场有213个人做出. 描述一下我在35分钟做完D后的心路历程. 首先看到这道E,第一下想到的是把所有的横向和竖向的整列(行)求出相连的个数. 然后想如何能 ...

  5. 程序员买房指南——LZ的三次买房和一次卖房经历

    引言 买房,一直是程序员群体绕不开的一个话题,尤其是到了一定年纪和人生阶段以后,买房这件事会变得越来越迫切. 为什么LZ一上来就说,买房是程序员绕不开的一个话题? 其实原因很简单,由于程序员这个职业的 ...

  6. Surjectivity is stable under base change

    Nowadays, I close a new small case. Proposition. For a surjective morphism between scheme $X\stackre ...

  7. すぬけ君の塗り絵 / Snuke's Coloring AtCoder - 2068 (思维,排序,贡献)

    Problem Statement We have a grid with H rows and W columns. At first, all cells were painted white. ...

  8. oracle--数据筛选

    一:当统一社会信用代码或者工商注册号两个字段中,有的时候只有一个字段含有数据,但是所取的值必须要拥有字段,这个时候,语句为下: select t.entname, case when t.unisci ...

  9. Linux(Ubuntu)使用日记(三)------git安装使用

    1. 安装 首先,确认你的系统是否已安装git,可以通过git指令进行查看,如果没有,在命令行模式下输入sudo apt-get install git命令进行安装. 2.  配置 git confi ...

  10. Sqoop export(Hive to MySQL) 的一些 reference

    之后可能会整理成文章..还有一些坑没趟完. Reference: https://cloud.tencent.com/developer/article/1078473  Sqoop抽取Hive Pa ...