Skip to main content
Ultralytics는 이미지 분류, 객체 감지, 이미지 분할, 자세 추정과 같은 작업을 위한 최신 컴퓨터 비전 모델을 제공하는 대표적인 플랫폼입니다. 실시간 객체 감지 모델인 YOLO 계열의 최신 버전 YOLOv8뿐 아니라, SAM (Segment Anything Model), RT-DETR, YOLO-NAS 등 강력한 다른 컴퓨터 비전 모델도 제공합니다. Ultralytics는 이러한 모델의 구현을 제공할 뿐만 아니라, 사용하기 쉬운 API를 통해 이 모델들을 트레이닝하고, 파인튜닝하고, 적용할 수 있는 즉시 활용 가능한 워크플로도 함께 제공합니다.

시작하기

  1. ultralyticswandb를 설치합니다.
        pip install --upgrade ultralytics==8.0.238 wandb
    
        # 또는
        # conda install ultralytics
    
    개발팀은 이 인테그레이션을 ultralytics v8.0.238 이하 버전에서 테스트했습니다. 인테그레이션 관련 문제를 보고하려면 yolov8 태그를 포함해 GitHub 이슈를 생성하세요.

실험을 추적하고 검증 결과 시각화하기

이 섹션에서는 Ultralytics 모델을 사용해 트레이닝, 파인튜닝, 검증을 수행하고, W&B를 통해 실험 추적, 모델 체크포인트 저장, 모델 성능 시각화를 수행하는 일반적인 워크플로를 보여줍니다. 이 인테그레이션에 대한 자세한 내용은 다음 리포트에서도 확인할 수 있습니다: Supercharging Ultralytics with W&B Ultralytics와 W&B 인테그레이션을 함께 사용하려면 wandb.integration.ultralytics.add_wandb_callback 함수를 임포트하세요.
import wandb
from wandb.integration.ultralytics import add_wandb_callback

from ultralytics import YOLO
원하는 YOLO 모델을 초기화한 다음, 모델로 Inference를 수행하기 전에 add_wandb_callback 함수를 호출하세요. 이렇게 하면 트레이닝, 파인튜닝, 검증 또는 Inference를 수행할 때 컴퓨터 비전 작업용 대화형 오버레이wandb.Table의 추가 정보와 함께, 정답과 해당 예측 결과가 모두 오버레이된 이미지 및 실험 로그가 W&B에 자동으로 저장됩니다.
with wandb.init(project="ultralytics", job_type="train") as run:

    # YOLO 모델 초기화
    model = YOLO("yolov8n.pt")

    # Ultralytics용 W&B 콜백 추가
    add_wandb_callback(model, enable_model_checkpointing=True)

    # 모델 트레이닝/파인튜닝
    # 각 에포크 종료 시 검증 배치에 대한 예측 결과가
    # 컴퓨터 비전 작업을 위한 유용한 대화형 오버레이와 함께
    # W&B 테이블에 로깅됩니다
    model.train(project="ultralytics", data="coco128.yaml", epochs=5, imgsz=640)
다음은 Ultralytics 트레이닝 또는 파인튜닝 워크플로에서 W&B로 추적한 실험 예시입니다: 다음은 에포크별 검증 결과를 W&B Table로 시각화한 예시입니다:

예측 결과 시각화

이 섹션에서는 Ultralytics 모델을 Inference에 사용하고 W&B를 사용해 결과를 시각화하는 일반적인 워크플로를 보여줍니다. Google Colab에서 이 코드를 사용해 볼 수 있습니다: Colab에서 열기. 다음 리포트에서 이 인테그레이션에 대해서도 확인할 수 있습니다: W&B로 Ultralytics 강화하기 Ultralytics와 W&B 인테그레이션을 사용하려면 wandb.integration.ultralytics.add_wandb_callback 함수를 임포트해야 합니다.
import wandb
from wandb.integration.ultralytics import add_wandb_callback

from ultralytics.engine.model import YOLO
인테그레이션을 테스트할 수 있도록 이미지 몇 장을 다운로드하세요. 정지 이미지, 비디오 또는 카메라 소스를 사용할 수 있습니다. Inference 소스에 대해 자세히 알아보려면 Ultralytics 문서를 확인하세요.
!wget https://raw.githubusercontent.com/wandb/examples/ultralytics/colabs/ultralytics/assets/img1.png
!wget https://raw.githubusercontent.com/wandb/examples/ultralytics/colabs/ultralytics/assets/img2.png
!wget https://raw.githubusercontent.com/wandb/examples/ultralytics/colabs/ultralytics/assets/img4.png
!wget https://raw.githubusercontent.com/wandb/examples/ultralytics/colabs/ultralytics/assets/img5.png
wandb.init()을 사용해 W&B run을 초기화합니다. 다음으로 원하는 YOLO 모델을 초기화한 뒤, 모델로 Inference를 수행하기 전에 해당 모델에서 add_wandb_callback 함수를 호출합니다. 이렇게 하면 Inference를 수행할 때 컴퓨터 비전 작업용 대화형 오버레이가 적용된 이미지와 추가 인사이트가 wandb.Table에 자동으로 함께 기록됩니다.
# W&B Run 초기화
with wandb.init(project="ultralytics", job_type="inference") as run:
    # YOLO 모델 초기화
    model = YOLO("yolov8n.pt")

    # Ultralytics용 W&B 콜백 추가
    add_wandb_callback(model, enable_model_checkpointing=True)

    # 예측 수행 - 바운딩 박스, 세그멘테이션 마스크의
    # 대화형 오버레이와 함께 W&B Table에 자동으로 기록됨
    model(
        [
            "./assets/img1.jpeg",
            "./assets/img3.png",
            "./assets/img4.jpeg",
            "./assets/img5.jpeg",
        ]
    )
트레이닝 또는 파인튜닝 워크플로에서는 wandb.init()으로 run을 명시적으로 초기화할 필요가 없습니다. 하지만 코드가 예측만 수행하는 경우에는 run을 명시적으로 생성해야 합니다. 다음은 대화형 bbox 오버레이의 모습입니다: 자세한 내용은 W&B 이미지 오버레이 가이드를 참조하세요.

추가 자료