如何为CNN训练准备频道图像?

时间:2020-01-03 21:27:57

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

我正在训练六通道图像以进行细胞分割,该图像是独立的。下方显示的六张图像相同,但是通道不同。

six channels

我应该如何排列阵列以输入到网络?放在一起与numpy.dstack数组吗?还是直接在图层中?我知道我们也应该注意滤镜的数量和大小,它应该像RGB图像一样对待,但是我是深度学习和计算机视觉的新手,所以这个问题困扰着我。

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

每个单元在阵列中裁剪后的图像形状为30x30。

enter image description here

2 个答案:

答案 0 :(得分:2)

我的建议是

像大多数深度学习问题一样,答案是尝试一下。使用np.dstack使输入的形状为(batch_size, 30, 30, 6)并训练模型。我假设您将使用Conv2D,所以频道组合不重要。

但是,如果您打算使用迁移学习(pretrained_models),则可能需要删除频道或将它们sum合并在一起以形成(batch_size, 30, 30, 3)的形状,因为这些模型中的大多数模型都希望有3个频道

答案 1 :(得分:0)

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