# Tag Info

11

There are 2 problems you might face. Your neural net (in this case convolutional neural net) cannot physically accept images of different resolutions. This is usually the case if one has fully-connected layers, however, if the network is fully-convolutional, then it should be able to accept images of any dimension. Fully-convolutional implies that it doesn'...

9

I think the squared image is more a choice for simplicity. There are two types of convolutional neural networks Traditional CNNs: CNNs that have fully connected layers at the end, and fully convolutional networks (FCNs): they are only made of convolutional layers (and subsampling and upsampling layers), so they do not contain fully connected layers With ...

8

Fully convolution networks A fully convolution network (FCN) is a neural network that only performs convolution (and subsampling or upsampling) operations. Equivalently, an FCN is a CNN without fully connected layers. Convolution neural networks The typical convolution neural network (CNN) is not fully convolutional because it often contains fully connected ...

6

tl;dr What does that mean in the context of this paper? With "coarse segmentation" the author means a segmentation that doesn't have much detail. "Fine segmentation", on the other hand, refers to a segmentation with a high level of detail. But also more importantly [what does that mean in the context of] general computer vision? The most common use ...

6

The reason is that when using a convolutional layer, you select the size of the filter kernels, which are independent of the image/layer input size (provided that images smaller than the kernels are padded appropriately). When using a dense layer, you specify the size of the layer itself and the resulting weight matrix is a function of both the size of the ...

2

You could also have a look at the paper Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition (2015), where the SPP-net is proposed. SSP-net is based on the use of a "spatial pyramid pooling", which eliminates the requirement of having fixed-size inputs. In the abstract, the authors write Existing deep convolutional neural ...

2

Padding is indeed the easiest solution. And if no bias is used then masking the extra values during the loss computation is also not necessary, since it's enough to use zero as padding value. You might be interested though in checking Spatial Pyramid Pooling. This pooling method allows to combine fully convolutional modules and dense layers, i.e, it can be ...

2

Neural networks are not invariant to translations, but equivariant, Invariance vs Equivariance Suppose we have input $x$ and the output $y=f(x)$ of some map between spaces $X$ and $Y$. We apply transformation $T$ in the input domain. For general map,output will change in some complicated and unpredictable way. However, for certain class of maps, change of ...

1

Traditional CNNs used for image classification (and related tasks) are composed of 1 or more fully connected layers (FCs), after the convolutional and pooling layers, which take as input the features extracted from the convolutional and pooling layers, in order to perform classification or regression. One problem with FCs in CNNs is that the number of ...

1

I ended up using a work around. I set up the network so that an C x C (i.e. 320 x 320) input would output a C x C mask for some constant C (in my case it was 320). I then resized the image I wanted to pass in to C x C, and then resized the output back to the original size of the Image.

1

If you have a rectangular image and you are using existing models (or existing code), then you have to add an input pre-processing pipeline which transforms the image to standard dimensions. This is very common in computer vision and both PyTorch and Tensorflow have support for easily adding input pre-processing input pipeline for such a transformation. ...

1

Try resizing the image to the input dimensions of your neural network architecture(keeping it fixed to something like 128*128 in a standard 2D U-net architecture) using nearest neighbor interpolation technique. This is because if you resize your image using any other interpolation, it may result in tampering with the ground truth labels. This is particularly ...

1

As you want to perform image segmentation, you can use U-Net, which does not have fully connected layers, but it is a fully convolutional network, which makes it able to handle inputs of any dimension. You should read the linked papers for more info.

1

Assuming you have a large dataset, and it's labeled pixel-wise, one hacky way to solve the issue is to preprocess the images to have same dimensions by inserting horizontal and vertical margins according to your desired dimensions, as for labels you add dummy extra output for the margin pixels so when calculating the loss you could mask the margins.

1

All-convolutional neural network is a more general concept which can be (and is often) used without deconvolutional and unpolling layers, e.g. for an ordinary classification task. The idea is to replace the pooling and fully-connected layer with particular convolutional layers that do the same. Note that activation functions and dropout are not affected by ...

Only top voted, non community-wiki answers of a minimum length are eligible