YOLO Vision 2026:

Ultralytics YOLO26를 활용한 운동 모니터링#

Open Workouts Monitoring In Colab

Ultralytics YOLO26을 이용한 포즈 추정 기반 운동 모니터링은 실시간으로 주요 신체 랜드마크와 관절을 정확하게 추적하여 운동 평가를 향상합니다. 이 기술은 운동 자세에 대한 즉각적인 피드백을 제공하고, 운동 루틴을 추적하며, 성능 메트릭을 측정하여 사용자 및 트레이너 모두에게 최적화된 트레이닝 세션을 제공합니다.



Watch: How to Monitor Workout Exercises with Ultralytics YOLO | Squats, Leg Extension, Pushups and More

운동 모니터링의 이점#

  • 성과 최적화: 더 나은 결과를 위해 모니터링 데이터를 기반으로 운동을 조정합니다.
  • 목표 달성: 측정 가능한 성과를 위해 피트니스 목표를 추적하고 조정합니다.
  • 개인화: 효과적인 결과를 위해 개인 데이터에 맞춘 맞춤형 운동 계획을 제공합니다.
  • 건강 인식: 건강 문제나 과도한 훈련을 나타내는 패턴을 조기에 감지합니다.
  • 정보에 기반한 의사결정: 루틴을 조정하고 현실적인 목표를 설정하기 위한 데이터 기반 의사결정을 지원합니다.

실제 세계에서의 활용 사례#

운동 모니터링운동 모니터링
YOLO push-ups counting with pose estimationYOLO pull-ups counting with pose estimation
팔굽혀펴기 카운팅턱걸이 카운팅

YOLO26으로 운동 모니터링하기#

AIGym 솔루션은 포즈 추정을 실행하고 사지가 up_angledown_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]"

키포인트(KeyPoints) 맵#

YOLO pose estimation keypoints order diagram

AIGym 인수#

다음은 AIGym 인수가 포함된 표입니다:

인수유형기본값설명
modelstrNoneUltralytics YOLO 모델 파일 경로입니다.
up_anglefloat145.0'up'(위) 자세에 대한 각도 임계값입니다.
down_angleint90'down'(아래) 자세에 대한 각도 임계값입니다.
kptslist[int]'[6, 8, 10]'운동 모니터링에 사용되는 세 개의 키포인트 인덱스 목록입니다. 이 키포인트들은 푸시업, 풀업, 스쿼트, 복근 운동과 같은 동작을 위해 어깨, 팔꿈치, 손목 등 신체 관절이나 부위에 대응합니다.
line_widthint2솔루션이 그리는 상자, 키포인트 및 카운트의 선 두께입니다.
verboseboolTrue입력 형태, 클래스 카운트 및 처리 속도에 대한 솔루션의 프레임별 로그를 활성화합니다. 트래킹 호출 자체는 항상 침묵 상태를 유지합니다.

AIGym 솔루션은 다양한 객체 추적 매개변수도 지원합니다:

인수유형기본값설명
trackerstr'botsort.yaml'사용할 추적 알고리즘을 지정합니다. 기본 제공 옵션: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25탐지에 대한 신뢰도 임계값을 설정합니다. 값이 낮을수록 더 많은 객체가 추적되지만 잘못된 긍정 탐지(false positives)가 포함될 수 있습니다.
ioufloat0.7겹치는 감지를 필터링하기 위한 Intersection over Union (IoU) 임계값을 설정합니다.
classeslistNone클래스 인덱스로 결과를 필터링합니다. 예를 들어 classes=[0, 2, 3]은 지정된 클래스만 추적합니다.
devicestrNone추론용 장치를 지정합니다(예: cpu, cuda:0 또는 0). 사용자가 모델 실행을 위해 CPU, 특정 GPU 또는 기타 컴퓨팅 장치 중에서 선택할 수 있도록 합니다.

추가적으로 다음 시각화 설정을 적용할 수 있습니다:

인수유형기본값설명
showboolFalseTrue인 경우, 주석이 달린 이미지나 비디오를 창에 표시합니다. 개발 또는 테스트 중 즉각적인 시각적 피드백에 유용합니다.
show_confboolTrue각 탐지에 대한 신뢰도 점수를 레이블과 함께 표시합니다. 각 탐지에 대한 모델의 확신도를 파악할 수 있습니다.
show_labelsboolTrue시각적 출력에서 각 탐지에 대한 레이블을 표시합니다. 탐지된 객체를 즉시 이해할 수 있도록 합니다.

FAQ#

  • 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)
    
    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],  # For pushups - can be customized for other exercises
    )

    인수 설정에 대한 자세한 내용은 인수 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()

    이 설정을 통해 모니터링된 비디오를 출력 파일로 작성할 수 있으며, 이를 통해 나중에 운동 성과를 검토하거나 트레이너와 공유하여 추가 피드백을 받을 수 있습니다.

댓글