Ultralytics YOLO27:

Мониторинг тренировок с использованием Ultralytics YOLO26#

Open Workouts Monitoring In Colab

Мониторинг тренировок с помощью оценки позы Ultralytics YOLO26 повышает точность оценки упражнений, отслеживая ключевые ориентиры и суставы тела в реальном времени. Эта технология обеспечивает мгновенную обратную связь по технике выполнения упражнений, отслеживает тренировочные программы и измеряет показатели эффективности, оптимизируя тренировочные занятия как для пользователей, так и для тренеров.



Watch: How to Monitor Workout Exercises with Ultralytics YOLO | Squats, Leg Extension, Pushups and More

Преимущества мониторинга тренировок#

  • Оптимизация результатов: Адаптация тренировок на основе данных мониторинга для достижения лучших результатов.
  • Достижение целей: Отслеживание и корректировка фитнес-целей для измеримого прогресса.
  • Персонализация: Индивидуальные планы тренировок на основе персональных данных для повышения эффективности.
  • Осведомлённость о здоровье: Раннее выявление закономерностей, указывающих на проблемы со здоровьем или перетренированность.
  • Обоснованные решения: Принятие решений на основе данных для корректировки тренировок и постановки реалистичных целей.

Примеры использования в реальном мире#

Мониторинг тренировокМониторинг тренировок
Подсчёт отжиманий с помощью YOLO и оценки позыПодсчёт подтягиваний с помощью YOLO и оценки позы
Подсчёт отжиманийПодсчёт подтягиваний

Мониторинг тренировок с помощью YOLO26#

Решение AIGym выполняет оценку позы и подсчитывает повторения, измеряя угол, образованный тремя ключевыми точками, когда конечность перемещается между пороговыми значениями up_angle и down_angle. Выбери ключевые точки для упражнения, которое хочешь отслеживать, с помощью kpts, затем запусти решение для своего видео через API Python или CLI.

Мониторинг тренировок с использованием Ultralytics YOLO
# 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]"

Карта ключевых точек#

Схема порядка ключевых точек для оценки позы YOLO

Аргументы AIGym#

Вот таблица с аргументами AIGym:

АргументТипПо умолчаниюОписание
modelstrNoneПуть к файлу модели Ultralytics YOLO.
up_anglefloat145.0Порог угла для позы «вверх».
down_angleint90Порог угла для позы «вниз».
kptslist[int]'[6, 8, 10]'Список из трёх индексов ключевых точек, используемых для мониторинга тренировок. Эти ключевые точки соответствуют суставам или частям тела, например плечам, локтям и запястьям, для таких упражнений, как отжимания, подтягивания, приседания и упражнения на пресс.
line_widthint2Толщина линий для рамок, ключевых точек и счётчиков, которые рисует решение.
verboseboolTrueВключает покадровый журнал решения с указанием формы входных данных, количества классов и скорости обработки. Сам вызов отслеживания всегда выполняется без вывода.

Решение AIGym также поддерживает ряд параметров отслеживания объектов:

АргументТипПо умолчаниюОписание
trackerstr'botsort.yaml'Определяет используемый алгоритм отслеживания. Встроенные варианты: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Задаёт порог уверенности для детекций: более низкие значения позволяют отслеживать больше объектов, но могут включать ложноположительные результаты.
ioufloat0.7Задаёт порог пересечения над объединением (IoU) для фильтрации перекрывающихся детекций.
classeslistNoneФильтрует результаты по индексу класса. Например, classes=[0, 2, 3] отслеживает только указанные классы.
devicestrNoneОпределяет устройство для инференса (например, cpu, cuda:0 или 0). Позволяет выбрать CPU, конкретный GPU или другое вычислительное устройство для выполнения модели.
imgszint or tuple640Целевой размер изображения для вывода: целое число для квадрата или пара (height, width). Формы подстраиваются под шаг модели.
max_detint300Максимальное количество обнаружений, сохраняемых на кадр перед трекингом, ограничивает объекты, обрабатываемые решением в плотных сценах.
quantizeint or strNoneТочность вывода: 16 (FP16) или 32/не задано (FP32) для моделей PyTorch и TorchScript; остальные форматы выполняют вычисления с точностью, выбранной их артефактом и средой выполнения. Заменяет устаревший флаг half.

Кроме того, можно применять следующие настройки визуализации:

АргументТипПо умолчаниюОписание
showboolFalseЕсли True, аннотированные изображения или видео отображаются в окне. Это полезно для получения визуальной обратной связи в процессе разработки или тестирования.
show_confboolTrueОтображает показатель уверенности для каждой детекции рядом с её меткой. Показывает, насколько модель уверена в каждой детекции.
show_labelsboolTrueОтображает метки каждой детекции в визуальном результате. Даёт непосредственное представление об обнаруженных объектах.

Часто задаваемые вопросы#

  • Чтобы отслеживать свои тренировки с помощью 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()

    Такая настройка записывает отслеживаемое видео в выходной файл, позволяя позднее просмотреть результаты тренировки или поделиться ими с тренерами для получения дополнительной обратной связи.

Комментарии