Swin-Object Detection Training 튜토리얼

HeungJun Kim·2022년 4월 5일
0

1. COCO 2017 데이터 세트 준비

트레이닝 및 테스트에 필요한 coco 2017 데이터 셋을 준비한다.

$ wget http://images.cocodataset.org/zips/train2017.zip
$ wget http://images.cocodataset.org/zips/val2017.zip
$ wget http://images.cocodataset.org/zips/test2017.zip
$ wget http://images.cocodataset.org/zips/unlabeled2017.zip
$ unzip train2017.zip unzip val2017.zip unzip test2017.zip
$ unzip unlabeled2017.zip rm train2017.zip rm val2017.zip
$ rm test2017.zip rm unlabeled2017.zip
$ cd ../
$ wget http://images.cocodataset.org/annotations/annotations_trainval2017.zip
$ wget http://images.cocodataset.org/annotations/stuff_annotations_trainval2017.zip
$ wget http://images.cocodataset.org/annotations/image_info_test2017.zip
$ wget http://images.cocodataset.org/annotations/image_info_unlabeled2017.zip

다운받은 데이터셋을 아래 이미지와 같은 구조로 배치한다.

2. ImageNet 224x224 pre-trained 모델 다운로드

3. Cascade mask-rcnn 학습

  • 나의 학습환경의 그래픽 카드는 1GPU(NVIDIA GeForce RTX 2060 / 6GB) 로, cascade-mask-rcnn-tiny 학습 시 CUDA out of memory error가 발생한다.
    따라서, "swin root/configs/_base_datasets/coco_instance.py" 를 열어 31 line의 samples_per_gpu 값을 2 >> 1 로 수정하였다.

  • 나의 학습환경의 경우 1GPU 이지만 tools/train.py 의 경우 오류가 발생하였고, 멀티GPU 학습을 위한 Shell인 tools/dist_train.sh 에 GPU 인자를 1로 설정하여 학습하였다.

  • tools/dist_train.sh 명령어 가이드

    $ tools/dist_train.sh <CONFIG_FILE> <GPU_NUM> --cfg-options model.pretrained=<PRETRAIN_MODEL> model.backbone.use_checkpoint=True other optional arguments

  • tools/dist_train.sh 명령어 적용

    $ tools/dist_train.sh 'configs/swin/cascade_mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_giou_4conv1f_adamw_1x_coco.py' 1 --cfg-options model.pretrained='checkpoint/swin_tiny_patch4_window7_224.pth' model.backbone.use_checkpoint=True

  • 학습이 시작되면 "swin root/work_dirs" 디렉토리가 생성되고 log 및 모델이 저장된다.

4. To Do.

profile
Computer Vision / ADAS / DMS / 얼굴인식

0개의 댓글