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

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

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

이 κ°€μ΄λ“œμ—μ„œλŠ” ν–₯μƒλœ μ‹€ν—˜ 좔적, λͺ¨λΈ 체크포인트, λͺ¨λΈ μ„±λŠ₯ μ‹œκ°ν™”λ₯Ό μœ„ν•œ Ultralytics YOLOv8 κ³Ό Weights & Biases' 톡합을 μ†Œκ°œν•©λ‹ˆλ‹€. λ˜ν•œ Weights & Biases' λŒ€ν™”ν˜• κΈ°λŠ₯을 μ‚¬μš©ν•˜μ—¬ 톡합 μ„€μ •, ν›ˆλ ¨, λ―Έμ„Έ μ‘°μ • 및 κ²°κ³Ό μ‹œκ°ν™”μ— λŒ€ν•œ 지침도 ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

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

from ultralytics import YOLO
from wandb.integration.ultralytics import add_wandb_callback
import wandb

# 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 = "coco128.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()

κ°•λ Ή 이해

μœ„μ˜ μ‚¬μš© μ½”λ“œ μŠ€λ‹ˆνŽ«μ— ν‘œμ‹œλœ 단계λ₯Ό 이해해 λ³΄κ² μŠ΅λ‹ˆλ‹€.

  • 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κ°€ μžˆλŠ” μƒˆ λŸ¬λ‹μ„ μ„€μ •ν•©λ‹ˆλ‹€.
  • λ ˆμ΄μ–΄ μˆ˜μ™€ νŒŒλΌλ―Έν„°λ₯Ό ν¬ν•¨ν•œ λͺ¨λΈ ꡬ쑰에 λŒ€ν•œ κ°„κ²°ν•œ μš”μ•½μž…λ‹ˆλ‹€.
  • 각 ν›ˆλ ¨ κΈ°κ°„ λ™μ•ˆ λ°•μŠ€ 손싀, cls 손싀, dfl 손싀, 정밀도, 리콜 및 mAP μ μˆ˜μ™€ 같은 μ€‘μš”ν•œ μ§€ν‘œμ— λŒ€ν•œ 정기적인 μ—…λ°μ΄νŠΈκ°€ μ œκ³΅λ©λ‹ˆλ‹€.
  • ν•™μŠ΅μ΄ λλ‚˜λ©΄ λͺ¨λΈμ˜ μΆ”λ‘  속도와 μ „λ°˜μ μΈ 정확도 μ§€ν‘œλ₯Ό ν¬ν•¨ν•œ μ„ΈλΆ€ μ§€ν‘œκ°€ ν‘œμ‹œλ©λ‹ˆλ‹€.
  • 둜컬 둜그 파일 μœ„μΉ˜μ— λŒ€ν•œ 정보와 ν•¨κ»˜ ꡐ윑 ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ 심측 뢄석 및 μ‹œκ°ν™”λ₯Ό μœ„ν•œ Weights & Biases λŒ€μ‹œλ³΄λ“œμ— λŒ€ν•œ λ§ν¬μž…λ‹ˆλ‹€.

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

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

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

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

  • ν•˜μ΄νΌνŒŒλΌλ―Έν„° μ΅œμ ν™”: Weights & Biases λŠ” ν•™μŠ΅ 속도, 배치 크기 λ“±κ³Ό 같은 μ€‘μš”ν•œ νŒŒλΌλ―Έν„°λ₯Ό λ―Έμ„Έ μ‘°μ •ν•˜μ—¬ YOLOv8 의 μ„±λŠ₯을 ν–₯μƒμ‹œν‚€λŠ” 데 도움이 λ©λ‹ˆλ‹€.

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

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

  • λ¦¬μ†ŒμŠ€ λͺ¨λ‹ˆν„°λ§: CPU, GPU, λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ„ μΆ”μ ν•˜μ—¬ ꡐ윑 κ³Όμ •μ˜ νš¨μœ¨μ„±μ„ μ΅œμ ν™”ν•˜μ„Έμš”.

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

  • 이미지 μ˜€λ²„λ ˆμ΄λ‘œ μΆ”λ‘  κ²°κ³Ό 보기: Weights & Biases μ—μ„œ λŒ€ν™”ν˜• μ˜€λ²„λ ˆμ΄λ₯Ό μ‚¬μš©ν•˜μ—¬ 이미지에 예츑 κ²°κ³Όλ₯Ό μ‹œκ°ν™”ν•˜λ©΄ μ‹€μ œ 데이터에 λŒ€ν•œ λͺ¨λΈ μ„±λŠ₯을 λͺ…ν™•ν•˜κ³  μƒμ„Έν•˜κ²Œ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. Weights & Biases 의 이미지 μ˜€λ²„λ ˆμ΄ κΈ°λŠ₯에 λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ 이 링크λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

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

μš”μ•½

이 κ°€μ΄λ“œλŠ” Ultralytics' YOLOv8 κ³Ό Weights & Biases 의 톡합을 μ‚΄νŽ΄λ³΄λŠ” 데 도움이 λ©λ‹ˆλ‹€. 이 톡합을 톡해 λͺ¨λΈ ν•™μŠ΅ 및 예츑 κ²°κ³Όλ₯Ό 효율적으둜 μΆ”μ ν•˜κ³  μ‹œκ°ν™”ν•  수 μžˆλŠ” κΈ°λŠ₯을 μ„€λͺ…ν•©λ‹ˆλ‹€.

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

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



생성됨 2023-12-28, μ—…λ°μ΄νŠΈλ¨ 2024-01-15
μž‘μ„±μž: glenn-jocher (3), abirami-vina (1)

λŒ“κΈ€