我正在处理有限数量的大尺寸图像,每个图像都可以有3072*3072
像素。为了使用FCN或U-net训练语义分割模型,我构建了大量的训练集样本,每个训练图像都是128*128
。
在预测阶段,我所做的是将大图像切割成小块,与128*128
的训练集相同,并将这些小块输入训练模型,得到预测的掩模。之后,我将这些小块拼接在一起,以获得整个图像的蒙版。这是对大图像执行语义分割的正确机制吗?
答案 0 :(得分:1)
输入图像数据: 我不建议将大图像(3072x3072)直接送入咖啡馆。 一批小图像将更好地适应内存,并行编程也将发挥作用。 数据扩充也是可行的。
大图片的输出: 对于大图像的输出,您最好在测试阶段将FCN的输入大小重新设置为3072x3072。因为,FCN层可以接受任何大小的输入。 然后,您将获得3072x3072分段图像作为输出。
答案 1 :(得分:1)
您的解决方案通常用于此类问题。但是,我认为这取决于数据是否真的有意义。让我举两个你可以在kaggle上找到的例子。
如果你想掩盖卫星图像的某些部分,你可能会在不降低精度的情况下使用这种方法。这些图像具有高度重复性,分割区域与原始图像中的位置之间可能没有相关性。
如果您想要从背景中分割汽车,则不希望将其分解为补丁。通过多个层次,网络将了解车辆在车架中的全球分布情况。掩模很可能在中间是正的而在图像的角落是负的。
由于您没有详细说明您要解决的问题,我只能给出一般性建议:尽量保持输入图像与硬件允许的一样大。在许多情况下我宁愿对原始图像进行缩减采样,也不要将其分解为补丁。
关于curio1729的推荐,我只能建议不要对小补丁进行培训并对原始图像进行测试。虽然完全卷积网络在技术上是可行的,但您将数据更改为一个延伸,这很可能会损害性能。 CNN以提取局部特征而闻名,但是通过多层抽象学习了大量的全局信息。