- Em matemática, convolução é uma operação realizada em duas funções (f e g) para produzir uma terceira função. A convolução é uma das operações mais importantes no processamento de sinais e imagens. Ela poderia operar em 1D (por exemplo, processamento de voz), 2D (por exemplo, processamento de imagem) ou 3D (processamento de vídeo).
- No processamento de imagem, convolução é o processo de transformar uma imagem aplicando um kernel sobre cada pixel e seus vizinhos locais em toda a imagem. O kernel é uma matriz de valores cujo tamanho e valores determinam o efeito de transformação do processo de convolução.
- O processo de convolução envolve estes passos. (1)Ele coloca a Matriz do Kernel sobre cada pixel da imagem (assegurando que o Kernel completo está dentro da imagem), multiplica cada valor do Kernel com o pixel correspondente que está sobre ele. (2)Então, soma os valores multiplicados resultantes e retorna o valor resultante como o novo valor do píxel central. (3) Este processo é repetido em toda a imagem.
- Como vemos na imagem, um kernel 3×3 é convoluto sobre uma imagem fonte 7×7. O elemento central do kernel é colocado sobre o pixel de origem. O pixel de origem é então substituído por uma soma ponderada de si mesmo e dos pixels circundantes. A saída é colocada no valor do píxel de destino. Neste exemplo, na primeira posição, temos 0 no píxel de origem e 4 no kernel. 4×0 é 0, depois movendo para o próximo pixel temos 0 e 0 em ambos os lugares. 0x0 é 0. Depois novamente 0x0 é 0. A seguir, no centro, temos 1 na imagem de origem e 0 na posição correspondente do kernel. 0x1 é 0. Depois novamente 0x1 é 0. Depois 0x0 é 0 e 0x1 é 0 e na última posição é -4×2 que é -8. Agora somando todos estes resultados obtemos -8 como resposta para que o output desta operação de convolução seja -8. Este resultado é actualizado na imagem de destino.
- O output do processo de convolução muda com a alteração dos valores do kernel. Por exemplo, um Kernel de Identidade mostrado abaixo, quando aplicado a uma imagem através da convolução, não terá efeito sobre a imagem resultante. Cada pixel manterá seu valor original como mostrado na figura a seguir.
The Gaussian Blur Kernel like this when applied to an image through convolution, irá aplicar um efeito de desfocagem gaussiana à imagem resultante.
Just as how the values of the Kernel can be varied for different levels of effects, o tamanho do Kernel também pode ser alterado para moldar o efeito da convolução.Ao aumentar o tamanho da Matriz do Kernel, a localidade espacial que influencia o valor resultante de cada pixel é aumentada à medida que os pixels de mais longe estão sendo puxados para dentro da equação. Há muito mais Kernels que são usados no processamento de imagens como detecção de bordas, gravação em relevo, rotação, etc.
6. Convolução é o conceito chave em Redes Neurais Convolucionais. Redes Neuronais Convolucionais (CNN) são um tipo de Rede Neural Profunda. Uma CNN é composta de Camada Convolutiva, Camada de Pooling e Camada Totalmente Conectada. Na camada de Convolução, uma CNN aplica a convolução em suas entradas usando uma Matriz de Kernel que calibra através de treinamento. Por esta razão, as CNNs são muito boas na correspondência de características em imagens e classificação de objetos. Os parâmetros da camada de convolução consistem em um conjunto de kernels aprendíveis. Cada kernel é uma pequena matriz que se estende através da profundidade total do volume de entrada. Durante a passagem para frente, nós convolvemos cada kernel através da largura e altura da imagem de entrada e calculamos produtos de pontos entre os valores de pixel da fonte e do kernel nas posições correspondentes.