Intuition zur Faltung in der Bildverarbeitung

9

Ich habe viele Dokumente über die Faltung in der Bildverarbeitung gelesen , und die meisten von ihnen sagen über die Formel einige zusätzliche Parameter aus. Niemand erklärt die Intuition und die wahre Bedeutung, die hinter der Faltung eines Bildes stehen. Die Intuition der Ableitung im Diagramm macht es beispielsweise linearer.

Ich denke, eine kurze Zusammenfassung der Definition lautet: Faltung wird multipliziertes Überlappungsquadrat zwischen Bild und Kernel, nach dieser Summe erneut und verankert. Und das macht bei mir keinen Sinn.

Nach diesem Artikel über Faltung kann ich mir nicht vorstellen, warum Faltung einige "unglaubliche" Dinge bewirken kann. Zum Beispiel Linien- und Kantenerkennung auf der letzten Seite dieses Links. Wählen Sie einfach einen geeigneten Faltungskern, um schöne Effekte zu erzielen (Linie erkennen oder Kante erkennen).

Kann jemand eine Intuition geben (muss kein guter Beweis sein), wie es das kann?

hqt
quelle

Antworten:

13

Ich denke, die einfachste Art, sich Convolution vorzustellen, besteht darin, den Wert eines Pixels auf der Grundlage des Gewichts benachbarter Pixel in einen neuen Wert zu ändern.

Es ist leicht zu verstehen, warum Box Blur:

_____________
|1/9|1/9|1/9|
|1/9|1/9|1/9|
|1/9|1/9|1/9|
-------------

funktioniert. Das Zusammenführen dieses Kernels entspricht dem Durchlaufen jedes Pixels eines Fotos und dem Festlegen des neuen Werts des Pixels zum Durchschnitt seiner selbst und der acht umgebenden Pixel.

Wenn Sie das bekommen, können Sie sehen, warum Gaußsche Unschärfe funktioniert:

_____________________
|.01|.04|.07|.04|.01|
|.04|.16|.26|.16|.04|
|.07|.26|.41|.26|.07|
|.04|.16|.26|.16|.04|
|.01|.04|.07|.04|.01|
---------------------

Es ist im Grunde das Gleiche, außer dass die Mittelung stärker auf Pixel gewichtet wird, die näher liegen. Die Funktion, die definiert, wie schnell die Gewichte abfallen, wenn Sie sich weiter entfernen, ist die Gaußsche Funktion . Sie müssen jedoch die Details der Funktion nicht kennen, um sie zum Verwischen verwenden zu können.

Der Kantenerkennungskern im verlinkten Artikel ist sinnvoll, wenn Sie ihn auch lange genug anstarren:

__________
|-1|-1|-1|
|-1|.8|-1|
|-1|-1|-1|
----------

Grundsätzlich heißt es, dass der Wert eines Pixels bei 8/9 seines ursprünglichen Wertes beginnt. Sie subtrahieren dann die Werte jedes Pixels um es herum, um zu Ihrem neuen Pixel zu gelangen.

Wenn also der Wert eines Pixels hoch ist und der Wert der Pixel um ihn herum ebenfalls hoch ist, heben sie sich gegenseitig auf. Wenn der Wert des Pixels niedrig ist und alle Pixel um ihn herum ebenfalls niedrig sind, heben sie sich auch gegenseitig auf. Wenn der Wert des Pixels hoch und der Wert der umgebenden Pixel niedrig ist (wie bei einem Pixel am Rand eines Objekts), ist der neue Pixelwert hoch.

Brian
quelle
6

Eine Möglichkeit, über Faltung / Kreuzkorrelation nachzudenken, besteht darin, dass Sie nach einem Signal in Ihren Daten suchen. Je mehr die Daten dem Kernel ähneln, desto höher ist der resultierende Wert. Ich nehme eigentlich die Umkehrung des Kernels, dh wie bei der Kreuzkorrelation, aber es ist im Grunde das Gleiche.

Angenommen, Sie suchen nach einem Richtungsschritt in Ihren 1d-Daten.

Der Kernel könnte sein

[-1 1]

und lassen Sie uns das auf die Daten anwenden

[2 2 2 2 2 1 1 1 1 1]

Das Ergebnis wird sein

[0 0 0 0 0 1 0 0 0 0]

Welches erkennt den Ort der Stufe. Ein größerer Schritt würde einen größeren Wert ergeben.

Dies funktioniert, weil Sie einen hohen Wert erhalten, wenn Sie ein Muster mit dem im Kernel angezeigten multiplizieren.

Die Kantenerkennung (oder eine andere Mustererkennung) funktioniert auf die gleiche Weise, beispielsweise mit dem Kernel

[-1 2 -1]

Auf diese Weise können auch Erweiterungen zu höheren Dimensionen in Betracht gezogen werden.

Dies sollte Ihnen zumindest einen Einblick in einige Anwendungen der Faltungsbildverarbeitung geben.

Bitweise
quelle
4

Wenn Sie der Meinung sind, dass die Faltung etwas zu schwer zu verstehen ist, empfehle ich Ihnen, nach der mathematischen Morphologie zu suchen, die auf die Bildverarbeitung angewendet wird. Die große Idee hinter der mathematischen Morphologie besteht darin, dass Sie eine Operation ausführen, die der Faltung sehr nahe kommt, um die Faltung zu "ändern" Morphologie des Bildes, aber behalten Sie die Topologie-Informationen bei. Auf diese Weise können Sie ein Bild eines stehenden Menschen, eines Skeletts, das so ziemlich ein Stockmensch ist, erstellen, versuchen, die Erosionsoperation anzuwenden, dann die Operation zu erweitern und dann ins Freie zu gehen Wenn Sie die Operation schließen, werden Sie verstehen, was eine Maske, die auf jedes Bildpixel angewendet wird, bewirken kann und wie sie in einem großen Szenario verwendet werden kann, um großartige Ergebnisse zu erzielen (z. B. einen Ort zu finden, an dem mit der letzten Erosion etwas gestartet werden kann) Sie verstehen mathematische Morphologie, Faltung ist ein bisschen schwieriger,weil es auf Kalkül basiert und nach dem Integrieren definiert ist, aber dennoch viele Faltungen leicht zu verstehen sind, wie Median-Unschärfe, Gauß-Unschärfe, Schärfe, Kantenerkennung, Laplace, Gradient usw.

H_DANILO
quelle