인프런 커뮤니티 질문&답변

K MJ님의 프로필 이미지
K MJ

작성한 질문수

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

NMS 수행 로직에서 질문이 있습니다.

작성

·

165

0

NMS 수행로직

1) Detectedbounding box 별로 특정 confidence scorethreshold 이하가 되면 해당 bounding box를 제거

2) 가장 높은 confidence score를 가진 box 순으로 내림차순으로 정렬하고 아래 로직을 모든 box에 순차적으로 적용 -> 높은 confidence score를 가진 box와 겹치는 다른 box들을 모두 조사하여 IOU가 특정 threshold 이상인 box를 모두 제거(: IOU Threshold > 0.4)

3) 남아있는 box 선택

수행로직 2번에서

높은 confidence score를 가진 bounding box와 비교해서 IOU Threshold보다 특정 threshold 이상인 box를 모두 제거한다고 했는데

왜 이렇게 하는건지 궁금합니다.

가장 confidence score가 높은 bounding box만 남기고 차의 특징을 비교적 잘 표현하지 못하고 겹치는 것을 제거해주기 위해서 없애는 건가요?

답변 1

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

이유로는

1. confidence가 가장 높은것을 잘 필터링 시킴과 동시에

2. confidence가 가장 높은 것과 겹치는 다른 box는 해당 object일 확률이 높지만 다른 object일 확률도 있습니다. 만약 해당 object라면 confidence가 가장 큰 bbox와 많이 겹칠 수 있기 때문에 IOU가 높습니다. 이런 경우는 제거를 합니다. 해당 object가 아니라면 일반적으로 많이 겹치지 않기 때문에 IOU가 낮으며, 이런 경우는 Filtering out 시키지 않아야 합니다. 가령 예를 들어 자동차 옆에 또 다른 자동차가 가깝게 있는데, 많은 bbox가 만들어 진다면,자동차 A의 confidence가 높은 bbox에 자동차 B의 Bbox가 있을 수 있습니다. 이런 경우의 자동차 B의 Bbox는 A Bbox 기준으로는 제거 되지 않아야 합니다. 

때문에 겹치는 IOU가 높으면 자동차 A의 다른 bbox로 간주하고 제거하는 것입니다.

설 명절 잘 보내시길 바랍니다.

K MJ님의 프로필 이미지
K MJ

작성한 질문수

질문하기