当前位置: 首页 > news >正文

健身动作AI识别,仰卧起坐计数(含UI界面)

用Python和Mediapipe打造,让你的运动效果一目了然!
【技术揭秘】



利用Mediapipe的人体姿态估计,实时捕捉关键点,精确识别动作。
每一帧的关键点坐标和角度都被详细记录,为动作分析提供数据支持。
支持自定义动作训练,让AI更懂你的运动习惯。
【健身动作】

俯卧撑、引体向上、深蹲等常见健身动作,AI都能准确计数,帮你记录每一次进步。
界面友好,操作简单,让健身更加科学高效。
️【自定义功能】

可以根据自己的需求,训练或自定义动作,让AI成为你的私人健身教练。

opencv-python, mediapipe(用于人体姿态估计), 和 tkinter(用于GUI)

安装必要的库:

import cv2
import mediapipe as mp
import tkinter as tk
from PIL import Image, ImageTk# 初始化Mediapipe的Pose检测
mp_drawing = mp.solutions.drawing_utils
mp_pose = mp.solutions.pose
pose = mp_pose.Pose(min_detection_confidence=0.5, min_tracking_confidence=0.5)# 定义一个函数来检测仰卧起坐
def detect_sit_up(frame):image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)image.flags.writeable = Falseresults = pose.process(image)image.flags.writeable = Trueimage = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)if results.pose_landmarks:# 获取关键点landmarks = results.pose_landmarks.landmarkhip = landmarks[mp_pose.PoseLandmark.LEFT_HIP].yknee = landmarks[mp_pose.PoseLandmark.LEFT_KNEE].yankle = landmarks[mp_pose.PoseLandmark.LEFT_ANKLE].y# 判断是否完成一次仰卧起坐if hip < knee and hip < ankle:return Truereturn False# 定义一个函数来更新UI中的计数器
def update_counter(count):count_label.config(text=f"Count: {count}")# 主程序
def main():global rootcap = cv2.VideoCapture(0)sit_up_count = 0while True:ret, frame = cap.read()if not ret:break# 检测仰卧起坐is_sit_up = detect_sit_up(frame)# 如果检测到完成一次仰卧起坐,则增加计数if is_sit_up:sit_up_count += 1update_counter(sit_up_count)# 显示视频帧frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)img = Image.fromarray(frame)img_tk = ImageTk.PhotoImage(image=img)video_label.imgtk = img_tkvideo_label.configure(image=img_tk)root.update_idletasks()root.update()# UI界面
root = tk.Tk()
root.title("Sit-Up Counter")video_label = tk.Label(root)
video_label.pack()count_label = tk.Label(root, text="Count: 0")
count_label.pack()main()

此外,为了使代码运行,你需要确保你的环境中安装了所有必需的库,并且摄像头可以正常工作。

相关文章:

健身动作AI识别,仰卧起坐计数(含UI界面)

用Python和Mediapipe打造&#xff0c;让你的运动效果一目了然&#xff01; 【技术揭秘】 利用Mediapipe的人体姿态估计&#xff0c;实时捕捉关键点&#xff0c;精确识别动作。 每一帧的关键点坐标和角度都被详细记录&#xff0c;为动作分析提供数据支持。 支持自定义动作训练&a…...

GitHub开源金融系统:Actual

Actual&#xff1a;电子金融&#xff0c;本地优先&#xff0c;自由开源- 精选真开源&#xff0c;释放新价值。 概览 Actual的创新之处在于其对个人财务管理的全面考虑&#xff0c;它不仅仅是一个简单的记账工具&#xff0c;而是一个综合性的理财解决方案。它的本地优先设计意味…...

【学习笔记】Day 7

一、进度概述 1、DL-FWI基础入门培训笔记 2、inversionnet_train 试运行——未成功 二、详情 1、InversionNet: 深度学习实现的反演 InversionNet构建了一个具有编码器-解码器结构的卷积神经网络&#xff0c;以模拟地震数据与地下速度结构的对应关系。 &#xff08;一…...

网络中特殊的 IP 地址

特殊网络 IP 127.0.0.1 127.0.0.1 是本机回送地址&#xff0c;发送到 127.0.0.1 的数据或者从 127.0.0.1 返回的数据只会在本机进行传输, 而不进行外部网络传输。 主要有以下两个作用&#xff1a; 测试本机网络 当我们可以 ping 通 127.0.0.1 的时候, 则说明本机的网卡以及 tc…...

ASP 表单处理入门指南

ASP 表单处理入门指南 简介 ASP(Active Server Pages)是一种由微软开发的服务器端脚本环境,用于动态生成交互性网页。它允许开发者结合HTML、VBScript或JScript脚本语言来创建和运行动态网页或Web应用程序。本文将重点介绍如何使用ASP来处理表单数据,包括表单的创建、数据…...

极米RS10Plus性价比高吗?7款4-6K价位投影仪测评哪款最好

