From 6879b0d43c02ae9764d1e5cb23f55cbc5b2ef1fc Mon Sep 17 00:00:00 2001 From: Jerry Jiarui XU Date: Sun, 24 Jan 2021 02:17:59 -0800 Subject: [PATCH] [Bug fix] Fixed ADE20k test (#359) * [Bug fix] Fixed ADE20k test * fixed ade cfg --- .../apcnet_r50-d8_512x512_160k_ade20k.py | 1 - .../apcnet/apcnet_r50-d8_512x512_80k_ade20k.py | 1 - .../deeplabv3_r50-d8_512x512_160k_ade20k.py | 1 - .../deeplabv3_r50-d8_512x512_80k_ade20k.py | 1 - ...deeplabv3plus_r50-d8_512x512_160k_ade20k.py | 1 - .../deeplabv3plus_r50-d8_512x512_80k_ade20k.py | 1 - .../dmnet/dmnet_r50-d8_512x512_160k_ade20k.py | 1 - .../dmnet/dmnet_r50-d8_512x512_80k_ade20k.py | 1 - configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py | 1 - configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py | 1 - .../psanet_r50-d8_512x512_160k_ade20k.py | 1 - .../psanet/psanet_r50-d8_512x512_80k_ade20k.py | 1 - .../pspnet_r50-d8_512x512_160k_ade20k.py | 1 - .../pspnet/pspnet_r50-d8_512x512_80k_ade20k.py | 1 - .../upernet/upernet_r50_512x512_160k_ade20k.py | 1 - .../upernet/upernet_r50_512x512_80k_ade20k.py | 1 - mmseg/core/evaluation/metrics.py | 18 +++++++++--------- 17 files changed, 9 insertions(+), 25 deletions(-) diff --git a/configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py b/configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py index aa45e35..f7821c5 100644 --- a/configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py +++ b/configs/apcnet/apcnet_r50-d8_512x512_160k_ade20k.py @@ -4,4 +4,3 @@ _base_ = [ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py b/configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py index 6b40d1f..daafa5f 100644 --- a/configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py +++ b/configs/apcnet/apcnet_r50-d8_512x512_80k_ade20k.py @@ -4,4 +4,3 @@ _base_ = [ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py b/configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py index 742e17d..b4a9d4e 100644 --- a/configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py +++ b/configs/deeplabv3/deeplabv3_r50-d8_512x512_160k_ade20k.py @@ -4,4 +4,3 @@ _base_ = [ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py b/configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py index 5ddef21..78f4d0d 100644 --- a/configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py +++ b/configs/deeplabv3/deeplabv3_r50-d8_512x512_80k_ade20k.py @@ -4,4 +4,3 @@ _base_ = [ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py b/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py index e734880..1491e3b 100644 --- a/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py +++ b/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_160k_ade20k.py @@ -4,4 +4,3 @@ _base_ = [ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py b/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py index 8705972..352d870 100644 --- a/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py +++ b/configs/deeplabv3plus/deeplabv3plus_r50-d8_512x512_80k_ade20k.py @@ -4,4 +4,3 @@ _base_ = [ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py b/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py index 69f4165..a8fbd9b 100644 --- a/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py +++ b/configs/dmnet/dmnet_r50-d8_512x512_160k_ade20k.py @@ -4,4 +4,3 @@ _base_ = [ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py b/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py index 513f58c..74f6d6a 100644 --- a/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py +++ b/configs/dmnet/dmnet_r50-d8_512x512_80k_ade20k.py @@ -4,4 +4,3 @@ _base_ = [ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py b/configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py index db272d6..9ca7fd2 100644 --- a/configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py +++ b/configs/fcn/fcn_r50-d8_512x512_160k_ade20k.py @@ -4,4 +4,3 @@ _base_ = [ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py b/configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py index 64997c2..ef194cb 100644 --- a/configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py +++ b/configs/fcn/fcn_r50-d8_512x512_80k_ade20k.py @@ -4,4 +4,3 @@ _base_ = [ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py b/configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py index d177d17..9c6364e 100644 --- a/configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py +++ b/configs/psanet/psanet_r50-d8_512x512_160k_ade20k.py @@ -5,4 +5,3 @@ _base_ = [ model = dict( decode_head=dict(mask_size=(66, 66), num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py b/configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py index 58a18a0..0141a6d 100644 --- a/configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py +++ b/configs/psanet/psanet_r50-d8_512x512_80k_ade20k.py @@ -5,4 +5,3 @@ _base_ = [ model = dict( decode_head=dict(mask_size=(66, 66), num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py b/configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py index c34b66a..8658457 100644 --- a/configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py +++ b/configs/pspnet/pspnet_r50-d8_512x512_160k_ade20k.py @@ -4,4 +4,3 @@ _base_ = [ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py b/configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py index 6922cc6..52efdf5 100644 --- a/configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py +++ b/configs/pspnet/pspnet_r50-d8_512x512_80k_ade20k.py @@ -4,4 +4,3 @@ _base_ = [ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/upernet/upernet_r50_512x512_160k_ade20k.py b/configs/upernet/upernet_r50_512x512_160k_ade20k.py index f259165..f5dd9aa 100644 --- a/configs/upernet/upernet_r50_512x512_160k_ade20k.py +++ b/configs/upernet/upernet_r50_512x512_160k_ade20k.py @@ -4,4 +4,3 @@ _base_ = [ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/configs/upernet/upernet_r50_512x512_80k_ade20k.py b/configs/upernet/upernet_r50_512x512_80k_ade20k.py index ce5d71f..f561e30 100644 --- a/configs/upernet/upernet_r50_512x512_80k_ade20k.py +++ b/configs/upernet/upernet_r50_512x512_80k_ade20k.py @@ -4,4 +4,3 @@ _base_ = [ ] model = dict( decode_head=dict(num_classes=150), auxiliary_head=dict(num_classes=150)) -test_cfg = dict(mode='whole') diff --git a/mmseg/core/evaluation/metrics.py b/mmseg/core/evaluation/metrics.py index 86475a8..95b096e 100644 --- a/mmseg/core/evaluation/metrics.py +++ b/mmseg/core/evaluation/metrics.py @@ -34,15 +34,15 @@ def intersect_and_union(pred_label, if isinstance(label, str): label = mmcv.imread(label, flag='unchanged', backend='pillow') - # modify if custom classes - if label_map is not None: - for old_id, new_id in label_map.items(): - label[label == old_id] = new_id - if reduce_zero_label: - # avoid using underflow conversion - label[label == 0] = 255 - label = label - 1 - label[label == 254] = 255 + # modify if custom classes + if label_map is not None: + for old_id, new_id in label_map.items(): + label[label == old_id] = new_id + if reduce_zero_label: + # avoid using underflow conversion + label[label == 0] = 255 + label = label - 1 + label[label == 254] = 255 mask = (label != ignore_index) pred_label = pred_label[mask]