Mind+Python+Mediapipe项目——AI健身之跳绳
原文:Mind+Python+Mediapipe项目——AI健身之跳绳 - DF创客社区 - 分享创造的喜悦
| 【项目背景】 跳绳是一个很好的健身项目,为了获知所跳个数,有的跳绳上会有计数器。但这也只能跳完这后看到,能不能在跳的过程中就能看到,这样能让我们坚持跳的更多,更有趣味性。 【项目设计】 ![]() 通过Mind+Python模式下加载Google的开源Mediapipe人工智能算法库,识别人体姿态,来判断跳绳次数,并通过Pinpong库控制LED灯实时显示次数。 【测试程序】 测试程序中,使用人体姿态23,24两坐标点中点与标准点的比较来确认跳绳完成程度。 ![]()
复制代码【PoseModule.py】 上面程序用到的“PoseModule.py”文件中,在”poseDetector“类中增加了“midpoint”函数,用于求两点的中点坐标。
复制代码【测试网络视频】 【存在的问题】 测试结果令人比较满意,但这里存在这样两个问题:1、标准点point_sd这个坐标是以视频开始第一帧画面是站在原地未起跳为前提。 2、标准点纵坐标的判定区间(point_sd["y"]+5与 point_sd["y"]+15)是根据运行后的数据人为分析出来的,只对这一段视频有效,不具有通用性。 【解决问题思路】 1、在正式跳绳计数前,先试跳,通过数据分析出标准点、判定区间(防止数据在判定点抖动,出现错误计数)。在上个程序中判定点为:point_sd["y"]+10。 2、以手势控制屏幕上的虚拟按钮来分析初始化数据,并启动跳绳计数及终止计数。 【解决问题步骤】 第一步:实现手势控制屏幕按钮。 程序中使用了计时器,以防止连续触发问题。
复制代码 上面程序引用的“HandTrackingModule.py”文件。
复制代码第二步,分析数据,得到判定点纵坐标。思路是,坐标数据是上下波动,将数据中的波峰和波谷分别提取出来计算均值,然后取中值,和差值。中值为判定点,差值用来确定判定区域。波峰和波谷的判定采用的是两边数据与当前数据做差值看差值方向,如果方向相反,即为峰值。但这里就存在,Mediapipe识别准确度的问题,可能在上升或下降的过程中数据不平滑,出现数据波动。可能在分析时,出现误判,采集到错误的峰值。后期可采用滤波算法处理此问题。现在看效果,还不错。
复制代码最终得到“304 26”为“中值 差值” 【完整程序】 将以上分段程序进行整合,得到完整程序,并进行实地测试。(纯手工敲码)
复制代码 【计数炫灯】 使用Pinpong库,连接Micro:bit,控制LED灯随跳绳次数增加亮灯数。 |
相关文章:
Mind+Python+Mediapipe项目——AI健身之跳绳
原文:MindPythonMediapipe项目——AI健身之跳绳 - DF创客社区 - 分享创造的喜悦 【项目背景】跳绳是一个很好的健身项目,为了获知所跳个数,有的跳绳上会有计数器。但这也只能跳完这后看到,能不能在跳的过程中就能看到,…...
数据库概述
20世纪60年代后期,就出现了数据库技术。取得成就如下:造就了四位图灵奖得主发展成为以数据建模和DBMS核心技术为主,内容丰富的一门学科。带动了一个巨大的软件产业-DBMS产品及其相关工具和解决方案。四个基本概念数据数据是数据库中存储的基本…...
【已解决】解决IDEA的maven刷新依赖时出现Connot reconnect错误
前言 小编我将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注一下!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远!让我们在成长的道路上互相学习&#…...
动态链接库(.so)文件的变编译和引用、执行
动态链接库(.so)文件的变编译和引用 动态链接库:SO(Shared Object)是一种动态链接库,也被称为共享库。它是一种可被多个程序共享使用的二进制代码库,其中包含已编译的函数和代码。与静态链接库不同,动态链接…...
linux(centos8)文件解压命令
linux解压命令tar 解压命令常用解压命令1 [.tar] 文件 解压到当前文件夹2 [.tar.gz] 文件 解压到当前文件夹3 [.tar] 解压到指定文件夹 -C 必须是大写unzip 解压命令常用解压命令1 [.zip]解压到当前文件夹2 [.zip] 解压到指定文件夹2 [.zip] 解压到指定文件夹(强行覆…...
阅读笔记6——通道混洗
一、逐点卷积 当前先进的轻量化网络大都使用深度可分离卷积或组卷积,以降低网络的计算量,但这两种操作都无法改变特征图的通道数,因此需要使用11的卷积。总体来说,逐点的11卷积有如下两点特性: 可以促进通道之间的信息…...
上海亚商投顾:沪指失守3300点 卫星导航概念全天强势
上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。市场情绪指数早间低开后震荡回升,沪指盘中一度翻红,随后又再度走低,创业板指午后跌近1%。…...
疯狂的SOVA:Android银行木马“新标杆”
2021年8月初,一款针对Android银行APP的恶意软件出现在人们的视野中,ThreatFabric 安全研究人员首次发现了这一木马,在其C2服务器的登录面板,研究人员发现,攻击者将其称之为SOVA。 ** SO** ** V** ** A简介** 在俄语中…...
汽车零部件企业数字工厂管理系统建设方案
在汽车零部件制造领域,伴随工业信息化与机器人化,制造模式逐渐从 CAD/CAE/CAM 数字化设计及加工走向全产品周期虚拟现实的数字化工厂管理系统平台,实现虚拟现实设计制造,防范产品缺陷并预防设备故障,大幅提高生产效率。…...
【线程同步工具】Semaphore源码解析
控制对资源的一个或多个副本的并发访问 Java API 提供了一种信号量机制 Semaphore。 一个信号量就是一个计数器, 可用于保护对一个或多个共享资源的访问。 当一个线程要访问多个共享资源中的一个时,它首先需要获得一个信号量。如果信号量内部的计数器的…...
获取实时天气
一、用天气API(需要付费) 网址:https://www.tianqiapi.com/请求方式及url:请求方式:GET接口地址:https://tianqiapi.com/free/day请求示例https://www.tianqiapi.com/free/day?appid_____&appsecret__…...
【数据库】redis数据持久化
目录 数据持久化 一, RDB 1, 什么是RDB 2,持久化流程 3, 相关配置 案例演示: 4, 备份和恢复 1、备份 2、恢复 3,优势 4, 劣势 二,AOF 1,什么是A…...
前端编译、JIT编译、AOT编译
一、前端编译:java设计之初就是强调跨平台,通过javac将源文件编译成于平台无关的class文件, 它定义了执行 Java 程序所需的所有信息(许多Java"语法糖",是在这个阶段完成的,不依赖虚拟机ÿ…...
父子组件中,子组件调用父组件的方法
父子组件中,子组件调用父组件的方法 方法一:直接在子组件中通过this.$parent.event来调用父组件的方法 父组件 <template><p><child>父组件</child></p> </template> <script>import child from ~/compone…...
第七章.深度学习
第七章.深度学习 7.1 深度学习 深度学习是加深了层的深度神经网络。 1.加深层的好处 1).可以减少网络的参数数量 5*5的卷积运算示例: 重复两次3*3的卷积层示例: 图像说明: ①.一次5 * 5的卷积运算的区域可以由两次3 * 3的卷积运算抵消&a…...
小学生学Arduino---------点阵(三)动态的显示与清除
学习目标: 1、理解“整数值”的概念与使用 2、理解“N1”指令的意义 3、掌握“反复执行多次”指令的使用 4、掌握屏幕模块的清除功能指令 5、理解“反复执行”指令与“反复执行多次”指令的嵌套使用 6、搭建电路图 7、编写程序 效果: 整数包括…...
opencv图片处理
目录1 图片处理1.1 显示图片1.2 旋转图片1.3 合并图片1.4、Mat类1.4.1、像素的储存结构1.4.2、访问像素数据1.6、rgb转灰度图1.7、二值化1.8、对比度和亮度1.9、图片缩放1.9.1、resize临近点算法双线性内插值1.9.2、金字塔缩放1.10、图片叠加1 图片处理 1.1 显示图片 #includ…...
C++ Primer Plus 学习笔记(二)—— 复合类型
数组 当我们只是定义了数组,而没有对数组进行初始化时,那数组的值将是未定义的。 在对数组进行初始化时,如果只对数组的一部分进行初始化,编译器会将把其他元素自动设置为0。 #include <iostream>using namespace std;in…...
代码随想录算法训练营第七天 | 454.四数相加II 、 383. 赎金信、15. 三数之和、18. 四数之和 、总结
打卡第七天,还是哈希表。 今日任务 454.四数相加II383.赎金信15.三数之和18.四数之和总结 454.四数相加II 代码随想录 class Solution { public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, ve…...
apply函数族
apply函数族 apply函数族是R语言中帮助用户实现高效的向量化运算的一系列函数,包括apply,lapply,sapply,vapply等。 apply() apply函数以列或行为单位进行循环操作,可以处理matrix、array数据,返回一个向量或matrix。 apply(data,1/2,fuc…...
3分钟搞定!Windows上最轻量的APK安装神器全攻略
3分钟搞定!Windows上最轻量的APK安装神器全攻略 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 还在为Windows系统无法直接安装安卓应用而烦恼吗࿱…...
经过几天研究,初步实现了H7-TOOL自动扫描目标芯片AP寄存器,并选择指定寄存器操作,脱机下载,LUA, RTT等均支持
【问题由来】 一般芯片都有多个AP寄存器, TOOL要操作目标芯片的寄存器,外设等,需要选择指定的寄存器【问题解决】 经历几天研究,已经实现H7-TOOL自动扫描目标芯片AP寄存器,并选择指定寄存器操作 1、RTT操作效果,MDK下载…...
Java Map集合:键值对操作全解析
Hello,大家好呀,我是Yize!今天我们开始学习Map集合(双列集合),至于上次说的数据结构,我们后面在说!! 现在,我们开始: 目录 双列集合的特点及常用…...
FlutterBoost与其他混合方案对比:谁才是性能王者?
FlutterBoost与其他混合方案对比:谁才是性能王者? 【免费下载链接】flutter_boost FlutterBoost is a Flutter plugin which enables hybrid integration of Flutter for your existing native apps with minimum efforts 项目地址: https://gitcode.c…...
个人博客自动化:OpenClaw+Qwen3-32B从草稿到发布的完整流程
个人博客自动化:OpenClawQwen3-32B从草稿到发布的完整流程 1. 为什么需要自动化写作工作流 作为一个技术博主,我经常面临这样的困境:灵感来临时能快速产出内容,但后续的排版、配图、发布等琐碎流程却消耗了大量时间。直到发现Op…...
Qwen3-32B-Chat镜像部署教程:transformers pipeline batch_size参数调优
Qwen3-32B-Chat镜像部署教程:transformers pipeline batch_size参数调优 1. 环境准备与快速部署 本教程将指导您在RTX 4090D 24GB显存环境下部署Qwen3-32B-Chat镜像,并重点讲解如何优化transformers pipeline的batch_size参数以获得最佳推理性能。 1.…...
GME-Qwen2-VL-2B企业级应用:基于Dify构建低代码多模态AI智能体
GME-Qwen2-VL-2B企业级应用:基于Dify构建低代码多模态AI智能体 最近在帮几个朋友的公司做AI项目落地,发现一个挺有意思的现象:很多业务团队对多模态AI(就是能同时理解文字和图片的AI)的需求很旺盛,但一提到…...
毕业论文格式自动化:Paperxie 4000 + 院校模板,重构学术排版新效率
paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/aippthttps://www.paperxie.cn/format/typesettinghttps://www.paperxie.cn/format/typesetting 一、学术排版的效率革命:从手动 “磨格式” 到 AI “一键成稿” 在毕业论文的全流程中…...
MySQL存储过程实战:从创建到调用的完整指南(附常见问题排查)
MySQL存储过程实战:从创建到调用的完整指南(附常见问题排查) 在数据库开发中,存储过程就像是一把瑞士军刀——它不仅能将复杂的业务逻辑封装起来,还能显著提升应用程序的性能。对于MySQL开发者来说,掌握存储…...
LabVIEW Excel工具包:高效读写EXCEL模板,快速生成测试报告制作方案
LabVIEW Excel工具包快速读写EXCEL样式模板生成测试报告制作LabVIEW工程师最头疼的Excel报告生成终于有解了!最近项目里被要求每天生成格式统一的测试报告,手动操作Excel差点把我逼疯。直到发现LabVIEW自带的Excel工具包,真香警告来了——原来…...

