Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Albumentations default key mapping mismatch #3179

Closed
Alias-z opened this issue Jul 10, 2023 · 2 comments
Closed

Albumentations default key mapping mismatch #3179

Alias-z opened this issue Jul 10, 2023 · 2 comments

Comments

@Alias-z
Copy link
Contributor

Alias-z commented Jul 10, 2023

Describe the bug
Masks would not transform along with input images using the default key mapping self.keymap_to_albu = { 'img': 'image', 'gt_masks': 'masks'}

Reproduction

Using default setting:

 train_pipeline = [
    dict(type='LoadImageFromFile'),
    dict(type='LoadAnnotations', reduce_zero_label=False),
    dict(type='PhotoMetricDistortion'),
    dict(
        type='Albu',
        transforms=albu_train_transforms,
        keymap={'img': 'image', 'gt_masks': 'masks'}),
    dict(type='Resize', scale=crop_size, keep_ratio=False, interpolation='lanczos'), 
    dict(type='PackSegInputs', meta_keys=('img_path', 'img_shape', 'img', 'gt_masks'))
]

A thaliana Lucia 07 2022 col-0 30m-1h after Infection 22162057 object id 0 png_0

Using keymap={'img': 'image', 'gt_seg_map': 'mask'}

train_pipeline = [
    dict(type='LoadImageFromFile'),
    dict(type='LoadAnnotations', reduce_zero_label=False),
    dict(type='PhotoMetricDistortion'),
    dict(
        type='Albu',
        transforms=albu_train_transforms,
        keymap={'img': 'image', 'gt_seg_map': 'mask'}),
    dict(type='Resize', scale=crop_size, keep_ratio=False, interpolation='lanczos'), 
    dict(type='PackSegInputs', meta_keys=('img_path', 'img_shape', 'img', 'gt_seg_map'))
]

A thaliana Lucia 07 2022 col-0 3H LIGHT 22154449 object id 66 png_0

Bug fix
keymap={'img': 'image', 'gt_seg_map': 'mask'}

@xiexinch
Copy link
Collaborator

Hi @Alias-z,
Could you create a pull request to fix this problem? We really appreciate it!

@Alias-z
Copy link
Contributor Author

Alias-z commented Jul 13, 2023

Sure! See PR: #3195

xiexinch added a commit that referenced this issue Jul 14, 2023
## Modification

Fix Albumentations default key mapping mismatch as mentioned in [issue #
3179](#3179) by
changing `self.keymap_to_albu = { 'img': 'image', 'gt_masks': 'masks'}`
to `self.keymap_to_albu = { 'img': 'image', 'gt_seg_map': 'mask'}`

## Use cases (Optional)

Example albu config
```
crop_size = (512, 512)

albu_train_transforms = [
    dict(
        type='PadIfNeeded',
        min_height=crop_size[0]*2,
        min_width=crop_size[1]*2,
        border_mode=0,
        always_apply=True),
    dict(type='Flip', always_apply=True),
    dict(type='Rotate', limit=(-180, 180), interpolation=4, always_apply=True),
    dict(type='RandomScale', scale_limit=0.1, interpolation=4, always_apply=True),
    dict(
        type='ElasticTransform',
        alpha=20, 
        sigma=15, 
        interpolation=4, 
        border_mode=0,
        mask_value=(0, 0, 0),
        approximate=True,
        same_dxdy=True,
        p=0.8),
    dict(type='ColorJitter', brightness=0.2, contrast=0.1, saturation=0.2, hue=0.2, always_apply=True),
    dict(type='AdvancedBlur', p=0.5),
    dict(type='CenterCrop', height=crop_size[0], width=crop_size[1], always_apply=True)
]
```

Example training pipeline without specifying `keymap`
```
train_pipeline = [
    dict(type='LoadImageFromFile'),
    dict(type='LoadAnnotations', reduce_zero_label=False),
    dict(
        type='Albu',
        transforms=albu_train_transforms,
        ),
    dict(type='Resize', scale=crop_size, keep_ratio=False, interpolation='lanczos'), 
    dict(type='PackSegInputs')
]
```

Example viz_dataset before the issue fixing
![A thaliana Lucia 07 2022 col-0 30m-1h after Infection 22162057 object
id
0](https://github.com/open-mmlab/mmsegmentation/assets/66273343/5431472a-83fd-485f-aeb7-c65f27f1993d)

Example viz_dataset after the issue fixing
![A thaliana Lucia 07 2022 col-0 30m-1h after Infection 22162057 object
id
0](https://github.com/open-mmlab/mmsegmentation/assets/66273343/3d6d4937-41f0-4a18-ae47-35bc43d78843)

---------

Co-authored-by: xiexinch <xiexinch@outlook.com>
@Alias-z Alias-z closed this as completed Jul 14, 2023
nahidnazifi87 pushed a commit to nahidnazifi87/mmsegmentation_playground that referenced this issue Apr 5, 2024
## Modification

Fix Albumentations default key mapping mismatch as mentioned in [issue #
3179](open-mmlab#3179) by
changing `self.keymap_to_albu = { 'img': 'image', 'gt_masks': 'masks'}`
to `self.keymap_to_albu = { 'img': 'image', 'gt_seg_map': 'mask'}`

## Use cases (Optional)

Example albu config
```
crop_size = (512, 512)

albu_train_transforms = [
    dict(
        type='PadIfNeeded',
        min_height=crop_size[0]*2,
        min_width=crop_size[1]*2,
        border_mode=0,
        always_apply=True),
    dict(type='Flip', always_apply=True),
    dict(type='Rotate', limit=(-180, 180), interpolation=4, always_apply=True),
    dict(type='RandomScale', scale_limit=0.1, interpolation=4, always_apply=True),
    dict(
        type='ElasticTransform',
        alpha=20, 
        sigma=15, 
        interpolation=4, 
        border_mode=0,
        mask_value=(0, 0, 0),
        approximate=True,
        same_dxdy=True,
        p=0.8),
    dict(type='ColorJitter', brightness=0.2, contrast=0.1, saturation=0.2, hue=0.2, always_apply=True),
    dict(type='AdvancedBlur', p=0.5),
    dict(type='CenterCrop', height=crop_size[0], width=crop_size[1], always_apply=True)
]
```

Example training pipeline without specifying `keymap`
```
train_pipeline = [
    dict(type='LoadImageFromFile'),
    dict(type='LoadAnnotations', reduce_zero_label=False),
    dict(
        type='Albu',
        transforms=albu_train_transforms,
        ),
    dict(type='Resize', scale=crop_size, keep_ratio=False, interpolation='lanczos'), 
    dict(type='PackSegInputs')
]
```

Example viz_dataset before the issue fixing
![A thaliana Lucia 07 2022 col-0 30m-1h after Infection 22162057 object
id
0](https://github.com/open-mmlab/mmsegmentation/assets/66273343/5431472a-83fd-485f-aeb7-c65f27f1993d)

Example viz_dataset after the issue fixing
![A thaliana Lucia 07 2022 col-0 30m-1h after Infection 22162057 object
id
0](https://github.com/open-mmlab/mmsegmentation/assets/66273343/3d6d4937-41f0-4a18-ae47-35bc43d78843)

---------

Co-authored-by: xiexinch <xiexinch@outlook.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants