logo

Konsept med konvolusjon

Konvolusjon brukes til mange ting som å beregne derivater, oppdage kanter, bruke uskarphet osv. og alt dette gjøres ved å bruke en 'convolution kjerne'. En konvolusjonskjerne er en veldig liten matrise, og i denne matrisen har hver celle et nummer og også et ankerpunkt.

Ankerpunktet brukes til å vite posisjonen til kjernen i forhold til bildet. Den starter i øverste venstre hjørne av bildet og beveger seg på hver piksel sekvensielt. Kjernen overlapper noen få piksler i hver posisjon på bildet. Hver piksel som overlappes, multipliseres og legges til. Og summen settes som verdien av gjeldende posisjon.

Konsept med konvolusjon

Konvolusjon er prosessen der hvert element i bildet legges til sine lokale naboer, og deretter blir det vektet av kjernen. Det er relatert til en form for matematisk konvolusjon.

I konvolusjon utfører ikke matrisen tradisjonell matrisemultiplikasjon, men den er betegnet med *.

Anta at det er to 3x3-matriser, en er kjerne og en annen er en bildedel. I konvolusjon snus rader og kolonner i kjernen og deretter multipliseres de og summeres deretter. Elementer som er tilstede i midten av matrisen, dvs. i [2,2] av bildet, vil bli vektet kombinasjon av bildematrisen og vektene vil bli gitt av kjernen. På samme måte vil alle de andre elementene i matrisen bli vektet og deretter vil vektene bli beregnet.

Følgende er pseudokode for å beskrive konvolusjonsprosessen:

 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 

Konvolusjon kan beregnes ved å bruke flere for løkker. Men å bruke for loops fører til mange gjentatte beregninger og også størrelsen på bildet og kjernen øker. Ved å bruke diskret Fourier Transform-teknikk kan konvolusjonsberegning gjøres raskt. I denne teknikken konverteres hele konvolusjonsoperasjonen til en enkel multiplikasjon.

I konvolusjon oppstår problemet når kjernen er nær kanten eller hjørnene fordi kjernen er todimensjonal.

For å overvinne disse problemene kan følgende ting gjøres:

  1. De kan ignoreres
  2. Ekstra piksler kan opprettes nær kantene.

Ekstra piksler kan opprettes på følgende måter:

  1. Dupliser kantpiksel.
  2. Reflektere kanter
  3. Piksler kan kopieres fra den andre enden.