Python OpenCV – 姿势估计
2025年2月16日 08:44
什么是姿态估计?
姿势估计是一种计算机视觉技术,用于从图像中预测身体的构型 (POSE)。它之所以重要,是因为有大量的应用程序可以从技术中受益。
人体姿势估计定位身体关键点,以准确识别给定图像的个体的姿势。这些估计在 3D 或 2D 中执行。
人体姿态估计的主要过程包括两个基本步骤: i) 定位人体关节/关键点 ii) 将这些关节分组为有效的人体姿态配置
第一步,主要重点是找到人类每个关键点的位置。例如:头、肩、臂、手、膝、踝。第二步是将这些关节分组为有效的人体姿势配置,这决定了身体部位之间的成对项。
图 (b) 表示检测关键点,图 (a) 表示关键点的分组
1 什么 OpenCV 的 ?
OpenCV Python 是一个 Python 绑定库,旨在解决计算机视觉问题。它主要专注于图像处理、视频捕获和分析,包括人脸检测和对象检测等功能。
2 用途 python 中的 OpenCV :
OpenCV Python 只不过是与 Python 一起使用的原始 C++ 库的包装类。使用此功能,所有 OpenCV 数组结构都与 NumPy 数组相互转换。这使得它更容易与其他使用 NumPy 的库集成。例如,SciPy 和 Matplotlib 等库。
要了解有关 OpenCV 的更多信息,https://opencv.org/about/
3 您可以使用的数据集:
在数据集选择中,COCO 和 MPII 是最近情况下的默认选择。特别是,COCO 是一个著名的数据集,因为它具有非常宽的人体姿势和大量的图像。LSP 和 FLIC 数据集也与 COCO 和 MPII 一起使用。
COCO - Common Objects in Context
MPII Human Pose Dataset - Max Planck Institute for Informatics
Visual Geometry Group - University of Oxford
您可以使用此位置 提供的脚本下载模型权重文件。
4 OpenCV 中的人体姿态估计代码
在本节中,我们将了解如何在 OpenCV 中加载经过训练的模型并检查输出。为了简单起见,我们将讨论仅适用于单人姿势估计的代码。如果存在多个人,则这些输出可用于查找帧中每个人的姿势。我们将在以后的文章中介绍多人案例。
首先,从下面下载代码和模型文件。图像和视频输入有单独的文件。如果您在运行代码时遇到任何困难,请仔细阅读 README 文件。
5 第 1 步:下载模型权重
使用代码随附的 getModels.sh 文件将所有模型权重下载到相应的文件夹中。请注意,配置 proto 文件已存在于文件夹中。
• Python3 语言
sudo chmod a+x getModels.sh ./getModels.sh |
检查文件夹以确保已下载模型二进制文件(.caffemodel 文件)。如果您无法运行上述脚本,则可以单击此处下载 MPII 模型,单击此处 下载 COCO 模型。
6 第 2 步:加载网络
我们正在使用在 Caffe Deep Learning Framework 上训练的模型。Caffe 模型有 2 个文件 –
1. prototxt 文件,该文件指定了神经网络的架构 — 不同层的排列方式等。
2. caffemodel 文件,该文件存储已训练模型的权重
我们将使用这两个文件将网络加载到内存中。
• Python3 语言
# Specify the paths for the 2 files protoFile = "pose/mpi/pose_deploy_linevec_faster_4_stages.prototxt" weightsFile = "pose/mpi/pose_iter_160000.caffemodel" # Read the network into Memory net = cv2.dnn.readNetFromCaffe(protoFile, weightsFile) |
7 第 3 步:读取图像并准备网络输入
我们使用 OpenCV 读取的输入帧应该转换为输入 blob(如 Caffe),以便可以将其馈送到网络。这是使用 blobFromImage 函数完成的,该函数将图像从 OpenCV 格式转换为 Caffe blob 格式。
参数将在 blobFromImage 函数中提供。首先,我们将像素值标准化为 (0,1)。然后我们指定图像的尺寸。接下来,要减去的平均值,即 (0,0,0)。无需交换 R 和 B 通道,因为 OpenCV 和 Caffe 都使用 RGB 格式。
•
以下内容为付费内容,请购买后观看
工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP




















