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

nurirnd님의 프로필 이미지

작성한 질문수

YOLO 구현으로 배우는 딥러닝 논문 구현 with TensorFlow 2.0

Non-Maximum Suppression (NMS)

confidence <= 0.6 이하의 Bounding Box 제거에서 confidence는 class probability가 곱해진 값인지요?

작성

·

243

0

NMS 알고리즘 동작 과정에서

confidence <= 0.6 이하의 Bounding Box를 제거한다고 할때, confidence <=0.6 이하는 class별인지 아니면 bounding box confidence가 0.6이하인 Bounding Box 자체를 제거하는 의미 인지요?

인터넷을 보면 자료별로 해석이 약간 상이한것 같아 질문드립니다.

답변 3

1

nurirnd님의 프로필 이미지
nurirnd
질문자

답변 감사드립니다.

말씀해주신 내용이, class별로 진행하는 2~6단계 전에, 98개 Bounding Box중 bounding box confidence가 threshold 이하인 bounding box를 제거하고 남은 bounding box로 2~6단계를 진행한다로 이해하면 될까요?

그리고 2~6단계 과정에서의 class별 confidence 정렬시 confidence는 bounding box confidence와 class별 softmax regression값을 곱한 값을 기준으로 진행한다 로 이해하면 될까요?

NMS가 detection에서 거의 빠질수 없는 사항이라고 생각되는데, 강의 내용에 inference에 대한 소스 및 설명이 별도로 있고, 해당 내용에 NMS 부분이 추가 된다면 좀더 명쾌하게 이해하는데 도움이 되지 않을까 생각합니다. 현재 강의에서 utils에 포함된 사항은 약식 NMS라서 건의 드려 봅니다.

0

AISchool님의 프로필 이미지
AISchool
지식공유자

네. 안녕하세요~.

1. 말씀해주신 내용이, class별로 진행하는 2~6단계 전에, 98개 Bounding Box중 bounding box confidence가 threshold 이하인 bounding box를 제거하고 남은 bounding box로 2~6단계를 진행한다로 이해하면 될까요?

->
맞습니다.
2. 
그리고 2~6단계 과정에서의 class별 confidence 정렬시 confidence는 bounding box confidence와 class별 softmax regression값을 곱한 값을 기준으로 진행한다 로 이해하면 될까요?

->
class별 softmax regression값을 곱한 값을 기준으로한다기 보다는 bounding box별 confidence 자체로 생각하시면 될 것 같습니다.

3. NMS 관련 구현에 대한 좀더 자세한 코드는 아래 링크를 참조하세요~.
https://github.com/rbgirshick/fast-rcnn/blob/b612190f279da3c11dd8b1396dd5e72779f8e463/lib/fast_rcnn/test.py#L229
https://github.com/rbgirshick/fast-rcnn/blob/b612190f279da3c11dd8b1396dd5e72779f8e463/lib/utils/nms.py#L10 

감사합니다.

nurirnd님의 프로필 이미지
nurirnd
질문자

감사합니다.

0

AISchool님의 프로필 이미지
AISchool
지식공유자

네. 안녕하세요~. 반갑습니다.

말씀해주신대로 NMS는 구현 방법에 따라 약간씩 차이가 있어서 어떤 방법이 정답이라고 말하기 힘들긴합니다.
강의에서 언급했던 알고리즘은 "bounding box confidence가 0.6이하인 Bounding Box 자체를 제거하는 의미" 였습니다.
참고 부탁드립니다.
감사합니다~.

nurirnd님의 프로필 이미지

작성한 질문수

질문하기