CPN:Cascaded Pyramid Network for Multi-Person Pose Estimation

旷视科技face++发表于cvpr2018,模型取得2017年coco keypoint benchmark冠军。
论文:https://arxiv.org/abs/1711.07319
官方代码:https://github.com/chenyilun95/tf-cpn

基本思想

此方法为TOP-DOWN方法,需依赖另一个人体检测模型,先把人体检测出来,再用此模型进行关键点检测。
对于比较明显的关键点,基于局部信息就能识别出来,如眼睛鼻子;但对于比较隐晦的关键点,如躯干部分或者有遮挡的部分,需要视野比较大的全局信息。因此设计两个堆叠的网络,一个负责明显关键点的检测,另一个在此基础上进行修正。

整体框架

模型分为两大部分,一部分是Globalnet,主体是resnet,负责初步检测关键点坐标;第二部分是Refinenet,对第一部分的各层进行进一步加工,然后用concat进行堆叠,负责对困难部分关键点进行检测。

流程

  • 训练

    • 输入:裁剪、缩放后的包含人体的图片(假设输入尺寸为(384, 288),后面尺寸皆以此为参照,若输入尺寸改变,相应的输出尺寸也会改变),标签为4个由ground truth经高斯模糊后生成的heatmap(尺寸相同,皆为输入的1/4,即(96, 72),但高斯模糊的程度不同)
    • loss:分为两部分,第一部分是Globalnet的输出,第二部分是RefineNet的输出,最后loss为两部分的和
      • Globalnet部分:
        如框架图,取resnet的4个feature,分别经过1x1卷积,把通道数变为17;
        最下层(尺寸最小的那层,实际上为resnet的最top层,图里倒过来了),载经1x1和3x3的卷积后,upsample (代码里为粗暴的resizelinear)缩放到(96, 72)大小然后与模糊程度最大的heatmap计算L2损失(像素点相减,取平方和);
        以上各层分别由下一层经upsample缩放到(96, 72),经1x1卷积后与该层的feature逐点相加,再经1x1和3x3卷积,与对应的heatmap计算L2损失。
        最后globalnet的损失为各层损失的平均值乘以权重(代码里为0.5)。
      • RefineNet部分:
        由Global的4个feature(逐点相加后的和)经过不同数量的bottleneck卷积(数量如上结构图,对本来已经比较深层的最下层卷积的次数比较多,而对本来比较浅层的上层卷积次数比较少,感觉有点反常),统一upsample成统一大小(96, 72),concat堆叠到一起,再通过卷积把通道数改变到17,然后与模糊程度最小的heatmap分通道计算L2损失;
        取各通道中loss最大的若干个(OHEM,代码中为8个)的平均值作为RefineNet的loss值。
  • 预测
    • 输入:每张图片进行左右flip,分别预测
    • 输出:预测部分只取RefineNet最后输出的heatmap(尺寸为(96, 72, 17)),然后把一对flip的结果计算平均值。得到的是每个关键点一张heatmap,经过高斯模糊,然后取最大值点的坐标作为关键点坐标;取第二大值点的坐标与最大值点的坐标之间的距离,计算一个偏移量;关键点坐标与偏移量的和为最后的关键点坐标。

    PS

    论文介绍了很多训练的trick和对比试验结果,有兴趣请参考原论文

