네이버 부스트캠프 학습 정리/9~11주차

[Object Detection] mAP

AI쟁이J 2023. 5. 19. 14:47

이번 대회의 평가 지표는 mAP였다. 

점수에 집착할 것이라면 어떤 점수에 집착하는지라도 알고 해야하지 않을까 싶어서 정리한다.

Confusion Matrix

Confusion Matrix는 머신러닝에서도 쓰이고, 여러 자격증을 준비하면서도 항상 나왔던 단골 손님이다. 하지만 한 번 공부를 할때마다 까먹기도 하고 늘 기억이 잘 안난다.

TP : 예측 값이 True이면서 실제 값 역시 True인 경우 (True Positive)

FP : 예측 값이 True이면서 실제 값은 False인 경우 (False Positive)

TN : 예측 값이 False이면서 실제 값 역시 False인 경우 (True Negative)

FN : 예측 값이 False이면서 실제 값은 True인 경우 (False Negative)

 

이 개념은 직관적이며, 표를 보거나 용어만 자세히 봐도 납득이 간다. 하지만 이후 이 지표들을 사용한 평가 방법들은 헷갈린다. (그래서 혼동행렬인가)

 

Accuracy (정확도)

모델이 바르게 분류한 부분의 비율.

전체의 박스 중에서 TP, TN의 비율이다.

식으로는 \(\frac{TP+TN}{TP+FP+FN+TN}\)

 

Precision (정밀도)

모델이 True로 분류한 것 중 실제 값이 True인 비율이다.

Predict의 True 중에서 TP의 비율

식으로는 \(\frac{TP}{TP+FP}\)

 

Recall (재현도)

재현도는 실제 값이 True인 것 중 모델이 True로 분류한 비율이다. 개인적으론 가장 헷갈린다.

식으로는 \(\frac{TP}{TP+FN}\)

 

F1 Score

F1Score는 Precision과 Recall의 조화평균으로, 실제로 저번 Image Classification 대회에선 평가지표로 쓰였다.

식으로는 \(\frac{2*Precision*Recall}{Precision+Recall}\)이다.

 

In Object Detection

위의 지표들은 단순한 분류 문제에서 주로 사용되지만,  Object Detection에서는 다른 문제이다. 따라서 객체로 추정되는 영역에 대한 Bounding Box가 있는 Object Detection Task에서는 다른 여러 분류 지표들을 사용하며, 그 중 하나인 mAP가 이번 대회의 지표였다.

 

IoU (Intersection over Union)

IoU는 모델의 성능 평가를 하는 과정에서 사용되는 하나의 도구이다. 비교하고자 하는 바운딩 박스의 전체 크기가 분모로, 그 바운딩 박스들의 교집합이 분자로 들어가 그 비율이 구해진다.

정답인 바운딩 박스와의 교집합이 커질수록 이 점수가 높아지고, 좋은 성능을 보일 확률이 높다고 보면 된다.

이 IoU를 통해 여러 바운딩 박스의 위치에 대한 평가를 내릴 수 있다. 

 

그렇다면 바운딩 박스 안에 객체가 있는 것에 대한 평가는 어떻게 내릴까?

 

Confidence score

위의 Confusion Matrix를 통해 bbox의 TP, FP, FN, TN을 구할 수 있다. 또한 이를 통해 정밀도, 재현도 역시 구할 수 있다.

하지만 image classification과 다르게 하나의 지표로 딱 정해지는 것이 아닌 bounding box에 대한 평가는 복합적으로 이뤄진다. 그렇기에 같은 모델이여도 Confidence score에 따라 Precision, Recall등의 값이 달라질 수 있다.

위 그림과 같이 Confidence score에 따라 bounding box가 여러 개 잡힐 수도 있으며, 아예 잡히지 않을 수도 있다. 그리고 Precision, Recall값 역시 달라진다.

 

PR curve

Precision과 Recall 사이의 관계에 대한 그래프로 Precision과 Recall사이의 관계를 나타낸다.

주로 X축에 Recall, Y축에 Precision을 나타내며 Parameter로는 위의 Confidence score를 조정하며 나타낸다.

따라서 confidence score가 높은 곳에서 낮은 위치로 변하며 PR curve는 다음과 같은 모양을 가진다.

 

AP (Average Precision)

mAP가 뭔지 알기 위한 과정까지 거의 다 왔다.

PR Curve는 단조함수가 아니므로 직관적이지 못하다. 오르락 내리락 하는 부분이 많아 확실히 알기 어렵다는 것이다.

이를 보완하기 위해 선형보간을 사용한 그림을 만든다.

이런 PR curve가 있다고 할 때

 빨간 선의 선형 보간을 사용해 단순한 네모 영역으로 나눌 수 있는 그림을 만든다. 그리고 x축의 넓이와 y축의 높이를 사용해 이 곡선 아래 네모 구간의 크기를 구하고, 이것이 AP 점수이다.

 

mAP (mean Average Precision)

모델이 여러 클래스에 대한 예측을 할 때 위의 과정을 통해 각자의 클래스에 대한 AP를 구한다.

이후 각 클래스에 대한 AP의 평균을 구하면 그것이 mAP이다.

이것은 이번 프로젝트에서 학습하던 validation에 대한 결과의 일부이다. 총 11개의 쓰레기 종류에 대한 클래스가 있고,

mAP는 각 class에 대한 AP를 구하고 이에 대한 평균으로 가장 오른쪽의 지표들이 그 점수이다. 상대적으로 데이터 수가 적었던 'Battery' class가 AP가 낮으며, 데이터가 많았던 class들의 AP가 높았다. 그리고 이에 대한 평균인 mAP는 0.589였다.