image-processing - 如何为简单的 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
解决方案
推荐阅读
- javascript - 代码游戏:儿童游戏
- firebase - 从 Firestore 获取数据时调用 get() 函数需要多少“读取”
- swift - Swift for Windows 10 print() 命令不打印
- python - Unable to run python Flask decorator in blueprints
- c# - Unable to export RSA private parameters when running as administrator
- apache-spark - Spark 未使用所有可用的 CPU
- unity3d - HoloLens/Unity shared experience: How to track a user's "world" position instead of Unity's position?
- java - Regex split paragraph by period followed by newline (Arabic Text)
- python - Speeding up small minibatches on a GPU
- prolog - Prolog 中真正的尾递归 modInverse()