Свёртка — это математический оператор, обозначаемый символом "*". Графически он представляет собой изменение формы одной функции под воздействием другой. Свёртка применима только к линейным инвариантным во времени системам, то есть таким системам, у которых выходной сигнал сдвигается идентично сдвигу входного сигнала и существует линейная зависимость между выходным и входным сигналами. Для дискретных систем можно использовать формулу свёртки. Аналогия для понимания свёртки: количество дыма, образующегося при сгорании спичек. Функция дыма описывает количество дыма от одной спички, а функция фейерверка — количество зажигаемых спичек в минуту. Свёртка этих двух функций вычисляется путём скользящего окна по функции фейерверка с перемножением соответствующих значений. Эту концепцию можно визуализировать как двумерное скользящее окно, где первая функция значительно больше второй. В обработке изображений двумерная функция называется ядром — это 3x3 матрица, которая скользит по изображению, выполняя свёртку. Ядро переворачивается и перемножается с соответствующими значениями изображения для получения результата. Сумма всех элементов ядра должна равняться 1 для достижения желаемого эффекта, например, размытия изображения.
dev.to
Convolution
