我正在处理数量有限的大尺寸图像,每个图像都可以有3072*3072
像素。为了使用FCN或model训练语义分割模型,构造了一个大样本的训练集,每个训练图像都是128*128
。
在预测阶段,我所做的就是把一幅大的图像切成小块,就像128*128
的训练集一样,把这些小块输入到训练过的模型中,得到预测的掩码。之后,我只是把这些小补丁缝在一起,得到了整个图像的面具。这是对大型图像进行语义分割的正确机制吗?
发布于 2017-02-15 05:59:19
输入图像数据:我不会建议将大图像(3072x3072)直接输入caffe。批量的小图像将更好地适应内存和并行编程也将发挥作用。数据增强也是可行的。
大图像输出:对于大图像的输出,您最好在测试阶段将FCN的输入大小重铸到3072x3072。因为,FCN层可以接受任意大小的输入。然后,您将得到3072x3072分割图像作为输出。
发布于 2017-12-12 11:53:46
您的解决方案经常用于解决这类问题。然而,我认为,这取决于数据,如果它真的有意义。让我给你两个例子,你仍然可以找到卡格尔。
如果你想掩盖卫星图像中的某些部分,你很可能在不降低精度的情况下通过这种方法逃脱。这些图像是高度重复的,很可能在分割区域和原始图像的位置之间没有相关性。
如果你想把一辆车从它的背景中分割开来,那么把它分解成补丁是不可取的。在几个层次上,网络将了解车在框架内的全球分布情况。很可能面具在中间是正的,在图像的角是负的。
由于您没有给出任何要解决的细节,所以我只能给出一个一般性建议:尽量将输入图像保持在硬件允许的范围内。在许多情况下,我宁愿对原始图像进行降采样,也不愿将其分解为补丁。
关于curio1729的建议,我只能建议不要对小补丁进行培训,也不能对原始图像进行测试。尽管完全卷积网络在技术上是可能的,但是你在一定程度上改变了数据,这很可能会影响性能。CNN以提取本地特性而闻名,但是有大量的全局信息是通过对多个层的抽象来学习的。
https://stackoverflow.com/questions/42231162
复制相似问题