源码下载地址
项目介绍
本项目的测试环境:win10,python3.7,mediapipe0.8.10,pycharm
功能:由于使用的是KNN算法而不是根据各个运动的特点计算骨骼之间的角度来判断动作是否完成,因此本项目可以直接计数引体向上、深蹲和俯卧撑这几种健身运动而几乎无需修改代码,只需要输入视频或调用摄像头时选择一下是哪个运动即可,非常滴好用。
各模块和文件介绍:
poseembedding.py是人体关键点归一化编码模块
poseclassifier.py是人体姿态分类模块,使用的算法是k-NN
resultsmooth.py是分类结果平滑模块,使用的是指数移动平均
counter.py是运动计数模块
visualizer.py是分类结果可视化模块
extracttrainingsetkeypoint.py是提取和处理训练集关键点模块,并将特征向量存储在csv文件中
trainingsetprocess.py是输入训练样本生成训练集以及训练集的检验校正的模块,里面说明了训练样本文件夹的要求
videoprocess.py是检测视频并计数动作的的模块(注意class_name参数的含义)
videocapture.py是调用摄像头实时检测并计数动作的模块(注意class_name参数的含义)
main.py是整个项目运行的入口程序
Roboto-Regular是visualizer.py中需要用到的字体文件
video-sample中的squat-sample.mp4和pushup-sample.mp4是样本视频,当然你也可以换成你自己做深蹲或俯卧撑的测试视频,在videoprocess.py中把video_path换成您的视频路径即可,需要注意的是本项目使用cv2处理视频帧,cv2要求路径不能有中文,并且路径应使用“\”。
视频输出在video-output文件夹里
fitness_poses_csvs_out文件夹里面的csv文件就是使用拍摄的训练样本提取出来的深蹲和俯卧撑的训练集文件,有了该文件后就可以直接运行本项目。当然,如果你想体验自己动手的快乐,可以自己拍摄训练样本并把它放到fitness_poses_images_in(存放样本图片的文件夹最好取这个名字省得去改代码)文件夹中,然后删掉fitness_poses_csvs_out文件夹中对应运动的两个csv文件,这两个csv文件丢失后程序会自动加载样本图片进行特征提
项目功能
界面预览
项目备注
1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!
2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。
3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。
下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。