์ฝ˜ํ…์ธ ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ 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

import wandb
from wandb.integration.ultralytics import add_wandb_callback

from ultralytics import YOLO

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

# Load a YOLO model
model = YOLO("yolov8n.pt")

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

# Train and Fine-Tune the Model
model.train(project="ultralytics", data="coco8.yaml", epochs=5, imgsz=640)

# Validate the Model
model.val()

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

# 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 ์†์‹ค, ์ •ํ™•๋„, ๋ฆฌ์ฝœ, ๋งต ์ ์ˆ˜ ๋“ฑ ์ค‘์š”ํ•œ ๋ฉ”ํŠธ๋ฆญ์„ ์ •๊ธฐ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
  • ํ•™์Šต์ด ๋๋‚˜๋ฉด ๋ชจ๋ธ์˜ ์ถ”๋ก  ์†๋„์™€ ์ „๋ฐ˜์ ์ธ ์ •ํ™•๋„ ์ง€ํ‘œ๋ฅผ ํฌํ•จํ•œ ์„ธ๋ถ€ ์ง€ํ‘œ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ๋กœ์ปฌ ๋กœ๊ทธ ํŒŒ์ผ ์œ„์น˜์— ๋Œ€ํ•œ ์ •๋ณด์™€ ํ•จ๊ป˜ ๊ต์œก ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์‹ฌ์ธต ๋ถ„์„ ๋ฐ ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•œ Weights & Biases ๋Œ€์‹œ๋ณด๋“œ์— ๋Œ€ํ•œ ๋งํฌ์ž…๋‹ˆ๋‹ค.

Weights & Biases ๋Œ€์‹œ๋ณด๋“œ ๋ณด๊ธฐ

์‚ฌ์šฉ ์ฝ”๋“œ ์Šค๋‹ˆํŽซ์„ ์‹คํ–‰ํ•œ ํ›„ ์ถœ๋ ฅ์— ์ œ๊ณต๋œ ๋งํฌ๋ฅผ ํ†ตํ•ด Weights & Biases (W&B) ๋Œ€์‹œ๋ณด๋“œ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋Œ€์‹œ๋ณด๋“œ๋Š” YOLOv8 ์„ ํ†ตํ•ด ๋ชจ๋ธ์˜ ํŠธ๋ ˆ์ด๋‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…ํ•ฉ์ ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Weights & Biases ๋Œ€์‹œ๋ณด๋“œ์˜ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ์‹ค์‹œ๊ฐ„ ์ง€ํ‘œ ์ถ”์ : ํ›ˆ๋ จ ์ค‘์— ์†์‹ค, ์ •ํ™•๋„ ๋ฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์ ์ˆ˜์™€ ๊ฐ™์€ ๋ฉ”ํŠธ๋ฆญ์„ ๊ด€์ฐฐํ•˜์—ฌ ๋ชจ๋ธ ์กฐ์ •์„ ์œ„ํ•œ ์ฆ‰๊ฐ์ ์ธ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹คํ—˜์ด ์–ด๋–ป๊ฒŒ ์ถ”์ ๋˜๋Š”์ง€ Weights & Biases ์—์„œ ํ™•์ธํ•˜์„ธ์š”.

  • ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์ตœ์ ํ™”: Weights & Biases ๋Š” ํ•™์Šต ์†๋„, ๋ฐฐ์น˜ ํฌ๊ธฐ ๋“ฑ๊ณผ ๊ฐ™์€ ์ค‘์š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฏธ์„ธ ์กฐ์ •ํ•˜์—ฌ YOLOv8 ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

  • ๋น„๊ต ๋ถ„์„: ์ด ํ”Œ๋žซํผ์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๋ชจ๋ธ ๊ตฌ์„ฑ์˜ ์˜ํ–ฅ์„ ํ‰๊ฐ€ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ธ ์—ฌ๋Ÿฌ ํ›ˆ๋ จ ์‹คํ–‰์„ ๋‚˜๋ž€ํžˆ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ›ˆ๋ จ ์ง„ํ–‰ ์ƒํ™ฉ ์‹œ๊ฐํ™”: ์ฃผ์š” ๋ฉ”ํŠธ๋ฆญ์˜ ๊ทธ๋ž˜ํ”ฝ ํ‘œํ˜„์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๊ธฐ๊ฐ„์— ๊ฑธ์นœ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์„ ์ง๊ด€์ ์œผ๋กœ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Weights & Biases ์—์„œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๊ฒฐ๊ณผ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ™•์ธํ•˜์„ธ์š”.

  • ๋ฆฌ์†Œ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง: CPU , GPU, ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ถ”์ ํ•˜์—ฌ ๊ต์œก ๊ณผ์ •์˜ ํšจ์œจ์„ฑ์„ ์ตœ์ ํ™”ํ•˜์„ธ์š”.

  • ๋ชจ๋ธ ์•„ํ‹ฐํŒฉํŠธ ๊ด€๋ฆฌ: ๋ชจ๋ธ ์ฒดํฌํฌ์ธํŠธ์— ์•ก์„ธ์Šคํ•˜๊ณ  ๊ณต์œ ํ•˜์—ฌ ์†์‰ฝ๊ฒŒ ๋ฐฐํฌํ•˜๊ณ  ํ˜‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ด๋ฏธ์ง€ ์˜ค๋ฒ„๋ ˆ์ด๋กœ ์ถ”๋ก  ๊ฒฐ๊ณผ ๋ณด๊ธฐ: Weights & Biases ์—์„œ ๋Œ€ํ™”ํ˜• ์˜ค๋ฒ„๋ ˆ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์˜ˆ์ธก ๊ฒฐ๊ณผ๋ฅผ ์‹œ๊ฐํ™”ํ•˜์—ฌ ์‹ค์ œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ชจ๋ธ ์„ฑ๋Šฅ์„ ๋ช…ํ™•ํ•˜๊ณ  ์ƒ์„ธํ•˜๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Weights & Biases ์˜ ์ด๋ฏธ์ง€ ์˜ค๋ฒ„๋ ˆ์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ๋งํฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. Weights & Biases ' ์ด๋ฏธ์ง€ ์˜ค๋ฒ„๋ ˆ์ด๊ฐ€ ๋ชจ๋ธ ์ถ”๋ก ์„ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฐ ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋˜๋Š”์ง€ ์•Œ์•„๋ณด์„ธ์š”.

