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

hjmoon님의 프로필 이미지
hjmoon

작성한 질문수

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

custom data 적용 파라미터 조정

작성

·

314

0

강사님!! custom data 적용을 위한 질문이 몇가지 있습니다.

(1) keras yolov3 학습에서 custom data를 적용시킬때 최적화를 위해 테스트를 해볼 수 있는 파라미터를 조언받을 수 있을까요?

 (2) keras yolov3 학습에서 NMS를 수행하는 모듈의 위치는 어디에 있나요?

 (3) opencv yolov3 학습파라미터에서는 nms_threshold, conf_threshold 값을 확인하였고, keras에서는 score값과 Iou값이 있습니다. 아래와 같이 매치시켜서 이해하면 될까요?

nms_threshold = iou

conf_threshold = score

confidence score가 물체가있을확률xIOU값으로 알고 있는데 물체가 있을 확률값은 따로 조정하는 곳이 없나요?

질문 답변주시면 감사하겠습니다.

(질문이 많습니다 ㅜ..ㅜ)

답변 2

0

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

친절하고 자세한 답변에 감사드립니다. 말씀해주신 사항을 잘 참고해보겠습니다!!

0

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

안녕하십니까,

1. Yolo 자체를 튜닝할 테스트 꺼리들은 있는데(예를 들어 Augmentation등), keras yolo package로는 특별히 튜닝할 거리가 그렇게 많지는 않습니다.  성능이 목표라면 차라리 yolo v4 로 옮겨가시는게 좋을 것 같습니다.  Object Detection에 어느정도 익숙해 지셨다면 아래에서 Yolo v4 를 테스트해보시는건 어떻지요. 

https://github.com/hunglc007/tensorflow-yolov4-tflite

2. Yolo에서 NMS는 학습시에 수행하지 않고 Detect 시에 수행합니다.

https://github.com/qqwweee/keras-yolo3/blob/master/yolo3/model.py 의 217 line에 있습니다.

3.  OpenCV Yolo는 학습하지 않습니다. Detect 만 수행합니다.

말씀하신 대로 아래와 같이 매핑하셔서 이해하시면 될 것 같습니다.

nms_threshold = iou

conf_threshold = score

그리고 confidence score 에 대해서는 이게 yolo v3 와 v2,v3일때 설명이 좀 헷갈리게 되어 있습니다.

yolo v1 일때는 물체가 있을 확률 x IOU 로 confidence score라고 논문에 되어 있지만,  코드는 yolo v3 인데 confidence_score같은 변수는 객체가 특정 class일 확률입니다. 즉 class score입니다.

그리고 이를 조절하시려면 Yolo 객체를 생성할때 인자로 넣어주시면 됩니다.

raccoon_yolo = YOLO(score=0.5, model_path=os.path.join(HOME_DIR,'DLCV/Detection/yolo/keras-yolo3/snapshots/000/trained_weights_final.h5'),
            anchors_path=os.path.join(HOME_DIR,'DLCV/Detection/yolo/keras-yolo3/model_data/yolo_anchors.txt'),
            classes_path=os.path.join(HOME_DIR, 'DLCV/Detection/yolo/keras-yolo3/model_data/raccoon_class.txt'))
hjmoon님의 프로필 이미지
hjmoon

작성한 질문수

질문하기