什么是图像分割的不平衡?

spi*_*der 9 machine-learning image-processing image-segmentation caffe keras

我知道图像分类问题的不平衡,例如猫与狗的分类,如果猫图像太多而狗图像太少.但我不知道如何解决分割问题的不平衡.

例如,我的任务是从卫星图像中掩盖云层,因此我将问题转换为两类分割,一类是云,另一类是背景.该数据集具有5800个4波段16位图像,大小为256*256.该体系结构是Segnet,损失函数是二进制交叉熵.

假设有两种情况:

  1. 所有样本中有一半完全被云覆盖,一半没有任何云.
  2. 在每张图像中,一半被云覆盖,一半不被云覆盖.

所以,案例2是平衡的我猜,但案例1如何?

在现实和我的任务中,这两种情况在源卫星图像中是不可能的,因为云层总是相对较小的背景,但如果图像样本由于它们的大尺寸而从源图像中裁剪,则会出现一些新的情况.

因此,样本总是包含三种类型的图像:

  1. 完全被云层覆盖(5800个样本中有254个).
  2. 没有任何云(5800个样本中有1241个).
  3. 云覆盖的一些区域,有些区域没有.(5800中的4305,但我不知道云的百分比,某些样本可能非常高,其他样本可能很少)

我的问题:

样品是否不平衡,我该怎么办?

提前致谢.

Sha*_*hai 6

通常,在分割任务中,如果对于每个图像,属于每个类/片段的像素数大致相同(问题中的情况2),则认为他/她的样本"平衡".
在大多数情况下,样本永远不会平衡,就像在您的示例中一样.

什么可能出错?当有一个段/类支配样本时,模型可能会发现更容易将所有像素输出为属于主导类/段.这种不断预测虽然没有提供信息,但仍然可以产生高精度和小损失.

如何检测出这种错误结果?您可以使"Accuracy"图层输出不仅具有整体精度,还可以提高每级精度.如果您的模型在单个类上"锁定",则所有其他类的每类精度将非常低.

我能做什么?您可以使用"InfogainLoss"图层为其他类的错误赋予更多权重,以抵消显性类的影响.