基于opencv与mediapipe的民族舞舞蹈动作识别

简介: 基于opencv与mediapipe的民族舞舞蹈动作识别

需要项目的请关注、私信

基于opencv与mediapipe的民族舞舞蹈动作识别

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为例,如图所示:


目录
相关文章
|
4月前
|
计算机视觉 Python
实战| 手把手教你实现俯卧撑实时计数:OpenCV+MediaPipe
实战| 手把手教你实现俯卧撑实时计数:OpenCV+MediaPipe
|
机器学习/深度学习 编解码 固态存储
【机器视觉】Python+OpenCV+MediaPipe实时人流检测
MediaPipe 人脸检测是一种超快的人脸检测解决方案,带有 6 个地标和多人脸支持。它基于 BlazeFace,这是一种轻量级且性能良好的人脸检测器,专为移动 GPU 推理量身定制。检测器的超实时性能使其能够应用于任何需要准确的面部感兴趣区域作为其他任务特定模型输入的实时取景器体验。
724 0
【机器视觉】Python+OpenCV+MediaPipe实时人流检测
|
计算机视觉
【OpenCV学习】利用HandVu进行手部动作识别分析
作者:gnuhpc  出处:http://www.cnblogs.com/gnuhpc/ 程序的流程是: 1)先进行配置文件的读取和配置参数的载入 2)初始化摄像头或者指定的视频文件 3)显示屏显提示 4)设定采集图像大小 5)获取一帧 6)初始化要分析的图像大小 7)装载参数 8)开始识别 9)设置识别的覆盖区级别 10)设置同步/异步识别 11)设置鼠标事件的回调参数,若有鼠标事件确定区域大小 12)打开相关窗口,进入主处理循环,显示处理过的帧,并且时刻准备相应键盘事件。
814 0
|
6天前
|
计算机视觉
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
这篇文章详细介绍了OpenCV库中的图像二值化函数`cv2.threshold`,包括二值化的概念、常见的阈值类型、函数的参数说明以及通过代码实例展示了如何应用该函数进行图像二值化处理,并展示了运行结果。
60 0
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
|
1月前
|
算法 计算机视觉
opencv图像形态学
图像形态学是一种基于数学形态学的图像处理技术,它主要用于分析和修改图像的形状和结构。
38 4
|
24天前
|
存储 计算机视觉
Opencv的基本操作(一)图像的读取显示存储及几何图形的绘制
本文介绍了使用OpenCV进行图像读取、显示和存储的基本操作,以及如何绘制直线、圆形、矩形和文本等几何图形的方法。
Opencv的基本操作(一)图像的读取显示存储及几何图形的绘制
|
2月前
|
算法 计算机视觉 Python
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
该文章详细介绍了使用Python和OpenCV进行相机标定以获取畸变参数,并提供了修正图像畸变的全部代码,包括生成棋盘图、拍摄标定图像、标定过程和畸变矫正等步骤。
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
WK
|
2月前
|
编解码 计算机视觉 Python
如何在OpenCV中进行图像转换
在OpenCV中,图像转换涉及颜色空间变换、大小调整及类型转换等操作。常用函数如`cvtColor`可实现BGR到RGB、灰度图或HSV的转换;`resize`则用于调整图像分辨率。此外,通过`astype`或`convertScaleAbs`可改变图像数据类型。对于复杂的几何变换,如仿射或透视变换,则可利用`warpAffine`和`warpPerspective`函数实现。这些技术为图像处理提供了强大的工具。
WK
83 1
|
4月前
|
算法 计算机视觉
【Qt&OpenCV 图像的感兴趣区域ROI】
【Qt&OpenCV 图像的感兴趣区域ROI】
132 1