Мониторинг тренировок с использованием Ultralytics YOLO11
Мониторинг тренировок с помощью оценки позы с Ultralytics YOLO11 улучшает оценку упражнений благодаря точному отслеживанию основных ориентиров тела и суставов в режиме реального времени. Эта технология обеспечивает мгновенную обратную связь о форме упражнений, отслеживает режим тренировок и измеряет показатели эффективности, оптимизируя тренировки как для пользователей, так и для тренеров.
Смотреть: Мониторинг тренировок с использованием Ultralytics YOLO11 | Отжимания, подтягивания, тренировка мышц живота
Преимущества мониторинга тренировок
- Оптимизированная производительность: Подбор тренировок на основе данных мониторинга для достижения лучших результатов.
- Достижение целей: Отслеживайте и корректируйте фитнес-цели, чтобы добиться заметного прогресса.
- Персонализация: Индивидуальные планы тренировок на основе индивидуальных данных для повышения эффективности.
- Информированность о здоровье: Раннее обнаружение паттернов, указывающих на проблемы со здоровьем или перетренированность.
- Обоснованные решения: Решения, основанные на данных, для корректировки распорядка и постановки реалистичных целей.
Применение в реальном мире
Мониторинг тренировок | Мониторинг тренировок |
---|---|
![]() |
![]() |
Подсчет отжиманий | Подсчет подтягиваний |
Мониторинг тренировок с помощью Ultralytics YOLO
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
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()
Эта установка записывает видеозапись в выходной файл, позволяя позже просмотреть результаты тренировки или передать их тренерам для получения дополнительной информации.