Statistisches Maß dafür, ob ein Bild aus räumlich zusammenhängenden getrennten Bereichen besteht


14

Betrachten Sie diese beiden Graustufenbilder:

Fluss zufällig

Das erste Bild zeigt ein sich schlängelndes Flussmuster. Das zweite Bild zeigt zufälliges Rauschen.

Ich suche ein statistisches Maß, anhand dessen ich feststellen kann, ob es wahrscheinlich ist, dass ein Bild ein Flussmuster zeigt.

Das Flussbild hat zwei Bereiche: Fluss = hoher Wert und überall sonst = niedriger Wert.

Das Ergebnis ist, dass das Histogramm bimodal ist:

Bildbeschreibung hier eingeben

Daher sollte ein Bild mit einem Flussmuster eine hohe Varianz aufweisen.

Das obige zufällige Bild sieht jedoch so aus:

River_var = 0.0269, Random_var = 0.0310

Andererseits weist das Zufallsbild eine geringe räumliche Kontinuität auf, während das Flussbild eine hohe räumliche Kontinuität aufweist, was im experimentellen Variogramm deutlich gezeigt wird: Bildbeschreibung hier eingeben

Ebenso wie die Varianz das Histogramm in einer Zahl "zusammenfasst", suche ich nach einem Maß für die räumliche Kontinuität, das das experimentelle Variogramm "zusammenfasst".

Ich möchte, dass diese Maßnahme eine hohe Semivarianz bei kleinen Verzögerungen härter "bestraft" als bei großen Verzögerungen. Deshalb habe ich mir Folgendes ausgedacht:

 sveinr=h=1nγ(h)/h2

Wenn ich nur lag = 1 bis 15 addiere, erhalte ich:

River_svar = 0.0228, Random_svar = 0.0488

Ich denke, dass ein Flussbild eine hohe Varianz haben sollte, aber eine geringe räumliche Varianz, deshalb führe ich ein Varianzverhältnis ein:

 reintichÖ=veinr/sveinr

Das Ergebnis ist:

River_ratio = 1.1816, Random_ratio = 0.6337

Ich habe die Idee, dieses Verhältnis als Entscheidungskriterium dafür zu verwenden, ob ein Bild ein Flussbild ist oder nicht. hohes Verhältnis (zB> 1) = Fluss.

Irgendwelche Ideen, wie ich Dinge verbessern kann?

Vielen Dank im Voraus für alle Antworten!

EDIT: Nach dem Rat von Whuber und Gschneider sind hier die Morans I der beiden Bilder, die mit einer 15x15-Invers-Distanz-Gewichtsmatrix unter Verwendung der Matlab-Funktion von Felix Hebeler berechnet wurden :

River_M Random_M

Ich muss die Ergebnisse für jedes Bild in einer Zahl zusammenfassen. Laut Wikipedia: "Die Werte reichen von -1 (Anzeige der perfekten Streuung) bis +1 (perfekte Korrelation). Ein Nullwert gibt ein zufälliges räumliches Muster an." Wenn ich das Quadrat der Morans I für alle Pixel zusammenfasse, erhalte ich:

River_sumSqM = 654.9283, Random_sumSqM = 50.0785 

Da hier ein großer Unterschied besteht, scheint mir Morans ein sehr gutes Maß für räumliche Kontinuität zu sein :-).

Und hier ist ein Histogramm dieses Wertes für 20 000 Permutationen des Flussbildes: Histogramm der Permuationen

Offensichtlich ist der River_sumSqM-Wert (654,9283) unwahrscheinlich und das River-Bild ist daher nicht räumlich zufällig.


4
Interessante Frage. Ein Ratschlag, der sofort in den Sinn kommt, ist, sich auf den Nahbereich des Variogramms zu konzentrieren: Dies ist der entscheidende Teil und wird die beste Arbeit leisten, um Paare von Bildern wie diesen zu unterscheiden. (Eng verwandte Statistiken sind Morans I und Gearys C. ) Es ist jedoch schwierig, spezifische Ratschläge zu geben, es sei denn, Sie können die Arten von Bildern, die Sie voraussichtlich verarbeiten, klarer charakterisieren.
Whuber

2
+1 whuber, Moran's I scheint in diesem Fall ein guter Anfang zu sein. Dann überlegen Sie sich vielleicht einen Permutationstest, um zu sehen, wie "extrem" Ihr Bild ist.
Gschneider

