From add835be3fe3648962d2518a355badcdecea56d1 Mon Sep 17 00:00:00 2001
From: panfeng-hover <48805111+panfeng-hover@users.noreply.github.com>
Date: Tue, 12 Apr 2022 03:26:25 -0700
Subject: [PATCH] Avoid converting label ids twice by label map during
 evaluation (#1417)

* Avoid converting label ids twice by label map during evaluation

* Update mmseg/datasets/custom.py

Co-authored-by: Miao Zheng <76149310+MeowZheng@users.noreply.github.com>

* lint

Co-authored-by: Miao Zheng <76149310+MeowZheng@users.noreply.github.com>
Co-authored-by: MeowZheng <meowzheng@outlook.com>
---
 mmseg/datasets/custom.py | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/mmseg/datasets/custom.py b/mmseg/datasets/custom.py
index 2649a581..4615d411 100644
--- a/mmseg/datasets/custom.py
+++ b/mmseg/datasets/custom.py
@@ -298,9 +298,18 @@ class CustomDataset(Dataset):
         for pred, index in zip(preds, indices):
             seg_map = self.get_gt_seg_map_by_idx(index)
             pre_eval_results.append(
-                intersect_and_union(pred, seg_map, len(self.CLASSES),
-                                    self.ignore_index, self.label_map,
-                                    self.reduce_zero_label))
+                intersect_and_union(
+                    pred,
+                    seg_map,
+                    len(self.CLASSES),
+                    self.ignore_index,
+                    # as the labels has been converted when dataset initialized
+                    # in `get_palette_for_custom_classes ` this `label_map`
+                    # should be `dict()`, see
+                    # https://github.com/open-mmlab/mmsegmentation/issues/1415
+                    # for more ditails
+                    label_map=dict(),
+                    reduce_zero_label=self.reduce_zero_label))
 
         return pre_eval_results
 
@@ -417,7 +426,7 @@ class CustomDataset(Dataset):
                 num_classes,
                 self.ignore_index,
                 metric,
-                label_map=self.label_map,
+                label_map=dict(),
                 reduce_zero_label=self.reduce_zero_label)
         # test a list of pre_eval_results
         else:
-- 
GitLab