通常家庭想买个投影仪都会选择4-6K这个价位段的投影仪&#xff0c;3K以下的投影配置太低&#xff0c;6K以上的价格略高&#xff0c;4-6K价位段的中高端投影仪正好满足大部分家庭的使用需求。正好极米投影在8月份上新了一款Plus版本的长焦投影&#xff1a;极米RS10Plus&#xff…...

RocketMQ怎么对文件进行读写的?

RocketMQ 对文件的读写主要依赖于其底层的存储机制&#xff0c;核心组件是 CommitLog 和 ConsumeQueue&#xff0c;并且通过 MappedFile 类来进行高效的文件操作。以下是 RocketMQ 文件读写的详细介绍&#xff1a; 1. CommitLog CommitLog 是 RocketMQ 的核心存储文件&#x…...

智慧宠物护理:智能听诊器引领健康监测新潮流

在宠物健康科技的浪潮中&#xff0c;智能听诊器的诞生标志着宠物健康管理迈向了智能化的新纪元。广州坎普利智能信息科技有限公司的创新产品&#xff0c;正为宠物主人和他们的毛茸茸伙伴带来前所未有的关怀体验。 创新特点 这款智能听诊器&#xff0c;以其前沿科技和人性化设…...

SRE工程师第2天:我只要截图功能 而不是打开微信

大家好&#xff0c;我是watchpoints 别想太多&#xff0c;只管去提问,所有问题&#xff0c;都会有答案 watchpoints是我github用户名 &#xff0c; 也是我的wechat 用户名&#xff0c;如果我有讲不明白 欢迎提问 什么是SRE&#xff08;Site Reliability Engineer&#xff09; 和…...

【RunnerGo】离线安装成功版本

目录 一、下载 二、解压安装包 三、修改安装配置 3.1 编辑修改安装参数&#xff08;我没有改&#xff0c;默认安装即可&#xff09; 3.2 安装目录结构说明 四、执行安装 五、检查服务并使用 六、访问 前言&#xff1a;最近在调研一个新工具&#xff0c;发现RunnerGo&…...

AI 手机的技术展望

某某领导问到我&#xff0c;AI手机这个产业发展如何&#xff1f;对于&#xff0c;地方科技园区&#xff0c;应该如何发展相关产业&#xff1f;我一时还真说不上来&#xff0c;于是&#xff0c;查了一下资料&#xff0c;大概应对了一下。 一&#xff1a;AI手机的定义 首先&…...

实战 Springboot2 集成Redis 哨兵模式、集群模式、缓存管理、Lettuce拓扑刷新

redis搭建集群模式、Cluster模式&#xff08;6节点&#xff0c;3主3从集群模式&#xff0c;添加删除节点&#xff09;_redis cluster节点带数据增减-CSDN博客 Linux部署Redis哨兵集群 一主两从三哨兵&#xff08;这里使用Redis6&#xff0c;其它版本类似&#xff09;_linux red…...

MYSQL--binlog和redo log

前言 MySQL日志 MySQL日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。其中比较重要的就是二进制日志binlog&#xff08;归档日志&#xff09;、事务日志redo log&#xff08;重做日志&#xff09;和undo log&#xff08;回滚日志&#xff09;。 这篇…...

R语言医疗数据分析笔记

分组因子又是什么意思&#xff0c;分组因子和数组的区别是什么 举个实际的例子 分组因子 分组因子是分类变量&#xff0c;用于将数据分成不同组以便于比较或分析。例如&#xff0c;在一项研究中&#xff0c;研究对象的性别&#xff08;男性和女性&#xff09;可以视为一个分组…...

SpringBoot使用Jackson-XML裁剪多余的根节点

相关博客&#xff1a;《SpringBoot集成WebService(wsdl)》 比如我们有以下入参 我们只需要MedicalCardInfo这个根节点&#xff0c;其余都不要。如何处理&#xff1f; <A><B><Sender>Aa</Sender><MsgType>Bb</MsgType><MsgVersion>…...

vue路由学习

1、基本了解 &#xff08;1&#xff09; &#xff08;2&#xff09; &#xff08;3&#xff09;在创建vue项目时&#xff0c;就已经勾选了vue-router 2、 &#xff08;0&#xff09;自己手写了一个新的组件文件(部门管理)&#xff08;DeptView.vue&#xff09; &#xff08;1&a…...

Kubernetes基于helm部署Kafka_Kraft集群并取消SASL认证且开启数据持久化

注&#xff1a;本文档部署Kafka时&#xff0c;取消了默认的SASL认证的相关配置&#xff0c;并开启了数据持久化。 一、添加并更新Helm仓库 helm repo add bitnami https://charts.bitnami.com/bitnami helm repo update bitnami二、下载并解压kafka的Chart helm pull bitna…...

kotlin -- Flow和Rxjava 对比

引言 我们先说说&#xff0c;关键词 响应式编程&#xff0c;数据流&#xff0c;观察者模式。 观察者模式 一个button setOnClickListener 就是观察者模式。 button是被观察者&#xff0c;它产生一个事件(点击)&#xff0c;观察者OnClickListener接收到&#xff0c;做出相…...

