@Author:Runsen

姿态估计是计算机视觉中的一项流行任务,比如真实的场景如何进行人体跌倒检测,如何对手语进行交流。

作为人工智能(AI)的一个领域,计算机视觉使机器能够以模仿人类视觉为目的来执行图像处理任务。

在传统的物体检测中,人们只会被感知为一个边界框(一个正方形)。通过执行姿势检测和姿势跟踪,计算机可以理解人体语言。然而,传统的姿势跟踪方法既不够快,也不够稳健,无法实现遮挡。

高性能实时姿势检测和跟踪将推动计算机视觉领域的一些最大趋势。例如,实时跟踪人体姿势将使计算机能够对人类行为进行更细粒度、更自然的理解。

这将对各个领域产生重大影响,例如在自动驾驶领域,通过实时人体姿势检测和跟踪,计算机能够更好地理解和预测行人行为——从而实现更自然的驾驶。

人体姿态估计旨在预测图像或视频中人体部位和关节的姿态。由于姿势运动通常由某些特定的人类动作驱动,因此了解人类的身体姿势对于动作识别至关重要。

二维人体姿态估计用于从图像和视频等视觉对象中估计人体关键点的二维位置或空间位置。传统的 2D 人体姿态估计方法对各个身体部位使用不同的手工特征提取技术。

基于现代深度学习的方法通过显着提高单人和多人姿势估计的性能取得了重大突破。一些流行的 2D 人体姿态估计方法包括 OpenPose、CPN、AlphaPose 和 HRNet。

在人体姿势估计中,人体部位的位置用于根据视觉输入数据构建人体表示(例如身体骨架姿势)。因此,人体建模是人体姿态估计的一个重要方面。它用于表示从视觉输入数据中提取的特征和关键点。通常,基于模型的方法用于描述和推断人体姿势并渲染 2D 或 3D 姿势。

大多数方法使用 N 关节刚性运动学模型,其中人体被表示为具有关节和四肢的实体,包含身体运动学结构和身体形状信息。

人体建模的模型分为三种:

  • Kinematic Model 运动学模型,也称为基于骨架的模型,用于 2D 姿态估计和 3D 姿态估计。这种灵活直观的人体模型包括一组关节位置和四肢方向来表示人体结构。因此,骨骼姿态估计模型用于捕捉不同身体部位之间的关系。然而,运动学模型在表示纹理或形状信息方面受到限制。

  • Planar Model 用于二维姿态估计的平面模型或基于轮廓的模型。平面模型用于表示人体的外观和形状。通常,身体部位由多个近似人体轮廓的矩形表示。一个流行的例子是活动形状模型(ASM),它使用主成分分析来捕获完整的人体图和轮廓变形。

  • Volumetric model 体积模型,用于 3D 姿态估计。存在多种流行的 3D 人体模型,用于基于深度学习的 3D 人体姿态估计以恢复 3D 人体网格。例如,著名的GHUM和 GHUML(ite) 是完全可训练的端到端深度学习管道,在超过 60,000 个人体配置的全身扫描高分辨率数据集上进行训练,以对统计的和铰接的 3D 人体形状进行建模和姿势。

    姿势估计通过找到人或物体的关键点来操作。以一个人为例,关键点是肘部、膝盖、手腕等关节。姿势估计有两种类型:多姿势和单姿势。单姿态估计用于估计给定场景中单个物体的姿态,而多姿态估计用于检测多个物体的姿态。

流行的MS COCO 数据集上的人体姿态估计可以检测 17 个不同的关键点(类)。每个关键点都用三个数字 (x,y,v) 进行注释,其中 x 和 y 标记坐标,v 表示关键点是否可见。

"nose", "left_eye", "right_eye", "left_ear", "right_ear", "left_shoulder", "right_shoulder", "left_elbow", "right_elbow", "left_wrist", "right_wrist", "left_hip", "right_hip", "left_knee", "right_knee", "left_ankle", "right_ankle"

基于深度学习的姿态估计方法

