작성
·
147
0
안녕하세요 선생님~
YOLO openCV jupyter코드에 대해 질문이 있습니다.
jupyter 이름은 'OpenCV_Yolo_이미지와_영상_Detection' 이구요
궁금한 코드 부분은 아래 입니다.
'''
for ix, output in enumerate(cv_outs): # 결국 3번 도는 것
for jx, detection in enumerate(output):
scores = detection[5:] # 80개의 클래스 확률
class_id = np.argmax(scores)
confidence = scores[class_id] # ???
if confidence > conf_threshold:
...
'''
여기서 confidence라고 함은 이 전 모델에서도 나온 confidence score이고 YOLO에선 objectness score가 아닌가요?
그렇다면 'confidence = scores[class_id]' 가 아니라 'confidence = scores[4]' 로 해야 하는게 아닌가 해서요
현재 코드를 보았을 때는 class probability를 confidence 로 두는게 이해가 가질않습니다.
도와주세요~ 선생님. 감사합니다.
좋은 강의 감사합니다.
답변 1
0
안녕하십니까
YOLO V1 개념 동영상과 V3 opencv 소스코드에서 Confidence score 용어에 대한 일관성이 헷갈리는 부분이 있는것 같습니다.
말씀하신대로 confidence score는 yolo에서 object score가 맞습니다. 이 object score는 object일 확률 x IOU입니다. 즉 백그라운드가 아니라 어떤 클래스인지는 모르지만 Object가 될 확률입니다. 그리고 opencv 예제 코드에서 confidence 변수 즉 scores[class_id]는 해당 Object가 특정 클래스가 될 확률입니다.
소스코드 변수명과 YOLO 설명상의 Confidence 개념이 혼동될 수 있음을 사과드리며, 위 내용대로 이해 하시면 도움이 될 것 같습니다.
감사합니다.