前言

OpenPose是基于卷积神经网络和监督学习并以caffe为框架写成的开源库,可以实现人的面部表情、躯干和四肢甚至手指的跟踪,不仅适用于单人也适用于多人,同时具有较好的鲁棒性。可以称是世界上第一个基于深度学习的实时多人二维姿态估计,是人机交互上的一个里程碑,为机器理解人提供了一个高质量的信息维度,其理论基础来自:OpenPose:Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields

一:OpenPose它可以在不同的平台上运行

包括Ubuntu、Windows、Mac OSX和嵌入式系统(如Nvidia Tegra TX2)。它还提供了对不同硬件的支持,如CUDA gpu、OpenCL gpu和CPUonly设备。用户可以在图像、视频、网络摄像头和IP摄像头流之间选择输入。它还可以选择是否显示结果或将其保存在磁盘上,启用或禁用每个检测器(身体、脚、脸和手),启用像素坐标归一化,控制使用多少gpu,跳过帧以更快地处理,等等。

二:OpenPose由三个不同的模块组成:

(1)身体+脚检测

(2)手检测

(3)人脸检测

它可以选择使用原来的身体模型训练COCO和MPII数据集。基于身体检测器的输出,可以从身体的某些部位,特别是耳朵、眼睛、鼻子和脖子,粗略估计面部边界盒建议。类似地,手边界框的建议是与手臂关键点生成的。

三:openpose所带来的贡献(改进方法):

1:证明PAF细化是最大化acc准确率的关键,而身体部分预测的细化不是最重要的。
2:增加了网络深度,但删除了身体部分的阶段,去除了人体部位置信度图的改进。
3:这种精细的网络提高了速度和准确分别为200%和7%。
4:其次提出了一个公开数据,脚和身体关键点训练保存的模型速度。
5:包含了与Mask的运行时R-CNN和ALpha-Pose,显示计算自下而上方法的优点。

四:OpenPose有两大亮点:

亮点1:PAF-Part Affinity Fields(本paper的核心贡献):

人体姿态检测,通常是top-down的思路,也就是先做行人检测,然后把每一个人分割出来,最后基于每一个独立个体,找出各自的手手脚脚(人体关键点)。这个办法有两个问题:

1.结果严重依赖第一步行人检测器的结果,如果人都没找到,就无从进行找手手脚脚这一步了。

2.计算时间和人数正相关,人越多越耗费时间。

OpenPose 使用了另一种思路,即bottom-up,先找出图中所有的手手脚脚,再用匹配的方法拼装成一个个人体骨架。这种办法有一个缺陷,就是没办法利用全局上下文的信息。

为了克服这个问题,本文想出了一个办法,就是PAF(Part Affinity Fields), 部分区域亲和。它负责在图像域编码着四肢位置和方向的2D矢量。同时,使用CMP(Part Detection Confidence Maps)标记每一个关键点的置信度(就是常说的“热图”)。通过两个分支,联合学习关键点位置和他们之间的联系。

同时推断这些自下而上的检测和关联的方式,利用贪婪分析算法(Greedy parsing Algorithm),能够对全局上下文进行足够的编码,获得高质量的结果,而只是消耗了一小部分计算成本。并行情况下基本达到实时,且耗时与图片中的人数无强关联。

PAF:这是一个向量场的集合,其中每一个向量场从属于图像中某一躯体部位,向量场中的每一个向量对应躯体部位区域每一个元素在其中的一个2D向量编码指向下一个关键关节的方向。

亮点2: 高鲁棒性

这是CMU的研究成果。很多人好奇,为啥CMU的模型鲁棒性好,精度高?我觉得这主要归功于数据集规模大,质量好。

海量高质量的数据,使得仅仅基于2D图像就可以实现鲁棒性很好的人体姿态检测。

这充分说明了,数据为王的时代,数据多就是硬道理

参考:OpenPose:实时多人2D姿态估计_一颗小树x的博客-CSDN博客_多人姿态估计

