version: 20220808
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中需要用到的字体文件
sample.mp4是样本视频,当然你也可以换成你自己做深蹲的测试视频,在videoprocess.py中把video_path换成您的视频路径即可,需要注意的是本项目使用cv2处理视频帧,cv2要求路径不能有中文。
fitness_poses_csvs_out文件夹里面的down.csv和up.csv就是使用作者自己拍摄的训练样本提取出来的仰卧起坐训练集文件,有了该文件后就可以直接运行本项目。
- 修改动作需要对应修改videocapture.py和videoprocess.py中对应的动作名。
- 训练集数据为fitness_poses_images_in文件夹,分为up(坐起来)和down(躺下)两个动作指标。
- 仰卧起坐的数据文件储存在fitness_poses_csvs_out文件夹中的csv文件中。
- 运行前:
pip install mediapipe
pip install opencv-python
(如果有问题还原成较低版本即可)