yolact 구현하기



환경


  • CUDA V10.0.130
  • Python 3.7.3
  • gcc 7.3.0
  • Pytorch 1.2.0

  • 설정


    git clone https://github.com/dbolya/yolact.git
    cd yolact
    pip install opencv-python pillow==6.2.1 pycocotools matplotlib
    pip install cython
    pip install torch==1.2.0 torchvision==0.4.0    # CUDA10.0で安定
    

    yolact++를 사용하는 경우 DCNv2 컴파일
    cd external/DCNv2
    python setup.py develop
    

    학습된 모델로 추론


  • 학습된 모델 다운로드
    h tps://d ゔぇ. 오, ぇ. 이 m/후ぃぇ/d/15 있어 d0㎃q5에 qRbkD-3↓ DZXdCv 리아아 HpFB/ゔぃ에w? 우 sp = 샤린 g

  • 추론 실행
  • 이미지
  • python eval.py 
        --trained_model=weights/yolact_base_54_800000.pth  
        --score_threshold=0.15 
        --top_k=15 
        --images=path/to/input/folder:path/to/output/folder
    
  • 동영상
  • python eval.py 
        --trained_model=weights/yolact_base_54_800000.pth 
        --score_threshold=0.15 
        --top_k=15 
        --video_multiframe=4 
        --video=input_video.mp4:output_video.mp4
    

    원본 데이터로 학습


  • coco 형식으로 데이터 세트 준비
  • dataset_name/
    ├── test
    │   ├── test.json
    │   └── images/
    └── train
        ├── train.json
        └── images/
    

  • 학습 전 모델 다운로드
  • Resnet50
    h tps://d ゔぇ. 오, ぇ. 이 m/후ぇぇ/d/1Jy3yCd면 tgぁ5 yy dTC rSV0S9V5g1r/ゔぃ에 w? 우 sp = 샤린 g
  • Resnet101
    h tps://d ゔぇ. 오, ぇ. 코 m/후에/d/1tvqFPd4bJ 타코 lm 응 우이아 492g2쿵 rChj/ぃぃ에 w? 우 sp = 샤린 g
  • Darknet53
    h tps://d ゔぇ. 오, ぇ. 이 m/후ぃぇ/d/17Y431j4사gFpS할 수 있는 P의 Fcj9h7아zDTZ㄃f/ぃぃ에w? 우 sp = 샤린 g


  • config 파일 수정 (2 개소)
    먼저 데이터베이스 정의를 작성하고,

    data/config.py
        test_dataset = dataset_base.copy({
            'name': 'Test Dataset',
    
            'train_images': '~/dataset_name/train/images/',
            'train_info':   '~/dataset_name/train/train.json',
    
            'valid_images': '~/dataset_name/test/images/',
            'valid_info':   '~/dataset_name/test/test.json',
    
            'has_gt': True,
            'class_names': ('class_1', 'class_2', 'class_3', ...),    # クラス名を定義
            'label_map': {'class_id_1': 1, 'class_id_2': 2, ...}    # class idの辞書
        })
    

    그런 다음 기본 구성 파일을 변경하여 종료.

    data/config.py
        yolact_base_config = coco_base_config.copy({
            'name': 'yolact_base',
    
            # Dataset stuff
            # 'dataset': coco2017_dataset,    # default
            'dataset': test_dataset,    # Original Dataset
    
            # 'num_classes': len(coco2017_dataset.class_names) + 1,
            'num_classes': len(test_dataset.class_names) + 1,
        })
    


  • 학습
  • 모델에 따라 config 변경
  • save_folder에 초기 모델 (resnet50-19c8e357.pth)을 저장
    python train.py --config=yolact_plus_resnet50_config --save_folder=/path/to/workspace/ --save_interval=1000
    

  • 모델 정밀도 평가
  • 다음의 코드로 평가할 수 있다.
  • --output_coco_json 를 끝에 붙이면 ~/results/이하에 json 파일을 생성할 수 있다.
  • python eval.py --trained_model=weights/yolact_base_54_800000.pth
    

    좋은 웹페이지 즐겨찾기