4
$\begingroup$

When I was reading this this paper, Fully Convolutional Networks for Semantic Segmentation, I found that they use an up-sampling layer to classify each pixel in to a class. I have two questions:

  1. How do you understand the mathematics behind the de-convolution operation?

  2. Why do we use an upsampling layer? Is it for extract more global context?

$\endgroup$
8
$\begingroup$

Upsampling layer is used to increase the resolution of the image. In segmentation, we first downsample the image to get the features and then upsample the image to generate the segments.

For deconvolution operation we pad the image with zeroes and then do a convolution operation on that, hence it is upsampled.

For eg: - If after downsampling the images becomes:

[[1, 1]
[1, 1]]

Then if we pad it with zeroes,

[[0, 0, 0, 0, 0, 0]
 [0, 0, 0, 0, 0, 0]
 [0, 0, 1, 1, 0, 0]
 [0, 0, 1, 1, 0, 0]
 [0, 0, 0, 0, 0, 0]
 [0, 0, 0, 0, 0, 0]]

Now, if we do convolution on the above image with a 3 x 3 filter, we will get an image of shape (4, 4). Thus we upsampled an image of shape (2, 2) to (4, 4).

$\endgroup$
  • $\begingroup$ Should the weights be learned? If so, is there any other way, like using forward-path information to upsample? $\endgroup$ – Media Dec 23 '17 at 12:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.