본문 바로가기

Biusiness Insight/Data Science

mAP, IOU란 + Object Detection 성능 평가 지표의 이해 및 예시

반응형

 

1. IOU (Intersection Over Union)

객체 검출의 정확도를 평가하는 지표. 일반적으로 Object Detection에서 개별 객체(Object)에 대한 검출(Detection)이 성공하였는지를 결정하는 지표로 0~1 사이의 값을 가짐

실제 객체 위치 bounding box $B_{gt}$=gournd truth와 예측한 bounding box $B_p$=prediction box가 중복되는 영역의 크기를 통해 평가하는 방식으로 겹치는 영역이 넓을 수록 잘 예측한 것으로 평가

IOU (Intersection Over Union) = area of overlap / area of union
IOU 표기법 및 threshold 예시 (메트릭에 따라 일반적으로 50%, 75%, 95%로 설정)

 

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가 너무 많으므로 메트릭에서는 사용하지 않음

Confusion Matrix 를 이용한 TP, FP, FN, TN 의 이해

 

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

Precision (정밀도) & Recall (재현율) 의 이해

 

3. Precision-Recall Curve (P-R Curve, 정밀도×재현율 곡선)

P-R 곡선(Precision-Recall Curve)는 confidence[각주:1] score를 조정하면서 얻 은 Recall 값의 변화에 따른 Precision을 나타낸 곡선으로 모델(Object detector)의 성능을 평가하는 방법으로, 일반적으로 P-R 곡선의 면적(AOU, Area under curve) 값으로 계산됨

  • 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)을 사용함

AP에 따른 mAP표기

 

4.1 11점 보간법 (11-point interpolation)

동일한 간격의 11개의 Recall 레벨 [0, 0.1, 0.2, ..., 1][각주:2] 에서 Precision 평균을 계산하여 P-R 곡선을 요약한 방식

11점 보간법 (11-point interpolation) 계산

 

4.2 모든 점 보간법 (interpolating all points)

동일한 간격의 11점 보간법 대신, 아래의 방식으로 모든 점을 이용하는 방식

모든 점 보간법 (interpolating all points) 계산

 

5. mAP (mean Average Performance)

mAP는 모든 점 보간법을 이용해서 AP를 구한 값의 평균

즉, 여러 Class에 대한 AP를 구해야 하므로, 각각의 Class에 대해 AP를 구하고 평균을 산출

mAP (mean Average Perfornamce) 계산

 

6. 예시를 통해 이해하기

AP는 각 Class에 대해 개별적으로 계산되나, 아래 예시에서는 Class가 하나인 것으로 가정

    • 동일 Class에 속하는 15개의 객체(ground truth, 녹색 bounding box)와 모델이 검출한 24개의 객체(predicion, 빨간색 bounding box) 사례
    • 빨간색 bounding box 옆에 표시된 백분율은 이 Object Class에 대한 Confidence를 나타냄

동일 Class에 속하는 15개의 실 객체(ground truth, 녹색 bounding box)와 모델이 검출한 24개의 객체(predicion, 빨간색 bounding box) 사례  (출처: Github/rafaelpadilla)
모델을 통해 검출된 24개의 Object에 대한 Confidence score와 TP/FP 여부 (출처: Github/rafaelpadilla)

위의 표의 경우 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를 항상 표시해야 함

IOU=50% 에 대한 Precision 및 Recall 계산 예시 (출처: Github/rafaelpadilla)

위의 표에서, 첫번째 행의 (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 곡선

PR곡선 (Precision-Recall curve)

 

11점 보간법 (11-point interpolation)으로 AP 계산

 

11점 보간법(11-point interpolation)을 이용한 PR곡선 (P-R curve)

 

모든 점 보간법 (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

모든 점 보간법(interpolating all points)을 이용한 PR곡선(P-R curve)과 면적

 

- 이후 이 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 계산 결과

COCO 데이터셋과 PASCAL VOC 2012 데이터셋 기반, 모델 성능 비교를 위해 AP와 mAP 계산 결과

 

# 참고문헌 (References)

 

  1. Object가 특정 class일 확률 [본문으로]
  2. 0부터 1까지 0.1 간격 [본문으로]
반응형