๐ก ๋ณธ ๋ฌธ์๋ '[Perception] ๋ชจ๋ธ ์ฑ๋ฅํ๊ฐ (IoU, Recall, Precision, ROC, mAP, ...)'์ ๋ํด ์ ๋ฆฌํด๋์ ๊ธ์ ๋๋ค.
Yolo์์๋ ๋ชจ๋ธ์ ์ฑ๋ฅ(์ ํ๋)์ Mean Average Precision(mAP)๋ฅผ ํตํด ํ์ธํ๋ค. mAP๊ฐ ๋์์๋ก ์ ํํ๊ณ , ์์์๋ก ๋ถ์ ํํฉ๋๋ค. Average precision(AP) ๊ณ์ฐ์ ํ ๋ precision-recall ๊ณก์ ์ ์ฌ์ฉํ๋๋ฐ, ๊ด๋ จ ๋ด์ฉ๋ค์ ์ดํดํ๊ธฐ ์ํด์ IoU, precision, recall, precision-recall ์ ๊ฐ๋ ์ ๋จผ์ ์ดํด๋ด์ผ ํฉ๋๋ค.
1. Intersection over union (IoU)
IoU๋ ์ด๋ค ๋ฐ์ดํฐ์ ์ ๋ํ์ฌ ๊ฐ์ฒด ๊ฒ์ถํ๋ ๋ชจ๋ธ์ ์ ํ๋๋ฅผ ์ธก์ ํ๋ ํ๊ฐ์งํ์ด๋ค. ์ด๋ ํฉ์ฑ๊ณฑ ์ ๊ฒฝ๋ง์ ์ฌ์ฉํ ๊ฐ์ฒด ๊ฒ์ถ ๋ชจ๋ธ Convolutional Neural Network detectors (R-CNN, Faster R-CNN, YOLO, etc.)์ ํ๊ฐํ ๋ ์ฌ์ฉ๋๋ค.
IoU๋ก ํ๊ฐํ๊ธฐ ์ํด์๋ ground-truth bounding box (์ ๋ต ๋ฐ์ด๋ฉ ๋ฐ์ค) ์ ๋ชจ๋ธ๋ก๋ถํฐ ์์ธก๋ predicted bounding box ๊ฐ ํ์ํ๋ค.
IoU ๊ณ์ฐ ๋ฐฉ๋ฒ์ ๋ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ฅผ ๊ฐ์ง๊ณ IoU = ๊ต์งํฉ ์์ญ ๋์ด / ํฉ์งํฉ ์์ญ ๋์ด ๋ฅผ ๊ณ์ฐํด ๋์จ ๊ฐ์ด IoU์ด๋ค.
Classification (๋ถ๋ฅ) ๋ฌธ์ ๊ฐ์ ๊ฒฝ์ฐ์๋ ๋ชจ๋ธ์ด ์์ธกํ ํด๋์ค ๋ผ๋ฒจ ๊ฐ์ด ์ค์ ํด๋์ค ๋ผ๋ฒจ๊ฐ๊ณผ ๊ฐ๋ ๋ค๋ฅด๋๋ง ๋ฐ์ง๋ฉด ๋๋ค. ํ์ง๋ง ๊ฐ์ฒด ๊ฒ์ถ์์๋ ๋ชจ๋ธ์ด ์์ธกํ ๋ฐ์ด๋ฉ ๋ฐ์ค์ x,y ์ขํ๋ค์ด ์ ๋ต ๋ฐ์ด๋ฉ ๋ฐ์ค์ x,y ์ขํ๋ค๊ณผ ์ ํํ ์ผ์นํ๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์๋ค. ๊ทธ๋์ IoU๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
์๋ ์ฌ์ง๊ณผ ๊ฐ์ด ๋นจ๊ฐ์ (์์ธก๋) ๋ฐ์ด๋ฉ ๋ฐ์ค๊ณผ ์ด๋ก์ (์ ๋ต) ๋ฐ์ด๋ฉ ๋ฐ์ค์ ๊ฒน์น๋ ๋ถ๋ถ์ด ๋ง์ ์๋ก ์ ์๊ฐ ๋๋ค. ์ด๋ ๊ฒ IoU๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ x,y ์ขํ๊ฐ ์ ํํ ์ผ์นํ๋๋๋ฅผ ๋ณด๋๊ฒ ์๋๋ผ ์์ธกํ ๋ฐ์ด๋ฉ ๋ฐ์ค๊ฐ ์ ๋ต๊ณผ ์ต๋ํ ๊ฐ๊น์์ง๋๋ก ํ์ตํ๋ ๊ฒ์ด๋ค.
๋ box์ ํฌ๊ธฐ๊ฐ ๋์ผํ ๊ฒฝ์ฐ ๋ box์ 2/3๋ ๊ฒน์ณ์ค์ผ 0.5์ ๊ฐ์ด ๋์ค๊ธฐ ๋๋ฌธ์ R-CNN์์๋ ๋ณดํต IoU์ threshold ๊ฐ์ผ๋ก 0.5๋ฅผ ์ก์์ (= IoU ๊ฐ์ ๊ณ์ฐํด 0.5 ์ด์์ธ ๊ฒฝ์ฐ) ํด๋น region์ ๊ฐ์ฒด๋ก ๋ฐ๋ผ๋ณด๊ณ ground truth์ ๊ฐ์ class๋ก labelling์ ํ๋ค๊ณ ํ๋ค.
IoU๊ฐ mAP๋ฅผ ์ดํดํ๋ ๋ฐ ํ์ํ ์ด์ ?
IoU๊ฐ mAP๋ฅผ ์ดํดํ๋๋ฐ ํ์ํ ์ด์ ๊ฐ ๋ญ๊น? ๋ฐ๋ก ๋ค์์ ๋์ฌ precision ๊ณผ recall์ ๊ณ์ฐ ํ ๋ ๋ฌผ์ฒด๋ฅผ ๊ฒ์ถํ์ ๋ ์ณ๊ฒ ๊ฒ์ถ๋์๋ค์ ์ณ๊ฒ ๊ฒ์ถ๋์ง ์์๋ค๋ฅผ ๊ตฌ๋ถ ํด์ฃผ๋ ๊ธฐ์ค์ด ํ์ํ๋ฐ ๊ทธ ๊ธฐ์ค์ผ๋ก IoU๊ฐ ์ฐ์ธ๋ค.
์๋ฅผ ๋ค์ด ๋ ผ๋ฌธ์ ๋ณด๋ฉด ๋ฐ์ดํฐ ์ ๋ง๋ค mAP ํ๊ฐ๋ฅผ ํ์ ๋ ์ฐจ์ด๊ฐ ๋๋ค.
- MS COCO mAP ๊ธฐ์ค์ผ๋ก YOLOv3 ๋ชจ๋ธ์ 33.0 < RetinaNet ๋ชจ๋ธ์ 40.8
- Pascal VOC mAP (AP50) ๊ธฐ์ค์ผ๋ก YOLOv3๋ 57.0 โ RetinaNet 61.1 (์๋๋ YOLOv3๊ฐ 4๋ฐฐ ๋น ๋ฆ)
Pascal VOC๋ IoU(Intersection over Union) > 0.5 ์ธ detection์ true, ๊ทธ ์ดํ๋ false๋ก ํ๊ฐํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๊ณ , COCO๋ IoU>0.5, IoU>0.55, IoU>0.6, …, IoU>0.95 ๊ฐ๊ฐ์ ๊ธฐ์ค์ผ๋ก AP๋ฅผ ๊ณ์ฐํ ํ ์ด๋ค์ ํ๊ท ์ ์ทจํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
yoloV5์ test.py ์ฝ๋๋ฅผ ๋๋ฆฌ๋ฉด mAP@.5, mAP@.5 : .95 ๊ฐ ์๋๋ฐ, ์ด ๊ฒ์ด ์์์ ๋งํ Pascal VOC์ mAP ํ๊ฐ ๋ฐฉ์๊ณผ COCO์ mAP ํ๊ฐ ๋ฐฉ์์ด๋ค.
We evaluate the mAP averaged for IoU ∈ [0.5 : 0.05 : 0.95] (COCO’s standard metric, simply denoted as mAP@[.5, .95]) and mAP@0.5 (PASCAL VOC’s metric). mAP@[.5,.95]) means average mAP over different IoU thresholds, from 0.5 to 0.95, step 0.05 (0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95).
2) Precision , Recall
Precision (์ ๋ฐ๋) ๋ ๋ชจ๋ธ์ด ์์ธกํ ๊ฒฐ๊ณผ์ Positive ๊ฒฐ๊ณผ๊ฐ ์ผ๋ง๋ ์ ํํ์ง๋ฅผ ๋ํ๋ด๋ ๊ฐ์ด๋ค.
- ๋ชจ๋ธ์ด ์ ๋ต์ด๋ผ๊ณ ํ ๊ฒ ์ค์ ์ง์ง ์ ๋ต์ ๋น์จ
Recall (์ฌํ์จ) ์ ๋ชจ๋ธ์ ์์ธกํ ๊ฒฐ๊ณผ๊ฐ ์ผ๋ง๋ Positive ๊ฐ๋ค์ ์ ์ฐพ๋์ง๋ฅผ ์ธก์ ํ๋ ๊ฒ์ด๋ค.
- ์ง์ง ์ ๋ต ์ค์ ๋ชจ๋ธ์ด ์ ๋ต์ด๋ผ๊ณ ํ ๊ฒ์ ๋น์จ
์๋ฅผ ๋ค์ด, ์ ์ง๋จ์ ๊ฒฝ์ฐ์ ๋ํด Precision๊ณผ Recall์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ ๋๋ค.
- Precision (์ ๋ฐ๋) : ์์ฑ์ผ๋ก ์์ธก๋ ๊ฒ ์ค ์ง์ง ์์ฑ์ ๋น์จ (์ ์ฝ์ ํจ๊ณผ ์ธก์ )
- Recall (์ฌํ์จ) : ์ง์ง ์์ฑ ์ค ์์ฑ์ผ๋ก ์์ธก๋ ๋น์จ (์ ์ง๋จ)
Precison๋ง์ผ๋ก ๋ฌผ์ฒด ๊ฒ์ถ ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ํ๊ฐํ๋ ๊ฒ์ ์ ์ ํ์ง ์๋ค. ๋ํ Recall๋ง์ผ๋ก ์ฑ๋ฅ์ ํ๊ฐํ๋ ๊ฒ๋ ์ ์ ํ์ง ์๋ค. Precision๊ณผ Recall์ ํญ์ 0๊ณผ 1์ฌ์ด์ ๊ฐ์ผ๋ก ๋์ค๊ฒ ๋๋๋ฐ, Precision์ด ๋์ผ๋ฉด Recall์ ๋ฎ์ ๊ฒฝํฅ์ด ์๊ณ , Precision์ด ๋ฎ์ผ๋ฉด Recall์ด ๋์ ๊ฒฝํฅ์ด ์๋ค. ๋ฐ๋ผ์ ๋ ๊ฐ์ ์ข ํฉํด์ ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ํ๊ฐํด์ผ ํ๊ณ , ๊ทธ๋์ ๋์จ ๊ฒ์ด precision-recall ๊ณก์ ๋ฐ AP ๋ค.
3) Precision-recall ๊ณก์ (PR ๊ณก์ )
PR ๊ณก์ ์ confidence threshold ๊ฐ์ ๋ฐ๋ฅธ precision๊ณผ recall์ ๊ฐ์ ๋ณํ๋ฅผ ๊ทธ๋ํ๋ก ํํํ ๊ฒ์ด๋ค.
confidence๋ ์๊ณ ๋ฆฌ์ฆ์ด ๊ฒ์ถํ ๊ฒ (detect ํ ๊ฒ)์ ๋ํด ์ผ๋ง๋ ์ ํํ๋ค๊ณ ์๊ฐํ๋์ง ์๋ ค์ฃผ๋ ๊ฐ์ธ๋ฐ, ๋ง์ฝ ์ด๋ค ๋ฌผ์ฒด๋ฅผ ๊ฒ์ถํ์ ๋ confidence ๋ ๋ฒจ์ด 0.99๋ผ๋ฉด ์๊ณ ๋ฆฌ์ฆ์ ๊ทธ ๋ฌผ์ฒด๊ฐ ๊ฒ์ถํด์ผ ํ๋ ๋ฌผ์ฒด์ ๊ฑฐ์ ๋๊ฐ๋ค๊ณ ์๊ฐํ๋ ๊ฒ๊ณผ ๊ฐ๋ค.
๊ฒ์ถ๋ ๋ชจ๋ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ค์ confidence ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ precision๊ณผ recall ๊ฐ์ ๊ณ์ฐํ๋ค.
- precision ์ "of all bounding box predicitions, what fraction was actually correct?" ๋ชจ๋ ์์ธก๋ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ค ์ค์์ ๋ง์ ๊ฒ์ ๋น์จ์? ์ด๊ณ ,
- recall ์ "of all target bounding boxes, what fraction did we correctly detect?" ์ ์ฒด ํ์ผ ๋ฐ์ด๋ฉ ๋ฐ์ค (์ ๋ต ๋ฐ์ด๋ฉ ๋ฐ์ค) ๋ค ์ค์์ ์ฐ๋ฆฌ๊ฐ ๊ฒ์ถํ ๊ฒ์ ๋น์จ์ (๋ง์ถ ๊ฒ์)? ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์์ ํ๋ฅผ x์ถ์ recall ๊ฐ, y์ถ์ precision ๊ฐ์ผ๋ก ๊ณก์ ์ ๊ทธ๋ฆฌ๋ฉด ๊ทธ ๊ณก์ ์ด PR ๊ณก์ ์ด๋ค.
4) Average Precision (AP)
precision-recall ๊ทธ๋ํ๋ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ์ ๋ฐ์ ์ผ๋ก ํ์ ํ๊ธฐ์๋ ์ข์ผ๋ ์๋ก ๋ค๋ฅธ ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ์ ๋์ ์ผ๋ก(quantitatively) ๋น๊ตํ๊ธฐ์๋ ๋ถํธํ ์ ์ด ์๋ค.
Average Precision์ ์ธ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ํ๋์ ๊ฐ์ผ๋ก ํํํ ๊ฒ์ผ๋ก์ precision-recall ๊ทธ๋ํ์์ ๊ทธ๋ํ ์ ์๋์ชฝ์ ๋ฉด์ ์ผ๋ก ๊ณ์ฐ๋๋ค.
average precision์ด ๋์ผ๋ฉด ๋์์๋ก ๊ทธ ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ด ์ ์ฒด์ ์ผ๋ก ์ฐ์ํ๋ค๋ ์๋ฏธ์ด๊ณ , ์ปดํจํฐ ๋น์ ๋ถ์ผ์์ ๋ฌผ์ฒด์ธ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ๋๋ถ๋ถ average precision์ผ๋ก ํ๊ฐํ๋ค.
5) Mean Average Precision (mAP)
์ด์ ์์์ ๋ฐฐ์ด ๊ฐ๋ ๋ค์ ์ ์ฉํด์ mAP๋ฅผ ๊ตฌํด๋ณด์.
๊ฐ์์ง๋ฅผ ๊ฒ์ถํ๋ ๋ฌธ์ ์์ ์๋์ ๊ฐ์ test set ์ด ์๋ค๊ณ ๊ฐ์ ํ์. mAP๋ฅผ ๊ตฌํ๊ธฐ ์ํด์๋
1. ๋ชจ๋ธ์ด ์์ธกํ ๋ชจ๋ ๋ฐ์ด๋ฉ ๋ฐ์ค ์ ๋ณด๋ฅผ ์ฝ์ด์จ๋ค.
๋นจ๊ฐ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ ์์ธก ๊ฐ๋ค์ด๊ณ ์ด๋ก์ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ ํ์ผ ๊ฐ (์ ๋ต ๊ฐ) ๋ค์ด๋ค. ๋นจ๊ฐ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ฅผ ๋ณด๋ฉด ๋ฐ์ค๋ง๋ค ์ ์๊ฐ ์ ํ์๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ด ์ ์๋ ๋ฐ์ด๋ฉ๋ฐ์ค๊ฐ ์์ ์ด ์์ธกํ ๋ฐ์ด๋ฉ ๋ฐ์ค์์ ๊ฐ์ฒด๊ฐ ์๋ค๊ณ ๋ฏฟ๋ ํ๋ฅ ๊ฐ (= confidence score) ์ด๋ค.
* YoloV5 ์์ conf_thres๋ฅผ ์ธ์๊ฐ์ ๋ฐ๋ก ์ง์ ํด์ฃผ์ง ์์ผ๋ฉด default 0.001๋ก ์ค์ ๋์ด์๋ค. ๋ชจ๋ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ฅผ ๊ฐ์ง๊ณ ์์ผํจ์ผ๋ก ์๋๋ 0์ผ๋ก ํด์ผํ์ง๋ง, ๊ทธ๋ฌ๋ฉด ๋๋ฌด ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ 0.001๋ก ์ค์ ํ๋ค๊ณ ํ๋ค. ์ด conf_thres ๊ฐ์ mAP ๊ณ์ฐ๋ง์ ์ํ ๊ฐ์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก inference code (detect.py) ๋ฅผ ๋๋ฆด ๋๋ conf_thres ๊ฐ์ด ๊ธฐ๋ณธ 0.25๋ก ์ค์ ๋์ด ์๋ค (mAP ๊ณ์ฐ ์ฉ์ด ์๋ ์์ธก ์ฉ). ์ด ๊ฒฝ์ฐ์๋ ๋ ๋์ ๊ฐ์ผ๋ก ๋ณ๊ฒฝํด๋ ์๊ด์๋ค (0 ~ 1 ์ฌ์ด).
- Image 1: confidence score ๊ฐ ๊ฐ๊ฐ 0.3, 0.6, 0.7์ธ 3๊ฐ์ ๋ฐ์ด๋ฉ ๋ฐ์ค๊ฐ ์๋ค. ์ด ๋ฐ์ด๋ฉ ๋ฐ์ค๋ค์ด True Positive (TP) / False Positive (FP) ์ธ์ง ํ๊ฐํ๋ฉด?
- Confidence score ๊ฐ 0.3์ธ ์ฒซ๋ฒ์งธ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ ์ด๋ค ํ๊ฒ ๋ฐ์ด๋ฉ ๋ฐ์ค์๋ ๊ฒน์น๋ ๋ถ๋ถ์ด ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ฒซ๋ฒ์งธ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ FP ์ด๋ค.
- Confidence score ๊ฐ 0.6์ธ ๋๋ฒ์งธ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ ๊ฐ์์ง์ ํ ๋ถ๋ถ์ ๊ฒ์ถํ๊ธด ํ์ง๋ง 0.5๋ณด๋ค ์์ IoU๋ฅผ ๊ฐ์ง๊ณ ์์์ผ๋ก FP ์ด๋ค.
- Confidence score ๊ฐ 0.7์ธ ์ธ๋ฒ์งธ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ฅผ ๋ณด๋ฉด ํ์ผ ๋ฐ์ด๋ฉ ๋ฐ์ค์ ๊ฒน์น๋ ๋ถ๋ถ์ด ๋ง๊ณ , 0.5๋ณด๋ค ํฐ IoU๋ฅผ ๊ฐ์ง๊ณ ์์์ผ๋ก TF ์ด๋ค.
- Image 2: ํ๋์ ์์ธก๋ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ฅผ ๊ฐ์ง๊ณ ์๊ณ , TP์ด๋ค.
- Image 3: ์ธ๊ฐ์ ์์ธก๋ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ฅผ ๊ฐ์ง๊ณ ์๊ณ , ์ด๋ฏธ์ง์ ์์ชฝ์ ์์นํ 2๊ฐ์ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ FP ์ด๊ณ , confidence ๊ฐ 0.9์ธ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ 0.5๋ณด๋ค ํฐ ๋์ IoU๋ฅผ ๊ฐ์ง๊ณ ์์์ผ๋ก TP์ด๋ค.
2. ์ด์ ํ ์คํธ ์ ์ ๋ชจ๋ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ฅผ ํ๋์ ํ๋ก ์ ๋ฆฌํด๋ณด๋ฉด ์๋์ ๊ฐ๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์ด ๋ฐ์ด๋ฉ ๋ฐ์ค๋ค์ Confidence score๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๊ฑฐ๋ค.
- True Positives (TP) ๋ ์์ธก๋ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ค ์ค์์ ํ์ผ (์ ๋ต) ๋ฐ์ด๋ฉ ๋ฐ์ค์์ IoU๊ฐ 0.5 ์ด์์ผ๋ก ๊ฒน์น๋ ๋ฐ์ค๋ค์ด๋ค. false positives ๋ ๊ทธ๋ ์ง ์์ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ค๋ก ์ณ์ง์์ = ํ๋ฆฐ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ค์ด๋ค.
- False Negatives (FN) ๋ ํ์ผ ๋ฐ์ด๋ฉ ๋ฐ์ค์ ๋ํด ์์ธก๋ ๋ฐ์ด๋ฉ ๋ฐ์ค๊ฐ ์๋ ๊ฒ์ ์๋ฏธํ๊ณ , true negatives ๋ ํ์ผ ๋ฐ์ด๋ฉ ๋ฐ์ค๊ฐ ์๋ ๊ณณ์ ์์ธก๋ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ ์๋ ๊ฒ์ ์๋ฏธํ๋ค.
์ฌ๊ธฐ์ ์ค์ํ metrics ์ธ precision ๊ณผ recall๋ฅผ ๋ค์ ์์ฝํด๋ณด๋ฉด
- Precision: "of all bounding box predicitions, what fraction was actually correct?" ๋ชจ๋ ์์ธก๋ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ค ์ค์์ ๋ง์ ๊ฒ์ ๋น์จ์? ์ด๊ณ ,
- Recall: "of all target bounding boxes, what fraction did we correctly detect?" ์ ์ฒด ํ์ผ ๋ฐ์ด๋ฉ ๋ฐ์ค (์ ๋ต ๋ฐ์ด๋ฉ ๋ฐ์ค) ๋ค ์ค์์ ์ฐ๋ฆฌ๊ฐ ๊ฒ์ถํ ๊ฒ์ ๋น์จ์ (๋ง์ถ ๊ฒ์)? ์ด๋ค.
์ด๋ ๊ฒ ๋งค์ฐ ๋ค๋ฅธ ๋ metrics๋ ๋์ด ๋ฐ๋์ธ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค (Precision์ด ๋์ผ๋ฉด Recall์ ๋ฎ์ ๊ฒฝํฅ์ด ์๊ณ , Precision์ด ๋ฎ์ผ๋ฉด Recall์ด ๋์ ๊ฒฝํฅ)
3. ์ด์ ๋ชจ๋ ๊ฒฐ๊ณผ๊ฐ์ ๋ํด precision ๊ณผ recall ๋ฅผ ๊ณ์ฐํ๋ค.
์ง๊ธ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ํ ์คํธ ์ ์ ์ด 4๊ฐ์ ํ๊ฒ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
์๋ ์ฌ์ง์์ ์ฒซ ํ๋ถํฐ ๋ณด๋ฉด, ์ฒซ ๋ฒ์งธ ๊ฒฐ๊ณผ๊ฐ์ TP ์์ผ๋ก precision ์ 1/1 (ํ์ฌ๊น์ง ์์ธก๋ ๋ฐ์ด๋ฉ ๋ฐ์ค = 1, ๋ง์ถ ๊ฐ์ = 1) ์ด๊ณ , recall ์ 1/4 (์ด ํ๊ฒ ๋ฐ์ด๋ฉ ๋ฐ์ค = 4, ๋ง์ถ ๊ฐ์ = 1) ์ด๋ค.
๋๋ฒ์งธ ๊ฒฐ๊ณผ๊ฐ์ FP ์์ผ๋ก precision ์ 1/2 (ํ์ฌ๊น์ง ์์ธก๋ ๋ฐ์ด๋ฉ ๋ฐ์ค = 2, ๋ง์ถ ๊ฐ์ = 1) ์ด๊ณ , recall ์ ๊ทธ๋๋ก 1/4 (์ด ํ๊ฒ ๋ฐ์ด๋ฉ ๋ฐ์ค = 4, ๋ง์ถ ๊ฐ์ = 1) ์ด๋ค.
์ด๋ฐ์์ผ๋ก ํ๋ฅผ ์ฑ์ฐ๋ฉด ๋๋ค.
4. ์์์ ๊ณ์ฐํ ๊ฐ๋ค๋ก Precision-Recall graph (PR ๊ณก์ )์ ๊ทธ๋ฆฐ๋ค.
recall ๊ฐ์ด x ์ด๊ณ , precision ๊ฐ์ด y ์ผ ๋, ์๋์ ๊ฐ์ ๊ณก์ ์ด ๋์จ๋ค.
5. PR ๊ณก์ ์ ์๋ ์์ญ์ ๊ณ์ฐํ๋ค. ( = AP )
6. ๋ชจ๋ ํด๋์ค์ PR๊ณก์ ์ ์๋์ ์์ญ์ ๊ณ์ฐํ๋ค.( = mAP )
์ง๊ธ๊น์ง ํ ๋ด์ฉ์ ๊ฐ์์ง ๋ผ๋ ํ๋์ ํด๋์ค์ ๋ํด์๋ง PR ๊ณก์ ์๋ ์์ญ์ ๊ณ์ฐํ ๊ฒ์ด๋ค. ํ์ง๋ง ์ค์ ์ผ์ด์ค์์๋ ์ด๋ ๊ฒ ํ๋์ ํด๋์ค๊ฐ ์๋๋ผ ๋ชจ๋ ํด๋์ค๋ฅผ ๊ณ์ฐํด์ผํ๋ค.
ํด๋์ค๊ฐ ํ๋๊ฐ ์๋๋ผ ๊ฐ์์ง, ๊ณ ์์ด ์ด๋ ๊ฒ ๋๊ฐ๊ฐ ์๋ค๊ณ ์๊ฐํด๋ณด์.
- ๊ณ ์์ด ํด๋์ค์ AP ๊ฐ 0.74 ์ด๊ณ ,
- ๊ฐ์์ง ํด๋์ค์ AP ๊ฐ 0.533 ์ด๋ฉด
mAP ๋ ๋ชจ๋ ํด๋์ค์ (๊ฐ์์ง + ๊ณ ์์ด) ํ๊ท ์ธ 0.6365๊ฐ ๋๋ค.
7. IoU threshold ์กฐ์ (= mAP@0.5:0.05:0.95)
์ง๊ธ๊น์ง์ ๋ด์ฉ์ IoU threshold ๋ฅผ 0.5 ๋ก ํน์ ํ์ ๋ ์ด์ผ๊ธฐ์ด๋ค. ํ์ง๋ง ์ค์ ์ผ์ด์ค์์๋ ์ด๋ฐ ๊ณ์ฐ์ ๋ง์ IoU ๊ฐ์ ๋ํด ๋ฐ๋ณตํด์ผ๋๋ค. ์๋ฅผ ๋ค์ด, IoU threshold ๊ฐ์ด 0.5, 0.55, 0.6, ..., 0.95 ์ผ ๋ mAP ๊ฐ์ ๊ฐ๊ฐ ๊ณ์ฐํ๊ณ , ๊ทธ ๊ฐ๋ค์ ํ๊ท ๋ธ ๊ฐ์ด ์ฐ๋ฆฌ๊ฐ ๊ตฌํ๊ณ ์ถ์ ์ต์ข ๊ฐ์ด ๋๋๊ฒ์ด๋ค. ์ด๊ฑธ mAP@0.5:0.05:0.95 ๋ผ๊ณ ์ด๋ค (๋ ผ๋ฌธ์์ ์์ฃผ ๋ณด์).
์ฐธ๊ณ
[Blog] yolov5 ํ์ต ํํ ๋ฆฌ์ผ 2 (+ mAP, IoU ์ค๋ช / Test ์ Inference): https://lynnshin.tistory.com/48