(Objection Detection) mAP란?

이준우·2021년 10월 26일
0
post-thumbnail

오늘은 Object Detection에 관한 paper을 볼때마다 mAP가 나오는데, 도대체 이것이 어떤 역할을 하는지 알아보도록 한다. 처음에 아무것도 모르고 2-stage인 mask RCNN paper을 보다가 모르는게 너무 많아가지고 ㅜㅜ... 1-stage 방식인 YOLO를 공부하다가 mAP관련 내용이 나온다. 이를 알기 위해선 IoU(Intersection Over Union)에 대해서도 잠깐 알아야 한다. 시작해보자!! o( ̄▽ ̄)ブ

1. IoU(Intersection Over Union)

우선 아무것도 모르는 초보자 대상으로 이해를 위해 설명한다면, IOU는 교집합과 합집합으로 이루어져 있는 값이다. 이를 식으로 본다면 아래의 그림과 같다.

객체 검출에서는 바운딩 박스를 얼마나 잘 예측했는지 IoU 지표를 통해 측정한다. 지금 내가 공부하고 있는 이미지 분할(Image segmentation)문제에서도 사용된다.

저 수식만 떡하니 보면 당연히 이해가 안된다. anchor는 뭐고;; grount-truth box는 뭐지?;;라고 생각할 것이다. 이를 쉽게 그림으로 표현해보자.

우선 Anchor을 하나의 box라고 생각하자. 두개의 박스를 교차하여 두면 2번째 단계처럼 될 것이다. 이 부분에서 노란색 부분을 anchor와 ground-truth box가 만나는 합집합이라 생각하자. 그리고 3번째 단계로 넘어가자 초록색 박스가 보이는가? 이 초록색 박스는 두 box가 겹쳐진 부분인데, 이를 anchor와 ground-truth box가 교집합된 부분이라 생각하면 된다.

이때 사용되는 몇 가지 기본 개념이 있다.

  • True positive(TP) : 맞다고 추측하고 실제로 맞음. (IoU >= Threshold)
  • False positive(FP) : 맞다고 추측하고 실제로 틀림. (IoU < Threshold)
  • False Negative(FN) : 틀리다고 추측하고 실제로 맞음. (Ground Truth를 아예 탐지 못함)
  • True Negative(TN) : 틀리다고 추측하고 실제로 틀림.

정밀도(Precision)

예측된 결과가 얼마나 정확한지를 나타내는 지표이다. 즉 검출된 것들 중에서 정답을 맞춘 것들의 비율이 어느정도 인지를 알 수 있기에 검출 결과가 얼마나 정확한지를 알 수 있다.

재현율(Recall)

재현율은 Grount truth 중에서 얼마나 정답을 맞추었는지를 나타낸다. 즉 검출되어야 할 객체들 중에서 제대로 검출된 것의 비율을 뜻한다.

--->>> 정밀도와 재현율은 반비례 관계를 갖는다!

이해하지 못해도 괜찮다. 아직은 처음이니깐 우선 Iou는 집합으로 이루어져있다는 것만 알아도 큰 산을 넘어간 것! 어떤 Object Detection을 공부하더라도 이 부분에 대해 반복적으로 나올테니 차근차근 알아갈 것이다.

정밀도와 재현율 두가지를 고려하여 정확도를 평가하는 것이 좋으므로 AP(Average Precision)의 개념이 나온 것이다.

2.Precision-Recall 곡선

PR곡선을 confidence level에 대한 threshold 값의 변화에 의한 물체 검출기의 성능을 평가하는 방법이다. 여기서 confidence level이란, 검출한 것에 대해 알고리즘이 얼마나 확신이 있는지 알려주는 값이다. 이 confidence level에 threshold값을 부여하여 threshold값을 넘지 않는다면 검출하지 않도록 설계할 수 있다. 예를 들어서 이해를 해보자.
위의 그림은 15개 object를 detection한 결과이다. 10개 중 7개가 제대로 검출되었고 3개는 잘못 검출되었다.

Precision을 구해보자.
-> 제대로 검출된 객체 / 검출된 객체 수 = 7 / 10 = 0.7이 된다.

Recall을 구해보자.
-> 제대로 검출된 객체 / 검출된 모든 객체 수 = 7 / 15 = 0.47이 된다.

표를 자세히 보면 confidences가 13%인데도 출력하는데, 이는 Threshold를 조절하여 detection을 제한할 수 있다는 것이다. Threshold를 70%로 적용하였다면, 5개만 detection되는 것을 알 수 있다. 직접 Threshold를 제한해보자.

Threshold를 95% -> 91% -> 85% -> ... 등으로 진행하면 그에 맞는 Precision과 Recall이 발생한다. 이 값들을 그래프로 나타내면 PR곡선으로 나타낼 수 있다.

하지만 하나의 숫자로 성능을 평가한다면 좀더 직관적이고 이해하기 쉬울 것이다. 이를 위해 AP(Average Precision)가 나오게 된다.

3.AP(Average Precision)

AP는 쉽게 말해 정확도이며, CNN을 평가할 때 사용하는 지표라고 보면 된다. PR 곡선에서 AP를 구하기 위해선 조금 변화를 줘야 한다.
즉, 계단함수처럼 뚝뚝 떨어지는 구조로 만들어줘야 한다. AP를 구할땐 넓이로 구하게 된다.

AP = 왼쪽 사각형의 넓이 + 오른쪽 작은 사각형의 넓이 = (1 × 0.33) + (0.88 × (0.47 - 0.33)) = 0.4532

4.mAP(mean Average Precision)

컴퓨터 비전 분야에서 물체 검출 및 이미지 분류 알고리즘의 성능은 대부분 AP로 평가하는데, 물체 클래스가 여러 n개인 경우 각 클래스당 AP를 구하고 그것을 모두 합한 다음에 물체 클래스의 갯수(n개)로 나눠줌으로 알고리즘의 성능을 평가한다.

이를 mAP라 한다.

profile
꿈꾸는 CV

0개의 댓글