• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

NMS와 서로 다른 class와의 관계에 대해서 질문이 있습니다

21.08.09 23:33 작성 조회수 264

0

안녕하세요

혹시 NMS에서 서로 다른 class에 대한 confidence score, IoU에 대해서도 삭제하게 되나요?

삭제 하는 기준의 조건이 서로 같은 class로 예측했을 때를 말하는 것인가요? 아니면 다른 것인지 궁금합니다

만일 그렇다면 겹쳐있는 것 중 서로 다른 클래스로 정확히 예측했던 것들 중 하나가 삭제되는 것 아닌가 해서요!

답변 1

답변을 작성해보세요.

1

안녕하십니까, 

일반적인 NMS는 클래스별로 고려하지 않고 겹치는 모든 bbox에 대해서 IOU를 구한 후 Class confidence로 걸러냅니다.  물론 NMS 구현을 클래스별로 일단 정리한 후에 여기에 NMS를 적용하는 방식으로 변경할 수도 있습니다. 다만 NMS를 Predict과정이므로 빠른 inference 속도에 영향을 미치지 않는것이 중요합니다. 

겹쳐 있는 것중 서로 다른 클래스로 예측했다면 정확히 예측했다기 보다는 가장 class confidence가 높은 것을 제외하고는 잘못 예측했다고 가정하고 삭제하는 것입니다. 

이게 Hard NMS 방식입니다. 그런데 말씀하셨듯이 오밀조밀하게 인접한 객체(동일 클래스이든, 다른 클래스이든)들이 있을 경우에 잘못 걸러낼수 있는 확률이 높습니다. 그래서 Soft NMS를 고려해 볼수도 있습니다.  Soft NMS방식도 클래스별로 고려하지 않고 모든 bbox로 적용하는것은 동일한데, NMS Threshold 이하로 무조건 걸러내는 방식이 아니라 confidensce score를 IOU에 비례하여 낮추는 방식을 적용합니다. 

Soft NMS에 대한 자세한 내용은 아래를 참조 부탁드립니다. 

https://eehoeskrap.tistory.com/407