Soft-NMS

NMS의 문제점

기존 NMS는 많은 BBox 후보들 중 가장 적합한 BBox를 추리는 과정을 말하는데 이에 대한 문제점이 있다.

만약 객체가 겹쳐있다면 IoU를 기준으로 하는 NMS의 경우 둘 중 하나의 BBox를 없애버린다.

image.png

왼쪽의 그림이 NMS의 결과물이고 이러한 문제점을 해결하고자 한 것이 Soft-NMS 기법이다.

Soft-NMS의 동작 원리

기존 NMS는 동일 클래스의 BBox들이 있으면 IoU를 기준으로 최종 BBox를 추려냈다.

image.png

다음과 같은 함수로 NMS는 동작되는데 여기서 M은 동일 클래스에서 confidence가 가장 큰 BBox를 말한다.

하지만 이는 위에 있는 얼룩말 그림의 예시와 같이 같은 클래스의 객체가 너무나 많이 겹쳐있을 때 두개의 객체 모두 detect 하지 못한다는 단점이 있다.

image.png

Soft-NMS 같은 경우 IoU가 일정 값 이상일 때 0으로 바꾸는 것이 아니라 가중치를 곱해주어 confidence score를 줄여준다. IoU가 클수록 가중치가 커져 confidence score가 많이 줄어들고 IoU가 작으면 가중치도 작아진다.

다음과 같이 Soft-NMS가 작동되어 위의 오른쪽 얼룩말 그림을 보면 뒤에 겹쳐진 얼룩말이 Confidence Score가 0.642로 줄어든 것을 볼 수가 있다.

Gaussian Soft-NMS

image.png

위에서 제시된 Soft-NMS 함수는 $N_t$라는 threshold 기준으로 함수가 나뉘어지기에 비연속형 함수가 된다. 이러한 문제점을 해결하기 위해 가우시안 분포를 활용한 Soft-NMS 함수도 제시되었다.

가우시안 분포를 만들기 위해 $\sigma$라는 하이퍼 파라미터가 들어가긴 하지만 해당 함수가 비연속형보다 성능이 더 잘나온다는 실험 결과가 있다고 한다.

Updated: