Перейти к содержанию

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

Мониторинг открытых тренировок в Colab

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



Смотреть: Мониторинг тренировок с использованием Ultralytics YOLO11 | Отжимания, подтягивания, тренировка мышц живота

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

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

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

Мониторинг тренировок Мониторинг тренировок
Подсчет отжиманий Подсчет подтягиваний
Подсчет отжиманий Подсчет подтягиваний

Мониторинг тренировок с помощью 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]"
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Video writer
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_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init AIGym
gym = solutions.AIGym(
    show=True,  # display the frame
    kpts=[6, 8, 10],  # keypoints for monitoring specific exercise, by default it's for pushup
    model="yolo11n-pose.pt",  # path to the YOLO11 pose estimation model file
    # line_width=2,  # adjust the line width for bounding boxes and text display
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = gym(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

Карта KeyPoints

Ключевые точки Порядок Ultralytics YOLO11  Поза

AIGym Аргументы

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

Аргумент Тип По умолчанию Описание
model str None Путь к файлу модели Ultralytics YOLO .
up_angle float 145.0 Пороговый угол для позы "вверх".
down_angle float 90.0 Пороговый угол для позы "вниз".
kpts list[int, int, int] [6, 8, 10] Список ключевых точек, используемых для контроля тренировок. Эти ключевые точки соответствуют суставам или частям тела, например плечам, локтям и запястьям, для таких упражнений, как отжимания, подтягивания, приседания, упражнения на пресс.

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

Аргумент Тип По умолчанию Описание
tracker str 'botsort.yaml' Указывает используемый алгоритм отслеживания, например, bytetrack.yaml или botsort.yaml.
conf float 0.3 Устанавливает порог доверия для обнаружений; более низкие значения позволяют отслеживать больше объектов, но могут включать ложные срабатывания.
iou float 0.5 Устанавливает порог пересечения над объединением (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 None or int None Определяет ширину линии ограничительных рамок. Если NoneШирина линии автоматически регулируется в зависимости от размера изображения. Обеспечивает визуальную настройку для наглядности.

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Как следить за тренировками с помощью Ultralytics YOLO11 ?

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

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 YOLO11 для мониторинга тренировок?

Использование сайта Ultralytics YOLO11 для мониторинга тренировок дает несколько ключевых преимуществ:

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

Вы можете посмотреть видеоролик на YouTube, чтобы увидеть эти преимущества в действии.

Насколько точно Ultralytics YOLO11 обнаруживает и отслеживает учения?

Ultralytics YOLO11 обладает высокой точностью обнаружения и отслеживания упражнений благодаря современным возможностям оценки позы. Она может точно отслеживать основные ориентиры и суставы тела, обеспечивая обратную связь в реальном времени о форме упражнений и показателях эффективности. Предварительно обученные веса и надежная архитектура модели обеспечивают высокую точность и надежность. Для получения реальных примеров ознакомьтесь с разделом "Реальные приложения" в документации, где показан подсчет отжиманий и подтягиваний.

Могу ли я использовать Ultralytics YOLO11 для создания индивидуальных тренировок?

Да, Ultralytics YOLO11 можно адаптировать для индивидуальных тренировок. Сайт 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
)

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

Как сохранить результаты мониторинга тренировок с помощью Ultralytics YOLO11 ?

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

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()

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

📅 Создано 1 год назад ✏️ Обновлено 5 дней назад

Комментарии