IoU ( Intersection over Union )

일반적으로 Object Detection에서 개별 Object에 대한 검출(Detection) 예측이 성공하였는지의 여부를 IoU로 결정합니다.

Area of Overlab은 prediceted bounding box와 ground-truth bounding box가 겹치는 부분입니다.
Area of Unin은 predicted bounding box와 ground-truth bounding box를 둘러싸는 영역입니다.

IoU = 교집합 영역 넓이 / 합집합 영역 넓이

실제 Object 위치 Bounding box예측한 Bounding box의 겹치는 영역이 넓을 수록 잘 예측한 것으로 평가합니다.

 
명칭 IoU Threshold
IoU=0.50 >=0.50
IoU=0.55  >=0.55
IoU=0.60  >=0.60
IoU=0.65  >=0.65
IoU=0.70  >=0.70
IoU=0.75  >=0.75
IoU=0.80  >=0.80
IoU=0.85  >=0.85
IoU=0.90  >=0.90
IoU=0.95  >=0.95

[표 1]  IoU 표기법

confusion matrix

AP를 구하기 위해서는 우선 정밀도와 재현율에 대해 이해해야 합니다. 정밀도는 모델이 예측을 Positive으로 한 대상 중에 예측 값과  실제 값이 Positive로 일치한 데이터의 비율을 의미하며 재현율은 실제 값이 Positive인 대상 중에서 예측과 실제 값이 Positive으로 일치한 데이터의 비율을 의미합니다.

 

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

정밀도 x 재현율 곡선 (P-R Curve)

정밀도 x 재현율 곡선은 confidence를 변경하면서 각 객체 분류(class)에 대한 곡선을 그리면서 object detector의 성능을 평가하는데 좋은 방법입니다. 특정 분류(class)의 object detector는 재현율이 증가함에 따라 정밀도가 높게 유지되는 경우를 양호한 것으로 간주됩니다. 즉, confidence threshold를 변경한다면, 정밀도와 재현율은 여전히 ​​높습니다.

더보기

confidence : 해당 object가 특정 class일 확률

