μ½˜ν…μΈ λ‘œ κ±΄λ„ˆλ›°κΈ°

λ‹€μŒμ„ μ‚¬μš©ν•˜μ—¬ YOLOv8 μ‹€ν—˜ 좔적 및 μ‹œκ°ν™” ν–₯상 Weights & Biases

같은 객체 감지 λͺ¨λΈμ€ Ultralytics YOLOv8 κ³Ό 같은 객체 감지 λͺ¨λΈμ€ λ§Žμ€ 컴퓨터 λΉ„μ „ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— ν•„μˆ˜μ μΈ μš”μ†Œκ°€ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ΄λŸ¬ν•œ λ³΅μž‘ν•œ λͺ¨λΈμ„ ν›ˆλ ¨, 평가, λ°°ν¬ν•˜λŠ” λ°μ—λŠ” λͺ‡ 가지 어렀움이 λ”°λ¦…λ‹ˆλ‹€. μ£Όμš” ν›ˆλ ¨ λ©”νŠΈλ¦­μ„ μΆ”μ ν•˜κ³ , λͺ¨λΈ λ³€ν˜•μ„ λΉ„κ΅ν•˜κ³ , λͺ¨λΈ λ™μž‘μ„ λΆ„μ„ν•˜κ³ , 문제λ₯Ό κ°μ§€ν•˜λ €λ©΄ μƒλ‹Ήν•œ 계츑 및 μ‹€ν—˜ 관리가 ν•„μš”ν•©λ‹ˆλ‹€.

This guide showcases Ultralytics YOLOv8 integration with Weights & Biases' for enhanced experiment tracking, model-checkpointing, and visualization of model performance. It also includes instructions for setting up the integration, training, fine-tuning, and visualizing results using Weights & Biases' interactive features.

Weights & Biases

Weights & Biases κ°œμš”

Weights & Biases λŠ” λ¨Έμ‹  λŸ¬λ‹ μ‹€ν—˜μ„ 좔적, μ‹œκ°ν™”, κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ μ„€κ³„λœ μ΅œμ²¨λ‹¨ MLOps ν”Œλž«νΌμž…λ‹ˆλ‹€. μ™„λ²½ν•œ μ‹€ν—˜ μž¬ν˜„μ„±μ„ μœ„ν•œ ν›ˆλ ¨ μ§€ν‘œμ˜ μžλ™ λ‘œκΉ…, κ°„μ†Œν™”λœ 데이터 뢄석을 μœ„ν•œ λŒ€ν™”ν˜• UI, λ‹€μ–‘ν•œ ν™˜κ²½μ— 배포할 수 μžˆλŠ” 효율적인 λͺ¨λΈ 관리 도ꡬ가 νŠΉμ§•μž…λ‹ˆλ‹€.

YOLOv8 ꡐ윑 λŒ€μƒ Weights & Biases

Weights & Biases 을 μ‚¬μš©ν•˜μ—¬ YOLOv8 ꡐ윑 ν”„λ‘œμ„ΈμŠ€μ— νš¨μœ¨μ„±κ³Ό μžλ™ν™”λ₯Ό λ„μž…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ„€μΉ˜

ν•„μš”ν•œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜λ €λ©΄ μ‹€ν–‰ν•©λ‹ˆλ‹€:

μ„€μΉ˜

# Install the required packages for YOLOv8 and Weights & Biases
pip install --upgrade ultralytics==8.0.186 wandb

μ„€μΉ˜ κ³Όμ •κ³Ό κ΄€λ ¨λœ μžμ„Έν•œ 지침과 λͺ¨λ²” μ‚¬λ‘€λŠ” YOLOv8 μ„€μΉ˜ κ°€μ΄λ“œλ₯Ό ν™•μΈν•˜μ„Έμš”. YOLOv8 에 ν•„μš”ν•œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•˜λŠ” λ™μ•ˆ λ¬Έμ œκ°€ λ°œμƒν•˜λ©΄ 일반적인 문제 κ°€μ΄λ“œλ₯Ό μ°Έμ‘°ν•˜μ—¬ ν•΄κ²° 방법과 νŒμ„ ν™•μΈν•˜μ„Έμš”.