姿态估计(人体关键点检测)之CPN相关推荐

  1. 人体姿态估计(人体关键点检测)2D Pose训练代码和Android源码

    人体姿态估计(人体关键点检测)2D Pose训练代码和Android源码 目录 人体姿态估计(人体关键点检测)2D Pose训练代码和Android源码 1.人体姿态估计2D Pose方法 2.人体姿 ...

  2. MMPose姿态估计+人体关键点识别效果演示

    MMPose--开源姿态估计算法库(附人体关键点识别效果演示) 一.简介 1.1 背景 首先姿态估计属于计算机视觉领域的一个基础研究方向.MMPose是基于Pytorch的姿态估计开源算法库,功能全, ...

  3. Python+OpenCV+OpenPose实现人体姿态估计(人体关键点检测)

    目录 1.人体姿态估计简介 2.人体姿态估计数据集 3.OpenPose库 4.实现原理 5.实现神经网络 6.实现代码 1.人体姿态估计简介 人体姿态估计(Human Posture Estimat ...

  4. 人体姿态估计(人体关键点检测)分类与经典方法分析(附GitHub地址)

    人体姿态估计(Human Pose Estimation)也称为人体关键点检测(Human Keypoints Detection).对于人体姿态估计的研究,大致可做如下分类. 1. RGB vs R ...

  5. OpenPose实现人体姿态估计(人体关键点检测)

    转载:Python+OpenCV+OpenPose实现人体姿态估计(人体关键点检测)_不脱发的程序猿-CSDN博客_python人体姿态识别

  6. 融合人体姿态估计和目标检测的学生课堂行为识别

    融合人体姿态估计和目标检测的学生课堂行为识别_参考网 摘要: 在課堂教学中 , 人工智能技术可以帮助实现学生行为分析自动化 , 让教师能够高效且直观地掌握学生学习行为投入的情况 , 为后续优化教学设计 ...

  7. MediaPipe人体姿态、手指关键点检测

    MediaPipe人体姿态.手指关键点检测 文章目录 MediaPipe人体姿态.手指关键点检测 前言 一.手指关键点检测 二.姿态检测 三.3D物体案例检测案例 前言 Mediapipe是googl ...

  8. VideoPose3D:基于视频的3D人体关键点检测

    1. 概述 Dario Pavllo等人于2019年提出了VideoPose3D模型,旨在把输入视频转换成人体各关键点相对于根关节的相对三维位置.为了实现这一目的,作者采取的是两步走的策略.首先要利用 ...

  9. HRNet人体关键点检测

    Deep High-Resolution Representation Learning for Human Pose Estimation (CVPR 2019 oral) 文章地址:https:/ ...

  10. AAAI 2023 | 腾讯优图实验室16篇论文入选,含多标签分类、姿态估计、目标检测、HOI、小样本学习等研究方向...

    关注并星标 从此不迷路 计算机视觉研究院 转自腾讯优图 近日,AAAI 2023(Association for the Advancement of Artificial Intelligence) ...

最新文章

  1. 2022-2028年成都餐饮业投资分析及前景预测报告
  2. 社团的CTF逆向题WriteUp
  3. python介绍和用途-python中模块的介绍与使用
  4. 摩托罗拉SE4500 三星 S3C6410 Wince6.0平台软解码调试记录以及驱动相关问题解释
  5. 关于施加在 div 标签上的 ngTemplateOutlet 指令让 div class 丢失的问题调试
  6. Spring Boot定制启动图案
  7. CSS3几种新的长度单位
  8. linux的centos 怎么安装bzip2
  9. 带进度条的Flash多文件上传面板(SwfUploadPanel) (转载)
  10. rails mysql2 mac_用Mac osx10.6在Ruby on Rails上安裝mysql2 gem。
  11. 焕新:CANape 19真香~
  12. php json转数组不成功,phpjson转数组出错
  13. C#二次开发金橙子MarkEzd.dll激光打标机
  14. BZOJ 3555: [Ctsc2014]企鹅QQ
  15. 发送RST报文的几种可能的情况
  16. nexus 4/5/6/7/9/10 安卓5.1 LMY47D root教程
  17. 渗透测试工具篇——sqlmap
  18. 程序员成长之路(一)
  19. 学习自旋电子学的笔记01:微磁模拟软件OOMMF的教程(中文版)7-7.3.4章
  20. 【论文阅读】4- 4-Points Congruent Sets for Robust Pairwise Surface Registration

热门文章

  1. Dagger2 依赖注入框架介绍
  2. 使用uboot + minicom串口协议下载镜像文件
  3. 卫星导航定位误差之多路径地球自转相位缠绕相位中心误差地球潮汐
  4. QOS-CBWFQ\QOS-LLQ\QOS-PQ\QOS-CQ\QOS-WFQ
  5. pbootcms建站,pbootcms建站方法技巧
  6. 《windows程序设计(C语言版)》笔记
  7. java 实现qq截图功能吗_Java实现了任意位置截屏(仿QQ截图)
  8. Mac怎么创建加密文件夹
  9. android 入门记录
  10. 缺少netcfg.hlp无法上网的解决