实时多人2D姿态估计相关推荐

  1. tensorflow 多人_使用TensorFlow2.x进行实时多人2D姿势估计

    tensorflow 多人 介绍 (Introduction) As described by Zhe Cao in his 2017 Paper, Realtime multi-person 2D ...

  2. Paperreading 之二 多人人体姿态估计COCO2017冠军—CPN(含TF和torch实现)

    版权声明:遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/baolinq/article/details/839934 ...

  3. 无需人脸检测,实时3维人脸姿态估计img2pose 2020

    提出了一种实时的6自由度3D人脸姿态估计方法,其不依赖于人脸检测和关键点对齐.我们观察到直接估计6自由度刚体变换是一个比在3D人脸对齐中广泛使用的关键点检测更简单的问题.基于此我们做出了一下几个贡献( ...

  4. 2D姿态估计regression-based之RLE损失函数

    参考:镜子,Indigo6 使用特定损失函数的前提是我们对标签的分布进行了某种假设,在这种假设的前提下通过极大似然法推出所有样本构成的极大似然公式,然后再使用凸优化的方法比如常见的梯度下降法进行求解. ...

  5. Human Pose Estimation姿态估计调研

    介绍 姿态估计的目标是在RGB图像或视频中描绘出人体的形状,这是一种多方面任务,其中包含了目标检测.姿态估计.分割等等.有些需要在非水平表面进行定位的应用可能也会用到姿态估计,例如图形.增强现实或者人 ...

  6. 【人体姿态估计2】Real-time Multi-person 2d pose estimation using part affinity fields_2017

    文章目录 1.Introduction 2.Method 2.1 Simultaneous Detection and Association 2.2 Confidence Maps for part ...

  7. 跳过人脸检测和关键点定位,Facebook等提出实时3D人脸姿态估计新方法

    本文转载自机器之心. 来自 Facebook AI 和美国圣母大学的研究者提出了一种 6 自由度的实时 3D 人脸姿态估计技术,可以不依赖人脸检测和人脸关键点定位独立运行. 人脸检测是给照片中的每个人 ...

  8. 实时人体姿态估计!Efficient-HRNet:更快!更强!!

    作者 | 小书童 编辑 | 集智书童 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心[姿态估计]技术交流群 许多新兴智能物联网应用对轻 ...

  9. 一文概览2D人体姿态估计

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 来自 | 知乎    作者 | 谢一宾 链接 | https:// ...

最新文章

  1. C#精髓【月儿原创】第一讲 使用垃圾回收器
  2. Compressor detection can only be called on some ……
  3. 规划以主机命名的网站集 (Windows SharePoint Services)
  4. python【蓝桥杯vip练习题库】ADV-9 递归倒置字符数组
  5. 第五天2017/04/06(下午2:动态链接库(DLL))
  6. MATLAB读取excel文件中的数据
  7. 35个非主流开源数据库
  8. Visual Studio 2015 RC中的ASP.NET新特性和问题修正
  9. [USACO13OPEN]Fuel Economy【贪心】
  10. Unity3D C#之IL2CPP Windows端隐藏任务栏图标并添加至托盘
  11. uniapp字体图标的使用
  12. java 模板生成PDF文件 复选框勾选
  13. Swift 检查版本更新 itunes
  14. xgb.cv进行交叉验证
  15. idea 社区版 web开发
  16. ker矩阵是什么意思_理解矩阵(二)
  17. java在gc正常工作的情况下_Java GC的工作原理
  18. 2022年个人Java面试总结
  19. cityengine快速创建城市模型
  20. 在线画图工具-chord diagram和弦图

热门文章

  1. 会员管理数字化解决方案(下)
  2. flutter_bloc使用及部分源码分析
  3. 组件化cocoapods仓库删除(填坑)
  4. 函数f(x)具有极限A的充分必要条件是f(x)=A+α,其中α是自变量同一变化过程中的无穷小量
  5. R语言epiDisplay包的kap函数计算Kappa统计量的值(总一致性、期望一致性)、对多个评分对象的结果进行一致性分析、评分的类别为多个类别、如果评分中包含缺失值则标准误及其相关统计量则无法计算
  6. Sql Server查看所有数据库名,表名,字段名(SQL语句)
  7. VMWare安装Linux操作系统找不到IP地址
  8. 实验一 HTML编程基础和Javascript编程基础
  9. AI模型工业部署:综述【常用的部署框架:TensorRT、Libtorch】【常见提速方法:模型结构、剪枝、蒸馏、量化训练、稀疏化】【常见部署流程:onnx2trt】【常见服务部署搭配】
  10. python中pprint模块详解——print()和pprint()两者的区别