首页 > 解决方案 > 如何为简单的 Unet 标准化图像数据

问题描述

我希望训练一个 Unet 来分割非常简单的图像数据(下面的输入示例、预期预测和最终阈值预测)。

Unet 似乎也在学习像素大小。例如,如果我将来自不同来源的图像提供给它,该图像使用了更高的曝光时间(因此对象看起来相同,但像素强度的大小可能有很大差异),那么该算法将惨遭失败。

我已经尝试了不同的预处理方法来解决这种过度拟合。我在训练之前尝试对图像进行 z 评分,即:

img = (img - np.mean(img)) / np.std(img)

我也尝试过使用 keras ImageDataGenerator 来增加我的数据。我对这些计算背后发生的事情(尤其是它们如何相互交互)并没有牢牢把握。我还发现,当我进行上述标准化时,它会扭曲输入图像,我不再确定如何解释输出。如何恢复我感兴趣的原始结构?

我非常感谢有关解决此问题的基本方法的任何指示。我的最终目标是能够输入如下所示的输入图像,具有不同的像素分布但非常一致的对象形态,并训练一个 Unet 来预测如下所示的 2 个类别(基本上只是前景和背景)。

注意:我正在调整 Unet 的这个 Kaggle 实现:https ://www.kaggle.com/keegil/keras-u-net-starter-lb-0-277

图片

标签: image-processingkerasconv-neural-networknormalization

解决方案


推荐阅读