Если взять изображение размера 6 x 6 пикселей и провести над ним операцию свертки при помощи фильтра размера 3 x 3, то на выходе получится уменьшенное изображение размера 4 x 4:

Так произойдет потому, что для фильтра размера 3 х 3 есть всего лишь 4 х 4 возможных положений. В общем случае, если есть картинка размера n x n, к которой применяется фильтр размера f x f, то на выходе получится картинка с разрешением:

\[(n-f+1)\times (n-f+1)\]

Основное следствие этого факта — каждое применение свертки уменьшает размер изображения.

Другое следствие — угловые пиксели изображения имеют минимальное влияние на операцию свёртки, потому что они задействуются только единожды, когда фильтр применяется в углу. Пиксели по краю изображения тоже оказывают минимальное информационное влияние на процесс свертки.

Тогда как пиксели в центре попадают под действие фильтра многократно:

Для решения этих двух проблем: проблемы уменьшения исходного изображения и проблемы пикселей в углах и по краям изображения, придумана техника padding — добавление дополнительного пикселя (или нескольких) по краю изображения. То есть, добавив изображению 6 х 6 по краю один пиксель, обычно с нулевым значением, можно добиться того, что после применения фильтра 3 x 3 на выходе получится исходное разрешение 6 х 6:

Для свертки с padding разрешение финального изображения будет считаться по формуле:

\[(n+2p-f+1) \times (n+2p-f+1)\]

где \(p\) — это количество добавленных пикселей.

В существующей терминологии свёртка может быть valid или same.

  • Valid — это свертка без padding, то есть без добавления дополнительных пикселей.

  • Same — это свертка с таким значение padding, что на выходе получается изображение с разрешением исходного изображения.

Для того, чтобы посчитать, каким должен быть padding для случая same, можно воспользоваться формулой:

\[p = \frac{f-1}{2}\]

По причине того, что в знаменателе стоит двойка, фильтр обычно подбирается нечётный. Если фильтр чётный, то нужно идти на дополнительные ухищрения и подбирать ассиметричный padding.