inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

YOLOv3 loss 계산 질문

해결된 질문

250

홍성민

작성한 질문수 1

0

안녕하세요. YOLOv3 논문을 읽고 정리하다가 궁금한 점이 생겨서 질문 드립니다. 해당 논문에 다음과 같은 문단이 나오는데요.

"YOLOv3 predicts an objectness score for each bounding box using logistic regression. This should be 1 if the bounding box prior overlaps a ground truth object by more than any other bounding box prior. If the bounding box prior is not the best but does overlap a ground truth object by more than some threshold we ignore the prediction, following [17]. We use the threshold of .5. Unlike [17] our system only assigns one bounding box prior for each ground truth object. If a bounding box prior is not assigned to a ground truth object it incurs no loss for coordinate or class predictions, only objectness."

 

[17]은 Faster R-CNN에 해당합니다.

 

YOLOv3의 경우 logistic regression을 이용하여 anchor box의 objectness를 예측하는데 ground truth와의 IoU가 최고인 anchor box의 경우에만 1을 할당하고 나머지 anchor box의 objectness score는 무시한다고 이해했습니다.

그러면 이미지에 객체가 하나가 있을 경우, 생성된 전체 anchor box 중에 객체의 ground truth와 IoU가 가장 높은 하나의 objectness score만 1이고 나머지 anchor box의 objectness score는 모두 0이 되는 건가요? 그리고 이 값을 이용해서 Object Confidence Loss가 계산되는건가요?

 

YOLOv1의 경우 나눠진 각 grid cell의 책임 BBox의 (Object일 확률 x ground truth와의 IoU값)으로 Object Confidence Loss가 계산된 걸로 아는데 너무 헷갈리네요 ㅜㅜ

python 머신러닝 딥러닝 keras tensorflow 컴퓨터-비전

답변 1

1

권 철민

안녕하십니까?

  1. YOLOv3의 경우 logistic regression을 이용하여 anchor box의 objectness를 예측하는데 ground truth와의 IoU가 최고인 anchor box의 경우에만 1을 할당하고 나머지 anchor box의 objectness score는 무시한다고 이해했습니다.

=> 네, 맞습니다. loss를 계산할 때 모든 grid에 있는 모든 anchor box에 대해서 loss를 계산하는 것이 아니라,

학습 데이터에서 Iou가 최고인 anchor box에 대해서 학습 시마다 어떻게 예측을 했는지, 그리고 그에 따른 loss값을 계산하는 방식으로 되어 있습니다. 다만 no object loss인 경우에는 이와 반대로 IOU가 최고인 anchor box를 제외한 나머지 anchor box들에 대해서 loss를 계산합니다.

  1. 그러면 이미지에 객체가 하나가 있을 경우, 생성된 전체 anchor box 중에 객체의 ground truth와 IoU가 가장 높은 하나의 objectness score만 1이고 나머지 anchor box의 objectness score는 모두 0이 되는 건가요? 그리고 이 값을 이용해서 Object Confidence Loss가 계산되는건가요?

=> 네 맞습니다. 객체가 하나만 있다면 해당 객체가 소속된 anchor box의 ground truth object score는 1입니다. 그리고 학습 모델이 해당 객체가 소속된 anchor box의 예측 object score값을 계산하는데, 이 차이가 바로 loss가 됩니다. 그리고 전체 object loss는 앞에서 말씀드린 ground truth에 해당하는 object loss + ground truth가 아닌 anchor들의 no obj loss의 총합으로 계산됩니다.

 

감사합니다.

 

0

홍성민

친절한 답변 너무 감사드립니다!

YOLOv1에서 각 grid cell의 예측 confidence score가 더 큰 anchor box(98개 중 49개) 모두에 대해서 object loss로 계산되고 나머지 49개의 anchor box에 대해서 no object loss로 계산되는 줄 알았는데 그게 아니였군요!

 

객체의 center가 속하는 grid cell에서 예측한 anchor box들 중 ground truth와의 IoU가 가장 큰 anchor box에 대해서만 obj loss가 계산되고 나머지 모든 anchor box에 대해서는 no obj loss가 계산된다.

 

YOLOv3은 YOLOv1과는 다르게 ground truth와의 IoU가 0.5보다 크지만 최고는 아닌 anchor box의 경우에는 no obj loss 계산에 포함하지 않는다.

 

제가 이해한 것이 맞나요??

1

권 철민

네, 맞습니다.

강의 환경설정 질문

0

41

2

Custom Dataset에서의 polygon 정보 관련

0

84

3

cvat.ai 보안 수준이 궁금합니다

0

80

2

캐클 nucleus 챌린지 runpod 실습 코드 에러 질문드립니다.

0

96

3

추론 결과의 Precision(또는 mAP) 평가 방법

0

86

2

mmdetection mask rcnn inferenct 실습 시 runpod 템플릿 관해서 질문드립니다.

0

61

2

runpod에서 google drive 연결 시 오류 발생

0

110

2

로드맵 선택

0

67

1

mmcv

0

59

2

Anchor box의 Positive 처리 위치

0

63

2

해당 강의 runpod 적용 후 에러 제보드립니다

0

87

2

run pod credit 관련 제보

0

100

2

mmdetection 2.x과 3.x 호환 관련 표기

0

78

2

mm_faster_rcnn_train_kitti.ipynb 실행 오류

0

99

3

질문 드립니다.

0

81

3

mm_faster_rcnn_train_coco_bccd 실행 오류 질문드립니다.

0

79

1

강사님께 수정을 제안드리고 싶은 것이 있습니다.

0

94

1

google automl efficientdet 다운로드 및 설치 오류

0

74

1

이상 탐지에 사용할 비전 기술 조언 부탁드립니다.

0

103

2

OpenCV 관련 질문드립니다.

0

71

2

mmcv 설치관련해서 문의드려요

0

332

3

강의 구성 관련해서 질문이 있습니다

1

138

2

모델 변환 성능 질문드립니다.

0

122

1

NMS 로직 문의 드려요

0

114

2