콘텐츠로 건너뛰기

다음을 사용하여 운동 모니터링 Ultralytics YOLO11

콜랩에서 오픈 워크아웃 모니터링

자세 추정을 통한 운동 모니터링 Ultralytics YOLO11 는 신체의 주요 랜드마크와 관절을 실시간으로 정확하게 추적하여 운동 평가를 향상시킵니다. 이 기술은 운동 자세에 대한 즉각적인 피드백을 제공하고, 운동 루틴을 추적하며, 성과 지표를 측정하여 사용자와 트레이너 모두를 위해 트레이닝 세션을 최적화합니다.



Watch: 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

키포인트 맵

키포인트 주문 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( Intersection over Union ) 임계값을 설정합니다.
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 사용자 지정 운동 루틴에 맞게 조정할 수 있습니다. The AIGym 클래스는 다음과 같은 다양한 포즈 유형을 지원합니다. pushup, pullupabworkout. 키포인트와 각도를 지정하여 특정 운동을 감지할 수 있습니다. 다음은 설정 예시입니다:

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 일 전

댓글