📌 이 글은 권철민님의 딥러닝 컴퓨터 비전 완벽 가이드 강의를 바탕으로 정리한 내용입니다.


목차

  1. NMS(Non Max Suppression)
  2. NMS 수행 로직

NMS(Non Max Suppression)

Detected 된 Object의 Boundig Box 중, 비슷한 위치에 있는 box를 제거하고, 가장 적합한 box를 선택하는 기법

 

  • Object가 있을 만한 위치에 많은 Detection을 수행하는 경향이 강하다
  • 있을 만한 위치를 놓치면 안 되기 때문에 가능성 있는 곳을 모두 추천
  • 정확한 위치 특정보다는 있을 만한 곳 모두 제시

 

Q왜 여러개의 바운딩박스가 나오나요?

A. Selective search 같은 경우 정확하게 Object가 있는 위치를 반환하는게 아니라 있을만한 곳을 반환한다. 왜냐하면 오브젝트가 있는 곳을 놓쳐서는 안되기 때문이다. 그래서 비슷하다고 생각이 되면 계속 추천을 해주는 것이고 알고리즘은 이것을 기반으로 계속 Object Detect 하는 시도를 하는 것이다.

 

명확하게 차라는 Object를 표현하기 위해서 필터링이 필요하다.

이름에서 유추할 수 있듯이 Max가 아닌 것들을 억제하고 눌러주는 방법이다.

제거가 아니라 눌러준다!!


NMS 수행 로직

1. Detected 된 Bounding Box 별로 특정 Confidence threshold 이하 Bounding Box는 먼저 제거

  • Confidence Score : 대상일 확률 
  • 자동차인지 확실하지 않은 것들 제거

 

2. 가장 높은 confidence score를 가진 box 순으로 내림차순 정렬

 

3. 아래 로직을 모든 box에 순차적으로 적용

  • 높은 confidence score를 가진 box와 겹치는 다른 box를 모두 조사 : 높은 점수 박스와 겹치는 박스를 찾는다.
  • IOU가 특정 threshold 이상인 box를 모두 제거 (ex. IOU Threshold > 0.4)
  • 남아 있는 box만 선택

 

4. 많은 박스가 제거되는 조건

  • 높은 Confidence Score : 대상일 확률이 가장 높은 박스를 찾고
  • 낮은 IOU Threshold : 그 안에서 적게 겹치는 박스들을 제거

 

5. MAX인 값만 가져온다면?

  • MAX보다 낮지만 수치가 높은 bounding box까지 함께 제거
  • 두 임계점을 모두 활용해야 한다

 

복사했습니다!