@Gschneider Der Permutationstest ist eine nette Idee, zumal keine Permutationen durchgeführt werden müssen! Es ist einfach, die Verteilung des Variogramms (oder Morans I oder Gearys C oder was auch immer) unter Permutationen der Werte im Bild zu berechnen: Es gibt so viele Werte, dass die CLT gilt. (Das Variogramm sieht beispielsweise wie die grünen Punkte aus. Die doppelte konstante Höhe entspricht der Varianz der Bildwerte.) Das Problem wird schwieriger, wenn ein "Fluss" -Muster von anderen Mustern wie "See" oder "See" unterschieden werden muss "Flüsse" können sehr unterschiedlich breit sein.
Whuber

Tut mir leid, aber ich bin mir nicht sicher, ob ich folge: Soll ich das getestete Bild Pixel für Pixel zufällig permutieren und dann den I-Wert des permutierten Bildes mit dem des getesteten Bildes vergleichen?
Andy

Was ich vorhatte, war zuerst eine Art (wahrscheinlich einfache) Nachbarschaftsstruktur zu definieren und Morans I zu berechnen. Dann können Sie K, sagen wir 200.000, mögliche Permutationen der Pixel berechnen und Morans I für jede Permutation berechnen. Sobald Sie diese 200.000 Morans I haben, sehen Sie, wo Ihre beobachtete Statistik liegt. Aber Whubers Methode klingt einfacher :).
Gschneider

Antworten:


1

Ich dachte, dass eine Gaußsche Unschärfe als Tiefpassfilter wirkt, wobei die großräumige Struktur zurückbleibt und die Komponenten mit hoher Wellenzahl entfernt werden.

Sie können sich auch die Skala der Wavelets ansehen, die zur Erzeugung des Bildes erforderlich sind. Wenn alle Informationen in den kleinen Wavelets leben, dann ist es wahrscheinlich nicht der Fluss.

Sie könnten eine Art Autokorrelation einer Flusslinie mit sich selbst in Betracht ziehen. Wenn Sie also eine Reihe von Pixeln des Flusses aufgenommen haben, auch mit Rauschen, und die Kreuzkorrelationsfunktion mit der nächsten Reihe gefunden haben, können Sie sowohl die Position als auch den Wert des Peaks ermitteln. Dieser Wert wird viel höher sein als das, was Sie mit dem zufälligen Rauschen erhalten werden. Eine Pixelspalte erzeugt nur dann viel Signal, wenn Sie etwas aus der Region auswählen, in der sich der Fluss befindet.

http://en.wikipedia.org/wiki/Gaussian_blur

http://en.wikipedia.org/wiki/Cross-correlation


1
Einige interessante Ideen hier! Könnte ich Sie überzeugen, diese Antwort zu konkretisieren, indem Sie einen oder mehrere Ihrer Ansätze auf die Beispielbilder anwenden, um (1) zu zeigen, wie Ihre Methoden funktionieren, und (2) zu bewerten, wie gut sie funktionieren?
Whuber

1
Es ist aus meiner Diplomarbeit. (Maschinenbau) Ich habe die Position eines nichtlinearen Pendels mit einer Gaußschen Unschärfe versehen und dann die Faltungsmethode verwendet, um die Position aus einem Bild zu entfernen und mit der Analyse zu vergleichen. Ich habe es mit verschiedenen Geräuschpegeln versucht. Solange das Rauschen unter einer Schwelle lag, die mit der Größe des Gaußschen zusammenhängt, war die Rekonstruktion sehr gut. link Abbildung 11 war der relevante Graph für die Rekonstruktion. Abbildung 6 und Gleichung 2 geben die Reaktion auf Rauschen an.
EngrStudent

Vielen Dank! Es sieht also so aus, als wären Sie in der Lage, diese Antwort zu konkretisieren und zu demonstrieren, wie effektiv sie tatsächlich ist. :-)
whuber

Entschuldigung für den doppelten Kommentar. Ich halte es für "clever", einen Teil eines Objekts als Pseudo-"Mutter-Wavelet" für sich zu verwenden. Es wirkt selbstbezogen, aber auch poetisch. Selbstadjoint.
EngrStudent

1

Dies ist ein bisschen spät, aber ich kann einem Vorschlag und einer Beobachtung nicht widerstehen.

Erstens glaube ich, dass ein "Bildverarbeitungs" -Ansatz besser geeignet ist als eine Histogramm / Variogramm-Analyse. Ich würde sagen, dass der "Glättungs" -Vorschlag von EngrStudent auf dem richtigen Weg ist, aber der "Unschärfeteil" ist kontraproduktiv. Was benötigt wird, ist ein kantenerhaltender Glatter wie ein bilateraler Filter oder ein Medianfilter . Diese Filter sind komplexer als Filter mit gleitendem Durchschnitt, da sie notwendigerweise nichtlinear sind .

Hier ist eine Demonstration dessen, was ich meine. Unten sehen Sie zwei Bilder, die sich Ihren beiden Szenarien annähern, sowie deren Histogramme. (Die Bilder sind jeweils 100 mal 100, mit normalisierten Intensitäten).

Rohe Bilder rohe Bilder

Für jedes dieser Bilder wende ich dann 15 Mal * einen 5 x 5-Medianfilter an, der die Muster glättet und dabei die Ränder beibehält . Die Ergebnisse sind unten gezeigt.

Geglättete Bilder geglättete Bilder

(* Wenn Sie einen größeren Filter verwenden, bleibt der scharfe Kontrast an den Rändern erhalten, die Position wird jedoch geglättet.)

Beachten Sie, dass das "Fluss" -Bild immer noch ein bimodales Histogramm aufweist, es jetzt jedoch in zwei Komponenten unterteilt ist *. Währenddessen weist das Bild mit dem "weißen Rauschen" immer noch ein einkomponentiges unimodales Histogramm auf. (* Einfache Schwellenwertanpassung, z. B. mit Otsus Methode , um eine Maske zu erstellen und die Segmentierung abzuschließen.)


Zweitens ist Ihr Bild sicherlich kein "Fluss"! Abgesehen von der Tatsache , dass es zu anisotrop ist (gestreckt in der Richtung „X“), in dem Maße, mäandernden Flüsse kann durch eine einfache Gleichung beschrieben werden, ist ihre Geometrie tatsächlich viel näher an einer Sinus- erzeugten Kurve als zu einer Sinuskurve (siehe zB hier oder hier ). Für niedrige Amplituden ist dies ungefähr eine Sinuskurve, aber für höhere Amplituden werden die Schleifen "umgedreht" (xf[y]), was in der Natur letztendlich zur Abschaltung führt .

(Entschuldigung ... meine Ausbildung zum Geomorphologen war ursprünglich)


Nebenbei bemerkt, es ist im Allgemeinen eine gute Idee, beim Anwenden von "Variogrammmethoden" auf natürliche Bilder, die typischerweise nicht stationär sind, sehr vorsichtig zu sein . Dies wird in meiner Antwort hier angesprochen .
GeoMatt22

0

Ein Vorschlag, der ein schneller Gewinn sein kann (oder überhaupt nicht funktioniert, aber leicht beseitigt werden kann) - haben Sie versucht, das Verhältnis von Mittelwert zu Varianz der Bildintensitätshistogramme zu untersuchen?

Nehmen Sie das zufällige Rauschbild auf. Angenommen, es wird durch zufällig emittierte Photonen (oder ähnliches) erzeugt, die auf eine Kamera treffen, und jedes Pixel wird gleich wahrscheinlich getroffen, und Sie haben die Rohdaten (dh die Werte werden nicht neu skaliert oder sie werden auf bekannte Weise neu skaliert, die Sie rückgängig machen können). sollte dann die Anzahl der Ablesungen in jedem Pixel poissonverteilt sein; Sie zählen die Anzahl der Ereignisse (Photonen, die auf ein Pixel treffen), die in einem festgelegten Zeitraum (Belichtungszeit) mehrmals (über alle Pixel) auftreten.

Für den Fall, dass es einen Fluss mit zwei unterschiedlichen Intensitätswerten gibt, haben Sie eine Mischung aus zwei Poissonverteilungen.

Eine sehr schnelle Möglichkeit, ein Bild zu testen, besteht darin, das Verhältnis von Mittelwert zu Varianz der Intensitäten zu untersuchen. Bei einer Poisson-Verteilung entspricht der Mittelwert ungefähr der Varianz. Bei einer Mischung aus zwei Poissonverteilungen ist die Varianz größer als der Mittelwert. Am Ende müssen Sie das Verhältnis der beiden Werte mit einem voreingestellten Schwellenwert vergleichen.

Es ist sehr grob. Aber wenn es funktioniert, können Sie die erforderlichen ausreichenden Statistiken mit nur einem Durchgang über jedes Pixel in Ihrem Bild berechnen :)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.