使用 Ultralytics YOLO26 进行健身锻炼监测
通过 Ultralytics YOLO26 的姿态估计来监测健身锻炼,可以实时准确地追踪关键身体地标和关节,从而加强运动评估。这项技术能对运动姿势提供即时反馈,追踪锻炼计划并测量表现指标,为用户和教练优化训练环节。
Watch: How to Monitor Workout Exercises with Ultralytics YOLO | Squats, Leg Extension, Pushups and More
健身锻炼监测的优势
- 优化表现: 根据监测数据调整锻炼方式,以获得更好的结果。
- 目标达成: 追踪并调整健身目标,以实现可衡量的进度。
- 个性化: 基于个人数据定制有效的健身计划。
- 健康意识: 尽早发现指示健康问题或过度训练的模式。
- 明智决策: 利用数据驱动的决策来调整日常训练并设定切实可行的目标。
现实世界应用
| 健身锻炼监测 | 健身锻炼监测 |
|---|---|
![]() | ![]() |
| 俯卧撑计数 | 引体向上计数 |
# 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]' | 用于监控健身训练的三个关键点索引列表。这些关键点对应于身体关节或部位,例如肩部、肘部和腕部,适用于俯卧撑、引体向上、深蹲和腹部训练等动作。 |
AIGym 解决方案还支持一系列目标追踪参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 指定使用的跟踪算法,例如 bytetrack.yaml 或 botsort.yaml。 |
conf | float | 0.1 | 设置检测的置信度阈值;较低的值允许跟踪更多对象,但可能会包含误报。 |
iou | float | 0.7 | 设置过滤重叠检测的 Intersection over Union (IoU) 阈值。 |
classes | list | None | 按类别索引过滤结果。例如,classes=[0, 2, 3] 将仅跟踪指定的类别。 |
verbose | bool | True | 控制跟踪结果的显示,提供跟踪对象的视觉输出。 |
device | str | None | 指定推理设备(例如 cpu、cuda:0 或 0)。允许用户选择 CPU、特定的 GPU 或其他计算设备来执行模型。 |
此外,还可以应用以下可视化设置:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
show | bool | False | 如果设为 True,则在一个窗口中显示标注后的图像或视频。这对于开发或测试期间的即时视觉反馈非常有用。 |
line_width | int or None | None | 指定边界框的线宽。如果为 None,线宽将根据图像大小自动调整。提供视觉自定义以提高清晰度。 |
show_conf | bool | True | 在标签旁边显示每个检测结果的置信度分数。让你可以洞察模型对每个检测的确定性。 |
show_labels | bool | True | 在可视化输出中显示每个检测结果的标签。提供对检测对象的即时了解。 |
常见问题 (FAQ)
我该如何使用 Ultralytics YOLO26 监测我的健身锻炼?
要使用 Ultralytics YOLO26 监测健身锻炼,你可以利用姿态估计功能实时追踪和分析关键身体地标及关节。这使你能够实时获得运动姿势的反馈、统计重复次数并衡量表现指标。你可以从俯卧撑、引体向上或腹部训练的示例代码入手,如下所示:
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 进行健身锻炼监测有什么好处?
使用 Ultralytics YOLO26 进行健身锻炼监测具有以下几个关键优势:
- 优化表现: 通过根据监测数据定制健身锻炼,你可以获得更好的效果。
- 目标达成: 轻松追踪并调整健身目标,以获得可衡量的进步。
- 个性化: 基于你的个人数据获取定制化的健身计划,从而达到最佳效果。
- 健康意识: 尽早发现预示潜在健康问题或过度训练的模式。
- 明智决策: 做出基于数据的决策,以调整日常安排并设定切实可行的目标。
你可以观看 YouTube 视频演示来查看这些功能的实际应用。
Ultralytics YOLO26 在检测和追踪练习方面的准确度如何?
得益于其最先进的姿态估计功能,Ultralytics YOLO26 在检测和追踪练习方面表现出极高的准确度。它能精确追踪关键身体地标和关节,从而提供关于运动姿势和表现指标的实时反馈。该模型的预训练权重和稳健的架构确保了高精度和可靠性。关于实际案例,请查看文档中的实际应用部分,其中展示了俯卧撑和引体向上的计数功能。
我可以使用 Ultralytics YOLO26 进行自定义健身锻炼吗?
可以,Ultralytics YOLO26 可以适配自定义的健身锻炼。AIGym 类支持多种姿态类型,如 pushup、pullup 和 abworkout。你可以指定关键点和角度来检测特定的练习。以下是一个配置示例:
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 部分。这种灵活性使你能够监测各种练习,并根据你的健身目标自定义健身计划。
我该如何保存使用 Ultralytics YOLO26 进行健身锻炼监测的输出结果?
要保存健身锻炼监测的输出,你可以修改代码,加入一个用于保存处理后帧的视频写入器。以下是一个示例:
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()此设置会将监测到的视频写入输出文件,方便你事后回顾健身表现或与教练分享以获取额外反馈。

