龙空技术网

一文掌握姿态估计算法的前世今生:从传统方法到深度学习

AI明MING 170

前言:

现在小伙伴们对“算法的常用描述方法有”可能比较关注,我们都想要知道一些“算法的常用描述方法有”的相关知识。那么小编同时在网摘上网罗了一些对于“算法的常用描述方法有””的相关知识,希望咱们能喜欢,朋友们快快来了解一下吧!

阅读文章前麻烦您点下右上角的“关注”,方便及时看到每天的最新内容,在此十分感谢您的支持。

本文近3000字,建议阅读6分钟。(项目附地址)

什么是姿态估计?

姿态估计是一种计算机视觉技术,可以在图像和视频中精确定位人体的关键身体关节,以了解人体的姿势。

姿态估计研究从什么时候开始?

姿态估计的研究始于 20 世纪 60 年代末和 70 年代初计算机视觉领域的出现。最初,研究人员专注于图像理解、物体识别和形状分析等基础问题。

随着计算机视觉的发展,姿态估计成为一个独特的研究领域。

姿势估计因其在各个领域的广泛应用而引起了研究人员的兴趣。准确的姿态估计可以实现对象定位和跟踪,从而应用到各行各业。

姿势跟踪的示例(估计视频中的姿势并为跨帧的每个关键点分配唯一实例ID)

例如,在人机交互中,姿势估计允许计算机解析和响应人类手势,从而实现人与机器之间直观、自然的交互。

它还可用于运动和健身,帮助分析身体运动和姿势,以提高表现并防止受伤。

使用姿态估计来制作 3D 模型动画

此外,姿态估计通过捕捉和复制人体姿势有助于实现逼真的动画和游戏体验。

在医疗保健和康复领域,它有助于评估运动障碍、跟踪治疗过程中的进展以及设计个性化的治疗计划。

姿态估计方法演变

姿态估计技术发展时间表

一.传统计算机视觉方法(1990 年代-2000 年代)

传统的计算机视觉方法侧重于几何计算和基于特征的方法来估计物体或人类主体的姿势。

1.直接线性变换 (DLT) 算法

要使用DLT算法,首先,要明确真实世界中几个点的 3D 位置。例如,可以测量场景中某些对象或标记的坐标。

其次,需要知道这些点出现在相机拍摄的 2D 图像中的位置。因此,需要在图像上进行标记。

现在,DLT 算法采用这些已知的 3D-2D 对应关系并使用它们来进行姿态估计。它通过求解一组将 3D 世界点与其对应的 2D 图像点联系起来的数学方程来实现。

通过求解这些方程,DLT 算法可以计算出相机的位置和方向。估计相机的姿势后,可以使用此信息来了解其他对象或人在场景中的位置。

2.透视 n 点 (PnP) 算法

世界坐标系 (w) 中的点被投影到图像平面 [u,v] 中

PnP 算法与 DLT 算法非常相似。不同之处在于,PnP 算法是专门为使用最小的 2D-3D 对应集估计相机姿势而设计的。

它假设相机的内部参数(例如焦距)已知或可以单独估计。PnP 算法旨在通过解决非线性优化问题来确定相机的姿势,该问题找到 3D 点与其相应的 2D 投影之间的最佳匹配。

二.基于模型的方法(2000 年代-2010 年代)

虽然传统的计算机视觉方法提供了宝贵的见解并为后续进步铺平了道路,但它们也有局限性。

他们通常对噪声、异常值、遮挡很敏感,并且严重依赖已知的相机参数。因此,基于模型的方法开始受到关注。

基于模型的方法利用对象或身体部位的预定义模型来估计它们的姿势。

1.迭代最近点 (ICP) 算法

假设有两组点:一组表示对象或场景的 3D 坐标,另一组表示同一对象或场景从不同角度的 3D 坐标。

ICP 算法可帮助您对齐这两组点来估计姿势,其中包括对象或场景的位置和方向。除了姿态估计之外,该算法还常用于配准和建图。

使用 ICP 算法对齐点云的示例

ICP 算法在对齐 3D 点云(例如从激光扫描仪或深度传感器获得的点云)时特别有用。

它可用于各种应用,包括机器人、3D 重建和增强现实,以估计物体的姿态或对齐多个扫描以创建完整的 3D 模型。

2.主动形状模型 (ASM)

ASM模型迭代工作示例

ASM 是一种统计模型,结合形状和外观信息来估计图像中对象的姿势或形状。

为了估计姿势,ASM 算法首先对图像中对象的形状进行初始猜测。然后,它会调整形状以找到模型与图像中的对象之间的最佳匹配。

在此调整过程中,算法会考虑统计形状模型和图像信息。它通过分析图像的特征来迭代修改形状。

