Мониторинг тренировок с использованием Ultralytics YOLO26#
Мониторинг тренировок с помощью оценки позы Ultralytics YOLO26 повышает точность оценки упражнений, отслеживая ключевые ориентиры и суставы тела в реальном времени. Эта технология обеспечивает мгновенную обратную связь по технике выполнения упражнений, отслеживает тренировочные программы и измеряет показатели эффективности, оптимизируя тренировочные занятия как для пользователей, так и для тренеров.
Watch: How to Monitor Workout Exercises with Ultralytics YOLO | Squats, Leg Extension, Pushups and More
Преимущества мониторинга тренировок#
- Оптимизация результатов: Адаптация тренировок на основе данных мониторинга для достижения лучших результатов.
- Достижение целей: Отслеживание и корректировка фитнес-целей для измеримого прогресса.
- Персонализация: Индивидуальные планы тренировок на основе персональных данных для повышения эффективности.
- Осведомлённость о здоровье: Раннее выявление закономерностей, указывающих на проблемы со здоровьем или перетренированность.
- Обоснованные решения: Принятие решений на основе данных для корректировки тренировок и постановки реалистичных целей.
Примеры использования в реальном мире#
| Мониторинг тренировок | Мониторинг тренировок |
|---|---|
![]() | ![]() |
| Подсчёт отжиманий | Подсчёт подтягиваний |
Мониторинг тренировок с помощью YOLO26#
Решение AIGym выполняет оценку позы и подсчитывает повторения, измеряя угол, образованный тремя ключевыми точками, когда конечность перемещается между пороговыми значениями up_angle и down_angle. Выбери ключевые точки для упражнения, которое хочешь отслеживать, с помощью kpts, затем запусти решение для своего видео через API Python или 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 или другое вычислительное устройство для выполнения модели. |
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_conf | bool | 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) 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], # For pushups - can be customized for other exercises )Подробнее о настройке аргументов смотри в разделе Аргументы
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()Такая настройка записывает отслеживаемое видео в выходной файл, позволяя позднее просмотреть результаты тренировки или поделиться ими с тренерами для получения дополнительной обратной связи.

