Мониторинг тренировок с помощью Ultralytics YOLO26#
Мониторинг тренировок с помощью оценки позы и Ultralytics YOLO26 улучшает анализ упражнений: система точно отслеживает ключевые точки и суставы тела в реальном времени. Эта технология мгновенно оценивает технику выполнения упражнений, отслеживает тренировочные программы и измеряет показатели эффективности, помогая спортсменам и тренерам оптимизировать занятия.
Смотри: Как отслеживать упражнения с помощью Ultralytics YOLO | Приседания, разгибание ног, отжимания и многое другое
Преимущества мониторинга тренировок#
- Повышение эффективности: адаптация тренировок на основе данных мониторинга для достижения лучших результатов.
- Достижение целей: отслеживание и корректировка фитнес-целей для измеримого прогресса.
- Персонализация: индивидуальные планы тренировок на основе личных данных для повышения эффективности.
- Забота о здоровье: раннее выявление закономерностей, указывающих на проблемы со здоровьем или перетренированность.
- Обоснованные решения: корректировка тренировок и постановка реалистичных целей на основе данных.
Применение в реальном мире#
| Мониторинг тренировок | Мониторинг тренировок |
|---|---|
![]() | ![]() |
| Подсчёт отжиманий | Подсчёт подтягиваний |
Мониторь тренировки с помощью YOLO26#
Решение AIGym выполняет оценку позы и подсчитывает повторения, измеряя угол между тремя ключевыми точками, когда конечность перемещается между пороговыми значениями 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 | float | 90.0 | Пороговый угол для позы «вниз». |
kpts | list[int] | [6, 8, 10] | Список из трёх индексов ключевых точек, используемых для отслеживания тренировок. Эти точки соответствуют суставам или частям тела, например плечам, локтям и запястьям, для таких упражнений, как отжимания, подтягивания, приседания и упражнения на пресс. |
line_width | int | 2 | Толщина линий рамок, ключевых точек и счётчиков, которые рисует решение. |
verbose | bool | True | Включает журнал решения для каждого кадра с указанием формы входных данных, количества объектов по классам и скорости обработки. Сам вызов отслеживания всегда выполняется без вывода сообщений. |
Решение AIGym также поддерживает ряд параметров отслеживания объектов:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
tracker | str | 'tracktrack.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 или другое вычислительное устройство для выполнения модели. |
imgsz | int or tuple | 640 | Целевой размер изображения для инференса: целое число для квадратного изображения или пара (height, width). Размеры корректируются с учётом шага модели. |
max_det | int | 300 | Максимальное количество обнаружений, сохраняемых в каждом кадре перед отслеживанием; ограничивает число объектов, обрабатываемых решением в насыщенных сценах. |
quantize | int or str | None | Точность инференса: 16 (FP16) или 32/не задано (FP32) для моделей PyTorch и TorchScript; другие форматы используют точность, выбранную артефактом и средой выполнения. Заменяет устаревший флаг half. |
Кроме того, можно настроить следующие параметры визуализации:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
show | bool | False | Если True, показывает аннотированные изображения или видео в окне. Полезно для мгновенной визуальной проверки во время разработки или тестирования. |
show_labels | bool | True | Показывает метки каждой детекции на визуализации. Помогает сразу понять, какие объекты обнаружены. |
Часто задаваемые вопросы#
Чтобы отслеживать тренировки с помощью 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) cap.release() cv2.destroyAllWindows()Дополнительные настройки и параметры смотри в разделе AIGym документации.
Использование Ultralytics YOLO26 для мониторинга тренировок даёт несколько важных преимуществ:
- Повышение эффективности: адаптируя тренировки на основе данных мониторинга, ты можешь добиться лучших результатов.
- Достижение целей: легко отслеживай и корректируй фитнес-цели, чтобы видеть измеримый прогресс.
- Персонализация: получай индивидуальные планы тренировок на основе личных данных для достижения максимальной эффективности.
- Забота о здоровье: раннее выявление закономерностей, указывающих на потенциальные проблемы со здоровьем или перетренированность.
- Обоснованные решения: корректируй тренировки и ставь реалистичные цели на основе данных.
Посмотри демонстрационное видео на YouTube, чтобы увидеть эти преимущества на практике.
Ultralytics YOLO26 очень точно распознаёт и отслеживает упражнения благодаря передовым возможностям оценки позы. Модель точно отслеживает ключевые точки и суставы тела, предоставляя в реальном времени обратную связь о технике выполнения упражнений и показателях эффективности. Предварительно обученные веса и надёжная архитектура модели обеспечивают высокую точность и надёжность. Примеры применения в реальных условиях смотри в разделе документации примеры применения в реальных условиях, где показан подсчёт отжиманий и подтягиваний.
Да, Ultralytics YOLO26 можно адаптировать для индивидуальных тренировочных программ. Класс
AIGymраспознаёт повторения упражнений с помощью аргументовup_angle,down_angleиkpts. Ты можешь задать ключевые точки и углы для распознавания конкретных упражнений. Вот пример настройки:from ultralytics import solutions gym = solutions.AIGym( line_width=2, show=True, kpts=[6, 8, 10], # Для отжиманий — можно настроить для других упражнений )Подробнее о настройке аргументов смотри в разделе Аргументы
AIGym. Благодаря этой гибкости ты можешь отслеживать различные упражнения и адаптировать тренировки в соответствии со своими фитнес-целями.Чтобы сохранить результаты мониторинга тренировок, добавь в код видеозаписывающее устройство, которое будет сохранять обработанные кадры. Вот пример:
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()При такой настройке видео с мониторингом записывается в выходной файл. Позже ты сможешь оценить результаты тренировки или поделиться видео с тренерами, чтобы получить дополнительную обратную связь.

