๋ชจ๋ธ ํ๊ฐ ๋ฐ ๋ฏธ์ธ ์กฐ์ ์ ๋ํ ์ธ์ฌ์ดํธ
์๊ฐ
์ปดํจํฐ ๋น์ ๋ชจ๋ธ์ ํ์ต์ํจ ํ์๋ ์ต์ ์ ์ฑ๋ฅ์ ๋ฐํํ๋๋ก ํ๊ฐํ๊ณ ๊ฐ์ ํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค. ๋ชจ๋ธ์ ํ๋ จํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ๋ชจ๋ธ์ด ์ ํํ๊ณ ํจ์จ์ ์ธ์ง, ์ปดํจํฐ ๋น์ ํ๋ก์ ํธ์ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๋์ง ํ์ธํด์ผ ํฉ๋๋ค. ๋ชจ๋ธ์ ํ๊ฐํ๊ณ ๋ฏธ์ธ ์กฐ์ ํจ์ผ๋ก์จ ์ฝ์ ์ ํ์ ํ๊ณ ์ ํ๋๋ฅผ ๊ฐ์ ํ๋ฉฐ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
Watch: ๋ชจ๋ธ ํ๊ฐ ๋ฐ ๋ฏธ์ธ ์กฐ์ ์ ๋ํ ์ธ์ฌ์ดํธ | ํ๊ท ์ ๋ฐ๋ ํฅ์์ ์ํ ํ
์ด ๊ฐ์ด๋์์๋ ์ปดํจํฐ ๋น์ ํ๋ก์ ํธ์ ์ด ๋จ๊ณ์ ๋ณด๋ค ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋๋ก ๋ชจ๋ธ ํ๊ฐ ๋ฐ ๋ฏธ์ธ ์กฐ์ ์ ๋ํ ์ธ์ฌ์ดํธ๋ฅผ ๊ณต์ ํฉ๋๋ค. ํ๊ฐ ๋ฉํธ๋ฆญ์ ์ดํดํ๊ณ ๋ฏธ์ธ ์กฐ์ ๊ธฐ์ ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ์ฌ ๋ชจ๋ธ์ ๊ธฐ๋ฅ์ ํฅ์์ํฌ ์ ์๋ ์ง์์ ์ ๊ณตํฉ๋๋ค.
๋ฉํธ๋ฆญ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ ์ฑ๋ฅ ํ๊ฐ
๋ชจ๋ธ์ ์ฑ๋ฅ์ ํ๊ฐํ๋ฉด ๋ชจ๋ธ์ด ์ผ๋ง๋ ํจ๊ณผ์ ์ผ๋ก ์๋ํ๋์ง ์ดํดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ฑ๋ฅ์ ์ธก์ ํ๊ธฐ ์ํด ๋ค์ํ ์งํ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฌํ ์ฑ๋ฅ ์งํ๋ ๋ชจ๋ธ์ด ์๋ํ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ ์ ์๋๋ก ๊ฐ์ ๋ฐฉํฅ์ ์ ์ํ ์ ์๋ ๋ช ํํ ์์น ์ธ์ฌ์ดํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ช ๊ฐ์ง ์ฃผ์ ์งํ๋ฅผ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ ๋ขฐ ์ ์
์ ๋ขฐ๋ ์ ์๋ ๊ฐ์ง๋ ๊ฐ์ฒด๊ฐ ํน์ ํด๋์ค์ ์ํ๋ค๋ ๋ชจ๋ธ์ ํ์ ์ ๋ํ๋ ๋๋ค. 0์์ 1 ์ฌ์ด์ ๋ฒ์๋ก, ์ ์๊ฐ ๋์์๋ก ์ ๋ขฐ๋๊ฐ ๋์์ ๋ํ๋ ๋๋ค. ์ ๋ขฐ๋ ์ ์๋ ์์ธก์ ํํฐ๋งํ๋ ๋ฐ ๋์์ด ๋๋ฉฐ, ์ ๋ขฐ๋ ์ ์๊ฐ ์ง์ ๋ ์๊ณ๊ฐ ์ด์์ธ ํ์ง๋ง ์ ํจํ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
Quick Tip: When running inferences, if you aren't seeing any predictions, and you've checked everything else, try lowering the confidence score. Sometimes, the threshold is too high, causing the model to ignore valid predictions. Lowering the score allows the model to consider more possibilities. This might not meet your project goals, but it's a good way to see what the model can do and decide how to fine-tune it.
์ ๋์จ ์์ ๊ต์ฐจ๋ก
IoU(๊ต์ฐจ์ ์ค๋ฒ ์ ๋์จ )๋ ๊ฐ์ฒด ๊ฐ์ง์ ๋ฉํธ๋ฆญ์ผ๋ก, ์์ธก๋ ๊ฒฝ๊ณ ์์๊ฐ ๊ธฐ์ค ์ค์ธก ๊ฒฝ๊ณ ์์์ ์ผ๋ง๋ ์ ๊ฒน์น๋์ง๋ฅผ ์ธก์ ํฉ๋๋ค. IoU ๊ฐ์ ๋ฒ์๋ 0์์ 1๊น์ง์ด๋ฉฐ, 1์ ์๋ฒฝํ๊ฒ ์ผ์นํจ์ ์๋ฏธํฉ๋๋ค. IoU๋ ์์ธก๋ ๊ฒฝ๊ณ๊ฐ ์ค์ ๊ฐ์ฒด ๊ฒฝ๊ณ์ ์ผ๋ง๋ ๋ฐ์ ํ๊ฒ ์ผ์นํ๋์ง๋ฅผ ์ธก์ ํ๊ธฐ ๋๋ฌธ์ ํ์์ ์ ๋๋ค.
ํ๊ท ํ๊ท ์ ๋ฐ๋
ํ๊ท ํ๊ท ์ ๋ฐ๋ (mAP)๋ ๊ฐ์ฒด ํ์ง ๋ชจ๋ธ์ด ์ผ๋ง๋ ์ ์๋ํ๋์ง ์ธก์ ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ฐ ๊ฐ์ฒด ํด๋์ค๋ฅผ ๊ฐ์งํ๋ ์ ๋ฐ๋๋ฅผ ์ดํด๋ณด๊ณ , ์ด ์ ์์ ํ๊ท ์ ๊ตฌํ ํ ๋ชจ๋ธ์ด ๊ฐ์ฒด๋ฅผ ์ผ๋ง๋ ์ ํํ๊ฒ ์๋ณํ๊ณ ๋ถ๋ฅํ ์ ์๋์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ ์ฒด ์์น๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ ๊ฐ์ง ํน์ ๋งต ๋ฉํธ๋ฆญ์ ์ง์คํด ๋ณด๊ฒ ์ต๋๋ค:
- mAP@.5: 0.5์ ๋จ์ผ IoU(Intersection over Union) ์๊ณ๊ฐ์์ ํ๊ท ์ ๋ฐ๋๋ฅผ ์ธก์ ํฉ๋๋ค. ์ด ๋ฉํธ๋ฆญ์ ๋ชจ๋ธ์ด ์ ํ๋ ์๊ตฌ ์ฌํญ์ด ๋์จํ ๊ฐ์ฒด๋ฅผ ์ ํํ๊ฒ ์ฐพ์ ์ ์๋์ง ํ์ธํฉ๋๋ค. ์๋ฒฝํ ๋ฐฐ์น๊ฐ ํ์ํ์ง ์๊ณ ๋ฌผ์ฒด๊ฐ ๋๋ต ์ฌ๋ฐ๋ฅธ ์์น์ ์๋์ง ์ฌ๋ถ์ ์ค์ ์ ๋ก๋๋ค. ๋ชจ๋ธ์ด ์ผ๋ฐ์ ์ผ๋ก ๋ฌผ์ฒด๋ฅผ ์ ์ฐพ์๋ด๋์ง ํ์ธํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- mAP@.5:.95: 0.5์์ 0.95๊น์ง 0.05 ๋จ์๋ก ์ฌ๋ฌ IoU ์๊ณ๊ฐ์์ ๊ณ์ฐ๋ mAP ๊ฐ์ ํ๊ท ์ ๊ตฌํฉ๋๋ค. ์ด ๋ฉํธ๋ฆญ์ ๋ ์์ธํ๊ณ ์๊ฒฉํฉ๋๋ค. ๋ชจ๋ธ์ด ๋ค์ํ ์์ค์ ์๊ฒฉํจ์์ ์ผ๋ง๋ ์ ํํ๊ฒ ๋ฌผ์ฒด๋ฅผ ์ฐพ์ ์ ์๋์ง๋ฅผ ๋ ์์ธํ ํ์ ํ ์ ์์ผ๋ฉฐ, ํนํ ์ ๋ฐํ ๋ฌผ์ฒด ๊ฐ์ง๊ฐ ํ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฉํฉ๋๋ค.
๋ค๋ฅธ mAP ์งํ๋ก๋ 0.75์ ๋ ์๊ฒฉํ IoU ์๊ณ๊ฐ์ ์ฌ์ฉํ๋ mAP@0.75, ๋ค์ํ ํฌ๊ธฐ์ ์ค๋ธ์ ํธ์์ ์ ๋ฐ๋๋ฅผ ํ๊ฐํ๋ mAP@small, medium, large๊ฐ ์์ต๋๋ค.
YOLO11 ๋ชจ๋ธ ์ฑ๋ฅ ํ๊ฐ
YOLO11 ์์ ์ ํจ์ฑ ๊ฒ์ฌ ๋ชจ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ํ๊ฐํ ์ ์์ต๋๋ค. ๋ํ YOLO11 ์ฑ๋ฅ ์งํ์ ์ด๋ฅผ ํด์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์ธํ ์ค๋ช ํ๋ ๊ฐ์ด๋๋ ๊ผญ ์ดํด๋ณด์ธ์.
์ปค๋ฎค๋ํฐ์์ ์์ฃผ ๋ฌป๋ ์ง๋ฌธ
YOLO11 ๋ชจ๋ธ์ ํ๊ฐํ ๋ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ค์์ ์ปค๋ฎค๋ํฐ์์ ์์ฃผ ๋ฌป๋ ์ง๋ฌธ์ ๋ฐํ์ผ๋ก YOLO11 ๋ชจ๋ธ์ ์ต๋ํ ํ์ฉํ๋ ๋ฐ ๋์์ด ๋๋ ๋ช ๊ฐ์ง ํ์ ๋๋ค:
๊ฐ๋ณ ์ด๋ฏธ์ง ํฌ๊ธฐ ์ฒ๋ฆฌ
๋ค์ํ ํฌ๊ธฐ์ ์ด๋ฏธ์ง๋ก YOLO11 ๋ชจ๋ธ์ ํ๊ฐํ๋ฉด ๋ค์ํ ๋ฐ์ดํฐ ์ธํธ์์์ ์ฑ๋ฅ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๋ชจ๋ธ์์ rect=true
์ ํจ์ฑ ๊ฒ์ฌ ๋งค๊ฐ๋ณ์( YOLO11 )๋ ์ด๋ฏธ์ง ํฌ๊ธฐ์ ๋ฐ๋ผ ๊ฐ ๋ฐฐ์น์ ๋ํ ๋คํธ์ํฌ์ ๋ณดํญ์ ์กฐ์ ํ์ฌ ๋ชจ๋ธ์ด ์ง์ฌ๊ฐํ ์ด๋ฏธ์ง๋ฅผ ๋จ์ผ ํฌ๊ธฐ๋ก ๊ฐ์ ํ์ง ์๊ณ ๋ ์ฒ๋ฆฌํ ์ ์๋๋ก ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ imgsz
์ ํจ์ฑ ๊ฒ์ฌ ๋งค๊ฐ๋ณ์๋ ์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์ ์ ์ต๋ ์น์๋ฅผ ์ค์ ํ๋ฉฐ, ๊ธฐ๋ณธ๊ฐ์ 640์
๋๋ค. ๋ฐ์ดํฐ ์ธํธ์ ์ต๋ ํฌ๊ธฐ์ ์ฌ์ฉ ๊ฐ๋ฅํ GPU ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ๋ผ ์ด๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค. ์ฌ์ง์ด imgsz
์ค์ ํฉ๋๋ค, rect=true
๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ธ์ด ๋ณดํญ์ ๋์ ์ผ๋ก ์กฐ์ ํ์ฌ ๋ค์ํ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
YOLO11 ๋ฉํธ๋ฆญ์ ์ก์ธ์คํ๊ธฐ
YOLO11 ๋ชจ๋ธ์ ์ฑ๋ฅ์ ๋ ์์ธํ ์ดํดํ๋ ค๋ฉด Python ์ฝ๋ ๋ช ์ค์ ์ฌ์ฉํ์ฌ ํน์ ํ๊ฐ ์งํ์ ์ฝ๊ฒ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์๋ ์ฝ๋ ์ค๋ํซ์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ธ์ ๋ก๋ํ๊ณ ํ๊ฐ๋ฅผ ์คํํ์ฌ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ๋ ๋ค์ํ ๋ฉํธ๋ฆญ์ ์ธ์ํ ์ ์์ต๋๋ค.
์ฌ์ฉ๋ฒ
from ultralytics import YOLO
# Load the model
model = YOLO("yolo11n.pt")
# Run the evaluation
results = model.val(data="coco8.yaml")
# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Average precision:", results.box.ap)
print("Average precision at IoU=0.50:", results.box.ap50)
print("Class indices for average precision:", results.box.ap_class_index)
print("Class-specific results:", results.box.class_result)
print("F1 score:", results.box.f1)
print("F1 score curve:", results.box.f1_curve)
print("Overall fitness score:", results.box.fitness)
print("Mean average precision:", results.box.map)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean average precision at IoU=0.75:", results.box.map75)
print("Mean average precision for different IoU thresholds:", results.box.maps)
print("Mean results for different metrics:", results.box.mean_results)
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Precision:", results.box.p)
print("Precision curve:", results.box.p_curve)
print("Precision values:", results.box.prec_values)
print("Specific precision metrics:", results.box.px)
print("Recall:", results.box.r)
print("Recall curve:", results.box.r_curve)
๊ฒฐ๊ณผ ๊ฐ์ฒด์๋ ์ ์ฒ๋ฆฌ ์๊ฐ, ์ถ๋ก ์๊ฐ, ์์ค ๋ฐ ์ฌํ ์ฒ๋ฆฌ ์๊ฐ๊ณผ ๊ฐ์ ์๋ ๋ฉํธ๋ฆญ๋ ํฌํจ๋ฉ๋๋ค. ์ด๋ฌํ ๋ฉํธ๋ฆญ์ ๋ถ์ํ์ฌ YOLO11 ๋ชจ๋ธ์ ๋ฏธ์ธ ์กฐ์ ํ๊ณ ์ต์ ํํ์ฌ ์ฑ๋ฅ์ ๊ฐ์ ํจ์ผ๋ก์จ ํน์ ์ฌ์ฉ ์ฌ๋ก์ ๋ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฏธ์ธ ์กฐ์ ์ ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋์?
๋ฏธ์ธ ์กฐ์ ์๋ ์ฌ์ ํ์ต๋ ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ํน์ ์์ ์ด๋ ๋ฐ์ดํฐ ์ธํธ์ ์ฑ๋ฅ์ ๊ฐ์ ํ๊ธฐ ์ํด ๋งค๊ฐ๋ณ์๋ฅผ ์กฐ์ ํ๋ ์์ ์ด ํฌํจ๋ฉ๋๋ค. ๋ชจ๋ธ ์ฌํ์ต์ด๋ผ๊ณ ๋ ํ๋ ์ด ํ๋ก์ธ์ค๋ฅผ ํตํด ๋ชจ๋ธ์ ์ค์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ํ๊ฒ ๋ ํน์ ๋ฐ์ดํฐ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ ์ ์ดํดํ๊ณ ์์ธกํ ์ ์์ต๋๋ค. ๋ชจ๋ธ ํ๊ฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ธ์ ์ฌํ์ตํ์ฌ ์ต์ ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
๋ชจ๋ธ ๋ฏธ์ธ ์กฐ์ ์ ์ํ ํ
๋ชจ๋ธ์ ๋ฏธ์ธ ์กฐ์ ํ๋ค๋ ๊ฒ์ ์ต์ ์ ์ฑ๋ฅ์ ๋ฌ์ฑํ๊ธฐ ์ํด ๋ช ๊ฐ์ง ์ค์ํ ๋งค๊ฐ๋ณ์์ ๊ธฐ์ ์ ์ธ์ฌํ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ค์์ ์ด ๊ณผ์ ์ ์๋ดํ๋ ๋ช ๊ฐ์ง ํ์ ํ์ ๋๋ค.
๋ ๋์ ํ์ต๋ฅ ๋ก ์์ํ๊ธฐ
์ผ๋ฐ์ ์ผ๋ก ์ด๊ธฐ ํ์ต ๋จ๊ณ์์๋ ํ์ต ์๋๋ฅผ ๋ฎ๊ฒ ์์ํ์ฌ ์ ์ฐจ์ ์ผ๋ก ํ์ต ์๋๋ฅผ ๋์ฌ ํ์ต ๊ณผ์ ์ ์์ ํํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ธ์ด ์ด๋ฏธ ์ด์ ๋ฐ์ดํฐ ์ธํธ์์ ์ผ๋ถ ๊ธฐ๋ฅ์ ํ์ตํ๊ธฐ ๋๋ฌธ์ ํ์ต ์๋๋ฅผ ๋ฐ๋ก ๋๊ฒ ์์ํ๋ ๊ฒ์ด ๋ ์ ๋ฆฌํ ์ ์์ต๋๋ค.
YOLO11 ๋ชจ๋ธ์ ํ๊ฐํ ๋ ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํ ์ ์์ต๋๋ค. warmup_epochs
์ ํจ์ฑ ๊ฒ์ฌ ๋งค๊ฐ๋ณ์๋ฅผ warmup_epochs=0
๋ฅผ ์ค์ ํ์ฌ ํ์ต๋ฅ ์ด ๋๋ฌด ๋๊ฒ ์์๋๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ์ด ๊ณผ์ ์ ๋ฐ๋ผ๊ฐ๋ฉด ์ ๊ณต๋ ๊ฐ์ค์น์์ ์๋ก์ด ๋ฐ์ดํฐ์ ๋์์ค์ ๋ง์ถฐ ํ์ต์ด ๊ณ์๋ฉ๋๋ค.
์์ ๋ฌผ์ฒด๋ฅผ ์ํ ์ด๋ฏธ์ง ํ์ผ๋ง
์ด๋ฏธ์ง ํ์ผ๋ง์ ์์ ๋ฌผ์ฒด์ ๋ํ ๊ฐ์ง ์ ํ๋๋ฅผ ํฅ์์ํฌ ์ ์์ต๋๋ค. 1280x1280 ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ฌ ๊ฐ์ 640x640 ์ธ๊ทธ๋จผํธ๋ก ๋ถํ ํ๋ ๋ฑ ํฐ ์ด๋ฏธ์ง๋ฅผ ์์ ์ธ๊ทธ๋จผํธ๋ก ๋๋๋ฉด ์๋ ํด์๋๋ฅผ ์ ์งํ๋ฉด์ ๋ชจ๋ธ์ด ๊ณ ํด์๋ ์กฐ๊ฐ์์ ํ์ตํ ์ ์์ต๋๋ค. YOLO11 ์ ์ฌ์ฉํ ๋๋ ์ด๋ฌํ ์ ์ธ๊ทธ๋จผํธ์ ๋ํ ๋ ์ด๋ธ์ ์ฌ๋ฐ๋ฅด๊ฒ ์กฐ์ ํด์ผ ํฉ๋๋ค.
์ปค๋ฎค๋ํฐ ์ฐธ์ฌ
๋ค๋ฅธ ์ปดํจํฐ ๋น์ ์ ํธ๊ฐ๋ค๊ณผ ์์ด๋์ด์ ์ง๋ฌธ์ ๊ณต์ ํ๋ฉด ํ๋ก์ ํธ์ ์ฅ์ ๋ฌผ์ ๋ํ ์ฐฝ์์ ์ธ ํด๊ฒฐ์ฑ ์ ์ฐพ์ ์ ์์ต๋๋ค. ๋ค์์ ๋ฐฐ์ฐ๊ณ , ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ , ์ํตํ ์ ์๋ ๋ช ๊ฐ์ง ํ๋ฅญํ ๋ฐฉ๋ฒ์ ๋๋ค.
๋์๋ง ๋ฐ ์ง์ ์ฐพ๊ธฐ
- GitHub ์ด์: YOLO11 GitHub ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ดํด๋ณด๊ณ ์ด์ ํญ์ ์ฌ์ฉํ์ฌ ์ง๋ฌธํ๊ณ , ๋ฒ๊ทธ๋ฅผ ์ ๊ณ ํ๊ณ , ๊ธฐ๋ฅ์ ์ ์ํ์ธ์. ์ปค๋ฎค๋ํฐ์ ๊ด๋ฆฌ์๊ฐ ๋ฐ์ํ๋ ๋ชจ๋ ๋ฌธ์ ์ ๋ํด ๋์์ ๋๋ฆด ์ ์์ต๋๋ค.
- Ultralytics ๋์ค์ฝ๋ ์๋ฒ: Ultralytics Discord ์๋ฒ์ ๊ฐ์ ํ์ฌ ๋ค๋ฅธ ์ฌ์ฉ์ ๋ฐ ๊ฐ๋ฐ์์ ์ฐ๊ฒฐํ๊ณ , ์ง์์ ๋ฐ๊ณ , ์ง์์ ๊ณต์ ํ๊ณ , ์์ด๋์ด๋ฅผ ๋ธ๋ ์ธ์คํ ๋ฐํ์ธ์.
๊ณต์ ๋ฌธ์
- Ultralytics YOLO11 ๋ฌธ์: ๊ณต์ ๋ฌธ์( YOLO11 )์์ ๋ค์ํ ์ปดํจํฐ ๋น์ ์์ ๊ณผ ํ๋ก์ ํธ์ ๋ํ ์ข ํฉ์ ์ธ ๊ฐ์ด๋์ ์ ์ฉํ ์ธ์ฌ์ดํธ๋ฅผ ํ์ธํ์ธ์.
์ต์ข ์๊ฐ
์ปดํจํฐ ๋น์ ๋ชจ๋ธ์ ํ๊ฐํ๊ณ ๋ฏธ์ธ ์กฐ์ ํ๋ ๊ฒ์ ์ฑ๊ณต์ ์ธ ๋ชจ๋ธ ๋ฐฐํฌ๋ฅผ ์ํ ์ค์ํ ๋จ๊ณ์ ๋๋ค. ์ด๋ฌํ ๋จ๊ณ๋ฅผ ํตํด ๋ชจ๋ธ์ด ์ ํํ๊ณ ํจ์จ์ ์ด๋ฉฐ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉํ์ง ํ์ธํ ์ ์์ต๋๋ค. ์ต์์ ๋ชจ๋ธ์ ํ๋ จํ๊ธฐ ์ํ ํต์ฌ์ ์ง์์ ์ธ ์คํ๊ณผ ํ์ต์ ๋๋ค. ์ฃผ์ ํ์ง ๋ง๊ณ ๋งค๊ฐ๋ณ์๋ฅผ ์กฐ์ ํ๊ณ , ์๋ก์ด ๊ธฐ์ ์ ์๋ํ๊ณ , ๋ค์ํ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ํ์ํ์ธ์. ๊ณ์ ์คํํ๊ณ ๊ฐ๋ฅ์ฑ์ ํ๊ณ๋ฅผ ๋ํ๋ณด์ธ์!
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
YOLO11 ๋ชจ๋ธ ์ฑ๋ฅ์ ํ๊ฐํ๊ธฐ ์ํ ์ฃผ์ ์งํ๋ ๋ฌด์์ธ๊ฐ์?
YOLO11 ๋ชจ๋ธ ์ฑ๋ฅ์ ํ๊ฐํ๋ ๋ฐ ์ค์ํ ์งํ๋ก๋ ์ ๋ขฐ๋ ์ ์, IoU(Intersection over Union), ํ๊ท ํ๊ท ์ ๋ฐ๋(mAP)๊ฐ ์์ต๋๋ค. ์ ๋ขฐ ์ ์๋ ๊ฐ์ง๋ ๊ฐ ๊ฐ์ฒด ํด๋์ค์ ๋ํ ๋ชจ๋ธ์ ํ์ค์ฑ์ ์ธก์ ํฉ๋๋ค. IoU๋ ์์ธก๋ ๋ฐ์ด๋ฉ ๋ฐ์ค๊ฐ ์ค์ธก ์๋ฃ์ ์ผ๋ง๋ ์ ๊ฒน์น๋์ง๋ฅผ ํ๊ฐํฉ๋๋ค. ํ๊ท ํ๊ท ์ ๋ฐ๋(mAP)๋ ์ฌ๋ฌ ํด๋์ค์ ๊ฑธ์ณ ์ ๋ฐ๋ ์ ์๋ฅผ ์ง๊ณํ๋ฉฐ, mAP@.5์ mAP@.5:.95 ๋ ๋ค์ํ IoU ์๊ณ๊ฐ์ ๋ํ ๋ ๊ฐ์ง ์ผ๋ฐ์ ์ธ ์ ํ์ ๋๋ค. ์ด๋ฌํ ๋ฉํธ๋ฆญ์ ๋ํ ์์ธํ ๋ด์ฉ์ YOLO11 ์ฑ๋ฅ ๋ฉํธ๋ฆญ ๊ฐ์ด๋์์ ํ์ธํ์ธ์.
ํน์ ๋ฐ์ดํฐ ์งํฉ์ ๋ง๊ฒ ์ฌ์ ํ์ต๋ YOLO11 ๋ชจ๋ธ์ ๋ฏธ์ธ ์กฐ์ ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
์ฌ์ ํ์ต๋ YOLO11 ๋ชจ๋ธ์ ๋ฏธ์ธ ์กฐ์ ํ๋ ค๋ฉด ํน์ ์์
๋๋ ๋ฐ์ดํฐ ์ธํธ์ ์ฑ๋ฅ์ ๊ฐ์ ํ๊ธฐ ์ํด ๋งค๊ฐ๋ณ์๋ฅผ ์กฐ์ ํด์ผ ํฉ๋๋ค. ๋ฉํธ๋ฆญ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ํ๊ฐํ๋ ๊ฒ์ผ๋ก ์์ํ ๋ค์, ์ด๊ธฐ ํ์ต๋ฅ ์ ๋ ๋๊ฒ ์ค์ ํ์ฌ warmup_epochs
๋งค๊ฐ๋ณ์๋ฅผ 0์ผ๋ก ์ค์ ํ์ฌ ์ฆ๊ฐ์ ์ธ ์์ ์ฑ์ ํ๋ณดํ์ธ์. ๋ค์๊ณผ ๊ฐ์ ๋งค๊ฐ ๋ณ์๋ฅผ ์ฌ์ฉํ์ธ์. rect=true
๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ํ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์์ธํ ์ง์นจ์ ๋ค์ ์น์
์ ์ฐธ์กฐํ์ธ์. YOLO11 ๋ชจ๋ธ ๋ฏธ์ธ ์กฐ์ .
YOLO11 ๋ชจ๋ธ์ ํ๊ฐํ ๋ ๊ฐ๋ณ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ฒ๋ฆฌํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
ํ๊ฐ ์ค์ ๊ฐ๋ณ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ฒ๋ฆฌํ๋ ค๋ฉด rect=true
๋งค๊ฐ๋ณ์( YOLO11)๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง ํฌ๊ธฐ์ ๋ฐ๋ผ ๊ฐ ๋ฐฐ์น์ ๋ํ ๋คํธ์ํฌ์ ๋ณดํญ์ ์กฐ์ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ imgsz
๋งค๊ฐ๋ณ์๋ ์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์ ์ ์ต๋ ์น์๋ฅผ ์ค์ ํ๋ฉฐ ๊ธฐ๋ณธ๊ฐ์ 640์
๋๋ค. ์กฐ์ imgsz
๋ฅผ ๋ฐ์ดํฐ ์ธํธ์ GPU ๋ฉ๋ชจ๋ฆฌ์ ๋ง๊ฒ ์กฐ์ ํ์ธ์. ์์ธํ ๋ด์ฉ์ ๊ฐ๋ณ ์ด๋ฏธ์ง ํฌ๊ธฐ ์ฒ๋ฆฌ์ ๋ํ ์น์
.
YOLO11 ๋ชจ๋ธ์ ํ๊ท ์ ๋ฐ๋๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ์ด๋ค ์ค์ง์ ์ธ ์กฐ์น๋ฅผ ์ทจํ ์ ์๋์?
YOLO11 ๋ชจ๋ธ์ ํ๊ท ํ๊ท ์ ๋ฐ๋(mAP)๋ฅผ ๊ฐ์ ํ๋ ค๋ฉด ๋ช ๊ฐ์ง ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ์ผ ํฉ๋๋ค:
- ํ์ดํผํ๋ผ๋ฏธํฐ ์กฐ์ ํ๊ธฐ: ๋ค์ํ ํ์ต ์๋, ๋ฐฐ์น ํฌ๊ธฐ, ์ด๋ฏธ์ง ์ฆ๊ฐ์ ์คํํด ๋ณด์ธ์.
- ๋ฐ์ดํฐ ์ฆ๊ฐ: ๋ชจ์์ดํฌ ๋ฐ ๋ฏน์ค์ ๊ณผ ๊ฐ์ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๋ค์ํ ํ๋ จ ์ํ์ ์์ฑํฉ๋๋ค.
- ์ด๋ฏธ์ง ํ์ผ๋ง: ํฐ ์ด๋ฏธ์ง๋ฅผ ์์ ํ์ผ๋ก ๋ถํ ํ์ฌ ์์ ๋ฌผ์ฒด์ ๋ํ ๊ฐ์ง ์ ํ๋๋ฅผ ๋์ ๋๋ค. ๊ตฌ์ฒด์ ์ธ ์ ๋ต์ ๋ชจ๋ธ ๋ฏธ์ธ ์กฐ์ ์ ๋ํ ์์ธํ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์.
Python ์์ YOLO11 ๋ชจ๋ธ ํ๊ฐ ๋ฉํธ๋ฆญ์ ์ก์ธ์คํ๋ ค๋ฉด ์ด๋ป๊ฒ ํ๋์?
๋ค์ ๋จ๊ณ์ ๋ฐ๋ผ Python ์ ์ฌ์ฉํ์ฌ YOLO11 ๋ชจ๋ธ ํ๊ฐ ์งํ์ ์ก์ธ์คํ ์ ์์ต๋๋ค:
์ฌ์ฉ๋ฒ
from ultralytics import YOLO
# Load the model
model = YOLO("yolo11n.pt")
# Run the evaluation
results = model.val(data="coco8.yaml")
# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean recall:", results.box.mr)
์ด๋ฌํ ๋ฉํธ๋ฆญ์ ๋ถ์ํ๋ฉด YOLO11 ๋ชจ๋ธ์ ๋ฏธ์ธ ์กฐ์ ํ๊ณ ์ต์ ํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๋ ์์ธํ ์์๋ณด๋ ค๋ฉด YOLO11 ๋ฉํธ๋ฆญ์ ๋ํ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์.