반응형

0. Train 명령어

 

YOLO를 빌드하고 Dataset까지 준비했다면 이제 자신의 Dataset으로 학습을 해보자.

먼저 학습 명령어이다.

 


darknet.exe detector train data/obj.data yolo-obj.cfg yolov4.conv.137

 

- darknet.exe

빌드해서 나온 darknet 실행 파일

 

- detector train

detector의 train 함수 호출

 

- data/obj.data

학습에 필요한 .data 파일

 

- yolo-obj.cfg

학습에 필요한 .cfg 파일

 

- yolov4.conv.137

사전에 학습 된 가중치 파일 (git에서 받을 수 있다)

 

위 항목에서 .data, .cfg 파일은 사용자가 준비한 Dataset에 맞게 수정or작성해야 한다.

 

 

 

1. data file

 

미리 있는 .data file을 열어보면 다음과 같다.

 

.data file

 

- classes : dataset의 class 개수

- train : .txt파일의 경로, train dataset의 파일(이미지) 경로들이 적혀 있는 txt 파일

- valid : train 항목과 마찬가지로 학습 시 validation 할 파일 경로들이 적혀 있는 txt파일

- names : class의 이름들이 있는 파일

- backup : 학습 시 저장되는 가중치 파일 경로

 

나는 이미지중 찾는 class가 하나이기 때문에 classes=1.

 

data file안에 있는 train, vaild 항목은 학습에 필요한 dataset file들의 경로들이 있는 txt파일의 경로이다.

나는 test용으로 valid도 train set과 같이 썼다. (모든 경로는 darknet.exe에 대해 상대경로)

 

train.txt

 

 

.names file에는 classes들의 이름을 나열해준다.

 

obj.names

 

 

 

2. cfg file

 

cfg file에는 학습에 필요한 파라미터 및 모델구조가 들어있다. (cfg/yolov4-custom.cfg를 복사, 수정하여 사용...)

 

.cfg file

- batch

한번 학습 할 때 읽어들이는 batch size, 64 or 8의 배수

- subdivisions

batch를 얼마나 쪼개서 학습을 할건지에 대한 설정 값, 8의 배수로 조절

- width, height

기본값은 416. (or 32의 배수)

- max_batches

classes * 2000 으로 설정 (train image data보다 적으면 안된다...?)

- steps

보통 max_batches의 80%, 90%로 설정 (max_batches 6000일 때, steps=4800,5400)

- classes

[yolo] layer에 속하는 classes 3개를 자신의 dataset에 맞게 변경

 

총 3개의 classes를 모두 바꿔준어야 한다

 

- filters

filters = (classes + 5) x 3

[yolo] layer 바로 전에 있는 filters의 값을 위 공식대로 변경. (classes가 1이면 filters=18)

[yolo] layer 이전에 있는 3개의 filters의 값을 변경하면 된다

 

 

 

3. Train

 

cfg, data 파일을 수정하고, 0. 에서 작성한 명령어를 darknet.exe 경로에서 실행.

 


darknet.exe detector train data/obj.data yolo-obj.cfg yolov4.conv.137

 

학습 진행 중

 

 

 

*만약 여러 GPU를 사용하여 학습한다면, 먼저 위와 같은 방법으로 1000회 정도 학습 후 그 가중치 파일과 아래 명령어로 이어서 학습하면 된다.

 


darknet.exe detector train data/obj.data yolo-obj.cfg backup/yolo-obj_1000.weights -gpus 0,1,2,3

 

 

 

 

 

 

끝.

반응형

'DeepLearning > YOLO' 카테고리의 다른 글

[YOLOv8] YOLOv8 install windows 10  (0) 2023.07.21
[YOLO] yolov7 windows install 및 detect test  (0) 2022.12.09
3. YOLO c++, cpp dll 활용 (MFC)  (4) 2021.01.04
1. Yolo_mark, Image Data Labeling  (0) 2021.01.04
0. YOLO Setup  (0) 2021.01.02
woongs_93