使用 Ultralytics YOLO26 进行锻炼监测#
通过 Ultralytics YOLO26 的姿态估计监控锻炼,能够准确实时追踪身体关键标志点与关节,从而提升运动评估的效果。该技术可提供关于动作规范的即时反馈、追踪锻炼计划并衡量各项表现指标,为用户和教练优化训练过程。
Watch: How to Monitor Workout Exercises with Ultralytics YOLO | Squats, Leg Extension, Pushups and More
锻炼监测的优势#
- 优化性能: 根据监测数据量身定制锻炼方案,以获取更好的效果。
- 目标达成: 追踪并调整健身目标,以实现可衡量的进度。
- 个性化: 基于个人数据定制锻炼计划,以实现高效训练。
- 健康意识: 早期检测出指示健康问题或过度训练的模式。
- 知情决策: 为调整日常训练和设定切合实际的目标提供数据驱动的决策。
现实世界应用#
| 锻炼监测 | 锻炼监测 |
|---|---|
![]() | ![]() |
| 俯卧撑计数 | 引体向上计数 |
使用 YOLO26 监测锻炼#
AIGym 解决方案通过运行 pose estimation,在四肢于 up_angle 和 down_angle 阈值之间运动时,通过测量由三个关键点形成的夹角来计算重复次数。通过 kpts 为你想追踪的动作选择关键点,然后使用 Python API 或 CLI 在视频上运行该解决方案。
# Run a workout example
yolo solutions workout show=True
# Pass a source video
yolo solutions workout source="path/to/video.mp4"
# Use keypoints for pushups
yolo solutions workout kpts="[6, 8, 10]"关键点地图#

AIGym 参数#
以下是包含 AIGym 参数的表格:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
model | str | None | Ultralytics YOLO 模型文件的路径。 |
up_angle | float | 145.0 | “向上”姿势的角度阈值。 |
down_angle | int | 90 | “向下”姿势的角度阈值。 |
kpts | list[int] | '[6, 8, 10]' | 用于监控健身锻炼的三个关键点索引列表。这些关键点对应于身体关节或部位,例如肩膀、肘部和手腕,适用于俯卧撑、引体向上、深蹲和腹部锻炼等练习。 |
line_width | int | 2 | 解决方案绘制的框、关键点和计数的线条粗细。 |
verbose | bool | True | 启用解决方案针对每帧的输入形状、类别计数和处理速度的日志记录。跟踪调用本身始终是静默的。 |
AIGym 解决方案还支持一系列目标追踪参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 指定要使用的跟踪算法。内置选项:botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yaml。 |
conf | float | 0.25 | 设置检测的置信度阈值;较低的值允许跟踪更多的对象,但也可能包含误报。 |
iou | float | 0.7 | 设置用于过滤重叠检测结果的交并比 (IoU) 阈值。 |
classes | list | None | 按类别索引过滤结果。例如,classes=[0, 2, 3] 仅跟踪指定的类别。 |
device | str | None | 指定用于推理的设备(例如 cpu、cuda:0 或 0)。允许用户在 CPU、特定的 GPU 或用于模型执行的其他计算设备之间进行选择。 |
此外,还可以应用以下可视化设置:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
show | bool | False | 如果为 True,则在窗口中显示带注释的图像或视频。对于开发或测试期间的即时视觉反馈非常有用。 |
show_conf | bool | True | 在标签旁显示每次检测的置信度得分。让你深入了解模型对每次检测的确定性。 |
show_labels | bool | True | 在视觉输出中显示每次检测的标签。提供对检测到对象的即时理解。 |
常见问题解答#
要使用 Ultralytics YOLO26 监控锻炼,你可以利用 pose estimation capabilities 实时追踪并分析身体关键标志点与关节。这能让你获得关于运动规范的即时反馈、计算重复次数并衡量表现指标。你可以从查看所提供的俯卧撑、引体向上或腹肌锻炼示例代码开始,如下所示:
import cv2 from ultralytics import solutions cap = cv2.VideoCapture("path/to/video.mp4") assert cap.isOpened(), "Error reading video file" w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS)) gym = solutions.AIGym( line_width=2, show=True, kpts=[6, 8, 10], ) while cap.isOpened(): success, im0 = cap.read() if not success: print("Video frame is empty or processing is complete.") break results = gym(im0) cv2.destroyAllWindows()如需了解更多自定义与设置信息,请参考文档中的 AIGym 章节。
使用 Ultralytics YOLO26 进行锻炼监测具有几个关键优势:
- 优化性能: 通过根据监测数据调整锻炼方案,你可以获得更好的效果。
- 目标达成: 轻松追踪并调整健身目标,以实现可衡量的进度。
- 个性化: 基于个人数据获取定制化的锻炼计划,以达到最佳效果。
- 健康意识: 早期检测出可能预示健康问题或过度训练的模式。
- 知情决策: 做出数据驱动的决策,以调整日常练习并设定切合实际的目标。
你可以观看 YouTube video demonstration 来直观了解这些优势。
凭借其顶尖的 pose estimation 功能,Ultralytics YOLO26 在检测和追踪运动时具有极高的准确性。它能精确追踪身体关键标志点和关节,提供关于运动规范和表现指标的实时反馈。该模型的预训练权重和强大的架构确保了高 precision 与可靠性。关于实际案例,请查看文档中的 real-world applications 章节,其中展示了俯卧撑和引体向上的计数功能。
可以,Ultralytics YOLO26 能够适应自定义的锻炼计划。
AIGym类使用up_angle、down_angle和kpts参数来检测运动重复次数。你可以指定关键点和角度来检测特定的动作。以下是一个配置示例:from ultralytics import solutions gym = solutions.AIGym( line_width=2, show=True, kpts=[6, 8, 10], # For pushups - can be customized for other exercises )有关设置参数的更多详情,请参考 Arguments
AIGym章节。这种灵活性允许你监控各种运动,并根据你的 fitness goals 自定义锻炼计划。若要保存锻炼监测的输出,你可以修改代码以包含一个视频写入器(video writer)来保存处理后的帧。以下是一个示例:
import cv2 from ultralytics import solutions cap = cv2.VideoCapture("path/to/video.mp4") assert cap.isOpened(), "Error reading video file" w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS)) video_writer = cv2.VideoWriter("workouts.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h)) gym = solutions.AIGym( line_width=2, show=True, kpts=[6, 8, 10], ) while cap.isOpened(): success, im0 = cap.read() if not success: print("Video frame is empty or processing is complete.") break results = gym(im0) video_writer.write(results.plot_im) cap.release() video_writer.release() cv2.destroyAllWindows()此设置会将监测到的视频写入输出文件,使你能够事后回顾锻炼表现或与教练分享以获取进一步的反馈。

