介绍

OpenPose人体姿态识别项目是美国卡耐基梅隆大学(CMU)基于卷积神经网络和监督学习并以caffe为框架开发的开源库。可以实现人体动作、面部表情、手指运动等姿态估计。适用于单人和多人,具有极好的鲁棒性。是世界上首个基于深度学习的实时多人二维姿态估计应用,基于它的实例如雨后春笋般涌现。人体姿态估计技术在体育健身、动作采集、3D试衣、舆情监测等领域具有广阔的应用前景,人们更加熟悉的应用就是抖音尬舞机。

亮点

提出Part Affinity Fields (PAFs),每个像素是2D的向量,用于表征位置和方向信息。基于检测出的关节点和关节联通区域,使用greedy inference算法,可以将这些关节点快速对应到不同人物个体。
OpenPose是基于卷积神经网络和监督学习并以caffe为框架写成的开源库,可以实现人的面部表情、躯干和四肢甚至手指的跟踪,不仅适用于单人也适用于多人,同时具有较好的鲁棒性。可以称是世界上第一个基于深度学习的实时多人二维姿态估计,是人机交互上的一个里程碑,为机器理解人提供了一个高质量的信息维度。

流程

  1. 输入一幅图像,经过卷积网络提取特征,得到一组特征图,然后分成两个岔路,分别使用 CNN网络提取Part Confidence Maps 和 Part Affinity Fields;
  2. 得到这两个信息后,我们使用图论中的 Bipartite Matching(偶匹配) 求出Part Association,将同一个人的关节点连接起来,由于PAF自身的矢量性,使得生成的偶匹配很正确,最终合并为一个人的整体骨架;
  3. 最后基于PAFs求Multi-Person Parsing—>把Multi-person parsing问题转换成graphs问题—>Hungarian Algorithm(匈牙利算法)
    (匈牙利算法是部图匹配的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。)

卷积神经网络


网络分上下两个分支,分别预测关键点热力图和paf图。每个分支都有t个阶段,表示越来越精细,每个阶段都会将feature maps进行融合。其中ρ φ 表示网络。训练时,每个阶段都会产生loss,避免梯度消失;预测时只使用最后一层的输出。

  1. 亮点一:PAF-Part Affinity Fields
    PAF(Part Affinity Fields),部分区域亲和。它负责在图像域编码着四肢位置和方向的2D矢量。同时,使用CMP(Part Detection Confidence Maps)标记每一个关键点的置信度(就是常说的“热图”)。通过两个分支,联合学习关键点位置和他们之间的联系。同时推断这些自下而上的检测和关联的方式,利用贪婪分析算法(Greedy parsing Algorithm),能够对全局上下文进行足够的编码,获得高质量的结果,而只是消耗了一小部分计算成本。并行情况下基本达到实时,且耗时与图片中的人数无强关联。
  2. 亮点二:高鲁棒性
    CMU家的数据采集设备,一个封闭的大球,可以做到任意角度的人体数据采集。大球上面镶嵌了480 VGA cameras+31 HD cameras+10 Kinect Ⅱ Sensors+5 DLP Projectors. 并且全部实现了硬件同步。海量高质量的数据,使得仅仅基于2D图像就可以实现鲁棒性很好的人体姿态检测。
  3. 亮点三:landmarks 三元归一
    最开始人体骨骼关节点是行为分析动作识别的人做,人脸landmark提取是人脸识别或者美颜算法开发团队做,手部关节点是手势识别人机交互团队在做,属于不同的细分方向。CMU的团队人体骨骼关节点识别取得了不错的成果,于是把人脸人手都整合了进来,做成了一个统一的graph,效果也还可以。face alignment和pose alignment串起来了,而且根据人体头部的刚体属性及四肢的非刚体特性设计了一套基于caffe的点估计与扩散模型,并建立树状决策加速,据此再加之3D背景分割技术。

单人姿态估计(CPM的算法思想)

CPM的模型采用的大卷积核来获得大的感受野,这对于推断被遮挡的关节是很有效的。网络结构如下:

整个算法的流程是:

a) 首先对图像的所有出现的人进行回归,回归各个人的关节的点
b) 然后根据center map来去除掉对其他人的响应
c) 最后通过重复地对预测出来的heatmap进行refine得到最终的结果在进行refine的时候,需要引入中间层的loss,从而保证较深的网络仍然可以训练下去,不至于梯度弥散或者爆炸。通过coarse to fine来逐渐提升回归的准确度。

短板

耗显存

计算量很大,为了达到实时的目的,使用了高并行的策略。基于cuda加速,所以非常吃显存,基本劝退显存低于4G的机器了(GTX 980ti+)

特殊场景监测效果差

图像分辨率低、运动模糊、低亮度、检测目标密集、遮挡严重、不完整目标等,效果都不是很理想。

COCO模型数据集关键点



