使用 u-net 架构进行图像分割的数据输入

问题描述 投票:0回答:1

我正在尝试为分割任务实现 U-net 模型。任务是传递映射在冰川区域上的 5 个不同冰川的物理变量(如表面速度、厚度...),然后预测冰川形状。

因此,我的数据集由不同冰川的二维地图上的不同物理变量组成,存储在 numpy 数组中。我有 128 个冰川、12 年时间序列和 5 个变量,外加一个包含正确冰川蒙版的蒙版。因此,就像有 128125 张不同尺寸的图片(因为每个冰川的大小不同),涉及不同冰川上的不同变量。

第一个问题涉及图像的大小:根据我的理解,u-net 模型希望具有相同大小的图像。我认为一个可能的解决方案是调整所有地图的大小以具有标准(比方说 256x256),尽管这会修改问题的物理性质(小冰川重新缩放,反之亦然)。另一种可能性是将图像切成小块,但我想避免这种情况,因为我知道某些区域的物理现象会影响其他部分冰川的行为,并且这些信息将会丢失。

第二个问题是如何将数据传递给模型。假设每个图像的大小调整为 256x256(尽管正如我所说,我不确定这是最好的方法),则数据集的大小应为 (12812,256,256,5) 的特征和 (12812,256,256,1) 的大小目标?我应该如何将其转换为张量流?

非常感谢您的帮助,我对ccn的主题很陌生

machine-learning image-segmentation unet-neural-network
1个回答
0
投票

对于大小问题,您可以将图像转换为补丁,这意味着从输入和输出中提取更小的补丁,例如 64x64。最后,您可以将补丁与整个分割图像进行协调。

使用您的原始数据集(不提取补丁),您的输入将是

(128x12x256x256x5)
,您的输出将是
(128x12x256x256x1)
。 但是,当将 input_shape 输入到输入层时,input_shape 应该为
(12, 256, 256, 5)

要处理此张量,您需要一个 3D ConvLSTM 层,如果数据格式为

(timesteps, height, width, channels)
,则该层接受
channels_last
输入。 如果提取补丁,数据总数及其高度和宽度将会改变。

© www.soinside.com 2019 - 2024. All rights reserved.