[Object Detection] NMS(Non Maximum Suppression), Soft NMS

Jomii·2023년 1월 5일
0

Computer Vision

목록 보기
3/14
post-thumbnail

본 글에서는 Object detection의 Overlap problem의 해결방안인 NMS(Non Maximum Suppression), 그리고 NMS의 같은 객체를 가리키는 IoU 문제를 해결하기 위한 Soft NMS에 대해서 다루어보겠습니다.


Overlap problem

Object detection algorithm이 여러개의 bounding box들을 만드는 과정에서 수많은 proposals이 생성된다. 생성된 bounding box들이 같은 객체를 가리키고 있는 것을 Overlap Problem이라고 한다. 이는 recall이 높아지게 하고 처음에는 이 상태를 유지한다.

[출처:
Selecting the Right Bounding Box Using Non-Max Suppression (with implementation)
]

그러나 우리가 원하는 이상적인 결과는 이미지의 각 object에 대해 Single bounding box를 생성하는 것이기 때문에, 많은 bounding boxes를 classification network를 통해 처리하는 건 번거롭고 비효율적이다.

NMS(Non Maximum Suppression)

따라서 여러 예측된 bounding boxes에서 최상의 Single bounding box를 선택하기 위해 NMS 알고리즘을 사용한다.

NMS(Non Maximum Suppression)는 예측한 bounding box 중에서 정확한 bounding box를 선택하도록 하는 기법이다.

대표적으로 YOLO에 NMS기법이 적용되어 있다.

[출처:
Selecting the Right Bounding Box Using Non-Max Suppression (with implementation)
]

위 사진을 보면 모든 bounding box에 object가 있는 것을 볼 수 있지만,
녹색 bounding box 하나만 object를 detecting 하는데 가장 적합한 bounding box이다.

NMS는 다른 bounding box의 제거 과정에 model로부터 주어진 objectiveness score와 bounding box의 IOU를 고려한다.

  • IoU(Intersection over Union)
    : B-box 간의 겹침 정도(overlap)를 확인 할 수 있는 지표로서, 객체 검출에 대한 성능 지표
  • Objectiveness Score
    : model은 bounding box와 함께 반환하는 score로 model이 bounding box에 object가 존재함을 얼마나 확신하는지를 나타낸다.

먼저 objectiveness score가 가장 높은 bounding box를 선택하고, overlap이 높은 다른 모든 상자를 제거한다.

  1. 개에 대해 가장 높은 objectiveness score를 가지는 녹색 bouding box를 선택
  2. 이후 개에 대해 노란색과 빨간색 상자를 제거 (녹색과 겹치기 때문에)

과정 후 다음과 같은 결과가 나온다.

[출처:
Selecting the Right Bounding Box Using Non-Max Suppression (with implementation)
]


정리하면 다음과 같다.

알고리즘

STEP 1) 목록에서 가장 높은 Confidence b-box 선택
STEP 2) 선택된 b-box와 다른 모든 b-box와 IoU 비교
STEP 3) 다른 b-box와의 IoU값이 임계값(threshold) 이상이면 목록에서 제거
STEP 4) 반복


의사코드


NMS 문제점

NMS 알고리즘을 보면 전체 필터링 프로세스가 단일 threshold에 따라 달라진다. 따라서 threshold의 선택은 model performance의 핵심이다.

하지만 threshold를 설정하는 것은 매우 까다롭다. 만약 threshold가 0.5라면 IOU가 0.51이면서 높은 confidence score를 가진 proposal이 있으면 다른 많은 box보다 confidence score가 높더라도 box가 제거된다.

이러한 이유로, 같은 클래스의 물체가 겹쳐 있을 경우 각 물체에 대해 bounding box를 잡아야 함에도 불구하고 NMS에 의해 작은 score를 가진 bounding box가 무시된다.

[출처: https://better-tomorrow.tistory.com/entry/Non-maximum-Suppression-및-Bounding-box-regression]

위 그림의 경우 다른 두 bounding box confidence score 가 0.8로 높음에도 불구하고 겹치는 영역이 크기 때문에 0.9의 score를 가진 검은 박스만 유지될 것이다.

Soft-NMS

[출처: Soft-NMS -- Improving Object Detection With One Line of Code, 2017]

따라서 이러한 문제점을 해결하기 위해 제안된 Soft-NMS는 높은 IOU와 높은 confidence score를 가진 propsal을 완전히 제거하지 않고 IOU의 값에 비례하여 proposal의 confidence를 줄인다.

감소시키는 confidence score는 IOU 값을 기반으로 계산되는데, 두가지 방식이 있다.

M과 bi의 IoU가 일정 값 이상일 때, 0으로 억제하는 것이 아닌 score를 감소시킨다. 또한 M과 bi의 IoU가 높으면 높은 가중치를 부여하고, iou가 낮으면 낮은 가중치를 부여한다. 이 함수는 Nt 임계값을 기준으로 score가 급격하게 변하여 연속형 함수가 아니라는 단점이 존재한다.

이 함수는 가우시안 분포를 활용하여 score가 연속형이라는 장점이 있다.
실험결과를 보면 gaussian soft-NMS가 더 좋은 성능을 나타낸다.

profile
✉️ qtly_u@naver.com

0개의 댓글