YOLOX 개발환경 세팅

HeungJun Kim·2022년 6월 9일
1

YOLOX

목록 보기
1/5

1. YOLOX

https://github.com/Megvii-BaseDetection/YOLOX

yolox 공식 구현 repo 설치 과정 및 개발환경 세팅.

사전에 cuda 및 pytorch 설치가 필요하다.
그 외 git repo의 Quick Start 를 따라 설치하면 된다.

@ mmdetection 의 yolox 구현은 깔끔하지 않고, 일부 파라미터가 다르다.

YoloX 튜토리얼 : https://wikidocs.net/book/6097

2. YOLOX-Custum dataset training

1) 학습 데이터셋 준비

COCO 형식으로 변환된 custom 데이터셋으로 yolox 모델을 학습하는 과정을 서술한다.

YOLOX/exps/default/ 경로에서 학습할 모델 exp파일(.py)를 복사한다.

기본적으로 학습 데이터셋의 경로는 self.data_dir 경로 하위의 annotations 폴더에서 self.train_ann / self.val_ann 에 명시된 label json(coco style) 파일을 읽어와, 이미지가 들어있는 train/val 경로에 접근한다.

나는 이와같은 형식의 디렉토리 구성이 마음에 들지 않아서,


annotations 폴더 없이 self.data_dir 경로에 {train / val / test} json 파일을 배치하고, 동일한 네이밍의 폴더에 학습 이미지를 배치했다.
학습 테스크 {train / val / test}에 따라 적절한 학습 이미지 경로를 탐색할 수 있도록,
YOLOX/yolox/data/datasets/coco.py 를 수정해준다.

72   self.name = self.json_file[:-5]  # remove .json

2) wandb

학습 시각화를 위해 wandb를 설치하고 로그인한다.
로그인시 api 키를 입력하라는 메시지가 출력되면, wandb 웹사이트: https://wandb.ai/settings 에 접속해 API key를 복사하여 입력해 준다.

$ pip install wandb
$ wandb login

3) yolox model custum

custum 학습을 위해 base 모델(yolov3-darknet53)을 복사하여 만든 exp(.py) 파일을 수정해 준다.

MyExp를 상속 받으며, 상속받은 부모 클래스의 self.xxx 파라미터를 수정하여 학습 파라미터를 수정할 수 있다.
아래와 같이 input_size(test_size도 항상 동일하게 변경), num_classes 및 transform config 항목의 파라미터를 수정해줬다.
YOLOX의 기본 Augmentation 을 파라미터 조정으로 수정할 수 있고,
YOLOX/yolox/data/data_augment.py 소스코드를 직접 수정하여 원하는 기능을 추가할 수 있다.

4) training

학습하려는 모델의 pre-trained 모델을 다운받고, gpu 개수(-d), 배치사이즈(-b : gpu 개수 x 8 권장), checkpoint, wandb 옵션, fp16 적용 유무를 적용한 명령어를 입력한다.

$ python tools/train.py -f exps/my/yolov3_512x256.py -d 4 -b 32 -o -c checkpoint/yolox_darknet.pth --cache --logger wandb wandb-project yolox

wandb에 접속해 학습 진행상황을 확인할 수 있다.

profile
Computer Vision / Object Detection / SW개발

0개의 댓글