대다수의 object detection algorithm은 object가 존재하는 위치 주변에 여러개의 score가 높은 bounding box를 만든다는 문제점이 있습니다. 이 중 하나의 bounding box만을 선택해야 하는데, 이때 적용하는 기법이 non-max suppression 입니다. 즉, Non-Maximum Suppression은 object detector가 예측한 bounding box 중에서 정확한 bounding box를 선택하도록 하는 기법입니다. optimal 한 solution일 수는 없고 local maxima를 찾는 방법이라고 볼 수 있습니다.

NMS의 과정
- 모든 Bounding box는 자신이 해당 객체를 얼마나 잘 잡아내지 나타내는 confidence score를 가집니다. 모든 bounding box에 대하여 threshold 이하의 confidence score를 가지는 Bounding Box는 제거합니다. Confidence score가 일정 수준 이하인 bounding box들에 대해 일차적으로 필터링을 거치는 과정입니다.
- 남은 Bounding Box들을 Confidence score 기준 모두 내림차순 정렬합니다.
- 맨 앞에 있는 Bounding box 하나를 기준으로 잡고, 다른 bounding box와 IoU 값을 구합니다. IoU가 threshold 이상인 Bounding box들은 제거합니다. Bounding box끼리 IoU가 높을수록, 즉 많이 겹쳐질수록 같은 물체를 검출하고 있다고 판단하기 때문입니다.
- 해당 과정을 순차적으로 시행하여 모든 Bounding box를 비교하고 제거합니다.
- Confidense threshold가 높을수록, IoU threshold가 낮을수록 더 많은 bounding box가 제거됩니다.
바로 object끼리 겹칠 때 다른 object에 대한 bounding box 까지 날라갈 수 있다는 것인데요. 현실에서는 object끼리 겹치는 경우가 매우 많습니다. 이를테면 아래와 같은 상황에서 그냥 NMS를 이용한다면, 자동차에 대해서 detection을 하면 트럭같은경우는 detection을 못하고 날라갈 수도 있겠죠?
이 문제를 해결하기 위해 나온 방법이 Anchor box입니다. Anchor box는 탐지하려는 객체의 모양을 정해놓고 객체가 탐지되었을 때 어떤 anchor box와 유사한지 판단해서 벡터값을 할당하는 방법입니다.
'Data Scientist > Deep Learning' 카테고리의 다른 글
RNN 개념 및 예제 코드 (0) | 2023.07.14 |
---|---|
optuna를 활용해 하이퍼파라미터 튜닝하기 (0) | 2023.01.17 |
[ML] EfficientNet(Compound Scaling) (0) | 2022.05.12 |
[ML] SDD(Single Shot Detector) (0) | 2022.05.12 |
[ML] One Stage와 Two Stage (0) | 2022.05.12 |