【问题标题】:How to prepare channel images for CNN training?如何为 CNN 训练准备通道图像?
【发布时间】:2020-04-22 10:19:24
【问题描述】:

我正在训练一个用于细胞分割的六通道图像,该图像是独立的。下面描绘的六幅图像相同,但通道不同。

我应该如何安排阵列以输入到我的网络?用 numpy.dstack 将它们全部放在数组中?还是直接在图层中?我知道我们也应该注意过滤器的数量和大小,它会被视为 RGB 图像,但我是深度学习和计算机视觉的新手,这个问题困扰着我。

我使用 Python 进行图像编辑(PIL 和 OpenCV),使用 TensorFlow 和 Keras 进行图像处理。

在单元格周围裁剪后的图像形状为每个通道的数组中的每个 30x30。

【问题讨论】:

  • 对于使用 keras 进行训练,您不能拥有超过 4 个通道 (rgba) 的图像,因此您需要正确自定义数据生成器并使用数组数组而不是图像。搜索自定义数据生成器,您会找到方法。

标签: python opencv deep-learning computer-vision conv-neural-network


【解决方案1】:

我的建议是

与大多数深度学习问题一样,答案是尝试一下。使用 np.dstack 使输入的形状为 (batch_size, 30, 30, 6) 并训练模型。我假设您将使用Conv2D,因此频道组合应该无关紧要。

但是,如果您打算使用迁移学习 (pretrained_models),您可能需要放弃通道或 sum 将它们组合在一起以形成 (batch_size, 30, 30, 3),因为大多数模型都需要 3 个通道

【讨论】:

  • ksooklall - 我没有得到你的解释的第二部分,我也会尝试迁移学习,但我不明白为什么我需要删除一个频道或 sum '嗯。对通道求和是什么意思?
  • 哦,我的意思是没有很多预训练模型使用 3 个通道,比如 Resnet、VGG 等等
【解决方案2】:

如果您计划使用迁移学习,则默认图像大小应为 (224, 224),如 Keras 文档 here 中所述。可以使用“channels_first”数据格式(通道、高度、宽度)或“channels_last”数据格式(高度、宽度、通道)来构建模型的输入。

【讨论】:

    猜你喜欢
    • 2020-04-05
    • 2020-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    • 1970-01-01
    • 2016-08-23
    相关资源
    最近更新 更多