在训练用于语义分割的深度学习模型时,处理背景像素类(ignore_label)的最佳方法是什么?

我正在尝试在cityscapes数据集上训练一个 UNET 模型,该模型具有20个“有用”的语义类和一堆可以忽略的背景类(例如,天空,自我车辆,山脉,路灯)。为了训练模型以忽略这些背景像素,我在互联网上使用以下流行的解决方案:

  1. 我为所有对象分配了一个公用ignore_label(例如:ignore_label=255) 属于忽略类的像素
  2. 针对每个像素预测使用cross_entropy损失训练模型
  3. ignore_label损失中提供cross_entropy参数,因此 计算得出的损耗会忽略具有不必要类的像素。

但是这种方法有问题。经过训练后,该模型最终将这些背景像素归为20类之一。这是可以预期的,因为在损耗方面,我们不会为模型对背景像素进行任何分类而对模型进行惩罚。

因此,第二种明显的解决方案是对所有背景像素使用额外的类。因此,它是城市景观中的21类。但是,在这里,我担心通过教它对这个额外的不必要的类进行分类,我将“浪费”我的模型的能力。

处理背景像素类的最准确方法是什么?

ergasfgsafg 回答:在训练用于语义分割的深度学习模型时,处理背景像素类(ignore_label)的最佳方法是什么?

也许您可以尝试使用“Dice loss + Inverted Dice loss”,它同时考虑了前景和背景像素

,

当然第二种解决方案更好。这是最好的解决方案,背景类绝对是额外的类,但不是不必要的,因为这样可以明确区分要检测的类和背景。

事实上,这是分割中推荐的标准程序,将类分配给背景,其中背景当然代表除特定类之外的所有其他内容。

本文链接:https://www.f2er.com/3016491.html

大家都在问