개인 프로젝트/이미지 인식

02. 커스텀 이미지 학습시키기 (Yolo - darknet)

Jerry Jun 2020. 11. 9. 16:36
728x90

darknet.exe 파일까지 만들었다면 이제 나의 이미지를 학습시킬 차례이다.

잊어버리기 전에 업로드 하고 싶어서 아직까지 내 컴퓨터에서 학습중이다.

 

 

darknet.exe 를 만들었다면 동일 경로로 cmd 를 이동시키고 명령어를 알아보자.

 

darknet.exe detector train data/obj.data cfg/yolov3.cfg darknet53.conv.74

 

 

data/obj.data 파일 내용

classes = 2

train = data/train.txt

names = data/obj.names

backup = backup/

 

나의 경우는 "토마토" 와 "흑미밥" 의 이미지를 학습시키기 때문에 종류가 2개 이므로 classes 는 2로 설정했다.

train 은 훈련시킬 데이터의 경로와 이름이다.

names 는 영어로 훈련시킬 종류의 단어가 있다. (나의 경우는 black_rice, tomato 가 있다.)

 

 

cfg/yolov3.cfg 파일 내용

이 파일에서는 수정해야 할 부분이 있다.

 

yolo_first
yolo_second

스크롤의 첫 번째와 제일 끝의 부분을 수정했다.

마지막 부분은 anchors 와 classes 와 num 을 수정했다.

 

anchors 는 이 명령어를 참조했다.

darknet.exe detector calc_anchors data/obj.data -num_of_clusters 2 -width 416 -height 416

anchor box의 개수가 곧 num 이므로 2로 설정했다.

 

그리고 yolo 위의 convolutional 이 총 3개가 있다. 그것의 filters 를 21로 맞췄다.

많이 검색해본 결과 filters = (classes + 5) * 3 인 경우도 있고 filters = (classes + 5) * 5 인 경우도 있었는데 나는 첫 번째 경우를 사용해서 21를 설정했다.

 

그리고 명령어 실행!

 

실행하면 png 파일과 cmd 창이 열심히 일하기 시작한다.

 

learning

 

학습을 마치면 backup 폴더에 가중치 파일이 들어와있는 것을 확인할 수 있다!

weights_image

300x250