ꡬ성 Weights & Biases

ν•„μš”ν•œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•œ ν›„ λ‹€μŒ λ‹¨κ³„λŠ” Weights & Biases ν™˜κ²½μ„ μ„€μ •ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. μ—¬κΈ°μ—λŠ” Weights & Biases 계정을 μƒμ„±ν•˜κ³  개발 ν™˜κ²½κ³Ό W&B ν”Œλž«νΌ κ°„μ˜ μ›ν™œν•œ 연결을 μœ„ν•΄ ν•„μš”ν•œ API ν‚€λ₯Ό μ–»λŠ” 것이 ν¬ν•¨λ©λ‹ˆλ‹€.

λ¨Όμ € μ›Œν¬μŠ€νŽ˜μ΄μŠ€μ—μ„œ Weights & Biases ν™˜κ²½μ„ μ΄ˆκΈ°ν™”ν•©λ‹ˆλ‹€. λ‹€μŒ λͺ…령을 μ‹€ν–‰ν•˜κ³  λ©”μ‹œμ§€μ˜ μ•ˆλ‚΄μ— 따라 μ΄ˆκΈ°ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

초기 SDK μ„€μ •

# Initialize your Weights & Biases environment
import wandb
wandb.login()

Weights & Biases 인증 νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•˜μ—¬ API ν‚€λ₯Ό μƒμ„±ν•˜κ³  κ²€μƒ‰ν•©λ‹ˆλ‹€. 이 ν‚€λ₯Ό μ‚¬μš©ν•˜μ—¬ W&B둜 ν™˜κ²½μ„ μΈμ¦ν•©λ‹ˆλ‹€.

μ‚¬μš©λ²•: ꡐ윑: YOLOv8 Weights & Biases

Weights & Biases 을 μ‚¬μš©ν•˜μ—¬ YOLOv8 λͺ¨λΈ κ΅μœ‘μ— λŒ€ν•œ μ‚¬μš© 지침을 μ‚΄νŽ΄λ³΄κΈ° 전에 Ultralytics μ—μ„œ μ œκ³΅ν•˜λŠ” λ‹€μ–‘ν•œ YOLOv8 λͺ¨λΈμ„ ν™•μΈν•˜μ„Έμš”. μ΄λ ‡κ²Œ ν•˜λ©΄ ν”„λ‘œμ νŠΈ μš”κ΅¬ 사항에 κ°€μž₯ μ ν•©ν•œ λͺ¨λΈμ„ μ„ νƒν•˜λŠ” 데 도움이 λ©λ‹ˆλ‹€.

μ‚¬μš©λ²•: ꡐ윑: YOLOv8 Weights & Biases

import wandb
from wandb.integration.ultralytics import add_wandb_callback

from ultralytics import YOLO

# Step 1: Initialize a Weights & Biases run
wandb.init(project="ultralytics", job_type="training")

# Step 2: Define the YOLOv8 Model and Dataset
model_name = "yolov8n"
dataset_name = "coco8.yaml"
model = YOLO(f"{model_name}.pt")

# Step 3: Add W&B Callback for Ultralytics
add_wandb_callback(model, enable_model_checkpointing=True)

# Step 4: Train and Fine-Tune the Model
model.train(project="ultralytics", data=dataset_name, epochs=5, imgsz=640)

# Step 5: Validate the Model
model.val()

# Step 6: Perform Inference and Log Results
model(["path/to/image1", "path/to/image2"])

# Step 7: Finalize the W&B Run
wandb.finish()

κ°•λ Ή 이해

