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