全卷积网络中的移位和拼接如何工作?
How does shift-and-stitch in a fully convolutional network work?
FCN 中的 "shift and stitch" 技巧反复阅读了很多遍后,我仍然在纠结。
谁能给出一些直观的解释?
在 FCN 中,与输入相比,您获得的最终输出(默认情况下不使用任何上采样技巧)的分辨率较低。假设您有一个形状为 100x100 的输入图像,并且您获得了一个形状为 10x10 的输出(来自网络)。将输出直接映射到输入分辨率将看起来不完整(即使使用高阶插值)。
现在,您采用相同的输入并将其移动一点并获得输出并多次重复此过程。您最终得到一组输出图像和对应于每个输出的偏移向量。可以利用(缝合)这些带有移位矢量的输出图像在最终示意图中获得更好的分辨率。
人们可能会认为它是拍摄一个物体的多个(移动的)低分辨率图像并将它们组合(拼接)以获得更高分辨率的图像。
虽然这个问题已经得到解答,但我发现这张图片 here 可以更好地解释移位和拼接。想象一下你的 FCN 是一个 2x2 的最大池化层(顺便说一句,数字代表像素值而不是索引值)。所以这些值在进行移位后被最大拉取,然后我们将结果缝合到原始图像中:
FCN 中的 "shift and stitch" 技巧反复阅读了很多遍后,我仍然在纠结。
谁能给出一些直观的解释?
在 FCN 中,与输入相比,您获得的最终输出(默认情况下不使用任何上采样技巧)的分辨率较低。假设您有一个形状为 100x100 的输入图像,并且您获得了一个形状为 10x10 的输出(来自网络)。将输出直接映射到输入分辨率将看起来不完整(即使使用高阶插值)。
现在,您采用相同的输入并将其移动一点并获得输出并多次重复此过程。您最终得到一组输出图像和对应于每个输出的偏移向量。可以利用(缝合)这些带有移位矢量的输出图像在最终示意图中获得更好的分辨率。
人们可能会认为它是拍摄一个物体的多个(移动的)低分辨率图像并将它们组合(拼接)以获得更高分辨率的图像。
虽然这个问题已经得到解答,但我发现这张图片 here 可以更好地解释移位和拼接。想象一下你的 FCN 是一个 2x2 的最大池化层(顺便说一句,数字代表像素值而不是索引值)。所以这些值在进行移位后被最大拉取,然后我们将结果缝合到原始图像中: