boostcampaitech4lv23cv1 / level2_semanticsegmentation_cv-level2-cv-01

Semantic Segmentation Competition - 부스트캠프 AI Tech 4기
1 stars 3 forks source link

feat : Albumentations on mmsegmentation #22

Closed quasar529 closed 1 year ago

quasar529 commented 1 year ago

Description

Augmentation을 위한 도구인 Albumentations 를 mmsegementation에도 사용할 수 있도록 코드 추가.

Details

Reference / Image

https://github.com/boostcampaitech4lv23cv1/level2_semanticsegmentation_cv-level2-cv-01/commit/9103ba2cc771ff85df8413ef7280d0b52903aaf0

quasar529 commented 1 year ago

Albumentaitons 정의 후 적용

  1. 해당 경로에 Albu class 등록
    /opt/ml/level2_semanticsegmentation_cv-level2-cv-01/mmsegmentation/mmseg/datasets/pipelines/transforms.py
    /opt/ml/level2_semanticsegmentation_cv-level2-cv-01/mmsegmentation/mmseg/datasets/pipelines/__init__.py
  2. 다음 파일에서 원하는 augmentation 추가.
    /opt/ml/level2_semanticsegmentation_cv-level2-cv-01/mmsegmentation/_trashsegmentation/_base_/datasets/upstage.py

    EX)

    albu_train_transforms = [
    dict(type="Rotate", limit=(-30, 30), p=0.5),
    dict(type="GridDropout"),
    dict(type="ColorJitter"),
    dict(
        type="CropNonEmptyMaskIfExists",
        height=256,
        width=256,
        ignore_values=[[0, 0, 0]],
    ),
    ]
  3. 같은 파일 내 train_pipeline 에 albu 추가
    ...
    dict(
        type="Albu",
        transforms=albu_train_transforms,
        keymap=dict(img="image", gt_semantic_seg="mask"),
        update_pad_shape=True,
    ),
    ...

❗ upstage 에서 제공한 원격 서버에서 대회를 진행하기에 적용 시 특이사항 존재.

/opt/conda/envs/mm_s/lib/python3.8/site-packages/mmseg/datasets/pipelines/transforms.py
/opt/conda/envs/mm_s/lib/python3.8/site-packages/mmseg/datasets/pipelines/__init__.py

이 경로에 추가해야 사용가능합니다.