Let's understand the steps showcased in the usage code snippet above.

  • 1단계: Weights & Biases 싀행을 μ΄ˆκΈ°ν™”ν•©λ‹ˆλ‹€: ν”„λ‘œμ νŠΈ 이름과 μž‘μ—… μœ ν˜•μ„ μ§€μ •ν•˜μ—¬ Weights & Biases 싀행을 μ΄ˆκΈ°ν™”ν•˜μ—¬ μ‹œμž‘ν•©λ‹ˆλ‹€. 이 싀행은 λͺ¨λΈμ˜ ν•™μŠ΅ 및 μœ νš¨μ„± 검사 ν”„λ‘œμ„ΈμŠ€λ₯Ό μΆ”μ ν•˜κ³  κ΄€λ¦¬ν•©λ‹ˆλ‹€.

  • 2단계: YOLOv8 λͺ¨λΈ 및 데이터 집합을 μ •μ˜ν•©λ‹ˆλ‹€: μ‚¬μš©ν•˜λ €λŠ” λͺ¨λΈ λ³€ν˜•κ³Ό 데이터 집합을 μ§€μ •ν•©λ‹ˆλ‹€. 그러면 μ§€μ •λœ λͺ¨λΈ 파일둜 YOLO λͺ¨λΈμ΄ μ΄ˆκΈ°ν™”λ©λ‹ˆλ‹€.

  • 3단계: Ultralytics 에 λŒ€ν•œ Weights & Biases μ½œλ°±μ„ μΆ”κ°€ν•©λ‹ˆλ‹€: 이 λ‹¨κ³„λŠ” νŠΈλ ˆμ΄λ‹ λ©”νŠΈλ¦­κ³Ό μœ νš¨μ„± 검사 κ²°κ³Όλ₯Ό Weights & Biases 에 μžλ™μœΌλ‘œ κΈ°λ‘ν•˜μ—¬ λͺ¨λΈμ˜ μ„±λŠ₯을 μžμ„Ένžˆ λ³Ό 수 μžˆλ„λ‘ ν•˜κΈ° λ•Œλ¬Έμ— 맀우 μ€‘μš”ν•©λ‹ˆλ‹€.

  • 4단계: λͺ¨λΈ ν›ˆλ ¨ 및 λ―Έμ„Έ μ‘°μ •ν•˜κΈ°: μ§€μ •λœ 데이터 μ„ΈνŠΈ, 에포크 수, 이미지 크기둜 λͺ¨λΈ ν•™μŠ΅μ„ μ‹œμž‘ν•©λ‹ˆλ‹€. ν›ˆλ ¨ ν”„λ‘œμ„ΈμŠ€μ—λŠ” 각 에포크가 끝날 λ•Œλ§ˆλ‹€ λ©”νŠΈλ¦­ 및 예츑 λ‘œκΉ…μ΄ ν¬ν•¨λ˜μ–΄ μžˆμ–΄ λͺ¨λΈμ˜ ν•™μŠ΅ 진행 상황을 μ’…ν•©μ μœΌλ‘œ νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • 5단계: λͺ¨λΈ κ²€μ¦ν•˜κΈ°: ν•™μŠ΅μ΄ λλ‚˜λ©΄ λͺ¨λΈμ˜ μœ νš¨μ„±μ„ κ²€μ‚¬ν•©λ‹ˆλ‹€. 이 λ‹¨κ³„λŠ” 보이지 μ•ŠλŠ” 데이터에 λŒ€ν•œ λͺ¨λΈμ˜ μ„±λŠ₯을 ν‰κ°€ν•˜κ³  μΌλ°˜ν™” κ°€λŠ₯성을 보μž₯ν•˜λŠ” 데 맀우 μ€‘μš”ν•©λ‹ˆλ‹€.

  • 6단계: μΆ”λ‘  μˆ˜ν–‰ 및 κ²°κ³Ό κΈ°λ‘ν•˜κΈ°: λͺ¨λΈμ€ μ§€μ •λœ 이미지에 λŒ€ν•΄ μ˜ˆμΈ‘μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ˜ˆμΈ‘μ€ μ‹œκ°μ  μ˜€λ²„λ ˆμ΄ 및 μΈμ‚¬μ΄νŠΈμ™€ ν•¨κ»˜ λŒ€ν™”ν˜• 탐색을 μœ„ν•΄ W&B ν…Œμ΄λΈ”μ— μžλ™μœΌλ‘œ κΈ°λ‘λ©λ‹ˆλ‹€.

  • 7단계: W&B 싀행을 λ§ˆλ¬΄λ¦¬ν•©λ‹ˆλ‹€: 이 λ‹¨κ³„μ—μ„œλŠ” 데이터 λ‘œκΉ…μ„ μ’…λ£Œν•˜κ³  λͺ¨λΈ ν•™μŠ΅ 및 검증 ν”„λ‘œμ„ΈμŠ€μ˜ μ΅œμ’… μƒνƒœλ₯Ό W&B λŒ€μ‹œλ³΄λ“œμ— μ €μž₯ν•©λ‹ˆλ‹€.

좜λ ₯ μ΄ν•΄ν•˜κΈ°

μœ„μ˜ μ‚¬μš© μ½”λ“œ μŠ€λ‹ˆνŽ«μ„ μ‹€ν–‰ν•˜λ©΄ λ‹€μŒκ³Ό 같은 μ£Όμš” 좜λ ₯을 κΈ°λŒ€ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

  • ꡐ윑 κ³Όμ •μ˜ μ‹œμž‘μ„ λ‚˜νƒ€λ‚΄λŠ” 고유 IDκ°€ μžˆλŠ” μƒˆ 싀행을 μ„€μ •ν•©λ‹ˆλ‹€.
  • A concise summary of the model's structure, including the number of layers and parameters.
  • 각 ν›ˆλ ¨ κΈ°κ°„ λ™μ•ˆ λ°•μŠ€ 손싀, cls 손싀, dfl 손싀, 정확도, 리콜, 맡 점수 λ“± μ€‘μš”ν•œ λ©”νŠΈλ¦­μ„ μ •κΈ°μ μœΌλ‘œ μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€.
  • ν•™μŠ΅μ΄ λλ‚˜λ©΄ λͺ¨λΈμ˜ μΆ”λ‘  속도와 μ „λ°˜μ μΈ 정확도 μ§€ν‘œλ₯Ό ν¬ν•¨ν•œ μ„ΈλΆ€ μ§€ν‘œκ°€ ν‘œμ‹œλ©λ‹ˆλ‹€.
  • 둜컬 둜그 파일 μœ„μΉ˜μ— λŒ€ν•œ 정보와 ν•¨κ»˜ ꡐ윑 ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ 심측 뢄석 및 μ‹œκ°ν™”λ₯Ό μœ„ν•œ Weights & Biases λŒ€μ‹œλ³΄λ“œμ— λŒ€ν•œ λ§ν¬μž…λ‹ˆλ‹€.

Weights & Biases λŒ€μ‹œλ³΄λ“œ 보기

μ‚¬μš© μ½”λ“œ μŠ€λ‹ˆνŽ«μ„ μ‹€ν–‰ν•œ ν›„ 좜λ ₯에 제곡된 링크λ₯Ό 톡해 Weights & Biases (W&B) λŒ€μ‹œλ³΄λ“œμ— μ•‘μ„ΈμŠ€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 λŒ€μ‹œλ³΄λ“œλŠ” YOLOv8 을 톡해 λͺ¨λΈμ˜ νŠΈλ ˆμ΄λ‹ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ’…ν•©μ μœΌλ‘œ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

