【问题标题】:Visualize image semantic segmentation results可视化图像语义分割结果
【发布时间】:2020-05-12 18:05:04
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 看看labelVisualize() 的实现,这是他们用来可视化结果的函数(不过,您确实需要调整代码)。原则上,通常您对输出掩码执行的第一个操作是阈值 0.5,以对输出图像进行二值化。然后,您可以根据需要打印或后处理它
  • @GPhilo 谢谢。现在,我必须了解它是什么网络输出。它是否像图像的区域和该区域或区域的标签?也许它必须是一些坐标来指示每个类的位置。再次感谢。
  • 好的,那么让我扩展一个正确的答案

标签: python computer-vision conv-neural-network semantic-segmentation


【解决方案1】:

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

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

对于二进制分类,通常原始输出是单通道浮点图像,其值在[0,1] 中,必须在0.5 处进行阈值处理才能获得“前景”二进制掩码。也有可能使用两个类(前景/背景)对网络进行隐式训练,在这种情况下,请继续阅读以了解如何处理多类分类输出。

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

然后可以对图像进行后处理(例如,将它们展平并分配给“获胜”类的每个像素类标签),就像您链接的示例一样(如果您查看labelVisualize(),他们使用 dict 将类代码映射到颜色)。

【讨论】:

猜你喜欢
  • 2017-07-03
  • 2020-10-15
  • 2018-09-08
  • 2021-03-26
  • 2021-08-14
  • 2020-05-25
  • 2017-04-12
  • 2019-08-09
  • 2017-07-24
相关资源
最近更新 更多