Python玩人工智能:你的俯卧撑做对了吗?

本文介绍了如何使用Python3.8.x和PyCharm进行俯卧撑姿势的识别项目。通过创建虚拟环境,安装opencv-python、mediapipe、numpy和pyautogui等工具包,编写poseutil.py和pushup.py模块,实现对人体姿势的识别,计算关键关节角度以判断俯卧撑动作的准确性。
摘要由CSDN通过智能技术生成

我们已经有了《Python玩人工智能:你能做几个引体向上?》《Python玩人工智能:你的仰卧起坐达标了吗?》,今天就来玩俯卧撑啦!

在这里插入图片描述

1. 准备工作

1.1 安装Python3.8.x

1.2 安装PyCharm社区版

1.3 创建项目

1.4 安装项目使用工具包

1.1 下载安装Python3.8.x版本

首先我们的电脑上要安装Python3.8.x。Python 3.8.x : https://www.python.org/downloads/

在这里插入图片描述

1.2 下载安装PyCharm社区版

PyCharm: https://www.jetbrains.com/pycharm/download/ 当然你也可以使用自己喜欢的IDE。

在这里插入图片描述

1.3 创建一个Python项目

安装好Python和PyCharm之后,我们可以启动PyCharm,创建一个新的Python项目。选择项目的存储位置,创建项目时,可以让PyCharm帮忙创建一个虚拟环境(virtualenv),虚拟环境可以理解为这个项目专属的编程环境,不会影响其他的项目。

在这里插入图片描述

1.4 安装项目所用的工具包

项目创建好之后,我们打开PyCharm的Terminal窗口,在这里我们可以输入以下命令来安装这个项目所需要的工具包:opencv-python mediapipe numpy pyautogui。下面的命令会从网络上下载工具包并安装,如果你看到最后有“Successfully installed…”这样的英文,表示安装成功了。

pip install opencv-python mediapipe numpy

也可以点开PyCharm的设置,看到项目的Python环境中,是否有以上的工具包,如果有就表示安装成功了。

在这里插入图片描述

2. 编写程序

2.1 创建poseutil.py模块

2.2 编写pushup.py

2.3 测试运行

2.1 创建poseutil.py模块

创建一个新的Python文件,取名为poseutil.py,这是我们创建的姿势识别的模块,在这个模块中有一个PoseDetector的姿势识别器类,使用它可以识别人体姿势、获取人体姿势数据以及计算人体姿势相关点的角度。

import cv2
import mediapipe as mp
import math

class PoseDetector():
    '''
    人体姿势检测类
    '''

    def __init__(self,
                 static_image_mode=False,
                 upper_body_only=False,
                 smooth_landmarks=True,
                 min_detection_confidence=0.5,
                 min_tracking_confidence=0.5):
        '''
        初始化
        :param static_image_mode: 是否是静态图片,默认为否
        :param upper_body_only: 是否是上半身,默认为否
        :param smooth_landmarks: 设置为True减少抖动
        :param min_detection_confidence:人员检测模型的最小置信度值,默认为0.5
        :param min_tracking_confidence:姿势可信标记的最小置信度值,默认为0.5
        '''
        self.static_image_mode = static_image_mode
        self.upper_body_only = upper_body_only
        self.smooth_landmarks = smooth_landmarks
        self.min_detection_confidence = min_detection_confidence
        self.min_tracking_confidence = min_tracking_confidence
        # 创建一个Pose对象用于检测人体姿势
        self.pose = mp.solutions.pose.Pose(self.static_image_mode, self.upper_body_only, self.smooth_landmarks,
                                           self.min_detection_confidence, self.min_tracking_confidence)

    def find_pose(self, img, draw=True):
        '''
        检测姿势方法
        :param img: 一帧图像
        :param draw: 是否画出人体姿势节点和连接图
        :return: 处理过的图像
        '''
        imgRGB =
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值