좋은 object detector를 식별하는 또 다른 방법은 모든 ground truth objects(객체 (0 False Negatives = 높은 재현율)을 찾아서 관련된 object만을(0 False Positives = 높은 정밀도) 식별할 수 있는 detector를 찾는 것입니다. 불량 object detector는 모든 ground truth object 를 검색하기 위해 (높은 재현율) 탐지된 object(False Positives을 증가 = 낮은 정밀도)의 수를 늘려야 합니다. 이것이 Precision x Recall 곡선이 일반적으로 높은 정밀도 값으로 시작하여 재현율이 증가함에 따라 감소하는 이유입니다. 이러한 종류의 곡선은 PASCAL VOC 2012 챌린지에서 사용되며 구현시 사용할 수 있습니다.

평균 정밀도(Average Precision)

Object detector의 성능을 비교하는 또 다른 방법은 정밀도 x 재현율 곡선의 곡선 아래 면적 (AUC)을 계산하는 것입니다. AP 곡선은 종종 위아래로 올라가는 지그재그 곡선이기 때문에 동일한 플롯에서 다른 곡선 (다른 detector)을 비교하는 것은 일반적으로 쉬운 작업이 아닙니다. 곡선이 서로 교차하는 경향이 있기 때문입니다. 그렇기 때문에 수치 측정 항목인 평균 정밀도 (AP)가 다른 detector를 비교하는 데 도움이 될 수 있습니다. 실제로 AP는 0과 1 사이의 모든 재현율(Recall)에 대해 평균 정밀도입니다. 

2010 년부터 PASCAL VOC 챌린지에 의한 AP 계산 방식이 변경되었습니다.

더보기

PASCAL VOC(Pattern Analysis, Statistical Modeling and Computational Learning) 챌린지:  computer vision 분야의 기술 중 object class recognition 기술을 겨루는 국제대회(입력 영상에서 특정 종류의 물체를 검출해 내는 성능을 겨룬 대회, 총 20가지 물체) 

현재 PASCAL VOC 챌린지에 의해 수행되는 보간법은 논문에 명시된대로 동일한 간격의 11점 보간법(11-point interpolation) 대신 모든 점 보간법(interpolating all points)을 사용합니다.

명칭 약어 IoU
AP@IoU=0.50 AP50 0.50
AP@IoU=0.55  AP55 0.55
AP@IoU=0.60  AP60 0.60
AP@IoU=0.65  AP65 0.65
AP@IoU=0.70  AP70 0.70
AP@IoU=0.75  AP75 0.75
AP@IoU=0.80  AP80 0.80
AP@IoU=0.85  AP85 0.85
AP@IoU=0.90  AP90 0.90
AP@IoU=0.95  AP95 0.95

[표2] AP에 따른 mAP 표기

오차를 줄이기 위해서 모든 점 보간법(interpolating all points)을 사용하기도 합니다.

 

⓵ 11점 보간법

11점 보간법은 동일한 간격의 11개의 재현율 레벨 [0,0.1, 0.2,…,1]에서 정밀도를 평균을 계산함으로써 Precision x Recall 곡선의 모양을 요약한 것입니다.

⓶ 모든 점 보간법

모든 점 보간법에서는 동일한 간격의 11점 보간법 대신 다음과 같은 방식으로 모든 점를 통해 보간할 수 있습니다.

mAP

우리는 여러 개의 class(유형)에 대한 AP가 필요합니다. 이에 각각의 class에 대해 AP를 구하고 평균 값을 구합니다. 
mAP는 모든 점 보간법을 이용해서 AP를 구한 값에 평균을 구합니다. 


최종 평가는 아래와 같이 각 AP에 해당하는 mAP를 구하고 평균를 산출합니다.

예제

AP는 각 class에 대해 개별적으로 계산됩니다.
아래 그림1에서는 하나의 class에 대해서만 가정하겠습니다.

[그림1] 같은 class에 속하는 15 개의 ground truth (녹색 상자)를 탐지하기 위해 object detector가 수행한 24 개의 탐지 (빨간색 상자)의 예.

 

각 빨간색 box 옆에 그려진 백분율은 이 object class에 대한 detection confidence를 나타냅니다.
아래 표3은 결과 제출물의 일부입니다. 여기서 score가 Confidence입니다.  예시로 %로 표시했으나, 실제 결과 제출 시에는 0.0 ~ 1.0으로 합니다. 

img_name defect defect_no score x_center y_center width height
Img_001 0 1 80% ...      
Img_001 0 2 88% ...      
Img_001 0 3 70% ...      
Img_002 0 1 74% ...      
Img_002 0 2 71% ...      
Img_002 0 3 54% ...      
Img_003 0 1 18% ...      
Img_003 0 2 67% ...      
Img_003 0 3 38% ...      
Img_003 0 4 91% ...      
Img_003 0 5 44% ...      
Img_004 0 1 35% ...      
Img_004 0 2 78% ...      
Img_004 0 3 45% ...      
Img_004 0 4 14% ...      
Img_005 0 1 44% ...      
Img_005 0 2 62% ...      
Img_005 0 3 95% ...      
Img_005 0 4 23% ...      
Img_006 0 1 45% ...      
Img_006 0 2 43% ...      
Img_006 0 3 84% ...      
Img_007 0 1 48% ...      
Img_007 0 2 95% ...      

[표3] 결과 제출물의 일부

일단 IoU@50을 기준으로  TP 탐지 box로 고려해 보겠습니다. IoU 임계 값의 각 값은 다른 AP 메트릭을 제공하므로 사용되는 임계 값을 항상 표시해야합니다. 표 4처럼 score(=Confidence)에 따라 정렬된 각 detection를 보여줍니다.
img_name defect_no score TP FP Acc TP Acc FP Precision Recall
Img_005 3 95% 1 0 1 0 1.000 0.067
Img_007 2 95% 0 1 1 1 0.500 0.067
Img_003 4 91% 1 0 2 1 0.667 0.133
Img_001 2 88% 0 1 2 2 0.500 0.133
Img_006 3 84% 0 1 2 3 0.400 0.133
Img_001 1 80% 0 1 2 4 0.333 0.133
Img_004 2 78% 0 1 2 5 0.286 0.133
Img_002 1 74% 0 1 2 6 0.250 0.133
Img_002 2 71% 0 1 2 7 0.222 0.133
Img_001 3 70% 1 0 3 7 0.300 0.200
Img_003 2 67% 0 1 3 8 0.273 0.200
Img_005 2 62% 1 0 4 8 0.333 0.267
Img_002 3 54% 1 0 5 8 0.385 0.333
Img_007 1 48% 1 0 6 8 0.429 0.400
Img_004 3 45% 0 1 6 9 0.400 0.400
Img_006 1 45% 0 1 6 10 0.375 0.400
Img_003 5 44% 0 1 6 11 0.353 0.400
Img_005 1 44% 0 1 6 12 0.333 0.400
Img_006 2 43% 0 1 6 13 0.316 0.400
Img_003 3 38% 0 1 6 14 0.300 0.400
Img_004 1 35% 0 1 6 15 0.286 0.400
Img_005 4 23% 0 1 6 16 0.273 0.400
Img_003 1 18% 1 0 7 16 0.304 0.467
Img_004 4 14% 0 1 7 17 0.292 0.467

[표4] IoU = 50% 에 대한 정밀도 및 재현율 계산

1. 단일 겹침인 경우, ground truth bbox와 예측 bbox간의 IoU 계산 

  • IoU >= 0.5이면 TP는 1, FP는 0
  • IoU < 0.5 이면 TP는 0, FP는 1

2. 복수 겹침인 경우, ground truth와 예측 bboxs간 IoU를 계산

  • IoU >= 0.5이고 IoU가 제일 큰 예측 bbox를 선택하고 TP = 1, FP=0
  • 그렇지 않으면, TP = 0, FP = 1

   만약 IoU값이 동일하면 confidence가 제일 큰 예측 bbox를 선택

  • 선택된 예측 bbox는 TP = 1, FP = 0
  • 선택되지 않은 예측 bbox는 TP = 0, FP = 1

Acc TP  Acc FP columns 해당 confidence 수준 이상의 모든 detections 함께 TP  FP 총량을 누적합니다.


표4에서 나온 결과를 그래프로 그리면 아래와 같은 정밀도 x 재현율 곡선을 볼 수 있습니다. 

[그림 4] 표4의 결과에 따른 정밀도 x 재현율 곡선 그래프&amp;amp;amp;nbsp;
[그림 5] 정밀도 x 재현율 곡선
[그림 &amp;amp;nbsp;6] 모든 점 보간법을 적용한&amp;amp;nbsp; 정밀도 &amp;amp;nbsp;&amp;amp;times; 재현율
[그림7] A면적+B면적+C면적+D면적


이 class에 대한 AP@IoU=0.50 ( = AP50)값은 24.59%입니다. 
이후 이 class에 대해 AP@IoU=0.55 ( = AP55)  ~ AP@IoU=0.95 ( = AP95)을 구합니다.

그리고 이 class에 대한 AP@[.5:.05:.95]를 합니다. 


그리고 나머지 다른 classe들에 대해서 동일하게 AP@IoU=0.50 ~ AP@IoU=0.95을 구합니다.  최종 mAP@IoU=[.5:.05:.95]을 구합니다.


참고문헌 (References)

반응형