작성
·
423
·
수정됨
0
안녕하세요. 권철민 강사님
유익한 영상 잘 보고 있습니다.
현재 opencv로 Yolov3를 inference하는 파트를 보고 있습니다.
nms threshold 값이 예를 들어
nms_confidence = 0.4이면 한 상자당 confidence score가 가장 높은 상자를 뽑아 for문을 돌면서 iou 값이 nms_confidence이상이면 제거하는 데 쓰이는 것이 맞는지 확인하고 싶습니다.
그리고 85개의 차원중에 5번째에 있는 객체가 있는지 없는 지를 판단하는 confidence (detection[5])은 안쓰는 지 여쭙고 싶습니다.
본 코드에서는 class_score 부분만 if문에 조건으로 사용하여 의아한 기분이 들어 질문 드립니다.
답변 1
1
안녕하십니까,
Non Max Suppression은 말씀하신 부분과 비슷하지만, 가장 confidence score가 높은 한 상자만 뽑는것은 아니고,
모든 예측된 box를 confidence score가 높은 순으로 일단 정렬을 하고, 가장 높은 confidence score 와 box와 겹치는 다른 box 중 iou가 iou threshold 보다 높으면 해당 box를 제거하는 방식입니다. 이런 방식으로 그 다음 confidence score가 높은 box에도 동일하게 IOU가 높은 다른 box가 있으면 또 해당 box를 제거하는 방식입니다. confidence score가 낮아도 겹치는 다른 box가 없으면 제거 하지 않습니다.
object인지의 점수를 나타내는 object score를 예측 시에는 크게 사용할 일이 없습니다. 워낙 해당 object가 어떤 클래스 인지, 어떤 위치에 있는지가 object detection에서 중요하기 때문입니다. 다만 이 object score가 사용되는 이유는 모델을 학습시킬 때 object score가 손실함수의 식으로 사용되는 경우가 많기 때문입니다.
감사합니다.