Ultralytics YOLO27:
Get Started

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

Open Workouts Monitoring In Colab

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



Смотри: Как отслеживать упражнения с помощью Ultralytics YOLO | Приседания, разгибание ног, отжимания и многое другое

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

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

Применение в реальном мире#

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

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

Решение AIGym выполняет оценку позы и подсчитывает повторения, измеряя угол между тремя ключевыми точками, когда конечность перемещается между пороговыми значениями up_angle и down_angle. Выбери с помощью kpts ключевые точки для упражнения, которое нужно отслеживать, а затем запусти решение на видео с помощью Python API или 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_anglefloat90.0Пороговый угол для позы «вниз».
kptslist[int][6, 8, 10]Список из трёх индексов ключевых точек, используемых для отслеживания тренировок. Эти точки соответствуют суставам или частям тела, например плечам, локтям и запястьям, для таких упражнений, как отжимания, подтягивания, приседания и упражнения на пресс.
line_widthint2Толщина линий рамок, ключевых точек и счётчиков, которые рисует решение.
verboseboolTrueВключает журнал решения для каждого кадра с указанием формы входных данных, количества объектов по классам и скорости обработки. Сам вызов отслеживания всегда выполняется без вывода сообщений.

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

АргументТипПо умолчаниюОписание
trackerstr'tracktrack.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_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)
    
    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()

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

Комментарии