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

news2024/9/24 5:32:56

需要项目的请关注、私信

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/658468.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android Studio实现知乎日报App

项目目录 一、项目概述二、开发环境三、运行演示 一、项目概述 本系统基于 MVP RxJava Retrofit进行设计和开发,通过 Retrofit 实现了无网缓存,基于 MVP 模式对 Activity 和 Fragment 封装了两个基类,同样适用于非 MVP 的实现。运用 Recyc…

termux中apache+php的安装

如果 ssl.so.3 not found 需要 apk update 更新一下 然后,pkg install php 完成php 8.2安装 使用命令开启 存储 权限 termux-setup-storage apt install phpmyadmin apt install php-apache apache2 配置文件位于 cd $PREFIX/etc/apache2/ cd /data/data/com.te…

【干货】Android系统定制基础篇:第四部分-Android二次构建

背景 有时我们需要使用同一套Android源码编译生成各种差异化产品固件,比如:A产品、B产品、C产品,各产品之间大部分功能是相同的,仅个别功能定义上有差别。 方法一 Android默认的做法是在源码 device 目录下增加A、B、C产品&…

三个领域的微调模型;Meta推出新的生成式AI模型Voicebox

🦉 AI新闻 🚀 Meta推出新的生成式AI模型Voicebox,可执行音频编辑、采样、风格化等语音生成任务 摘要:Meta继推出ImageBind之后,于今天再次推出了全新的生成式AI模型Voicebox。该模型帮助创作者执行音频编辑、采样和风…

2023年6月最新|大屏可视化配置

大屏可视化配置 运行环境:VScode 一、可视化适配 大屏下显示一般都是16:9尺寸 1920*1080 ,做适配也就是在这个比例的基础上进行的 方案一:打开VSCode终端,下载flexible 1、选中要运行的文件,右键–>【在集成终…

使用Apache ShardingSphere简答实现水平分表

1 简介 Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。 官方网站 https://shardingsphere.apache.org/document/current/cn/overview/2 创建…

【算法题刷题笔记】华为OD机试 - 农场施肥

样例一: 5 7 5 7 9 15 10>> 9样例二: 3 1 2 3 4>> -1解题思路 题目大概意思: 给你N个数, 还有一个数M, 让你求K, 进行M次减K操作, 令这N个数都小于等于0。 思路: 利用…

frp配置多端口内网穿透?frp多端口怎么配置?

FRP内网穿透应用场景:本地Web服务外网访问、本地开发微信、本地联调支付宝\微信支付、TCP/UDP端口转发 在本机开发好的网站想让客户测试不在需要上传到服务器上面,使用FRP内外网穿透轻松解决;微信开发也不需要在上传到服务器,使用…

拒绝服务攻击

目录 一、初始DOS攻击与防御 1.1 DOS攻击概念 1.2 DOS攻击原因 1.2.1 内因 1.2.2 外因 1.3 DOS攻击原理 1.4 DOS攻击方法 二、DOS常见攻击技术 2.1 SYN Flood 2.1.1 基本思想 2.1.2 方法 2.1.3 防御措施 2.2 ICMP Flood 2.2.1 Smurf Flood 2.2.2 Ping of Death …

【微信小程序开发】第 10 课 - WXML 模版语法 - 数据绑定

欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行。动静不失其时,其道光明。 目录 1、缘起 2、数据绑定 2.1、绑定的基本规则 2.2、Mustache 语法的格式 2.2.1动态绑定内容 2.2.2动态绑定属性 2.2.3三元运…

Qqis中采用栅格工具生成XYZ瓦片(目录)简介

目录 前言 一、Qgis的相关功能 1、数据准备 2、将两个xyz图源添加到图层 二、Qgis栅格工具生成 1、生成xyz图块工具在哪里 2、生成xyz图块怎么用 3、下载结果 4、Leaflet加载离线瓦块 总结 前言 在上一篇博客中,介绍了一种在Qgis中基于QMetaTiles插件进行xyz瓦…

Linux---环境变量、$符号、自行设置环境变量

1. 环境变量 环境变量是操作系统(Windows、Linux、Mac)在运行的时候,记录的一些关键性信息,用以辅 助系统运行。 在Linux系统中执行:env命令即可查看当前系统中记录的环境变量 环境变量是一种Key-Value型结构&…

chatgpt赋能python:Python如何选取CSV某几列数据

Python如何选取CSV某几列数据 在数据处理过程中,CSV是一种非常常见的数据文件类型。CSV文件中的数据由逗号分隔的值(Comma-Separated Values)组成。处理CSV数据的任务之一是从CSV文件中选择特定的列数据,以进行数据分析或处理。在…

shell脚本基础

目录 一、概述 二、shell (一)shell命令解释环境 (二)类型 (三)查看系统中支持的shell:cat /etc/shells (四)查看系统默认shell: echo $SHELL 三、变量 (一&…

HTMLCSS Day04 CSS盒模型

文章目录 1.盒子组成盒子属性( Box properties)marginborderpaddingwidth & height盒子一般指的是块元素,盒子是我们布局的重要机制。一个盒子应该由外边距、边框、内边距、内容组成。 - width & height- 边框属性1.什么是边框?2.边…

TiDB Contributor 资料汇总

作者: Billmay表妹 原文来源: https://tidb.net/blog/cf95cdb7 开源社区建设 TiDB 社区是由 TiDB 生态中的开发者、用户、合作伙伴一起建立的分享、学习平台。TiDB 线上社区汇聚了 29149 位 TiDB 资深用户(注册用户数)&#x…

将一个一维数组前段和后端的0元素去除的numpy.trim_zeros()方法

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 除去一维数组第一个非零元素之前的零 除去一维数组最后一个非零元素之后的零 numpy.trim_zeros() 选择题 关于以下代码说法错误的一项是? import numpy as np a np.array([0,0,1,0,2,0,0])…

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

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

记一次fastjson事件应急响应

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 事件背景介绍02 事件分析过程03 事件分析结果04 安全加固建议 01 事件背景介绍 某内部应急演练中&#xff0c;安全部门收到通知&#xff0c;称公司内部资产被入侵&#xff0c;且可能已经开始内网横…

YOLO V2原理总结

yolo v2在yolo v1的基础上添加或更换了一些内容&#xff0c;一定程度上结局了yolo v1的一些问题。 ✨1 概括 做出的改变有8个&#xff1a; 添加Batch Normalization层高分辨率主干网络anchor box机制全卷积网络结构新的主干网络K-means聚类先验框使用更高分辨率特征多尺度训练…