Weights & Biases λŒ€μ‹œλ³΄λ“œμ˜ μ£Όμš” κΈ°λŠ₯

  • μ‹€μ‹œκ°„ μ§€ν‘œ 좔적: ν•™μŠ΅ 쀑에 손싀, 정확도, μœ νš¨μ„± 검사 μ μˆ˜μ™€ 같은 λ©”νŠΈλ¦­μ„ κ΄€μ°°ν•˜μ—¬ λͺ¨λΈ νŠœλ‹μ„ μœ„ν•œ 즉각적인 μΈμ‚¬μ΄νŠΈλ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.

    <div style="text-align:center;"><blockquote class="imgur-embed-pub" lang="en" data-id="a/TB76U9O"><a href="//imgur.com/D6NVnmN">Take a look at how the experiments are tracked using Weights & Biases.</a></blockquote></div><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>
    
  • ν•˜μ΄νΌνŒŒλΌλ―Έν„° μ΅œμ ν™”: Weights & Biases λŠ” ν•™μŠ΅ 속도, 배치 크기 λ“±κ³Ό 같은 μ€‘μš” νŒŒλΌλ―Έν„°λ₯Ό λ―Έμ„Έ μ‘°μ •ν•˜μ—¬ YOLOv8 의 μ„±λŠ₯을 ν–₯μƒμ‹œν‚€λŠ” 데 도움이 λ©λ‹ˆλ‹€.

  • 비ꡐ 뢄석: 이 ν”Œλž«νΌμ—μ„œλŠ” λ‹€μ–‘ν•œ λͺ¨λΈ κ΅¬μ„±μ˜ 영ν–₯을 ν‰κ°€ν•˜λŠ” 데 ν•„μˆ˜μ μΈ μ—¬λŸ¬ ν›ˆλ ¨ 싀행을 λ‚˜λž€νžˆ 비ꡐ할 수 μžˆμŠ΅λ‹ˆλ‹€.

  • ν›ˆλ ¨ 진행 상황 μ‹œκ°ν™”: μ£Όμš” λ©”νŠΈλ¦­μ˜ κ·Έλž˜ν”½ ν‘œν˜„μ„ 톡해 μ—¬λŸ¬ μ‹œλŒ€μ— 걸친 λͺ¨λΈμ˜ μ„±λŠ₯을 μ§κ΄€μ μœΌλ‘œ νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

    <div style="text-align:center;"><blockquote class="imgur-embed-pub" lang="en" data-id="a/kU5h7W4" data-context="false" ><a href="//imgur.com/a/kU5h7W4">Take a look at how Weights & Biases helps you visualize validation results.</a></blockquote></div><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>
    
  • λ¦¬μ†ŒμŠ€ λͺ¨λ‹ˆν„°λ§: CPU, GPU, λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ„ μΆ”μ ν•˜μ—¬ ꡐ윑 κ³Όμ •μ˜ νš¨μœ¨μ„±μ„ μ΅œμ ν™”ν•˜μ„Έμš”.

  • λͺ¨λΈ μ•„ν‹°νŒ©νŠΈ 관리: λͺ¨λΈ μ²΄ν¬ν¬μΈνŠΈμ— μ•‘μ„ΈμŠ€ν•˜κ³  κ³΅μœ ν•˜μ—¬ μ†μ‰½κ²Œ λ°°ν¬ν•˜κ³  ν˜‘μ—…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • Viewing Inference Results with Image Overlay: Visualize the prediction results on images using interactive overlays in Weights & Biases, providing a clear and detailed view of model performance on real-world data. For more detailed information on Weights & Biases' image overlay capabilities, check out this link.

    <div style="text-align:center;"><blockquote class="imgur-embed-pub" lang="en" data-id="a/UTSiufs" data-context="false" ><a href="//imgur.com/a/UTSiufs">Take a look at how Weights & Biases' image overlays helps visualize model inferences.</a></blockquote></div><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>
    

μ΄λŸ¬ν•œ κΈ°λŠ₯을 μ‚¬μš©ν•˜λ©΄ YOLOv8 λͺ¨λΈμ˜ κ΅μœ‘μ„ 효과적으둜 좔적, 뢄석 및 μ΅œμ ν™”ν•˜μ—¬ μ΅œμƒμ˜ μ„±λŠ₯κ³Ό νš¨μœ¨μ„±μ„ 보μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μš”μ•½

This guide helped you explore Ultralytics' YOLOv8 integration with Weights & Biases. It illustrates the ability of this integration to efficiently track and visualize model training and prediction results.

μ‚¬μš©λ²•μ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ Weights & Biases' 곡식 λ¬Έμ„œλ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

λ˜ν•œ Ultralytics 톡합 κ°€μ΄λ“œ νŽ˜μ΄μ§€μ—μ„œ λ‹€μ–‘ν•œ ν₯미둜운 톡합 κΈ°λŠ₯에 λŒ€ν•΄ μžμ„Ένžˆ μ•Œμ•„λ³΄μ„Έμš”.



Created 2023-12-28, Updated 2024-06-10
Authors: glenn-jocher (8), IvorZhu331 (1), abirami-vina (1)

λŒ“κΈ€