Base (classification) model을 이용하는 대표 Downstream tasks 중 하나인 Semantic segmentation!
그리고 대표적인 segmentation toolbox인 mmsegmentation!
(이하 mmseg)
그럼 만약에,
면 어떻게 해야할까?
정답은 mmsegmentation/configs 안에 담겨 있다!
오늘은 이 부분을 파헤쳐보자!
OpenMMLab에서 제공하고 있는 모든 computer vision libraries (mmdetection, mmsegmentation, mmclassification 등)는 모두 동일한 형태의 configuration을 지닌다.
그말인 즉슨, configuration 스타일을 익혀두면 모든 CV libraries를 활용할 수 있다라는 의미다.
아쉽게도 한글 Guideline은 존재하지 않으므로 직접 하면서 익혀보도록 하자!
기본적으로 동작은
bash dist_train.sh configs/model_config.py ...
형태로 들어가는데 여기서 model_config.py 안에는 크게,
에 관한 정보가 들어가게 된다.
감사하게도 mmsegmentation에서 자체적으로 제공하는 모델 (데이터도 마찬가지)은
에 포함되어 있으니, 내가 사용하고자 하는 모델/데이터셋/스케쥴이 있다면 손쉽게 inheritance design 형태로 덮어쓰면 된다.
mmseg에서 제공하는 config.py 파일의 naming은 다음과 같이 통일되어 있다.
{model}_{backbone}_[misc]_[gpu x batch_per_gpu]_{resolution}_{iterations}_{dataset}
config 안에 여러 변수가 존재하지만 우리가 주로 다뤄야할 config들만 정리해보자.
대표적인 PSPNet의 config를 확인하기 위해서는 https://mmsegmentation.readthedocs.io/en/latest/tutorials/config.html 를 참고하자 (엄청 자세히 나와있다)
multi-GPU processing을 위한 Batch normalization config (여러 군데에서 사용함)
norm_cfg = dict(type='SyncBN', requires_grad=True)
optimization 관련 등 (이 부분 상세히 다루지 않겠습니다)
참고할만한 Links
https://mmsegmentation.readthedocs.io/en/latest/tutorials/config.html
https://github.com/open-mmlab/mmsegmentation/tree/master/configs/_base_
https://github.com/open-mmlab/mmsegmentation/tree/master/configs/segformer
mmsegmentation - 1. Tutorial (0) | 2023.01.24 |
---|---|
Conv Architecture 저장소 (0) | 2022.11.27 |
Detectron2 활용법 (4) - Training and Evaluation (0) | 2022.10.14 |
Detectron2 활용법 (3) - Model setup (0) | 2022.10.14 |
Detectron2 활용법 (2) - Dataloader & Data Augmentation (0) | 2022.10.14 |
댓글 영역