需要项目的请关注、私信
基于opencv与mediapipe的民族舞舞蹈动作识别
- 1、原理介绍
- 1.1 Opencv
- 1.2 Mediapipe
- 2、实验步骤
- 2.1 导入工具包
- 2.2 中文输入
- 2.4 建立姿态位置信息库
- 2.5 位置信息获取
- 2.6 姿态识别
- 3 实验结果与评价
1、原理介绍
1.1 Opencv
Opencv(Open Source Computer Vision Library)是一个基于开源发行的跨平台计算机视觉库,它实现了图像处理和计算机视觉方面的很多通用算法,已成为计算机视觉领域最有力的研究工具。在这里我们要区分两个概念:图像处理和计算机视觉的区别:图像处理侧重于“处理”图像–如增强,还原,去噪,分割等等;而计算机视觉重点在于使用计算机来模拟人的视觉,因此模拟才是计算机视觉领域的最终目标。Opencv主要用来读取视频,以及展示视频。
1.2 Mediapipe
Mediapipe是google的一个开源项目,可以提供开源的、跨平台的常用机器学习(machine learning)方案。Mediapipe实际上是一个集成的机器学习视觉算法的工具库,包含了人脸检测、人脸关键点、手势识别、头像分割和姿态识别等各种模型。可以获取人体33个关键点的坐标。本文将利用人体的相关特征坐标进行姿态的识别。
2、实验步骤
本次实验主要分为两个部分,分别为人体姿态检测以及界面设计。
2.1 导入工具包
如图所示,分别为进行页面设计的PyQt5工具包,包括QTWidgets、QtCore、QtGui。QtGui包含多种基本图形功能的类,包括但不限于:窗口集、事件处理、2D图形、基本的图像和界面、字体和文本类。QtCore包含核心的非GUI功能,此模块用于处理程序中涉及到的时间、文件、目录、数据类型、流、网址、MIME类型、进程或线程等对象。QtWidgets包含了一整套UI元素组件,用于建立符合系统风格的用户界面。还有用于进行姿态识别的opencv与Mediapipe。
2.2 中文输入
通过PIL工具构建可以在图片上进行中文打印的函数。
2.4 建立姿态位置信息库
创建绘图工具与工具自带的位置信息库。
读取视频,按帧读取,对每帧图像变换通道,并利用自带的位置信息库在图中进行特征点位置信息检测。
2.5 位置信息获取
获取位置特征信息位置坐标信息,包括左右肩、左右跨、左右膝盖、左右眼、左右手踝、左右胳膊肘以及左右脚踝等。
获取角度信息。
2.6 姿态识别
通过不同的角度信息以及各个位置点的特征信息进行不同动作的判断。并对实时状态进行绘制。
3 实验结果与评价
本次实验主要选取一支单人民族舞视频,对视频动作进行分解,识别其中的动作属于哪一种,由于视频中涉及多个动作,在实验中只选择10个典型的动作进行识别,具体的动作分类为下表所示。
其中每个动作的示例如图所示:
这里就举两个例子。
具体的基于界面的操作流程加展示界面如下所示:
首先运行class_win.py文件点击运行生成检测界面如图所示:
界面右上角两个按钮分别代表选择视频文件与运行检测,首先点击选择视频文件,打开文件夹选择合适的视频,点击确定,再点击运行,结果如图所示:
画面从左往右分别为原始视频画面,实时检测结果画面,以及信息统计画面。
实际的检测结果,以动作一和动作2为例,如图所示: