可视化图像语义分割结果

Visualize image semantic segmentation results

我正在尝试了解如何向用户显示图像分割结果。

我的意思是,如果我有这张图片:

我想向用户显示这个结果:

这些图像来自Github。我检查了他们的代码,但我没有找到他们向用户显示结果的位置。

如何向用户显示语义分割?

语义分割网络的输出是什么?

UNet(示例中的那个)和基本上处理 Semantic Segmentation 的所有其他网络都会生成一个图像作为输出,该图像的大小与输入图像成正比,其中 每个像素都是class被指定为可能的 class 之一

对于二进制 classification,通常原始输出是单通道浮点图像,其值在 [0,1] 中,必须在 0.5 处进行阈值处理以获得 "foreground" 二进制掩码。也有可能网络是用两个 classes (foreground/background) 隐式训练的,在这种情况下,请继续阅读如何处理 multi-class classification输出。

对于多重class class化,原始输出图像有 N 个通道,每个 class 一个通道,索引 [x, y, c] 处的值为 score 像素(将其视为像素 x,y 属于 class c 的概率,尽管原则上分数不一定是概率). 对于每个像素,所选 class 是得分最高的通道之一。

然后可以对图像进行后处理(例如,将它们展平并分配给 "winning" class 的每个像素 class 标签),示例似乎就是这种情况你 link(如果你看一下 labelVisualize() 的实现,他们使用字典映射 class 代码到颜色)。