用于图像分割的后处理多类预测?

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

我的FCN被训练为检测10个不同的类并产生500x500x10的输出,其中每个最终维度是不同类别的预测概率。

通常,我已经看到使用统一阈值,例如0.5,来对概率矩阵进行二值化。但是,在我的情况下,这并没有完全削减它,因为当阈值为0.3时,某些类的IoU增加,而对于其他类,则为0.8

因此,我不必随意选择每个类的阈值,而是使用更概率的方法来确定阈值。我想过使用CRF,但这也需要进行阈值处理。关于如何进行的任何想法?

示例:考虑具有5种不同鸟类的森林图像。现在我试图输出一个已分割森林和五只鸟的图像,6个类,每个类都有一个单独的标签。网络输出6个混淆矩阵,表示像素落入特定类别的置信度。现在,像素的正确答案并不总是具有最高置信度值的类。因此,一种尺寸适合所有方法或最大值方法将不起作用。

image-processing machine-learning neural-network computer-vision
1个回答
1
投票

CRF后处理方法

您无需设置阈值即可使用CRF。我不熟悉任何用于CRF的python库,但原则上,您需要定义的是:

  1. 每个节点(像素)的10个类的概率分布,它只是网络的输出。
  2. 成对电位:10 * 10矩阵,其中元素Aij表示一个像素属于i类而另一个属于j类的配置的“强度”。如果将势能设置为在对角线上具有值α(al​​pha >> 1),在其他地方设置为1,则alpha是正则化力,它为您提供预测的一致性(如果像素X是Y类,则相邻像素为X更可能属于同一类)。

这只是您如何定义CRF的一个示例。

端到端NN方法

为您的网络添加一个损失,这会损害具有不同类别邻居的像素。请注意,对于新正则化损失的权重,您仍然会得到一个可调参数。

© www.soinside.com 2019 - 2024. All rights reserved.