Why can a fully convolutional network accept images of any size?

The UNET was developed by Olaf Ronneberger et al. for Bio Medical Image Segmentation. The architecture contains two paths. First path is the contraction path (also called as the encoder) which is used to capture the context in the image. The encoder is just a traditional stack of convolutional and max pooling layers. The second path is the symmetric expanding path (also called as the decoder) which is used to enable precise localization using transposed convolutions. Thus it is an end-to-end fully convolutional network (FCN), i.e. it only contains Convolutional layers and does not contain any Dense layer because of which it can accept image of any size.

So what I don't understand is how an FCN can accept images of any size, while an ordinary object detector such as YOLO with a dense layer at the very end cannot accept images of any size. Can someone please explain as to why this is.

• Because it don't have dense layers obviously. Convolutional layer work for any input size (more then kernel size) – mirror2image Jun 27 '19 at 9:30