1. IOU (Intersection Over Union)
객체 검출의 정확도를 평가하는 지표. 일반적으로 Object Detection에서 개별 객체(Object)에 대한 검출(Detection)이 성공하였는지를 결정하는 지표로 0~1 사이의 값을 가짐
실제 객체 위치 bounding box $B_{gt}$=gournd truth와 예측한 bounding box $B_p$=prediction 두 box가 중복되는 영역의 크기를 통해 평가하는 방식으로 겹치는 영역이 넓을 수록 잘 예측한 것으로 평가
2. Precision & Recall
2.1 TP, FP, FN, TN with Confusion Matrix
- TP (True Postivie, 실제 양성 예측 양성) : 올바른 탐지. IOU ≥ threshold
- FP (False Positive, 실제 음성 예측 양성) : 오탐(음성을 양성으로 탐지) IOU ≤ threshold
- FN (False Negative, 실제 양성 예측 음성) : 미탐(탐지하지 못함)
- TN (True Negative, 실제 음성 예측 음성) : 미적용. Object detecion에서는 이미지 내에서 감지되면 안되는 bounding box가 있으며, 따라서 TN은 올바르게 감지되지 않은 모든 bounding box 인데, 이미지 내에는 bounding box가 너무 많으므로 메트릭에서는 사용하지 않음
2.2 Precision & Recall
- Precision (정밀도) = $ {TP \over TP+FP} = {TP \over {all detections}} $
- 관련 객체만을 식별하는 모델의 성능
- 예) 모델이 객체로 검출한 것이 10개 인데, 그 중 7개를 올바로 검출한 것이라면, Precision=7/10=0.7
- Recall (재현율) = $ {TP \over TP+FN} = {TP \over {all ground truths}} $
- 모든 관련 사례(모든 정답 bounding box)를 찾는 모델의 성능
- 예) 검출해내야 하는 정답 객체가 9개 인데. 모델이 객체라고 올바로 검출한 것이 6개라면, Recall=6/9=0.67
3. Precision-Recall Curve (P-R Curve, 정밀도×재현율 곡선)
P-R 곡선(Precision-Recall Curve)는 confidence score를 조정하면서 얻 은 Recall 값의 변화에 따른 Precision을 나타낸 곡선으로 모델(Object detector)의 성능을 평가하는 방법으로, 일반적으로 P-R 곡선의 면적(AOU, Area under curve) 값으로 계산됨 1
- Recall이 높아져도 Precision이 유지되는 경우, 특정 Class 검출을 위한 모델 성능이 좋을 것으로 평가됨. 즉 Confidence threshold를 변경하더라도, Precision과 Recall이 모두 높은 경우 모델 성능이 좋을 것으로 평가
- 관련된 객체 만 detection 할 수 있는 모델. 즉 오탐 낮은(0 FP = Precision 높음) 경우도 좋은 모델로 평가할 수 있음
- 실제 Object를 모두 찾아내기 위해 Object 수를 많이 Detect 하는 경우 (FP 높은 경우 = Precision이 낮음), 일반적으로 P-R 곡선이 높은 Precision으로 시작하지만, Recall이 증가함에 따라 감소함
4. Average Precision (AP, 평균 정밀도)
AP 곡선(Average Precision curve)은 Precision과 Recall을 고려한 종합적 평가 지표이며, 실제로 AP는 0~1 사이의 모든 Recall에 대응하는 평균 Precision
- 다른 검출방식에 비해 곡선의 업다운이 심하고, 곡선이 자주 교차하는 경향이 있기 때문에 같은 플롯으로 비교하는 것이 쉽지 않음. AP 평가 지표는 다양한 모델을 비교에 유용한 방식.
- 2010년부터, PASCAL VOC 챌린지에서 AP 계산 방식이 변경되어, 현재는 11점 보간법(11-point interpolation) 뿐만 아니라 모든 점 보간법(interpolating all data)을 사용함
4.1 11점 보간법 (11-point interpolation)
동일한 간격의 11개의 Recall 레벨 [0, 0.1, 0.2, ..., 1] 에서 Precision 평균을 계산하여 P-R 곡선을 요약한 방식 2
4.2 모든 점 보간법 (interpolating all points)
동일한 간격의 11점 보간법 대신, 아래의 방식으로 모든 점을 이용하는 방식
5. mAP (mean Average Performance)
mAP는 모든 점 보간법을 이용해서 AP를 구한 값의 평균
즉, 여러 Class에 대한 AP를 구해야 하므로, 각각의 Class에 대해 AP를 구하고 평균을 산출
6. 예시를 통해 이해하기
AP는 각 Class에 대해 개별적으로 계산되나, 아래 예시에서는 Class가 하나인 것으로 가정
- 동일 Class에 속하는 15개의 객체(ground truth, 녹색 bounding box)와 모델이 검출한 24개의 객체(predicion, 빨간색 bounding box) 사례
- 빨간색 bounding box 옆에 표시된 백분율은 이 Object Class에 대한 Confidence를 나타냄
위의 표의 경우 IOU≥30% 인 경우 TP, 그렇지 않은 경우 FP
- Precision = TP/(TP+FP) = 7/24
- Recall = TP/(TP+FN) = 7/15
일부 이미지는 ground truth와 겹치는 이미지가 1개 이상임(이미지 2,3,4,5,6,7). 이러한 경우 첫번째 detection은 TP로 간주, 나머지는 FP로 간주
하지만, AP를 구하려면, Confidence socre의 threshold 변화에 따른 모든 구간의 Precision과 Recall을 구해야 함
- IOU@50 기준으로 TP를 탐지한 bounding box 대상 Confidence score에 따라 정렬한 detection 결과 (아래 표)
- IOU의 threshold 값은 각각 다른 AP 지표를 제공하므로 사용되는 threshold를 항상 표시해야 함
위의 표에서, 첫번째 행의 (detection R) b-box의 경우, Confidence score가 0.95일 경우 TP
- Precisin = TP/(TP+FP) = 1/1=1
- Recall = TP/(TP+FN) = 1/15 = 0.6666 (15개의 ground-truth 중 1번의 TP)
위의 표에서, 두번째 행의 (detection Y) b-box의 경우, FP
- Precision = TP/(TP+FP) = 1/2 = 0.5 (두 번의 예측 중 1번의 TP가 있었으므로)
- Recall = TP/(TP+FN) = 1/15 = 0.6666
ground-truth b-box와 예측 b-box 간의 IOU 계산
단일 겹침인 경우,
- $ IOU ≥= 0.5 $ 이면, TP=1, FP=0
- $ IOU < 0.5 $ 이면, TP=0, FP=1
복수 겹침인 경우,
- $ IOU ≥= 0.5 $ 이고, IOU가 가장 큰 예측 b-box를 만족하면, TP=1, FP=0
- 위 조건을 만족하지 않으면, TP=0, FP=1
- 만약 IOU값이 동일하면 Confidence가 가장 큰 예측 b-box를 선택한 후
- 선택된 예측 b-box는 TP=1, FP=0
- 선택되지 않은 예측 b-box는 TP=0, FP=1
Acc TP 및 Acc FP 의 계산
해당 Confidence 수준 이상의 모든 detections와 함께 TP, FP의 총량을 누적
$Acc TP = {AccTP \over{ AccTP + AccFP}}$
$Acc FP = {AccTP \over{ ground truth}} = { AccTP \over{15}}$
PR 곡선
11점 보간법 (11-point interpolation)으로 AP 계산
모든 점 보간법 (interpolating all points)으로 AP 계산
- 이 class에 대한 AP@IoU=0.5의 값은 24.56 %
- A면적 = $ 1 × (0.0666-0) $
- B면적 = $ 0.6666 × (0.1333-0.0666) $
- C면적 = $ 0.4285 × (0.4-0.1333) $
- D면적 = $ 0.3043 × (0.4666-0.4) $
- AP = A면적 + B면적 + C면적 + D면적 = 0.0666 + 0.04446222 + 0.11428095 + 0.02026638 = 0.24560955
- 이후 이 class에 대한 AP@IoU=0.55~0.95를 구하고, 동일하게 AP@IoU=0.55~0.95를 구하여, AP@[.5: .05: .95]를 구할 수 있음
- 나머지 다른 모든 Class에 대해 동일하게 AP@IoU=0.5~AP@IoU=0.95를 구하여, 최종 mAP@IoU=[.5 : .05: .95]를 구할 수 있음
- 아래는 COCO 데이터셋과 PASCAL VOC 2012 데이터셋 기반 모델 성능 비교를 위해 AP와 mAP 계산 결과
# 참고문헌 (References)
- A Survey on Performance Metrics for Object-Detection Algorithms, Rafael Padilla et al., IWSSIP 2020, - https://github.com/rafaelpadilla/Object-Detection-Metrics/blob/master/paper_survey_on_performance_metrics_for_object_detection_algorithms.pdf
- A Comparative Analysis of Object Detection Metrics with a Companion Open-Source Toolkit, Rafael Padilla et al., Electronics vol 10. 2021 - https://github.com/rafaelpadilla/Object-Detection-Metrics
- Open-Source Visual Interface for Object Detection Metrics - GitHub - rafaelpadilla/review_object_detection_metrics: Object Detection Metrics. 14 object detection metrics: mean Average Precision (mAP), Average Recall (AR), Spatio-Temporal Tube Average Precision (STT-AP). This project supports different bounding box formats as in COCO, PASCAL, Imagenet, etc.
- The PASCAL Visual Object Classes (VOC) Challenge - ijcv27.uk.dvi (psu.edu)
'Biusiness Insight > Data Science' 카테고리의 다른 글
[Pandas] DataFrame 생성/조회, csv 불러오기/저장하기 (0) | 2021.10.05 |
---|---|
Data Science 기본 역량 + Numpy, Pandas 활용 기초 (0) | 2021.10.03 |
분석/참고용 데이터 소스 (1) | 2018.09.27 |
Machine Learning Cheat Sheets (0) | 2017.06.27 |
카카오 AI 리포트 (Vol.1~3) (0) | 2017.05.20 |