NMS(Non-Maximum Suppression)와 Soft-NMS는 객체 검출에서 중복된 경계 상자(bounding box)를 처리하는 알고리즘이다.
1. NMS (Non-Maximum Suppression)
- 작동 원리
(1) 가장 높은 신뢰도 점수를 가진 경계 상자를 선택
(2) 이 상자와 IoU가 특정 임계값보다 높은 다른 상자를 제거
(3) 남은 상자들 중 다시 가장 높은 점수의 상자를 선택하고 과정을 반복
중복된 검출을 효과적으로 제거한다는 장점이 있지만, 겹치는 객체를 처리할 때 일부 유효한 검출 결과를 완전히 제거할 수 있다.
2. Soft-NMS (Soft Non-Maximum Suppression)
- 작동 원리
(1) 가장 높은 신뢰도 점수를 가진 경계 상자를 선택
(2) 겹치는 상자들의 점수를 IoU에 기반하여 감소시킴 (완전히 제거하지 않음)
(3) 감소된 점수가 임계값 이하로 떨어지면 그 상자를 제거
겹치는 상자를 완전히 제거하지 않고 점수를 낮추는 특징을 가지고, 겹치는 객체를 처리하는데 있어서 더 나은 성능을 보이는 장점이 있지만 NMS 보다 계산 복잡도가 높다.
- 매개변수
(1) iou_threshold (IoU 임계값)
두 경계 상자 간의 겹침 정도를 판단하는 기준값 (0.0~1.0)
값이 클수록 더 많은 박스가 남을 수 있고, 값이 작을수록 더 많이 억제된다. (보통 0.5~0.7)
(2) sigma
가우시안 함수에서 사용되는 표준편차 값 (0.1~0.5)
값이 클수록 박스 간 IoU가 커도 더 부드럽게 점수가 감소하고, 값이 작을수록 더 급격히 점수가 감소한다. (보통 0.3~0.5)
(3) score_threshold (점수 임계값)
최종적으로 이 값 이하의 점수를 가진 경계 상자를 제거 (0.0~1.0)
값이 클수록 더 적은 수의 높은 신뢰도 검출 결과만 유지되고, 값이 작을수록 더 많은 검출 결과가 유지되지만, 낮은 신뢰도의 결과도 포함될 수 있다. (보통 0.3~0.5)
(4) method (점수 감소 방법)
겹치는 상자의 점수를 감소시키는 방식을 결정
- linear : IoU에 비례해 선형적으로 감소
- gaussian : 가우시안 함수를 사용하여 점수 감소 (일반적으로 더 부드러운 점수 감소를 제공)
- original : 기존 NMS 방식으로 점수 감소 없이 박스를 제거
(5) Nt (반복 횟수)
Soft-NMS 알고리즘을 반복 적용하는 횟수 (일반적으로 1회 반복으로 충분)
'AI Tech 7기' 카테고리의 다른 글
segmentation loss 정리 (3) | 2024.11.15 |
---|---|
object detection에서 train_cfg 설정 (0) | 2024.10.16 |
coco format 파악하기 (pycocotools) (0) | 2024.10.09 |