reduce_zero_label和ignore_label对mmseg数据库配置有什么影响?

问题描述 投票:0回答:1

我目前正在数据库中训练语义分割模型,分为 3 个类别:背景、A 类和 B 类。背景类表示为[0,0,0](注释图像中的值0),classA为[0,255,0](注释图像中的值1),classB为[0,0,255](注释图像中的值2)。

在配置数据库参数时,没有理解reduce_zero_label和ignore_label参数的用途和含义。

如果reduce_zero_label = True,背景类是否被省略?如果reduce_zero_label = True并且ignore_label = 0,它对classA和classB有什么影响吗?无论这些参数的值如何,我的类数会改变还是保持为 3?这些参数对类有什么影响?

我用reduce_zero_label = True和ignore_label = 0训练了我的数据集,但结果并没有我想象的那么好。所以我想充分理解这些概念,找出可能出现的错误。

python database configuration semantic-segmentation
1个回答
0
投票

根据官方文档,它基本上忽略了背景类。要记住的一件事是,它在

False
类中设置为
BaseDataset
(许多数据集类都固有的一个,因此您不仅需要在confingfile中相应地修改它。

https://mmsegmentation.readthedocs.io/en/latest/advanced_guides/datasets.html

使用reduce_zero_label输入参数

要忽略标签0(例如ADE20K数据集),我们可以使用 BaseSegDataset 的 reduce_zero_label (默认为 False)参数和 它的子类。当reduce_zero_label为True时,标签0在 分段注释将设置为 255(MMSegmentation 模型 在计算损失时会忽略标签 255)和其他索引 标签将负 1:

gt_semantic_seg[gt_semantic_seg == 0] = 255
gt_semantic_seg = gt_semantic_seg - 1
gt_semantic_seg[gt_semantic_seg == 254] = 255
© www.soinside.com 2019 - 2024. All rights reserved.