3x3 convolution filters — A popular choice
In image processing, a kernel, convolution matrix, or mask is a small matrix. It is used for blurring, sharpening, embossing, edge detection, and more. This is accomplished by doing a convolution between a kernel and an image.
In this article, here are some conventions that we are following —
- We are specifically referring to 2D convolutions that are usually applied on 2 matrix objects such as images. These concepts also apply for 1D and 3D convolutions, but may not correlate directly.
- While applying 2D convolutions like 3X3 convolutions on images, a 3X3 convolution filter, in general will always have a third dimension in size. This filter depends on (and is equal to) the number of channels of the input image. So, we apply a 3X3X1 convolution filter on gray-scale images (the number of channels = 1) whereas, we apply a 3X3X3 convolution filter on a colored image (the number of channels = 3).
- We will refer to all the convolutions by their first two dimensions, irrespective of the channels. (We are observing the assumption of zero padding).
A convolution filter passes over all the pixels of the image in such a manner that, at a given time, we take ‘dot product’ of the convolution filter and the image pixels to get one final value output. We do this hoping that the weights (or values) in the convolution filter, when multiplied with corresponding image pixels, gives us a value that best represents those image pixels. We can think of each convolution filter as extracting some kind of feature from the image.
Therefore, convolutions are done usually keeping these two things in mind -
- Most of the features in an image are usually local. Therefore, it makes sense to take few local pixels at once and apply convolutions.
- Most of the features may be found in more than one place in an image. This means that it makes sense to use a single kernel all over the image, hoping to extract that feature in different parts of the image.
Now that we have convolution filter sizes as one of the hyper-parameters to choose from. The choice is can be made between smaller or larger filter size.
Here are certain things to consider while choosing the convolution filter sizes — http://bit.ly/2w2Mcf2