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

news/2024/7/21 6:12:45 标签: opencv, 计算机视觉, 图像处理, mediapipe

需要项目的请关注、私信

基于opencvmediapipe的民族舞舞蹈动作识别

  • 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为例,如图所示:
在这里插入图片描述
在这里插入图片描述


http://www.niftyadmin.cn/n/444351.html

相关文章

Linux|编译最新版的openssh-server-9.3的rpm包(一)

前言: openssh服务的重要性不需要在这里废话了,而面对各种系统漏洞服务漏洞,我们最好的应对手段就是升级了,因此,我们的服务器很可能有升级内核的需求,以及升级系统内的重要服务的需求,而作为与…

(十)异步-委托异步调用(4)

一、委托异步执行 当委托对象被调用时,它调用其调用列表中包含的方法。这是同步完成的。 如果委托对象在调用列表中只有一个方法(引用方法),它就可以异步执行这个方法。委托类有两个方法,叫作 BeginInvoke 和 EndInv…

Docker 基本管理整理

一 容器基础相关 为什么要使用容器 容器是什么? 容器其实就是一个进程,是将一整套应用程序所需运行的软件及其运行环境进行打包封装在一个容器里面,每个容器之间有自己独立的运行环境,相互之间互不干扰。 例如一个服务上运行一个…

Ubuntu中root用户和user用户的相互切换

Ubuntu是最近很流行的一款Linux系统,因为Ubuntu默认是不启动root用户,现在介绍如何进入root的方法。 (1)从user用户切换到root用户 不管是用图形模式登录Ubuntu,还是命令行模式登录,我们会发现缺省的用户是…

tiflash引擎的使用小总结

作者: sustyle 原文来源: https://tidb.net/blog/50baeeb8 1 背景 我们公司有一种特殊的数据分析场景,大数据部门会定期抽取业务数据进行分析然后T1更新报表。这个抽数任务经常会影响业务的正常访问。经过调研后发现tiflash可以解决这种场…

PHP+SQL公共课平时成绩查询系统(源代码+论文+答辩PPT)

众所周知,现代信息技术是现代教育技术的基础和核心,培养和创新型的人才必须依靠现代教育技术。从这一层意义上讲,我们说掌握一定的计算机应用技能已经成为国家未来的合格建设者的必备素质,所以现在在大学中对非计算机系的学生开设了计算机文化基础课,并且通过这门课的学习…

前端Vue分享菜单按钮弹框、微博分享、QQ分享、微信好友、朋友圈

前端Vue分享菜单按钮弹框、微博分享、QQ分享、微信好友、朋友圈 &#xff0c; 下载完整代码请访问uni-app插件市场址:https://ext.dcloud.net.cn/plugin?id13085 效果图如下&#xff1a; #### 使用方法 使用方法 <!-- 分享 ref: 设置一个唯一ref contentHeight&#xff…

AIGC提示(prompt)工程之开宗明义篇

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…