【问题标题】:How to fix 'Deeplab tensorflow model training own dataset ' ouputs blank image如何修复“Deeplab tensorflow 模型训练自己的数据集”输出空白图像
【发布时间】:2019-07-02 18:06:08
【问题描述】:

我正在尝试像您的实验一样训练我自己的数据集(2 类包括背景),但我得到空白输出标签图像是具有 2 种颜色的 PNG 格式图像(0 用于背景,1 用于前景)

SEG_INFORMATION = DatasetDescriptor(
splits_to_sizes={
    'train': 250, # number of file in the train folder
     'trainval': 255,
     'val': 5,
},
     num_classes=2, # number of classes in your dataset

ignore_label=255, # white edges that will be ignored to be class

not_ignore_mask = tf.to_float(tf.equal(scaled_labels, 0)) * 1 + tf.to_float(tf. equal(scaled_labels, 1)) * 500 + tf.to_float(tf.equal(scaled_labels, ignore_label)) * 0

!https://user-images.githubusercontent.com/23016323/52344967-fb472600-2a13-11e9-8841-0d0c5c7dde72.png

这些是我尝试过的配置和我使用的示例标签图像

我希望输出是分段的,但得到的是空白图像

【问题讨论】:

    标签: tensorflow image-segmentation deeplab


    【解决方案1】:

    所以你的数据集的一般定义对我来说看起来不错。不过,250 张训练图像并不多。我从来没有使用过这种大小的数据集,所以我不能保证以下内容对你有帮助......

    我有一些建议/问题,可能会有所帮助:

    1)您的网络预测哪个标签(==“空白”图像是什么意思)?。您是指原始预测标签(在两种情况下都应该是“黑色”,因为 0 和 1 都是相当黑色的灰度值)还是彩色图像,那么有趣的是您使用的是哪个颜色图(Pascal?)以及两者中的哪一个标签用黑色表示。

    2) 如果您的网络总是预测“前景”,那么您的权重因子 500 可能太高了。您的网络可能会不惜一切代价避免对前景进行 FN 预测,从而生成全前景图像。

    3) 出于调试目的:尝试您的网络是否能够熟记一些训练图像(使用相同的图像进行测试和训练)。如果您的标签和训练设置正确,您的网络可能会过度拟合某些训练示例。

    4) 确保您提供给网络的 groundtruth 确实具有两个有效标签,0 和 1。如果您将附加的图像作为 groundtruth 输入网络,标签 0 将被学习,而“白色”对象将被忽略,因为 255 是被忽略的标签

    5) 在 deeplab 的情况下,请确保您对主干使用预训练的初始化!此外,您正在使用哪个骨干网络会很有趣?我希望使用小型/紧凑型网络(deeplab 与 mobilenet、inception 等)将有利于基于 250 张图像的训练。

    我希望其中一个建议对您有所帮助。干杯;)

    【讨论】:

      猜你喜欢
      • 2020-06-07
      • 2017-12-11
      • 1970-01-01
      • 1970-01-01
      • 2020-08-30
      • 1970-01-01
      • 1970-01-01
      • 2021-05-13
      • 2017-04-06
      相关资源
      最近更新 更多