作者:李筱语
指导老师:王立奇 英特尔创新大使

跳绳是一项广受欢迎的运动项目,因其简单易行而备受学生和运动爱好者青睐。然而,在实际运动中,人工计数容易出现误差,影响比赛和训练效果。本文提出了一种基于LabVIEW和YOLOv8-Pose的跳绳计数装置,利用深度学习的姿态检测能力和LabVIEW的实时处理功能,实现跳绳动作的精准识别与计数。本装置具有操作简单、检测精准、实时性强等优点,适用于学校、体育馆及家庭训练场景。

1. 引言

随着人工智能技术的发展,计算机视觉在体育领域的应用日益广泛。传统的跳绳计数方法主要依赖人工记录,存在效率低、误差大的问题。近年来,基于机器视觉的自动计数方法逐渐受到关注,其中人体姿态识别技术为跳绳计数提供了全新的解决方案。

2. 系统设计

2.1  硬件设计

本装置的硬件包括:

  • 摄像头:用于采集跳绳者的视频图像,支持USB接口的普通网络摄像头或工业相机。摄像头的采样速率建议高于30FPS(每秒30帧)。

Image

  • AIPC:搭载GPU的台式机或笔记本电脑,用于运行YOLOv8-Pose模型。

Image

2.2 软件模块

  • YOLOv8-Pose模型:基于深度学习的开源模型,能够精准识别人体关节点位置。模型通过训练,能够检测跳绳者的肢体动作。

    Image

  • LabVIEW:用于构建图形化界面和处理逻辑,包括摄像头采集、处理、计数及结果显示。

Image

Image

  • OpenVINO™ :用于加快的模型推理速度,支持Intel的CPU/GPU/NPU。在AIPC的Intel 11代1165G7芯片下,yolov8n-Pose的最大推理速度可达到60FPS。

2.3 软件设计

步骤1:模型和摄像头初始化

使用LabVIEW中的Opencv Camera模块,即可快速采集摄像头的图像,并将图像显示在前面板上。程序中,我们需要设置采集图像的宽度为640个像素,高度为480个像素。同时,我们初始化yolov8-pose模型,加载至OpenVINO™ 推理引擎中。跳绳计数器归零,然后进入循环。

Image

步骤2:实时采集与姿态识别

每次循环,软件都从摄像头中取出一帧图像,送入yolov8-pose的推理函数中,获取识别的结果图像,和第一个人的所有关键点位置。

Image

步骤3:调用跳绳计数器算法,每次循环都需要判断是否跳绳数加1。

3. 跳绳计数算法设计

3.1 yolov8-pose模型输出解析

Yolov8-pose算法的输出分两部分,第一部分是box,即每个人的外接矩形的位置,里面的参数为:

Box=[left,top,width,height] (左边的像素点、上边的像素点、宽度,高度)

第二部分是keypoints,由17个点构成,17个点的定义如下图:

Image

3.2 跳绳过程中的坐标变化

以双脚跳为例,采集某同学整个跳绳过程中的keypoint-15(左脚踝)或者keypoint-16(右脚踝)的y轴数值。Y值越小,说明在图中的位置越高。

Image

波形图中,左右两边部分表示了正常的跳跃时间段,中间有一部分y轴变化较小,说明学生暂停跳跃。

3.2 算法实现思路

(1) 在正常跳跃时,当学生脚部处于一个周期的最低点(即曲线的极大值)时可认为跳了一个。

(2) 但是,曲线在接近最高点时,由于AI产生的误差,曲线会有毛刺。因此需要判断当前新产生的最高点与上一次最高点的循环间隔,如果间隔太小,就可以忽略。

(3) 当学生失误停止跳绳时,由于学生本身还在移动或测量误差导致的y值变化也应去除。只需判断当前值与历史数据中的最高点(y的最小值)的差,如果小于一个阈值就可忽略。

3.3 算法实现代码

在LabVIEW中,我们取最近的10个点分析,其中最后5个点用来判断曲线的极大值,如果5个值中第2个(从0开始计数)为最大值的,且与10个数的最小值的差大于60(最高点与最低点的高度像素差),可将该点作为候选点。

Image

获取候选点所对应的时间,与它之前的一个候选点做比较。如果时间大于150毫秒(5帧,假设人类跳绳速度小于每分钟360个),则忽略,小于则计数器加1。

Image

将算法保存为子vi :跳绳计数判断.vi,放入主程序,最终程序如下图:

Image

4. 实验

4.1 实验设置

在校内体育馆搭建实验场景,选取10名学生进行跳绳测试。设置单人跳绳和双人交替跳绳两种模式,采集多组视频数据。

4.2 测试结果

实验结果表明,该装置在双脚跳绳场景下的计数准确率达98.5%,在左右脚交替跳绳场景下准确率为95.3%。与人工计数相比,误差控制在±2次以内。

误差原因主要与相机位置有关,相机需要放在学生正前方2~3米左右,高度大约为学生身高的一半,且相机镜头水平向前。如果相机斜着,可能造成一定误差。

4.3 性能分析

  • 实时性:使用OpenVINO™ 及英特尔GPU加速,系统处理帧率可达60 FPS,满足实时计数需求。

  • 稳定性:即使在光照变化和背景复杂的情况下,模型依然能够有效识别关键动作。

5. 创新点与优势

  1. 将LabVIEW与YOLOv8-Pose结合,实现深度学习模型的实时调用与可视化界面交互。

  2. 提出了基于关键点运动轨迹的跳绳动作识别算法,有效降低误判率。

  3. 系统成本低、部署简单,适合中学生科创比赛和实际推广。

6. 结论与展望

本文设计了一种基于LabVIEW和YOLOv8-Pose的跳绳计数装置,成功解决了人工计数误差大的问题。未来可进一步优化算法,使用平均滤波算法提高人体位置(如脚踝位置的准确度)、并兼容双脚跳和单脚跳两种跳绳模式。同时探索硬件设备的小型化与便携化,使其适应更多应用场景。

参考文献

  1. Redmon J., Farhadi A. YOLOv8: Real-Time Object Detection and Pose Estimation. arXiv preprint.

  2. National Instruments. LabVIEW User Manual. NI.

  3. Cao Z., Simon T., Wei S. Pose Estimation in Sports Applications. IEEE Transactions.

  4. https://doc.virobotics.net/zh_cn/ai_toolkit_for_ov

  5. https://github.com/openvinotoolkit/openvino_notebooks/tree/latest/notebooks/pose-estimation-webcam

Logo

为开发者提供丰富的英特尔开发套件资源、创新技术、解决方案与行业活动。欢迎关注!

更多推荐