Ultralytics YOLO27:

다중 객체 추적 데이터셋 개요#

다중 객체 추적은 비디오 분석의 핵심 구성 요소로, 객체를 식별하고 비디오 프레임 전체에서 감지된 각 객체에 고유 ID를 유지합니다. Ultralytics YOLO는 감시, 스포츠 분석, 교통 모니터링 등 다양한 분야에 적용할 수 있는 강력한 추적 기능을 제공합니다.

데이터셋 형식#

Track 모드에서는 추적기를 학습하지 않으며 추적기 전용 데이터셋도 필요하지 않습니다. 해당 작업의 표준 데이터셋 형식으로 detection, segmentation, pose 또는 OBB 모델을 학습한 다음, 결과 가중치를 model.track() 또는 yolo track과 함께 사용합니다. 선택한 추적기는 추론 시 모델의 예측을 프레임 간에 연결합니다.

사용 가능한 추적기#

Ultralytics YOLO는 다음 추적 알고리즘을 지원합니다.

  • BoT-SORT - 이 추적기를 활성화하려면 botsort.yaml을 사용합니다.
  • ByteTrack - 이 추적기를 활성화하려면 bytetrack.yaml을 사용합니다.
  • OC-SORT - 이 추적기를 활성화하려면 ocsort.yaml을 사용합니다.
  • Deep OC-SORT - 이 추적기를 활성화하려면 deepocsort.yaml을 사용합니다.
  • FastTracker - 이 추적기를 활성화하려면 fasttrack.yaml을 사용합니다.
  • TrackTrack - 이 추적기를 활성화하려면 tracktrack.yaml을 사용합니다(기본값).

사용법#

예시
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.1, iou=0.7, show=True)

프레임 간 추적 유지#

비디오 프레임 전체에서 연속적으로 추적하려면 persist=True 매개변수를 사용할 수 있습니다.

예시
import cv2

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo26n.pt")

# Open the video file
cap = cv2.VideoCapture("path/to/video.mp4")

while cap.isOpened():
    success, frame = cap.read()
    if success:
        # Run tracking with persistence between frames
        results = model.track(frame, persist=True)

        # Visualize the results
        annotated_frame = results[0].plot()
        cv2.imshow("Tracking", annotated_frame)

        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
    else:
        break

cap.release()
cv2.destroyAllWindows()

FAQ#

  • Ultralytics YOLO에서 다중 객체 추적을 사용하려면 먼저 제공된 Python 또는 CLI 예제를 사용할 수 있습니다. 다음은 시작하는 방법입니다.

    예시
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")  # Load the YOLO26 model
    results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.1, iou=0.7, show=True)

    이 명령은 YOLO26 모델을 로드하고 지정된 비디오 소스에서 객체를 추적하는 데 사용하며, 특정 confidence (conf) 및 교집합 대비 합집합 (iou) 임계값을 적용합니다. 자세한 내용은 Track 모드 문서를 참조하세요.

  • Ultralytics YOLO는 실시간 성능과 높은 정확도로 잘 알려진 최첨단 객체 detection 모델입니다. 다중 객체 추적에 YOLO를 사용하면 다음과 같은 여러 이점이 있습니다.

    • 실시간 추적: 동적 환경에 적합한 효율적이고 고속의 추적을 구현합니다.
    • 사전 학습 모델의 유연성: 처음부터 학습할 필요 없이 사전 학습된 detection, segmentation, pose 또는 OBB 모델을 사용하면 됩니다.
    • 간편한 사용: Python과 CLI 모두에서 간단한 API 통합을 지원하므로 추적 파이프라인을 손쉽게 설정할 수 있습니다.
    • 종합적인 문서와 커뮤니티 지원: Ultralytics는 문제를 해결하고 추적 모델을 개선할 수 있도록 포괄적인 문서와 활발한 커뮤니티 포럼을 제공합니다.

    YOLO를 추적에 설정하고 사용하는 방법에 대한 자세한 내용은 Track 사용 가이드를 참조하세요.

  • 예. 사용자 지정 데이터셋으로 detection, segmentation, pose 또는 OBB 모델을 학습한 다음, 해당 가중치를 model.track()에 전달합니다. 추적기 자체는 추론 중에 실행되며 별도의 학습 데이터가 필요하지 않습니다.

  • Ultralytics YOLO로 추적 작업을 실행하면 추적된 객체 ID, 해당 객체의 bounding box, confidence score 등 다양한 데이터가 결과에 포함됩니다. 다음은 이러한 결과를 해석하는 방법에 대한 간략한 개요입니다.

    • 추적된 ID: 각 객체에 고유 ID가 할당되며, 이를 통해 프레임 전체에서 해당 객체를 추적할 수 있습니다.
    • Bounding box: 프레임 내 추적된 객체의 위치를 나타냅니다.
    • Confidence score: 추적된 객체를 감지했다는 모델의 확신 정도를 나타냅니다.

    이러한 결과를 해석하고 시각화하는 방법에 대한 자세한 지침은 결과 처리 가이드를 참조하세요.

  • 추적기 구성 파일을 수정한 버전으로 만들어 추적기를 사용자 지정할 수 있습니다. ultralytics/cfg/trackers에서 기존 추적기 구성 파일을 복사하고, 필요에 따라 매개변수를 수정한 다음, 추적기를 실행할 때 이 파일을 지정합니다.

    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    results = model.track(source="video.mp4", tracker="custom_tracker.yaml")

댓글