์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด YOLOv8 ๋ชจ๋ธ์˜ ๊ต์œก์„ ํšจ๊ณผ์ ์œผ๋กœ ์ถ”์ , ๋ถ„์„ ๋ฐ ์ตœ์ ํ™”ํ•˜์—ฌ ์ตœ์ƒ์˜ ์„ฑ๋Šฅ๊ณผ ํšจ์œจ์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”์•ฝ

์ด ๊ฐ€์ด๋“œ๋Š” Ultralytics' YOLOv8 ์™€ Weights & Biases ์˜ ํ†ตํ•ฉ์„ ์‚ดํŽด๋ณด๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์ด ํ†ตํ•ฉ์„ ํ†ตํ•ด ๋ชจ๋ธ ํ•™์Šต ๋ฐ ์˜ˆ์ธก ๊ฒฐ๊ณผ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ถ”์ ํ•˜๊ณ  ์‹œ๊ฐํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Weights & Biases' ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋˜ํ•œ Ultralytics ํ†ตํ•ฉ ๊ฐ€์ด๋“œ ํŽ˜์ด์ง€์—์„œ ๋‹ค์–‘ํ•œ ํฅ๋ฏธ๋กœ์šด ํ†ตํ•ฉ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

YOLOv8 ๋ฐ Weights & Biases ์— ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋Š” ์–ด๋–ป๊ฒŒ ์„ค์น˜ํ•˜๋‚˜์š”?

YOLOv8 ๋ฐ Weights & Biases ์— ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์—ด๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

pip install --upgrade ultralytics==8.0.186 wandb

์„ค์น˜ ๋‹จ๊ณ„์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์•ˆ๋‚ด๋Š” YOLOv8 ์„ค์น˜ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ ๊ฐ€์ด๋“œ์—์„œ ๋ฌธ์ œ ํ•ด๊ฒฐ ํŒ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Ultralytics YOLOv8 ๊ณผ Weights & Biases ๋ฅผ ํ†ตํ•ฉํ•˜๋ฉด ์–ด๋–ค ์ด์ ์ด ์žˆ๋‚˜์š”?

