ultralytics/yolov8 커스텀 학습

HeungJun Kim·2024년 5월 7일
0

YOLO

목록 보기
6/7
post-thumbnail

어렵지 않다.

1. ultralytics 설치

# Clone the ultralytics repository
git clone https://github.com/ultralytics/ultralytics

> # Navigate to the cloned directory
cd ultralytics

# Install the package in editable mode for development
pip install -e .

2. custom yaml 복사

(1) custom_train 폴더 생성
(2) { train 설정 config / yolov8 네트워크 config / dataset config } 복사

mkdir custom_train
cp ultralytics/cfg/default.yaml custom_train/custom_train_cfg.yaml
cp ultralytics/cfg/models/v8/yolov8.yaml custom_train/custom_yolov8.yaml
cp ultralytics/cfg/datasets/coco.yaml custom_train/custom_dataset.yaml

3. custom yaml 수정

(1) 경로에 맞게 model / data 필드는 복사한 customtrain/custom*.yaml 로 수정해준다.
(2) batch 는 -1로 설정하면 자동으로 gpu 메모리에 맞게 할당해준다.
(auto-batch)
(3) multiscale / pretrain / augmentation / project 등 파라미터는 필요에 따라 수정

  • custom_train/custom_train_cfg.yaml

(4) 학습할 네트워크 클래스 / activation 수정

  • custom dataset 의 클래스 수에 맞게 nc 필드를 수정해준다.
  • Edge Device(NPU Soc)에 포팅할 예정이므로 INT8 quantization에 유리한 relu activation으로 바꿔준다.
  • 모델 사이즈(scale) 지정을 위해 주석처리
    학습시 scale 옵션을 주는 방법을 모르겠다.
    임시방편으로 주석을 통해 target model scale을 지정할 수 있다.
    (명시하지않으면 'n' 사이즈가 default 설정됨)
  • custom_train/yolov8.yaml

4. custom dataset 구조

아래 그림과 같이 데이터셋은 image(jpg) / label(txt)를 분리하여 저장해 둔다.

4. 학습 커맨드

yolo train cfg=custom_train/custom_train_cfg.yaml

5. 학습 로그

텐서보드를 통해 확인하거나, project name 폴더의 train 폴더에 result.csv 를 통해 학습 진행상황을 모니터링할 수 있다.

새로만든 커스텀 데이터셋인데, 학습초기임에도 mAP가 높게 잘 학습되고 있다.
yolov8 매우 만족스럽다.

profile
Computer Vision / ADAS / DMS / Face Recognition

0개의 댓글