IoU & NMS
IoU (Intersection of Union) & NMS (Non-Max Suppression)
IoU (Intersection of Union)
IoU는 Object Detection에서 쓰이는 가장 기초적인 평가지표다.
IoU를 직역하면 알수 있듯 교집합을 뜻하는데 정답으로 주어진 Bounding Box와 모델이 예측한 Bounding Box가 겹치는 area를 IoU라고 일컫는다.

그렇기 때문에 IoU의 값 범위는 0과 1사이 이며 (완전히 겹치지 않는 경우와 완전히 겹치는 경우) 1인 경우는 거의 불가능 하다고 생각하면 된다.

IoU의 평가 기준은 0.5 이상이면 준수하다고 평가한다. IoU가 0.5 이상인 경우 정답 BBox와 예측 BBox가 2/3 이상은 겹쳐있다는 뜻이기 때문이다.
NMS (Non-Max Suppression)
이전 노트에서 설명했던 Selective Search의 과정을 떠올려보자. 물론 알고리즘의 반복을 통해 Bounding Box의 갯수를 줄여나갔지만 여전히 객체라고 인지한 Bounding Box의 갯수는 많다.
하지만 IoU를 계산하기 위해선 1개의 Bounding Box면 충분하다. 그렇기에 여러 개의 후보 Bounding Box 중에 1개로 추리는 것을 NMS 라고 한다.
NMS의 수행 과정
- 후보 Bounding Box 중에 Confidence Score가 threshold보다 낮은 BBox는 제거한다.
- Confidence Score : BBox 안에 객체가 존재할 확률을 0에서 1 사이의 값으로 나타낸 것으로 일반적으로 (class probability) x (Ground Truth와의 IoU)로 계산된다.
- Confidence Score의 내림차순으로 Bounding Box들을 정렬한다.
- Confidence Score가 가장 높은 BBox와 나머지 BBox와의 IoU를 계산한 다음 IoU Threshold 보다 작은 BBox는 제거한다.
- 3번의 과정을 모든 BBox와 진행한다.
- 남아있는 BBox들을 최종 BBox로 택한다.
예시

- IoU Threshold = 0.4 / Confidence Threshold = 0.5 라고 설정했다고 가정하자.
- 흰색 BBox들은 최종적으로 NMS 이후 살아남은 BBox들이고 빨간색 BBox는 NMS를 통해 없어진 BBox 들이다.
NMS의 단점

위 그림과 같이 인식하려는 객체가 너무나 겹쳐있게 된다면 객체 인식이 제대로 되지가 않는다. 왜냐하면 NMS 과정 중 IoU가 크면 BBox를 제거하는 과정이 있기 때문이다.
해당 문제를 해결하기 위해 Soft-NMS라는 새로운 방식이 제시되었다.