해결된 질문
작성
·
305
1
저는 mmdetection oxford Dataset의 품종에 대한 inference를 수행하였습니다.
의문점이 너무 많이 겹치는 bounding box가 있다는 것입니다.
제가 첨부한 2번 4번 7번 사진의 경우 하나의 개사진에 매우 겹치는 2가지 bounding box가 있음을 알 수 있습니다.
제가 알기로는 RPN 네트워크에서 마지막에 NMS를 수행해 Confidence Score가 높은 순으로 정렬하고 Confidence Score가 가장 높은 bbox와 IOU가 큰 박스는 삭제하는 걸로 알고 있습니다만 제가 잘못 알고 있는 건지 여쭙고 싶습니다.
답변 1
0
안녕하십니까,
보통 NMS를 적용하면 하나의 오브젝트별로 하나씩 Bounding box가 예측됩니다. 하지만, NMS 를 적용한다고 완벽하게 오브젝트별로 하나씩의 Bounding box를 가지지 않을 수 있습니다. 대표적으로 하나의 오브젝트를 서로 다른 오브젝트로 판단하여 두개의 중첩된 Bounding box를 가지는 경우 입니다. 그리니까, 강아지인데 중첩된 2개의 Bounding box중 1개는 강아지, 다른 Bounding box 1개는 고양이로 예측하는 경우에 제거되지 않을 수 있습니다.
보통은 충분히 모델을 학습하지 않는 경우에 이런 현상이 잘 발생합니다. 해당 모델의 학습 시 epoch 숫자를 더 늘려서 충분히 학습 시킨 모델로 다시 inference 를 해보십시요. 하지만 어떤 경우든 NMS 적용 후에 100% 오브젝트별로 1개의 Bounding box를 가진다고는 확신할 수 없습니다.
감사합니다.
각 품종이 다른 bbox가 많이 겹치는 경우라면 NMS가 품종과 bbox를 예측하는 RCNN의 맨마지막부분에서 수행된다는 말인가요?
=> 음, NMS는 언제나 맨 마지막에 수행됩니다. 그리고 NMS는 모델 학습 시에는 수행되지 않습니다. 예측(inference)을 할때만 수행됩니다.
일반적으로 Anchor 기반의 Object Detection 모델은 많은 bounding box를 예측하게 됩니다. 이렇게 일차 예측된 bounding box를 NMS를 통해 걸러내서 최종 bounding box를 선택하게 됩니다.
일반적으로 모델이 학습이 제대로 되지 않거나, 모델 성능이 떨어지게 되면 하나의 오브젝트에 대해서 여러개의 비슷한 Bounding box를 서로 다른 오브젝트로 예측하게 됩니다. 이 경우에 NMS에서도 걸러내지 못하고 여러개의 Bounding box를 최종으로 예측하는 경우가 발생할 수 있습니다.
NMS가 수행되는 구간이 RPN의 마지막 부분에서 사용되는 걸로 알고 있습니다.
각 품종이 다른 bbox가 많이 겹치는 경우라면 NMS가 품종과 bbox를 예측하는 RCNN의 맨마지막부분에서 수행된다는 말인가요?