由于姿态估计是一种易于应用的计算机视觉技术,我们可以使用现有架构实现自定义姿态估计器。帮助您开始开发自定义姿态估计器的现有架构包括:

  • HRNet:高分辨率网络 (HRNet)是一种用于人体姿态估计的神经网络。它是一种用于图像处理问题的体系结构,用于查找我们所知道的关于图像中特定对象或人的关键点(关节)。这种架构相对于其他架构的一个优点是,大多数现有方法将低分辨率表示中的姿势的高分辨率表示与使用高低分辨率网络相匹配。代替这种偏差,神经网络在估计姿势时保持高分辨率表示。例如,这种 HRNet 架构有助于检测电视体育赛事中的人体姿势。

  • OpenPose是最流行的自下而上的多人人体姿势估计方法之一。该架构具有实时、多人姿势估计的特点。OpenPose 是一个开源的实时多人检测,在检测身体、脚、手和面部关键点方面具有很高的准确性。OpenPose 的一个优点是它是一个 API,它使用户可以灵活地从摄像头字段、网络摄像头等中选择源图像,更重要的是对于嵌入式系统应用程序(例如,与 CCTV 摄像头和系统的集成)。它支持不同的硬件架构,例如 CUDA GPU、OpenCL GPU 或 CPU-only 设备。

  • DeepCut是另一种流行的自下而上的多人人体姿势估计方法。DeepCut 用于检测多人的姿势。该模型的工作原理是检测图像中的人数,然后预测每个图像的关节位置。DeepCut 可以应用于多人/物体的视频或图像,例如足球、篮球等区域多人姿势估计。

  • AlphaPose 是一种流行的自上而下的姿势估计方法。在存在不准确的人体边界框的情况下检测姿势很有用。也就是说,它是通过最佳检测边界框估计人体姿势的最佳架构。AlphaPose 架构适用于检测图像或视频领域中的单人和多人姿势。

  • DeepPose是一个利用深度神经网络的人体姿势估计器。DeepPose 的深度神经网络 (DNN) 捕获所有关节,铰接一个池化层、一个卷积层和一个全连接层以形成这些层的一部分。

  • PoseNet 是一种基于 tensorflow.js 的姿态估计器架构,可在浏览器或移动设备等轻量级设备上运行。因此,PoseNet可以被用来估计任何一个单个姿态或多个姿态。

  • DensePose是一种姿态估计技术,旨在将 RGB 图像的所有人体像素映射到人体的 3D 表面。DensePose 也可用于单个和多个姿态估计问题。