Ultralytics YOLOv8 ๊ณผ Weights & Biases ๋ฅผ ํ†ตํ•ฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค:

  • ์‹ค์‹œ๊ฐ„ ์ง€ํ‘œ ์ถ”์ : ๊ต์œก ์ค‘ ์ง€ํ‘œ ๋ณ€ํ™”๋ฅผ ๊ด€์ฐฐํ•˜์—ฌ ์ฆ‰๊ฐ์ ์ธ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์ตœ์ ํ™”: ํ•™์Šต ์†๋„, ๋ฐฐ์น˜ ํฌ๊ธฐ ๋“ฑ์„ ๋ฏธ์„ธ ์กฐ์ •ํ•˜์—ฌ ๋ชจ๋ธ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋น„๊ต ๋ถ„์„: ๋‹ค์–‘ํ•œ ํ›ˆ๋ จ ์‹คํ–‰์„ ๋‚˜๋ž€ํžˆ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฆฌ์†Œ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง: CPU , GPU, ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ถ”์ ํ•˜์„ธ์š”.
  • ๋ชจ๋ธ ์•„ํ‹ฐํŒฉํŠธ ๊ด€๋ฆฌ: ๋ชจ๋ธ ์ฒดํฌํฌ์ธํŠธ์— ์‰ฝ๊ฒŒ ์•ก์„ธ์Šคํ•˜๊ณ  ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์˜ Weights & Biases ๋Œ€์‹œ๋ณด๋“œ ์„น์…˜์—์„œ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.

YOLOv8 ๊ต์œก์„ ์œ„ํ•ด Weights & Biases ์„ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?

YOLOv8 ๊ต์œก์„ ์œ„ํ•ด Weights & Biases ์„ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”:

  1. ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ Weights & Biases ์„ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค:
    import wandb
    wandb.login()
    
  2. Weights & Biases ์›น์‚ฌ์ดํŠธ์—์„œ API ํ‚ค๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  3. API ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ์„ค์ • ์ง€์นจ์€ ์œ„์˜ ๊ตฌ์„ฑํ•˜๊ธฐ( Weights & Biases ) ์„น์…˜์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Weights & Biases ์„ ์‚ฌ์šฉํ•˜์—ฌ YOLOv8 ๋ชจ๋ธ์„ ํ›ˆ๋ จํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜๋‚˜์š”?

Weights & Biases ์„ ์‚ฌ์šฉํ•˜์—ฌ YOLOv8 ๋ชจ๋ธ์„ ํ•™์Šตํ•˜๋ ค๋ฉด Python ์Šคํฌ๋ฆฝํŠธ์—์„œ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:

import wandb
from wandb.integration.ultralytics import add_wandb_callback

from ultralytics import YOLO

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

# Load a YOLO model
model = YOLO("yolov8n.pt")

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

# Train and Fine-Tune the Model
model.train(project="ultralytics", data="coco8.yaml", epochs=5, imgsz=640)

# Validate the Model
model.val()

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

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

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” Weights & Biases ์„ ์ดˆ๊ธฐํ™”ํ•˜๊ณ , ๋ชจ๋ธ์„ ์„ค์ •ํ•˜๊ณ , ํ•™์Šต์‹œํ‚ค๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์œ„์˜ ์‚ฌ์šฉ๋ฒ• ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค๋ฅธ ํ”Œ๋žซํผ๋ณด๋‹ค Weights & Biases ๋Œ€์‹  Ultralytics YOLOv8 ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

Ultralytics YOLOv8 ์™€ ํ†ตํ•ฉ๋œ Weights & Biases ๋Š” ๋ช‡ ๊ฐ€์ง€ ๊ณ ์œ ํ•œ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  • ๋†’์€ ํšจ์œจ์„ฑ: ๊ต์œก ๋ฉ”ํŠธ๋ฆญ์˜ ์‹ค์‹œ๊ฐ„ ์ถ”์  ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™”.
  • ํ™•์žฅ์„ฑ: ๊ฐ•๋ ฅํ•œ ๋ฆฌ์†Œ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ํ™œ์šฉ ๋„๊ตฌ๋กœ ๋Œ€๊ทœ๋ชจ ๊ต์œก ์ž‘์—…์„ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒํ˜ธ ์ž‘์šฉ: ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋ฐ ๋ชจ๋ธ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ๋Œ€ํ™”ํ˜• UI.
  • ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฐ ์ง€์›: ๊ฐ•๋ ฅํ•œ ํ†ตํ•ฉ ๋ฌธ์„œ์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ง€์›, ์œ ์—ฐํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ๋ฐ ๊ฐœ์„  ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Comet ๋ฐ ClearML ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ํ”Œ๋žซํผ๊ณผ์˜ ๋น„๊ต๋Š” Ultralytics ํ†ตํ•ฉ์„ ์ฐธ์กฐํ•˜์„ธ์š”.



์ƒ์„ฑ 2023-12-28, ์—…๋ฐ์ดํŠธ 2024-07-05
์ž‘์„ฑ์ž: glenn-jocher (10), ambitious-octopus (1), IvorZhu331 (1), abirami-vina (1)

๋Œ“๊ธ€