【问题标题】:Data augmentation after image segmentation图像分割后的数据增强
【发布时间】:2021-02-15 09:06:18
【问题描述】:

假设我有一个小数据集。我想实现数据增强。首先我实现图像分割(在此之后,图像将是二值图像),然后实现数据增强。这是个好方法吗?

【问题讨论】:

    标签: python keras image-segmentation data-augmentation


    【解决方案1】:

    对于分割和实例分割中的图像增强,您必须要么不通过操纵颜色来改变图像中包含的对象的位置,要么通过应用平移和旋转来修改这些位置。

    所以,是的,这种方式可行,但您必须考虑您拥有的数据类型以及您想要实现的目标。数据增强并不是一个随时可用的过程,并且在任何地方都取得了良好的效果。

    如果您有:

    • 语义分割:图像的每个像素都有一行i 和一列j,它们被标记为其封闭对象。这意味着您的主图像I 和标签图像L 具有相同的大小,将每个像素链接到其对象标签。在这种情况下,您的数据增强会同时应用于 IL,从而提供两个转换后的图像的组合。
    • 实例分割:在这里,我们为原始图像的每个实例生成一个掩码,并将增强应用于包括原始图像在内的所有实例,然后从这些转换后的掩码中获得我们的新实例。

    编辑: 看看CLoDSA (Classification, Localization, Detection and Segmentation Augmentor),它可以帮助你实现你的想法。

    【讨论】:

    • 我有一个生物医学图像数据集。我实现了用于图像分割的 U-Net 架构。在这个分割之后,我有二进制图像。 (肿瘤像素为白色(1)非肿瘤像素为黑色(0))。然后我在这个分段的二进制图像上实现数据增强的翻译。对于分类,我使用了 vgg-16。验证数据集中的模型准确性对我有好处。我确信这是一个好主意。
    • 是的,我想它适用于您的情况,知道您的图像样本您甚至可能会考虑缩放以防图像未标准化(也来自同一来源)或水平翻转如果人类无线电图像上的器官允许您这样做。也许也可以让您的模型在测试时进行一些增强,看看它的表现如何。
    • 在我的问题中,肿瘤区域可以在图像中的任何位置。所以翻译适合这个问题。首先,我随机拆分为训练和验证。在此之后,我实现了相同的数据增强来训练和验证。我们可以将此操作称为测试时数据增强吗?
    • 不,它完全不同,因为我们指的是测试数据集而不是验证数据集(这意味着模型保持不变)。这个想法很简单,为了测试给定的模型,我们增加了测试数据集并对每个图像进行预测,每个预测包含图像属于每个类别的概率,我们应用平均加权集成方法来获得预测.在 Keras 中很容易实现,希望对您有所帮助:TTA Guide
    • 我明白了。感谢您的反馈。我可以问最后一件事吗?拆分后可以在训练和验证中实现相同的数据增强吗?因为所有指标验证分数都非常接近训练分数。我们可以称之为好模特吗?
    【解决方案2】:

    如果您的数据集很小,您应该在训练期间添加数据增强。以相同的方式更改原始图像和目标(蒙版)很重要!

    例如,如果图像旋转 90 度,则其遮罩也应旋转 90 度。由于您使用的是 Keras 库,因此您应该检查 ImageDataGenerator 是否也更改了目标图像(掩码)以及输入。如果没有,您可以自己实现增强。这个存储库在这里展示了它是如何在 OpenCV 中完成的: https://github.com/kochlisGit/random-data-augmentations

    【讨论】:

      猜你喜欢
      • 2016-11-04
      • 1970-01-01
      • 2019-11-29
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2018-10-17
      • 2022-08-04
      • 2022-12-11
      相关资源
      最近更新 更多