logo

Begreppet konvolution

Konvolution används för många saker som att beräkna derivator, upptäcka kanter, applicera oskärpa etc. och allt detta görs med hjälp av en 'faltningskärna'. En faltningskärna är en mycket liten matris och i denna matris har varje cell ett nummer och även en ankarpunkt.

Ankarpunkten används för att känna till kärnans position i förhållande till bilden. Den börjar i det övre vänstra hörnet av bilden och flyttas på varje pixel sekventiellt. Kärnan överlappar några pixlar vid varje position på bilden. Varje pixel som överlappas multipliceras och läggs sedan till. Och summan sätts som värdet av den aktuella positionen.

Begreppet konvolution

Konvolution är den process där varje element i bilden läggs till sina lokala grannar och sedan viktas av kärnan. Det är relaterat till en form av matematisk faltning.

I faltning utför matrisen inte traditionell matrismultiplikation utan den betecknas med *.

Anta att det finns två 3x3-matriser, en är kärna och en annan är en bildbit. I faltning vänds rader och kolumner i kärnan och sedan multipliceras de och sedan summeras. Element som finns i mitten av matrisen, dvs i [2,2] av bilden, kommer att viktas kombinationen av bildmatrisen och vikterna kommer att ges av kärnan. På liknande sätt kommer alla andra element i matrisen att viktas och sedan kommer vikter att beräknas.

Följande är pseudokod för att beskriva faltningsprocessen:

en miljon i siffror
 For each image row in input image: For each pixel in image row: Set accumulator to zero For each kernel row in kernel: For each element in kernel row: If element position corresponding* to pixel position then Multiply element value corresponding*to pixelvalue Add result to accumulator Endif Set output image pixel to accumulator 

Konvolution kan beräknas med hjälp av multipla för loopar. Men att använda for loops orsakar många upprepade beräkningar och även storleken på bilden och kärnan ökar. Genom att använda diskret Fourier Transform-teknik kan faltning beräknas snabbt. I denna teknik omvandlas hela faltningsoperationen till en enkel multiplikation.

I faltning uppstår problemet när kärnan är nära kanten eller hörnen eftersom kärnan är tvådimensionell.

För att övervinna dessa problem kan följande saker göras:

  1. Sådana kan ignoreras
  2. Extra pixlar kan skapas nära kanterna.

Extra pixlar kan skapas på följande sätt:

  1. Duplicera kantpixel.
  2. Reflektera kanter
  3. Pixlar kan kopieras från den andra änden.