inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

keras-yolov3 raccoon 학습 문의 드립니다.

338

Stephanie Kim

작성한 질문수 5

0

안녕하세요 

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에 대해 이해가 잘 안되는 부분들이 있습니다. 

답변 미리 감사 드립니다. 

머신러닝 배워볼래요? 컴퓨터-비전 딥러닝 python keras tensorflow

답변 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

Stephanie Kim

답글 감사합니다. 

제가 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