일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- text2img
- convexhull
- tensorflow update
- 영어
- 영어명언
- 이미지 생성
- #영어
- 딥러닝
- findContours
- #1일1영어
- #Android
- #실생활 영어
- word embedding
- Convolution Neural Network
- #실생활영어
- #일상영어
- 완전탐색
- object detection
- #English
- python list
- #영어 명언
- python 알고리즘
- c언어
- tokenizing
- #프로젝트
- keras
- opencv SURF
- python __init__
- TensorFlow
- #opencv
- Today
- Total
When will you grow up?
Custom Dataset으로 Retinanet 학습하기 본문
https://github.com/fizyr/keras-retinanet
위 깃허브를 참고하였으며, Window10 / Anaconda 환경을 이용하였으며 cuda 9버전 기준이다. 또한 우분투환경에서도 잘 동작한다. ~_~
0. 만약 Anaconda 환경이 안깔려있으면 클릭, gpu버전을 셋팅한다. (제 그래픽 카드는 1080ti로 테스트 하였다)
1. Github에 들어가서 코드를 다운받는다.
2. anaconda 명령 프롬프트를 열어 가상화를 만들어준다. ex) conda create -n retinanet python=3.6 -> conda activate retinanet
3. keras-retinanet-master 프로젝트 파일로 이동 후 ex) cd C:\Users\mekai\Project\keras-retinanet-master
python setup.py install 명령어를 통해 설치한다.
4. tf1.14 및 keras 2.24 버전 설치 ex) conda install tensorflow-gpu=1.14 / conda install keras=2.2.4
5. 위까지 설치가 잘 완료되었으면, 학습용 데이터셋을 만들어야한다.
총 2가지 (Annotation format, Class Mapping format) 파일이 필요한데 둘 다 확장자는 .csv 파일이다. 기본적인 학습용으로 만들어보기에, 자동차(아반떼, k3)를 검출을 해보자.
Annotation format은 fig1 처럼 각 이미지의 경로와 x1,y1,x2,y2가 필요하며, 전체적으로는
Annotation format 형식 : (img path, x1, y1, x2, y2, class_name) 으로 csv가 저장되어야 한다.
Classmapping format은 annotation에 class_name을 숫자로 mapping 시켜준 csv 파일이다.
Classmapping format 형식 : (class_name, number)
6. 이제 학습을 해보자!
train_data 폴더를 하나 만들어서 그 안에, data(.jpg/.png) 및 (annotation,classmapping).csv 파일을 넣어뒀다.
python keras_retinanet/bin/train.py --gpu=0 --epochs=10 --steps=1000 --workers=0 csv train_data/annotation.csv train_data/classmapping.csv
위 명령어를 입력하면 학습이 진행된다.
혹시나 ModuleNotFoundError: No module named 'keras_retinanet.utils.compute_overlap' 라는 오류가 발생한다면, python setup.py build_ext --inplace 명령어를 통해 해결할 수 있다.
7. 테스트 및 평가
테스트및 평가를 위해서는 학습된 모델을 convert해서 inference model로 바꿔줘야 한다.
python keras_retinanet/bin/convert_model.py ../snapshots/resnet50_csv_02.h5 ../snapshots/resnet50_csv_10_infer.h5
마지막으로 저장된 모델을 불러서 평가하면 끝~!
혹여나... 라벨툴을 알아보고 싶으면 클릭
'02. Study > Keras' 카테고리의 다른 글
Tensorflow & Keras 버전확인 (0) | 2020.04.02 |
---|---|
keras model 저장 및 callback (0) | 2019.08.07 |
model name exchange (0) | 2018.03.22 |
fit_generator with multiple inputs (0) | 2018.03.22 |
Keras Visualization (0) | 2018.03.17 |