深度学习和目标检测系列教程 22-300:关于人体姿态常见的估计方法相关推荐

  1. 深度学习和目标检测系列教程 1-300:什么是对象检测和常见的8 种基础目标检测算法

    @Author:Runsen 由于毕业入了CV的坑,在内卷的条件下,我只好把别人卷走. 对象检测 对象检测是一种计算机视觉技术,用于定位图像或视频中的对象实例.对象检测算法通常利用机器学习或深度学习来 ...

  2. 深度学习和目标检测系列教程 2-300:小试牛刀,使用 ImageAI 进行对象检测

    @Author:Runsen 对象检测是一种属于更广泛的计算机视觉领域的技术.它处理识别和跟踪图像和视频中存在的对象.目标检测有多种应用,如人脸检测.车辆检测.行人计数.自动驾驶汽车.安全系统等.Im ...

  3. 深度学习和目标检测系列教程 5-300:早期的目标检测RCNN架构

    @Author:Runsen 最早期的目标检测基于RCNN的算法,下面介绍RCNN的架构 RCNN架构 R-CNN 的目标是获取图像,并正确识别图片中的主要对象(通过边界框)的位置. 输入:图像: 输 ...

  4. 深度学习和目标检测系列教程 3-300:了解常见的目标检测的开源数据集

    @Author:Runsen 计算机视觉中具有挑战性的主题之一,对象检测,可帮助组织借助数字图片作为输入来理解和识别实时对象.大量的论文基于常见的目标检测的开源数据集而来,因此需要了解常见的目标检测的 ...

  5. 深度学习和目标检测系列教程 7-300:先进的目标检测Faster R-CNN架构

    @Author:Runsen Faster R-CNN 由于Fast R-CNN 过程中仍然存在一个瓶颈,即ROI Projection.众所周知,检测对象的第一步是在对象周围生成一组潜在的边界框.在 ...

  6. 深度学习和目标检测系列教程 15-300:在 Python 中使用 OpenCV 执行 YOLOv3 对象检测

    @Author:Runsen 上次讲了yolov3,这是使用yolov3的模型通过opencv的摄像头来执行YOLOv3 对象检测. 导入所需模块: import cv2 import numpy a ...

  7. 深度学习和目标检测系列教程 12-300:常见的opencv的APi和用法总结

    @Author:Runsen 由于CV需要熟练使用opencv,因此总结了opencv常见的APi和用法. OpenCV(opensourcecomputervision)于1999年正式推出,它来自 ...

  8. 深度学习和目标检测系列教程 9-300:TorchVision和Albumentation性能对比,如何使用Albumentation对图片数据做数据增强

    @Author:Runsen 上次对xml文件进行提取,使用到一个Albumentation模块.Albumentation模块是一个数据增强的工具,目标检测图像预处理通过使用"albume ...

  9. 深度学习和目标检测系列教程 6-300:目标检测Fast-RCNN架构

    @Author:Runsen 使用 R-CNN 进行对象检测存在一些缺点. R-CNN 消耗了大量的时间.存储和计算能力. R-CNN 有一个复杂的多阶段训练管道(3 阶段--对数损失.SVM 和 B ...

最新文章

  1. 如何使用Next.js创建动态的Rick and Morty Wiki Web App
  2. css菜单缓慢滑动_如何使用HTML,CSS和JavaScript构建滑动菜单栏
  3. 配置静态路由使用出站接口和下一跳IP的差别
  4. ionic2.0消息订阅监听机制
  5. C++知识点7——函数传参
  6. 10-计数排序C实现
  7. 【强化学习入门】梯度赌博机算法中,偏好函数更新:梯度上升公式是精确梯度上升的随机近似的证明
  8. Luogu P2664 树上游戏 dfs+树上统计
  9. [Jobdu] 题目1037:Powerful Calculator
  10. BZOJ2525: [Poi2011]Dynamite
  11. armv6、armv7、armv7s及arm64
  12. Axure谷歌浏览器Chrome扩展程序安装方法
  13. 3.飞机机票的价格受季节旺季、淡季的影响,头等舱与经济舱的价格也不同机票的原价为5000,4~10月为旺季, 旺季:头等舱打9折,经济舱打8折;淡季:头等舱打5折,经济舱打4折。请编写根据出行的月份和
  14. 详解clickhouse分区目录的合并过程
  15. JVM能够开启多少线程
  16. 嵌入式linux下复位声卡驱动
  17. MATLAB 把坐标轴(X Y轴)移到坐标原点
  18. 【0810神策数据笔试】java3道编程
  19. Excel如何批量替换文本
  20. win2016开启ntp_windows启用NTP服务

热门文章

  1. java泛型怎么用反射生成_Java 之 使用反射生成并操作对象
  2. 高德地图android4,Android高德之旅(4)我的位置
  3. Arduino--Mlx90614红外温度传感器(额温枪芯片)
  4. c语言怎么编辑错题本,嵌入式错题本
  5. python 仿真_Python SimPy 仿真系列 (2)
  6. python 100题_python3.0练习100题——001
  7. 知道 Hardtop 就够了?这九项必备技术你也必须掌握!
  8. 算法竞赛入门经典 写题笔记(第五章 图论算法与模型2)
  9. Direct3D 11 Tutorial 4: 3D Spaces_Direct3D 11 教程4:3D空间
  10. vtun 接收和发送数据流程图