OpenPose 基本理念相关推荐

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

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

  2. 百度、谷歌理念对对碰

    尽管百度和谷歌哪个更好用是用户自己说了算,但它们对搜索引擎的理解和理念到底有多少异同?它们将带给用户一个怎样的搜索未来?           为了更好地看清这些问题,<第一财经日报>分别向 ...

  3. UI设计培训中的扁平化理念

    本文是为正在学习UI设计的同学们整理的一份资料,主要讲的是UI设计培训中的扁平化理念,扁平化的设计是抛弃一切装饰的设计,扁平化设计使得用户操作起来更加简洁.高效和舒适.简洁大方的交互界面设计自然能够引 ...

  4. Openpose+Tensorflow 这样实现人体姿态估计 | 代码干货

    作者 | 李秋键 出品 | AI科技大本营(ID:rgznai100) 人体姿态估计指从单个 RGB 图像中精确地估计出人体的位置以及检测骨骼关键点的位置.人体姿态估计是计算机视觉领域的研究热点,是诸 ...

  5. 实战:基于OpenPose的卡通人物可视化 | CSDN博文精选

    作者 | Wuzebiao2016 来源 | CSDN博客 前言 去年打算用些现成的Pose做些展示,因为以前有在OpenPose做些识别等开发工作,所以这次我就简单在OpenPose上把骨架用动画填 ...

  6. 基于 OpenCV 和 OpenPose 的棒球挥杆人体姿势估计

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 介绍 人体姿态估计是一个非常有趣的领域,如果我们能够将诸如棒球摆动 ...

  7. 新概念机房运维监控三大新理念

    为了改变传统机房环境监控的现状,需要引入三大新理念加以改善. 1.对设备内部进行监控 机房监控的目的在于保护机房内IT系统的正常.有效运行,在事故发生之前侦测出潜在危机,并通过各种方式将警情信息发送给 ...

  8. python语言的理念_python之禅--理念

    声明:本文仅供个人参考阅读学习使用,以下内容仅为个人见解,不同意见请评论区留言,谢谢合作! 大家好,我是领主 刚刚发表了,'Hello,Blog!',这个感觉很奇妙,有点停不下来了. 我想要把博客作为 ...

  9. 演讲实录 | DevOps五大理念及其落地实践

    5月29日,我在全球软件质量&效能大会QECon2021深圳站上进行了一场名为"DevOps五大理念及其落地实践"的演讲. 相信很多朋友已经看过了我参与翻译的新书<独 ...

  10. 基于OpenPose的人体姿态检测两个群众

    一.概述 OpenPose最开始由卡内基梅隆大学提出,其主要基于先后发表的几篇文章中提出的模型中进行实现: CVPR 2016: Convolutional Pose Machine(CPM) CVP ...

最新文章

  1. 如何在 Mutt 邮件客户端中使用密文密码
  2. matlab用regress方法求ln函数_高考数学48条秒杀型公式与方法,想要120分一定要掌握...
  3. An easy problem(hdu2055)
  4. KMP算法的nextval[] 即优化next[]
  5. 的函数原型_JS基础函数、对象和原型、原型链的关系
  6. Jenkins中切换devtoolset
  7. bzoj1095 [ZJOI2007]Hide 捉迷藏
  8. 计算机网络学习笔记(四)——差错控制、停等协议、回退N帧、选择性重传、滑动窗口、数据链路层HDLC、PPP协议、有限状态机
  9. win10计算机优化技巧,让Win10系统运行更流畅的优化技巧
  10. 浏览器存储,储存,Cookie,WebStorage,IndexedDB
  11. 点燃乌镇,三星已重返战场!国行版Galaxy S10最高售价10999元...
  12. Objcet_类的方法
  13. python图层合并_Python 2种方法实现叠加矩形框图层
  14. RS485最大通讯距离和RS485接口定义
  15. android 手机地图
  16. php数据库连接通常方式,php连接数据库的几种方式
  17. c,c++:获取当前时区偏移
  18. 高盛报告:人工智能、机器学习和数据将推动未来生产力的发展
  19. JS网页特效实例:让网页前进和后退
  20. python高德地图可视化_【可视化】python地图可视化_Folium

热门文章

  1. 高中低压电网光伏并网二次设计——分布式光伏电站并网市电通讯组网
  2. 电视盒子内存测试软件,电视盒子内存太小怎么办?当贝市场一招扩充内存
  3. 用C++写一个简单的表白小程序
  4. Advertising on Instagram 如何在Instagram上发布广告 Lynda课程中文字幕
  5. php网站渗透实战_PHP网站安全-漏洞渗透及解决方式—概述
  6. 有关笔记本电脑安装触控板驱动程序,对触控板进行相应的设置步骤
  7. 吉林大学线性代数知识点及解题方法
  8. JMeter基础 —脚本录制工具Badboy介绍
  9. android手势密码csdn,LeetCode 351. 安卓系统手势解锁(回溯)
  10. 通俗易懂讲解什么是Java分布式