๋ค์์ ์ฌ์ฉํ ๋ชจ๋ธ ์ ํจ์ฑ ๊ฒ์ฌ Ultralytics YOLO
์๊ฐ
๊ฒ์ฆ์ ๋จธ์ ๋ฌ๋ ํ์ดํ๋ผ์ธ์์ ์ค์ํ ๋จ๊ณ๋ก, ํ์ต๋ ๋ชจ๋ธ์ ํ์ง์ ํ๊ฐํ ์ ์๊ฒ ํด์ค๋๋ค. Ultralytics YOLOv8 ์ Val ๋ชจ๋๋ ๊ฐ์ฒด ๊ฐ์ง ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํ๊ฐํ๊ธฐ ์ํ ๊ฐ๋ ฅํ ๋๊ตฌ์ ๋ฉํธ๋ฆญ์ ์ ๊ณตํฉ๋๋ค. ์ด ๊ฐ์ด๋๋ Val ๋ชจ๋๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ์ ํ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋๋ ์๋ฒฝํ ๋ฆฌ์์ค์ ๋๋ค.
Watch: Ultralytics ๋ชจ๋ ํํ ๋ฆฌ์ผ: ์ ํจ์ฑ ๊ฒ์ฌ
์ Ultralytics YOLO ์ผ๋ก ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํด์ผ ํ๋์?
YOLOv8 ์ Val ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ๋ฆฌํ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ ๋ฐ๋: mAP50, mAP75, mAP50-95์ ๊ฐ์ ์ ํํ ์งํ๋ฅผ ํตํด ๋ชจ๋ธ์ ์ข ํฉ์ ์ผ๋ก ํ๊ฐํ ์ ์์ต๋๋ค.
- ํธ๋ฆฌํจ: ๊ต์ก ์ค์ ์ ๊ธฐ์ตํ๋ ๊ธฐ๋ณธ ์ ๊ณต ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ์ ํจ์ฑ ๊ฒ์ฌ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํฉ๋๋ค.
- ์ ์ฐ์ฑ: ๋์ผํ๊ฑฐ๋ ๋ค๋ฅธ ๋ฐ์ดํฐ ์ธํธ์ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ก ๋ชจ๋ธ์ ๊ฒ์ฆํ์ธ์.
- ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋: ์ ํจ์ฑ ๊ฒ์ฌ ๋ฉํธ๋ฆญ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ๋ฏธ์ธ ์กฐ์ ํ์ฌ ์ฑ๋ฅ์ ๊ฐ์ ํ ์ ์์ต๋๋ค.
Val ๋ชจ๋์ ์ฃผ์ ๊ธฐ๋ฅ
๋ค์์ YOLOv8 ์ Val ๋ชจ๋์์ ์ ๊ณตํ๋ ์ฃผ๋ชฉํ ๋งํ ๊ธฐ๋ฅ์ ๋๋ค:
- ์๋ํ๋ ์ค์ : ๋ชจ๋ธ์ด ํ์ต ๊ตฌ์ฑ์ ๊ธฐ์ตํ์ฌ ๊ฐํธํ๊ฒ ๊ฒ์ฆํ ์ ์์ต๋๋ค.
- ๋ฉํฐ ๋ฉํธ๋ฆญ ์ง์: ๋ค์ํ ์ ํ๋ ์งํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ธ์ ํ๊ฐํ ์ ์์ต๋๋ค.
- CLI ๋ฐ Python API: ์ ํจ์ฑ ๊ฒ์ฌ์ ๋ํ ์ ํธ๋์ ๋ฐ๋ผ ๋ช ๋ น์ค ์ธํฐํ์ด์ค ๋๋ Python API ์ค์์ ์ ํํฉ๋๋ค.
- ๋ฐ์ดํฐ ํธํ์ฑ: ํ์ต ๋จ๊ณ์์ ์ฌ์ฉ๋ ๋ฐ์ดํฐ ์ธํธ๋ ๋ฌผ๋ก ์ฌ์ฉ์ ์ง์ ๋ฐ์ดํฐ ์ธํธ์๋ ์ํํ๊ฒ ์๋ํฉ๋๋ค.
ํ
- YOLOv8 ๋ชจ๋ธ์ ํ์ต ์ค์ ์ ์๋์ผ๋ก ๊ธฐ์ตํ๋ฏ๋ก ๋์ผํ ์ด๋ฏธ์ง ํฌ๊ธฐ์ ์๋ณธ ๋ฐ์ดํฐ ์ธํธ์์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๋ชจ๋ธ์ ์ฝ๊ฒ ๊ฒ์ฆํ ์ ์์ต๋๋ค.
yolo val model=yolov8n.pt
๋๋model('yolov8n.pt').val()
์ฌ์ฉ ์
COCO8 ๋ฐ์ดํฐ ์ธํธ์์ ํ์ต๋ YOLOv8n ๋ชจ๋ธ ์ ํ๋๋ฅผ ๊ฒ์ฆํฉ๋๋ค. ์ธ์๋ฅผ ์ ๋ฌํ ํ์๊ฐ ์์ต๋๋ค. model
๊ต์ก ์ ์ง data
๋ฐ ์ธ์๋ฅผ ๋ชจ๋ธ ์์ฑ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ด๋ณด๋ด๊ธฐ ์ธ์์ ์ ์ฒด ๋ชฉ๋ก์ ์๋์ ์ธ์ ์น์
์ ์ฐธ์กฐํ์ธ์.
์
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Validate the model
metrics = model.val() # no arguments needed, dataset and settings remembered
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # a list contains map50-95 of each category
YOLO ๋ชจ๋ธ ์ ํจ์ฑ ๊ฒ์ฌ์ ๋ํ ์ธ์
YOLO ๋ชจ๋ธ์ ๊ฒ์ฆํ ๋ ์ฌ๋ฌ ์ธ์๋ฅผ ๋ฏธ์ธ ์กฐ์ ํ์ฌ ํ๊ฐ ํ๋ก์ธ์ค๋ฅผ ์ต์ ํํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ธ์๋ ์ ๋ ฅ ์ด๋ฏธ์ง ํฌ๊ธฐ, ์ผ๊ด ์ฒ๋ฆฌ ๋ฐ ์ฑ๋ฅ ์๊ณ๊ฐ๊ณผ ๊ฐ์ ์ธก๋ฉด์ ์ ์ดํฉ๋๋ค. ๋ค์์ ์ ํจ์ฑ ๊ฒ์ฌ ์ค์ ์ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉ์ ์ง์ ํ๋ ๋ฐ ๋์์ด ๋๋ ๊ฐ ์ธ์์ ๋ํ ์์ธํ ๋ถ์์ ๋๋ค.
์ธ์ | ์ ํ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช |
---|---|---|---|
data |
str |
None |
๋ฐ์ดํฐ ์ธํธ ๊ตฌ์ฑ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํฉ๋๋ค(์:, coco8.yaml ). ์ด ํ์ผ์๋ ์ ํจ์ฑ ๊ฒ์ฌ ๋ฐ์ดํฐ ๊ฒฝ๋ก, ํด๋์ค ์ด๋ฆ ๋ฐ ํด๋์ค ์๊ฐ ํฌํจ๋ฉ๋๋ค. |
imgsz |
int |
640 |
์ ๋ ฅ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ฅผ ์ ์ํฉ๋๋ค. ๋ชจ๋ ์ด๋ฏธ์ง๋ ์ฒ๋ฆฌํ๊ธฐ ์ ์ ์ด ํฌ๊ธฐ๋ก ํฌ๊ธฐ๊ฐ ์กฐ์ ๋ฉ๋๋ค. |
batch |
int |
16 |
๋ฐฐ์น๋น ์ด๋ฏธ์ง ์๋ฅผ ์ค์ ํฉ๋๋ค. ์ฌ์ฉ -1 ๋ฅผ ์ค์ ํ๋ฉด GPU ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ฉ์ฑ์ ๋ฐ๋ผ ์๋์ผ๋ก ์กฐ์ ๋ฉ๋๋ค. |
save_json |
bool |
False |
๋ง์ฝ True ๋ฅผ ํด๋ฆญํ๋ฉด ์ถ๊ฐ ๋ถ์ ๋๋ ๋ค๋ฅธ ๋๊ตฌ์์ ํตํฉ์ ์ํด ๊ฒฐ๊ณผ๋ฅผ JSON ํ์ผ์ ์ ์ฅํฉ๋๋ค. |
save_hybrid |
bool |
False |
๋ง์ฝ True ๋ฅผ ํด๋ฆญํ๋ฉด ์๋ ์ฃผ์๊ณผ ์ถ๊ฐ ๋ชจ๋ธ ์์ธก์ ๊ฒฐํฉํ ํ์ด๋ธ๋ฆฌ๋ ๋ฒ์ ์ ๋ ์ด๋ธ์ด ์ ์ฅ๋ฉ๋๋ค. |
conf |
float |
0.001 |
ํ์ง์ ๋ํ ์ต์ ์ ๋ขฐ๋ ์๊ณ๊ฐ์ ์ค์ ํฉ๋๋ค. ์ด ์๊ณ๊ฐ๋ณด๋ค ๋ฎ์ ์ ๋ขฐ๋๋ฅผ ๊ฐ์ง ํ์ง๋ ์ญ์ ๋ฉ๋๋ค. |
iou |
float |
0.6 |
NMS(๋น์ต๋ ์ต์ )์ ๋ํ IoU(๊ต์ฐจ์ ์ด๊ณผ ์ฐํฉ) ์๊ณ๊ฐ์ ์ค์ ํฉ๋๋ค. ์ค๋ณต ํ์ง๋ฅผ ์ค์ด๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. |
max_det |
int |
300 |
์ด๋ฏธ์ง๋น ์ต๋ ๊ฐ์ง ํ์๋ฅผ ์ ํํฉ๋๋ค. ๊ณผ๋ํ ๊ฐ์ง๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฐ์ง๋ ์ฅ๋ฉด์์ ์ ์ฉํฉ๋๋ค. |
half |
bool |
True |
๋ฐ์ ๋ฐ๋(FP16) ์ฐ์ฐ์ด ๊ฐ๋ฅํ์ฌ ์ ํ๋์ ๋ฏธ์น๋ ์ํฅ์ ์ต์ํํ๋ฉด์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์ด๊ณ ์ ์ฌ์ ์ผ๋ก ์๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค. |
device |
str |
None |
์ ํจ์ฑ ๊ฒ์ฌํ ์ฅ์น๋ฅผ ์ง์ ํฉ๋๋ค(cpu , cuda:0 ๋ฑ). CPU ๋๋ GPU ๋ฆฌ์์ค๋ฅผ ์ ์ฐํ๊ฒ ํ์ฉํ ์ ์์ต๋๋ค. |
dnn |
bool |
False |
๋ง์ฝ True ๋ ONNX ๋ชจ๋ธ ์ถ๋ก ์ OpenCV DNN ๋ชจ๋์ ์ฌ์ฉํ์ฌ PyTorch ์ถ๋ก ๋ฐฉ๋ฒ์ ๋์์ ์ ๊ณตํฉ๋๋ค. |
plots |
bool |
False |
๋ก ์ค์ ํ ๊ฒฝ์ฐ True ๋ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ์๊ฐ์ ์ผ๋ก ํ๊ฐํ ์ ์๋๋ก ์ค์ธก๊ฐ๊ณผ ์์ธก๊ฐ์ ๋น๊ตํ ํ๋กฏ์ ์์ฑํ๊ณ ์ ์ฅํฉ๋๋ค. |
rect |
bool |
False |
๋ง์ฝ True ๋ ์ผ๊ด ์ฒ๋ฆฌ์ ์ง์ฌ๊ฐํ ์ถ๋ก ์ ์ฌ์ฉํ์ฌ ํจ๋ฉ์ ์ค์ด๊ณ ์ ์ฌ์ ์ผ๋ก ์๋์ ํจ์จ์ฑ์ ๋์
๋๋ค. |
split |
str |
val |
์ ํจ์ฑ ๊ฒ์ฌ์ ์ฌ์ฉํ ๋ฐ์ดํฐ ์ธํธ ๋ถํ ์ ๊ฒฐ์ ํฉ๋๋ค(val , test ๋๋ train ). ์ฑ๋ฅ ํ๊ฐ๋ฅผ ์ํ ๋ฐ์ดํฐ ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์ฐํ๊ฒ ์ ํํ ์ ์์ต๋๋ค. |
์ด๋ฌํ ๊ฐ ์ค์ ์ ์ ํจ์ฑ ๊ฒ์ฌ ํ๋ก์ธ์ค์์ ์ค์ํ ์ญํ ์ ํ๋ฉฐ, YOLO ๋ชจ๋ธ์ ์ฌ์ฉ์ ์ง์ ํ๊ณ ํจ์จ์ ์ผ๋ก ํ๊ฐํ ์ ์๊ฒ ํด์ค๋๋ค. ํน์ ์๊ตฌ ์ฌํญ๊ณผ ๋ฆฌ์์ค์ ๋ฐ๋ผ ์ด๋ฌํ ๋งค๊ฐ๋ณ์๋ฅผ ์กฐ์ ํ๋ฉด ์ ํ๋์ ์ฑ๋ฅ ๊ฐ์ ์ต์์ ๊ท ํ์ ๋ฌ์ฑํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
์ธ์๋ฅผ ์ฌ์ฉํ ์ ํจ์ฑ ๊ฒ์ฌ ์์
์๋ ์์ ์์๋ Python ๋ฐ CLI ์์ ์ฌ์ฉ์ ์ง์ ์ธ์๋ฅผ ์ฌ์ฉํ YOLO ๋ชจ๋ธ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
Ultralytics ์ผ๋ก ๋ด YOLOv8 ๋ชจ๋ธ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๋ ค๋ฉด ์ด๋ป๊ฒ ํ๋์?
YOLOv8 ๋ชจ๋ธ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๋ ค๋ฉด Ultralytics ์์ ์ ๊ณตํ๋ Val ๋ชจ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Python API๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ๋ก๋ํ๊ณ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์คํํ ์ ์์ต๋๋ค:
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt")
# Validate the model
metrics = model.val()
print(metrics.box.map) # map50-95
๋๋ ๋ช ๋ น์ค ์ธํฐํ์ด์ค(CLI)๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค:
์ถ๊ฐ ์ฌ์ฉ์ ์ง์ ์ ์ํด ๋ค์๊ณผ ๊ฐ์ ๋ค์ํ ์ธ์๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค. imgsz
, batch
๋ฐ conf
Python ๋ฐ CLI ๋ชจ๋์์ ๋ชจ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ์ธ YOLO ๋ชจ๋ธ ์ ํจ์ฑ ๊ฒ์ฌ์ ๋ํ ์ธ์ ์น์
์์ ์ ์ฒด ๋งค๊ฐ๋ณ์ ๋ชฉ๋ก์ ํ์ธํ์ธ์.
YOLOv8 ๋ชจ๋ธ ์ ํจ์ฑ ๊ฒ์ฌ์์ ์ด๋ค ๋ฉํธ๋ฆญ์ ์ป์ ์ ์๋์?
YOLOv8 ๋ชจ๋ธ ์ ํจ์ฑ ๊ฒ์ฌ๋ ๋ชจ๋ธ ์ฑ๋ฅ์ ํ๊ฐํ๊ธฐ ์ํ ๋ช ๊ฐ์ง ์ฃผ์ ์งํ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค:
- mAP50(IoU ์๊ณ๊ฐ 0.5์์ ํ๊ท ํ๊ท ์ ๋ฐ๋)
- mAP75(IoU ์๊ณ๊ฐ 0.75์์ ํ๊ท ํ๊ท ์ ๋ฐ๋)
- mAP50-95(0.5 ~ 0.95์ ์ฌ๋ฌ IoU ์๊ณ๊ฐ์์ ํ๊ท ํ๊ท ์ ๋ฐ๋)
Python API๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ด๋ฌํ ๋ฉํธ๋ฆญ์ ์ก์ธ์คํ ์ ์์ต๋๋ค:
metrics = model.val() # assumes `model` has been loaded
print(metrics.box.map) # mAP50-95
print(metrics.box.map50) # mAP50
print(metrics.box.map75) # mAP75
print(metrics.box.maps) # list of mAP50-95 for each category
์์ ํ ์ฑ๋ฅ ํ๊ฐ๋ฅผ ์ํด์๋ ์ด๋ฌํ ๋ชจ๋ ์งํ๋ฅผ ๊ฒํ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Val ๋ชจ๋์ ์ฃผ์ ๊ธฐ๋ฅ์ ์ฐธ์กฐํ์ธ์.
์ ํจ์ฑ ๊ฒ์ฌ์ Ultralytics YOLO ์ ์ฌ์ฉํ๋ฉด ์ด๋ค ์ด์ ์ด ์๋์?
์ ํจ์ฑ ๊ฒ์ฌ์ Ultralytics YOLO ์ ์ฌ์ฉํ๋ฉด ๋ช ๊ฐ์ง ์ด์ ์ด ์์ต๋๋ค:
- ์ ๋ฐ๋: YOLOv8 ๋ mAP50, mAP75, mAP50-95๋ฅผ ํฌํจํ ์ ํํ ์ฑ๋ฅ ์งํ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ํธ์์ฑ: ๋ชจ๋ธ์ด ํ์ต ์ค์ ์ ๊ธฐ์ตํ๋ฏ๋ก ๊ฒ์ฆ์ด ๊ฐ๋จํฉ๋๋ค.
- ์ ์ฐ์ฑ: ๋์ผํ๊ฑฐ๋ ๋ค๋ฅธ ๋ฐ์ดํฐ ์ธํธ ๋ฐ ์ด๋ฏธ์ง ํฌ๊ธฐ์ ๋ํด ์ ํจ์ฑ์ ๊ฒ์ฌํ ์ ์์ต๋๋ค.
- ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋: ์ ํจ์ฑ ๊ฒ์ฌ ๋ฉํธ๋ฆญ์ ๋ ๋์ ์ฑ๋ฅ์ ์ํด ๋ชจ๋ธ์ ๋ฏธ์ธ ์กฐ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ด๋ฌํ ์ด์ ์ ํตํด ๋ชจ๋ธ์ ์ฒ ์ ํ๊ฒ ํ๊ฐํ๊ณ ์ฐ์ํ ๊ฒฐ๊ณผ๋ฅผ ์ํด ์ต์ ํํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ฅ์ ์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด Ultralytics YOLO ์น์ ์ ์ฐธ์กฐํ์ธ์.
์ฌ์ฉ์ ์ง์ ๋ฐ์ดํฐ ์งํฉ์ ์ฌ์ฉํ์ฌ YOLOv8 ๋ชจ๋ธ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ ์ ์๋์?
์, ์ฌ์ฉ์ ์ง์ ๋ฐ์ดํฐ ์งํฉ์ ์ฌ์ฉํ์ฌ YOLOv8 ๋ชจ๋ธ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ ์ ์์ต๋๋ค. ์ฌ์ฉ์ ์ง์ ๋ฐ์ดํฐ์ data
์ธ์๋ฅผ ๋ฐ์ดํฐ ์ธํธ ๊ตฌ์ฑ ํ์ผ์ ๊ฒฝ๋ก์ ํจ๊ป ์ ๋ฌํฉ๋๋ค. ์ด ํ์ผ์๋ ์ ํจ์ฑ ๊ฒ์ฌ ๋ฐ์ดํฐ์ ๊ฒฝ๋ก, ํด๋์ค ์ด๋ฆ ๋ฐ ๊ธฐํ ๊ด๋ จ ์ธ๋ถ ์ ๋ณด๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค.
Python ์ ์์ :
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt")
# Validate with a custom dataset
metrics = model.val(data="path/to/your/custom_dataset.yaml")
print(metrics.box.map) # map50-95
CLI ์ฌ์ฉ ์์ :
์ ํจ์ฑ ๊ฒ์ฌ ์ค ์ฌ์ฉ์ ์ง์ ๊ฐ๋ฅํ ์ต์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ธ์๋ฅผ ์ฌ์ฉํ ์ ํจ์ฑ ๊ฒ์ฌ ์์ ์น์ ์ ์ฐธ์กฐํ์ธ์.
์ ํจ์ฑ ๊ฒ์ฌ ๊ฒฐ๊ณผ๋ฅผ YOLOv8 ์ ์๋ JSON ํ์ผ์ ์ ์ฅํ๋ ค๋ฉด ์ด๋ป๊ฒ ํ๋์?
์ ํจ์ฑ ๊ฒ์ฌ ๊ฒฐ๊ณผ๋ฅผ JSON ํ์ผ์ ์ ์ฅํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํ ์ ์์ต๋๋ค. save_json
์ธ์๋ฅผ True
๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ์ด๋ Python API์ CLI ์์ ๋ชจ๋ ์ํํ ์ ์์ต๋๋ค.
Python ์ ์์ :
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt")
# Save validation results to JSON
metrics = model.val(save_json=True)
CLI ์ฌ์ฉ ์์ :
์ด ๊ธฐ๋ฅ์ ํนํ ์ถ๊ฐ ๋ถ์์ด๋ ๋ค๋ฅธ ๋๊ตฌ์์ ํตํฉ์ ์ ์ฉํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ YOLO ๋ชจ๋ธ ์ ํจ์ฑ ๊ฒ์ฌ ์ธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์์ฑ 2023-11-12, ์ ๋ฐ์ดํธ 2024-07-04
์์ฑ์: glenn-jocher (14), Burhan-Q (1), RizwanMunawar (1)