大图像的语义分割
semantic segmentation for large images
我正在处理数量有限的大尺寸图像,每个图像可以有 3072*3072
像素。为了使用 FCN 或 U-net 训练语义分割模型,我构造了一个大样本训练集,每个训练图像是 128*128
。
在预测阶段,我做的是把一张大图切成小块,和128*128
的训练集一样,把这些小块输入到训练好的模型中,得到预测mask。之后,我只是将这些小块拼接在一起以获得整个图像的遮罩。这是对大图像执行语义分割的正确机制吗?
输入图像数据:
我不建议将大图像 (3072x3072) 直接输入到咖啡机中。
一批小图像将更适合内存,并行编程也将发挥作用。
数据增强也将是可行的。
大图输出:
至于big Image的输出,你最好在测试阶段将FCN的输入尺寸改写为3072x3072。因为,FCN 的层可以接受任何大小的输入。
然后你将得到 3072x3072 的分割图像作为输出。
您的解决方案经常用于此类问题。但是,我认为它是否真正有意义取决于数据。让我举两个你仍然可以在 kaggle 上找到的例子。
如果您想屏蔽卫星图像的某些部分,您可能会在不降低准确性的情况下使用这种方法。这些图像具有高度重复性,分割区域与原始图像中的提取区域之间可能没有相关性。
如果您想从汽车的背景中分割出汽车,最好不要将其分成小块。在多个层上,网络将学习框架中汽车的全球分布。很可能mask在图片中间是正的,边角是负的。
由于您没有给出您要解决的任何具体问题,我只能给出一般性建议:尽量使输入图像在您的硬件允许的范围内尽可能大。 在很多情况下,我宁愿对原始图像进行缩减采样,也不愿将其分解成补丁。
关于curio1729的推荐,我只能反对小块训练和原图测试。虽然由于完全卷积网络在技术上是可行的,但您正在扩展数据,这很可能会损害性能。 CNN 以提取局部特征而著称,但有大量的全局信息是通过多层抽象来学习的。
我正在处理数量有限的大尺寸图像,每个图像可以有 3072*3072
像素。为了使用 FCN 或 U-net 训练语义分割模型,我构造了一个大样本训练集,每个训练图像是 128*128
。
在预测阶段,我做的是把一张大图切成小块,和128*128
的训练集一样,把这些小块输入到训练好的模型中,得到预测mask。之后,我只是将这些小块拼接在一起以获得整个图像的遮罩。这是对大图像执行语义分割的正确机制吗?
输入图像数据: 我不建议将大图像 (3072x3072) 直接输入到咖啡机中。 一批小图像将更适合内存,并行编程也将发挥作用。 数据增强也将是可行的。
大图输出: 至于big Image的输出,你最好在测试阶段将FCN的输入尺寸改写为3072x3072。因为,FCN 的层可以接受任何大小的输入。 然后你将得到 3072x3072 的分割图像作为输出。
您的解决方案经常用于此类问题。但是,我认为它是否真正有意义取决于数据。让我举两个你仍然可以在 kaggle 上找到的例子。
如果您想屏蔽卫星图像的某些部分,您可能会在不降低准确性的情况下使用这种方法。这些图像具有高度重复性,分割区域与原始图像中的提取区域之间可能没有相关性。
如果您想从汽车的背景中分割出汽车,最好不要将其分成小块。在多个层上,网络将学习框架中汽车的全球分布。很可能mask在图片中间是正的,边角是负的。
由于您没有给出您要解决的任何具体问题,我只能给出一般性建议:尽量使输入图像在您的硬件允许的范围内尽可能大。 在很多情况下,我宁愿对原始图像进行缩减采样,也不愿将其分解成补丁。
关于curio1729的推荐,我只能反对小块训练和原图测试。虽然由于完全卷积网络在技术上是可行的,但您正在扩展数据,这很可能会损害性能。 CNN 以提取局部特征而著称,但有大量的全局信息是通过多层抽象来学习的。