keras-yolov3 raccoon 학습 문의 드립니다.
338
작성한 질문수 5
안녕하세요
keras yolov3 raccoon 학습 관련하여 지난번에 mAP 구하고 싶다고 문의 드렸을 때, github 알려주셔서 보고 있습니다.
추가 문의 사항 있습니다.
1) 일반적으로 학습할 때는, train set: test set 7:3 으로 나눠서 학습과 테스트를 하게 되는데, 이때 학습에 썼던 데이터를 테스트에서도 쓴다면 이미지를 외워버리는게 되어 오버피팅이 일어날 수도 있다고 알고 있습니다.
keras-yolov3 raccoon 을 할 때는, xml 200건을 csv 로 변환하여 9:1로 학습, 검증에 사용하는데, 코드상으로는, inference 할 때도 그 200장 동일한 이미지를 사용하고 있습니다. 여기서 학습에 사용되지 않은 이미지로 inference를 해야 하는게 아닌가 궁금합니다.
개인 보유 이미지에 적용하려다 보니 의문이 들었습니다. xml 파일이 있는 걸 학습에 써야하고, inference는 xml 파일이 없는 (학습에 사용하지 않은 ) 이미지를 써야 한다고 생각해서요.
2) mAP를 구할 때 ground-truth, detection result 파일이 필요한데요,
ground-truth 는 <class_name> <left> <top> <right> <bottom> 이 필요하고
detection-result는 <class_name> <confidence> <left> <top> <right> <bottom> 가 필요합니다.
여기서, ground-truth 는 학습에 쓸 xml 파일, detection-result 는 inference 에서 나오는 결과를 활용해야 할 거 같은데 요, 위 질문에 이어서 봤을 때, inference에 학습에 미사용된 이미지를 사용했을 경우에 mAP를 구하려면 precision, recall 개념을 보면, 왠지 정답지가 이미 있는 이미지 (그러니까 학습에 쓴 이미지)를 가지고 테스트에도 활용해야 잘 예측을 했는지 (정답을 정답으로 맞췄는지) 구할 수 있을거 같아서 입니다.
머신러닝 위주로 해 보다 보니 딥러닝 특히 object detection에 대해 이해가 잘 안되는 부분들이 있습니다.
답변 미리 감사 드립니다.
답변 3
0
https://github.com/Cartucho/mAP#create-the-ground-truth-files
을 이용하려고 하시는것 같군요.
detection result 파일은 ground-truth 파일 형식과 동일하게 적어주시면 될 것 같습니다만,
<class_name> <left> <top> <right> <bottom>
그런데 이러한 포맷으로 데이터를 만들려면 keras-yolo3 API 를 조금 수정해야 할 것 같습니다.
https://github.com/qqwweee/keras-yolo3/blob/master/yolo.py 에 보시면 detect_image(self, image) 가 반환하는 것이 class name, left, top, right bottom 을 이미지에 적용한 이미지를 반환합니다.
이걸 좀 수정해서 return image가 아닌, 좌표와 클래스값을 함께 담아서 return image, [좌표, 클래스값] 으로 반환하는 것으로 소스 코드를 수정해야 할 것 같습니다. 한번 시도해 보시고, 상황 update해주시면 좋을 것 같습니다.
0
답글 감사합니다.
제가 2) 질문 설명이 미흡했나 봅니다.
mAP를 구하려고 보니, ground_truth 파일, detection result 파일이 필요한데,
1번 답변처럼 학습과 테스트를 진행 후 ground-truth(학습할 때 만든 .csv 파일 변환하여 이용)까지는 준비 하였습니다.
그런데 detection result 파일을 어떤걸 써야 하는지 어려워서요.
우선,, 학습했던 이미지를 테스트 하여 나온 결과를 mAP 구하는 폴더에 넣어서 해 보겠습니다.
질문을 설명하기가 어렵네요..
0
안녕하십니까,
1. 네 맞습니다. 원래대로라면 evaluation 시 학습 데이터에 사용된 데이터는 사용되지 않아야 합니다. 이미지갯수가 많지 않아서 그렇게 한것이었습니다.
2. 두번째 질문은 잘 이해를 하지 못했습니다. "왠지 정답지가 이미 있는 이미지 (그러니까 학습에 쓴 이미지)를 가지고 테스트에도 활용해야 잘 예측을 했는지 (정답을 정답으로 맞췄는지) 구할 수 있을거 같아서 입니다. " 란 설명이 어떤 의미인지 잘 이해를 못했습니다. 좀 더 부연 설명해 주시면 감사하겠습니다.
강의 환경설정 질문
0
38
2
Custom Dataset에서의 polygon 정보 관련
0
82
3
cvat.ai 보안 수준이 궁금합니다
0
78
2
캐클 nucleus 챌린지 runpod 실습 코드 에러 질문드립니다.
0
94
3
추론 결과의 Precision(또는 mAP) 평가 방법
0
82
2
mmdetection mask rcnn inferenct 실습 시 runpod 템플릿 관해서 질문드립니다.
0
58
2
runpod에서 google drive 연결 시 오류 발생
0
106
2
로드맵 선택
0
65
1
mmcv
0
56
2
Anchor box의 Positive 처리 위치
0
60
2
해당 강의 runpod 적용 후 에러 제보드립니다
0
84
2
run pod credit 관련 제보
0
95
2
mmdetection 2.x과 3.x 호환 관련 표기
0
76
2
mm_faster_rcnn_train_kitti.ipynb 실행 오류
0
94
3
질문 드립니다.
0
75
3
mm_faster_rcnn_train_coco_bccd 실행 오류 질문드립니다.
0
76
1
강사님께 수정을 제안드리고 싶은 것이 있습니다.
0
92
1
google automl efficientdet 다운로드 및 설치 오류
0
72
1
이상 탐지에 사용할 비전 기술 조언 부탁드립니다.
0
101
2
OpenCV 관련 질문드립니다.
0
70
2
mmcv 설치관련해서 문의드려요
0
329
3
강의 구성 관련해서 질문이 있습니다
1
134
2
모델 변환 성능 질문드립니다.
0
122
1
NMS 로직 문의 드려요
0
112
2





