mmdetection을 원하는 대로 커스텀하기 위해선 config파일을 이해해야 한다.
하지만 config에 대한 진입 장벽이 있다 보니 많은 이들이 이 부분에서 포기한다.
이번 포스팅을 통해 확실하게 이해하자.
이 글을 읽기 전 선수 지식 포스팅
config 파일 컨셉 이해
모델 config파일을 열어보면
(예제는 faster rcnn 기준)
config 파일 코드가 상당히 심플하다.
그 이유는 해당 파일은 여러 config파일들을 한 군데로 모아주는 역할만 하기 때문이다.
_base_에 할당된 값을 보면 각 파일 경로가 리스트형태로 묶여 있다.
그 정보를 한데 모아 사용하겠다는 거다.
config파일은 크게 4가지로 구성된다.
- model ⇒ 모델 구조 변경
- datasets ⇒ 사용할 데이터에 대한 정보 기입
- schedules ⇒ epoch이나 learning rate 수정
- runtime ⇒ weight파일 저장 주기 설정
_base_디렉토리에서 4개의 파일을 확인할 수 있다.
models/faster_rcnn_r50_fpn.py(file link)
datasets/coco_detection.py(file link)
schedules/schedule_2x.py(file link)
default_runtime.py(file link)
각 config 파일을 합쳐서 하나의 config파일이 완성되는거다.
합쳐진 형태의 모습이 궁금하면 공식문서를 확인해 보면 된다
(커서를 조금 내리면 ‘An Example of Mask R-CNN’ 을 발견할 수 있다. 이곳에서 각 속성값에 대해 주석으로 설명되어 있다.)
그렇다면 이 config file을 어떻게 읽어올까?
config 파일 읽기
from mmcv import Config
config_file = 'mmdetection/configs/sparse_rcnn/sparse_rcnn_r50_fpn_300_proposals_crop_mstrain_480-800_3x_coco.py'
cfg = Config.fromfile(config_file)
print(cfg.pretty_text)
[ic]Config.fromfile()[/ic] 인자로 사용 하고자 하는 config 파일 경로를 넣어준다.
[ic].pretty_text[/ic]를 통해 config파일이 잘 등록되었는지 확인한다.
config 파일 수정(커스텀)
파일을 읽어 왔으면 입맛에 맞게 수정해야 할 차례다.
config 파일에 대한 이해도가 높을수록 커스텀 자유도는 올라간다.
하지만 초보자가 알아야 할 커스텀은 딱 2가지다.
- 데이터 셋 경로 입력
- 클래스 개수 변경
해당 부분은 다음 포스팅에서 이어간다.
'머신러닝,딥러닝 > computer vision' 카테고리의 다른 글
mmdetection 커스텀/모델 학습 완벽정리 (1) | 2023.01.17 |
---|---|
mmdetection 사용법(설치 및 기본 세팅) | inference 방법 (0) | 2022.12.01 |
ultralytics yolov5 사용법 완벽 정리 (1) | 2022.11.28 |
yolo 무료 이미지 라벨링 툴 labelimg 사용법 (0) | 2022.11.23 |
Iou(intersection over Union) 개념 | 밑바닥 코딩 (0) | 2022.08.31 |
댓글