三.基于特征的方法(2010s)

基于特征的方法侧重于识别和匹配独特的图像特征,以估计物体或人类主体的姿势。利用先进的特征描述和匹配技术来实现准确且稳健的姿态估计。

1.加速稳健特征 (SURF)

SURF 是一种常用于计算机视觉任务(包括姿态估计)的特征提取算法。

虽然 SURF 本身并不是专门为姿态估计而设计的,但它可以用作姿态估计管道的一部分,用于特征检测和匹配。

它通常与其他技术(例如几何模型、优化算法或机器学习方法)相结合,以估计对象或人的精确姿势。

2.尺度不变特征变换 (SIFT)

使用 SIFT 进行实时姿态估计的示例

SIFT 本质上与 SURF 相似,但也有一些关键区别。SIFT 基于尺度空间极值检测关键点,并提供对尺度和旋转变化的鲁棒性。SURF 使用类似斑点的结构,并使用 Haar 小波响应来近似尺度和旋转不变性。

SIFT 计算量更大,但鲁棒性更强,而 SURF 速度更快,但鲁棒性稍差。两种算法都计算描述符来描述关键点并使用不同的匹配方法。

SIFT 和 SURF 之间的选择取决于特定应用的要求以及准确性和效率之间的权衡。

四.基于深度学习的方法(2010 年代至今)

深度学习方法利用深度神经网络的力量来直接学习图像数据和姿态估计之间的映射,从而实现高度准确和稳健的结果。

基于深度学习的姿态估计方法产生了变革性的影响,在各个领域提供了最先进的性能。

1.DeepPose

论文下载:

代码下载:(非官方)

DeepPose是开创性的基于深度学习的姿势估计方法之一。它引入了使用卷积神经网络(CNN)直接从输入图像中回归人类的关节位置。

DeepPose 在推出时是一个十分有影响力的模型,为后续基于深度学习的姿态估计研究铺平了道路,从而开发出更先进、更准确的模型。

2.OpenPose

论文下载:

代码下载:

OpenPose模型的整体流程

OpenPose引入了多人姿势估计框架,可以同时检测和定位图像或视频中的人体关键点。它采用多级 CNN 架构来估计图像或视频中的人体姿势。

凭借其准确性、实时功能和开源特性,OpenPose 已成为姿态估计领域的流行工具和基准,推动了进一步的研究和进步。

姿态估计最新研究

一.YOLOv7 Pose

论文下载:

代码下载:

YOLOv7 Pose 是一种单级多人关键点检测器。它立即识别图像中所有人物的关键点,然后将它们分组为单独的人物。

该模型在COCO 数据集上进行训练并使用PyTorch实现。YOLOv7 Pose提供模块化架构,允许用户根据自己的具体要求定制和优化模型。

人体17个关键点

该模型在 COCO 和 MPII 等基准测试中表现出了十分强大性能,表明其在目标检测和姿态估计任务中的有效性。

虽然它在处理各种案例时十分灵活,但它在估计复杂场景或特定姿势时仍需进一步改良。

二.YOLOv8 Pose

代码下载:

YOLOv8代表了YOLO系列的最新进展,融合了最先进的技术,可提供卓越的性能、灵活性和效率。YOLOv8 支持广泛的视觉 AI 任务,包括姿态估计。

可以使用以下代码快速尝试使用YOLOv8模型:

from ultralytics import yOLOimport cv2# 导入模型model = YOLO("yolov8n-pose.pt")source = "path/to/test.jpg"results = model(source)plotted_results = results[0].plot()# 保存图片并绘制结果cv2.imwrite("result.jpg", plotted_results)

多人检测也没问题,YOLOv8真的强

三.MediaPipe Pose

MediaPipe Pose是专门为单人姿势估计设计的框架。它将一些模型组合使用。第一个模型检测图像帧内是否存在人体,第二个模型定位人体上的关键点。

该框架分两个阶段运行,即检测和跟踪。检测阶段不会在每一帧上执行,从而使框架能够更快速、更高效地执行推理。

MediaPipe Pose 跟踪的 33 个关键点位置

常用的姿态估计数据集

广泛用于训练和评估姿态估计模型的常用数据集包括COCOMPII Human PoseHuman3.6M

这些数据集提供标准化的评估指标和注释,使研究人员和开发人员能够训练和验证姿态估计算法,以提高准确性和鲁棒性。

结论

多年来,在计算机视觉和机器学习进步的推动下,姿态估计取得了显著发展。从依赖手工制作的特征和图形模型的早期方法,该领域已经过渡到利用卷积神经网络(CNN)和大规模数据集的基于深度学习的方法

标签: #算法的常用描述方法有 #dlt算法