首页 > 解决方案 > Pascal VOC 类分割:用于训练的真实像素标记

问题描述

我刚开始研究 Pascal VOC 分割数据集。但是我很难理解他们在地面标签中使用的颜色编码。我假设每个类的像素将被注释为 1 到 20,但我得到的是具有像素值 (0-255) 的 8 位深 png 图像。

对于属于aeroplanein 类的某个像素2007_000033.png,我得到以下值: (128, 0, 0); 而另一个属于trainin 类的像素2007_000123.png给出值:(128, 0, 192) 等等。

如何将它们区分为不同的类并进行一次性编码?我是否需要为每个类指定像素值(例如使用 (128, 0, 0) 搜索像素并将它们编码为 1 的类aeroplane)?

抱歉,我在 SO 上看到了一些类似的问题,但没有任何帮助。谢谢。

标签: pythonimage-segmentationconvolutional-neural-networklabelingsemantic-segmentation

解决方案


我向自己提出了一个类似的问题,这让我困惑了很长时间。我想我找到了一个可能的解释:

如果您查看 file_download_and_convert_voc2012.sh,有几行标有“ # Remove the colormap in ground truth annotations ”。这部分处理原始 SegmentationClass 文件并生成原始分割图像文件,每个像素值在 0 : 20 之间。(如果您可能会问为什么,请查看这篇文章:Python:使用 PIL 加载 png 文件给出了奇怪的结果


推荐阅读