【JVM篇】自动内存管理——HotSpot虚拟机对象探秘

目录 前言 一、对象的创建 二、对象的内存布局 三、对象的访问定位 总结 前言 相关文章&#xff1a;【JVM篇】自动内存管理——运行时数据区-CSDN博客 介绍完Java虚拟机的运行时数据区域之后&#xff0c;我们大致明白了Java虚拟机内存模型的概况&#xff0c;但可能会好奇其…...

代谢组数据分析(十七):基于structToolbox代谢组分析流程讲解

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 介绍 structToolbox 是一个广泛使用的工具箱,专门用于代谢组学和其他组学数据的分析。它提供了一系列的数据预处理、统计分析和机器学习方法,特别强调统计和机器学习的重要性。这个工具箱允许…...

如何实现 SEO 优化与广告投放的协同效果

如何实现 SEO 优化与广告投放的协同效果 在当今竞争激烈的互联网环境中&#xff0c;实现 SEO 优化与广告投放的协同效果已经成为提升网站流量和销售转化的关键。SEO&#xff08;搜索引擎优化&#xff09;和广告投放虽然各自有各自的目标和优势&#xff0c;但它们的结合能够带来…...

OpenClaw配置文件详解:Qwen3.5-9B高级参数调优手册

OpenClaw配置文件详解&#xff1a;Qwen3.5-9B高级参数调优手册 1. 为什么需要手动调优OpenClaw配置 上周我尝试用OpenClaw自动处理一批技术文档的归档工作&#xff0c;发现同样的任务在不同时段完成速度差异巨大。有时30分钟就能搞定&#xff0c;有时却要卡顿近2小时。这促使…...

【C++27范围库前瞻实战指南】:20年标准库专家亲授5大扩展接口的工业级应用模式

第一章&#xff1a;C27范围库扩展全景概览C27 将对标准范围库&#xff08;Ranges&#xff09;进行实质性增强&#xff0c;聚焦于提升表达力、运行时效率与编译期元编程能力。核心演进方向包括惰性求值语义强化、范围适配器的定制化组合机制、对异步与并行范围操作的原生支持&am…...

无失效数据的产品可靠性评估案例

当所有寿命相关的试验全部通过且无失效发生时如何评价产品可靠性作者&#xff1a;Julius王政 关键点o 一个产品可能有几项与寿命相关的可靠性验证试验。例如&#xff0c;车辆中使用的电子控制模块&#xff08;我们称之为 ECU&#xff09;通常有以下四项与寿命相关的试…...

94吨黄金“上链搬家”,手续费仅0.0016%!黄金RWA正在改写跨境资产流动

传统金融数百万美元的物流成本vs区块链毫厘之间的链上费用&#xff0c;资产数字化的未来已来。近日&#xff0c;Tether首席执行官Paolo Ardoino在X平台发文称&#xff1a;过去6个月内&#xff0c;共有价值约94吨黄金的代币化黄金XAUT在链上完成转移&#xff0c;合计手续费仅约0…...

嵌入式开发中的模块化编程与驱动分离实践

1. 模块化编程与驱动分离的核心价值在嵌入式开发领域&#xff0c;模块化编程早已不是新鲜概念。我第一次真正体会到它的威力是在2016年参与某新能源汽车BMS&#xff08;电池管理系统&#xff09;开发时。当时团队里有8个工程师同时开发不同功能模块&#xff0c;如果没有严格的模…...

解锁B站评论区成分检测器核心价值:从入门到精通的实战指南

解锁B站评论区成分检测器核心价值&#xff1a;从入门到精通的实战指南 【免费下载链接】bilibili-comment-checker B站评论区自动标注成分&#xff0c;支持动态和关注识别以及手动输入 UID 识别 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-comment-checker …...

Go Channel 缓冲区机制分析

Go Channel 缓冲区机制分析 在Go语言的并发编程中&#xff0c;Channel是协程间通信的核心机制之一。其缓冲区机制的设计直接影响程序的性能和稳定性。理解缓冲区的运作原理&#xff0c;能够帮助开发者更高效地利用Channel&#xff0c;避免死锁或资源浪费。本文将从缓冲区的本质…...

04_RAGFlow之知识图谱与Text2SQL

RAGFlow之知识图谱与Text2SQL&#xff1a;构建智能检索的双引擎 知识体系结构 RAGFlow技术栈 │ ├── 知识图谱层 │ ├── 实体识别与关系提取&#xff08;NER Relation Extraction&#xff09; │ ├── 图谱查询与推理&#xff08;Graph Query & Reasoning&a…...

别再只用Chat了!深度挖掘Cursor的‘规则’与‘上下文’功能,打造你的专属AI编程助手

解锁Cursor的隐藏力量&#xff1a;从代码助手到项目级智能架构师 在AI编程工具爆发的时代&#xff0c;大多数开发者仅仅停留在基础对话和代码补全的层面。但Cursor的真正价值远不止于此——它能够成为你项目架构的智能协作者、团队规范的自动化执行者&#xff0c;以及复杂工程问…...