Spur in Waldbildern erkennen


30

Kennt jemand Forschungsergebnisse / Unterlagen / Software zur Identifizierung eines Pfads (als Linie oder Punkt-zu-Punkt-Kurve) in einem Bild einer Waldszene (aus der Perspektive der Kamera, die irgendwo entlang des Pfads steht)?

Ich versuche einen Algorithmus zu finden, der ein Bild aufnehmen könnte wie:

Alt-Text

und eine Maske erstellen, die eine wahrscheinliche "Spur" identifiziert, wie zum Beispiel:

Alt-Text

Wie Sie sehen können, ist das Originalbild etwas verschwommen, was zweckmäßig ist. Die Bildquelle kann keinen perfekten Fokus garantieren, daher muss ich in der Lage sein, ein angemessenes Maß an Rauschen und Unschärfe zu verarbeiten.

Mein erster Gedanke war, eine Gaußsche Unschärfe anzuwenden und das Bild in Blöcke zu segmentieren, wobei benachbarte Blöcke auf scharfe Farbunterschiede hin verglichen wurden (was auf eine Spur "Kante" hindeutet). Mir wurde jedoch schnell klar, dass Schatten und andere Veränderungen in der Beleuchtung das leicht aus der Welt schaffen.

Ich habe überlegt, SURF-Features zu extrahieren, aber ich hatte mit SURF / SIFT nur dann Erfolg, wenn das Bild perfekt klar und mit gleichmäßiger Beleuchtung ist.

Ich habe auch versucht, die Bilder und Masken auf viel kleinere Größen (z. B. 100 x 75) zu verkleinern, sie in 1xN-Vektoren zu konvertieren und sie zum Trainieren eines FANN- basierten neuronalen Netzwerks zu verwenden (wobei das Bild die Eingabe und die Maske die gewünschte ist) Ausgabe). Selbst bei einer so geringen Größe mit einer verborgenen Schicht mit 75% der Größe des Eingabevektors dauerte das Training 6 Stunden und konnte noch keine Masken im Testset vorhersagen.

Kann jemand andere Methoden oder Papiere zu diesem Thema vorschlagen?


1
Sie haben nichts darüber erwähnt, aber steuern Sie die Kamera- / Bildaufnahme? In ähnlichen Situationen wird der Vegetationsindex mithilfe von Nahinfrarotbildern verwendet (Berechnen der Waldbedeckung von einem Satelliten aus). Wenn Sie nahes Infrarot haben, ist das Problem direkt zu lösen.
CarlosDC

Ich mache etwas. Ich mache Bilder mit einer billigen Monokular-Kamera (Webcam / Handy-Kamera), aber ich glaube nicht, dass sie Infrarot speichern.
Cerin

Die Verwendung mehrerer Farbfilter, die zwischen den Spektren von Vegetation und Schmutz unterscheiden können, wäre wahrscheinlich hilfreich
Endolith

Ich bin gespannt, ob Sie einen bayesianischen Ansatz zum Trainieren und Erkennen ausprobiert haben. Ich hatte eine Antwort, die ich vor ein paar Tagen geschrieben habe, habe sie dann aber gelöscht, weil ich dachte, Sie hätten sie nach dem Versuch verworfen. Wenn Sie diese Option noch nicht in Betracht gezogen haben, würde ich sie gerne wiederherstellen.
Lorem Ipsum

@yoda, was meinst du mit Bayes'schen Ansatz? Ich kenne Bayesian nur für diskrete Klassifikationen und logische Netzwerke. Ich bin nicht damit vertraut, wie es auf den Lebenslauf angewendet wird. Ich kann mich nicht erinnern, Beiträge von Ihnen gesehen zu haben.
Cerin

Antworten:


13

Es reicht möglicherweise nicht aus, aber da eines der Probleme mit Beleuchtungsschwankungen zusammenhängt, kann ein Vorverarbeitungsschritt zur Schattenentfernung hilfreich sein. Die Technik, an die ich denke, wird im folgenden Artikel beschrieben:

"Über die Entfernung von Schatten aus Bildern", GD Finlayson, SD Hordley, C. Lu und MS Drew, IEEE-Musteranalyse und Maschinenintelligenz (PAMI), Band 28, Nr. 1, Januar 2006, S. 59- 68. http://www.cs.sfu.ca/~mark/ftp/Pami06/pami06.pdf

Der erste Teil des Prozesses erzeugt ein belichtungsinvariantes Graustufenbild, was in diesem Fall wahrscheinlich der Fall ist. Hier ist eine Aufnahme des Beispiels, das sie in der Zeitung geben:

Schattenentfernung
(Quelle: datageist.com )

In der Tat ist es möglicherweise erforderlich, den Prozess einen Schritt weiter zu gehen, um ein "Farbart" -Bild zu erstellen, um die lebenden und toten Blätter sauber voneinander zu unterscheiden. Noch einmal ein Beispiel aus dem Papier:

Chromatizität
(Quelle: datageist.com )

Der Haken ist jedoch, dass die Kamera zuerst kalibriert werden muss. Vorausgesetzt, dies ist möglich, wird eine Kombination der von ihnen beschriebenen Darstellungen wahrscheinlich die anderen Methoden, die Sie verwenden, effektiver machen.


12

Ich glaube nicht, dass Sie genug Informationen im Quellbild haben, um das Maskenbild zu erzeugen. Sie können mit der Segmentierung nach Farbe beginnen, dh Grün ist keine Spur, Grau / Braun ist. Es gibt jedoch grau / braune Bereiche an den "Trail-Rändern", die in Ihrer Maske nicht dargestellt sind. (Siehe den unteren linken Quadranten Ihres Quellbilds.)

Die von Ihnen bereitgestellte Maske impliziert strukturelle Einschränkungen, die im Quellbild nicht erkennbar sind. Beispielsweise haben Ihre Spuren möglicherweise eine feste Breite. Mit diesen Informationen können Sie die von Ihrem Mustererkenner zurückgegebene vorläufige Maske einschränken.

Fortsetzung des Themas Struktur: Verschmelzen Trails mit anderen? Sind Pfade mit bestimmten Boden- / Schottermerkmalen gekennzeichnet? Als Mensch (das ist einigermaßen gut in der Mustererkennung!) Bin ich herausgefordert durch die Merkmale, die im unteren linken Quadranten gezeigt werden: Ich sehe grau / braune Bereiche, die ich nicht als "Spur" ausschließen kann. Vielleicht könnte ich das schlüssig tun, wenn ich mehr Informationen hätte: eine Karte und einen unbekannten Ort, ein persönliches Erlebnis auf diesem Pfad oder vielleicht eine Folge von Bildern, die zu diesem Punkt führen - vielleicht ist diese Ansicht nicht so eindeutig, wenn der Erkenner "weiß "was zu dieser szene führte.

Eine Sammlung von Bildern ist meiner Meinung nach der interessanteste Ansatz. Fortsetzung dieses Gedankens: Ein Bild liefert möglicherweise nicht genügend Daten, aber ein Panoramablick kann die Szene unmissverständlich machen.


Ja, Trails verschmelzen mit anderen. Und ja, Pfade werden durch Boden- / Kiesmerkmale dahingehend abgegrenzt, dass sich diese Merkmale von den Nicht-Pfadgebieten unterscheiden sollten. Ich bin damit einverstanden, dass das Bild in einigen Abschnitten eine Herausforderung darstellt, aber ich denke immer noch, dass es genügend Informationen gibt, um eine ziemlich gute Vermutung darüber anzustellen, wo sich der Trail befindet. Obwohl Sie mit diesem Weg nicht vertraut sind, scheint es, als hätten Sie kein Problem damit gehabt (mit Ausnahme des Bereichs links unten, der verständlich ist).

In der Tat kann ich ziemlich gut raten, wie die Grenzen des Trails sind. Leider verlasse ich mich auf mehr Informationen als im Quellbild dargestellt. Ich "weiß", was eine Spur ist - vermutlich, weil ich ein Modell oder eine Schablone der herausragenden Merkmale einer Spur erstellt habe: durch direkte Erfahrung oder durch das Erkennen klar definierter Spuren in Bildern usw. Zusammenfassend gilt: das Erkennen der Spur in Ich zeichne auf viel mehr als das, was ich im Quellbild beobachte.

Es gibt einige Merkmale des Pfades, die ein Bildverarbeitungssystem ausnutzen könnte: Vermutlich kann angenommen werden, dass der Pfad einen freien, schiffbaren Raum darstellt. Daher können Baum-, Busch- und Gesteinsmerkmale als "nicht nachgeführt" klassifiziert werden. Vielleicht könnte eine Texturanalyse helfen, diese zu erkennen? Ich bin mir jedoch nicht sicher: Der Boden unter den Bäumen (Mitte bis oben links) sieht dem Pfad ziemlich ähnlich.

Meine erste Idee wäre gewesen, sich auf die LU- oder Eigen-Transformationen zu beziehen, die eine hohe Reaktion ergeben, wenn die Textur sehr rau ist. Das Hauptunterscheidungsmerkmal zwischen Trail und Non-Trail scheint hier jedoch die Farbe zu sein. Wenn Sie es also in den HSV-Farbraum konvertieren und eine Maske aus den Pixeln erstellen, die einen "erdigen" Farbton haben - bräunlich oder ocker -, erhalten Sie eine grobe Schätzung.
AruniRC

12

Es gibt keinen einzigen Algorithmus, der Spuren in einem zufälligen Bild auf magische Weise erkennt. Sie müssen eine Routine implementieren, die auf maschinellem Lernen basiert, und sie "trainieren", um Trails zu erkennen. Hier ist eine grobe Darstellung dessen, was Sie mit einem überwachten Lernansatz tun würden, ohne auf zu viele Details einzugehen.

  1. Sie benötigen eine Reihe von "Trainingsbeispielen", womit ich mehrere Bilder von Trails in verschiedenen Umgebungen meine, in denen Sie (der Supervisor) angegeben haben, was als "Trail" gilt und welchen Hintergrund "Forest" hat. Sie zerlegen die Bilder in kleinere Abschnitte (normalerweise 8x8) und transformieren sie in einen "Merkmalsraum", indem Sie die DCT (diskrete Cosinustransformation) der Blöcke verwenden. Die DCT jedes Blocks ergibt in diesem Fall einen Merkmalsvektor mit 64 Punkten.
  2. XxYy1=traily2=forest

    • die klassenbedingten Verteilungen
      • PX|Y(x|trail)trail
      • PX|Y(x|forest)forest
    • die Klassenwahrscheinlichkeiten oder der Prior
      • PY(trail)trail
      • PY(forest)forest
  3. Damit testen Sie Ihr Bild (erneut, indem Sie es in kleinere Teile zerlegen) und berechnen die hintere Wahrscheinlichkeit. Mit der Entscheidungstheorie von Bayes definieren Sie Ihre binären (in diesem Fall) Auswahlkriterien wie

    y~i(x)=argmaxyiPX|Y(x|yi) PY(yi)

Beachten Sie, dass dies eine sehr vereinfachte Übersicht über den Ansatz ist. Es gibt mehrere Punkte, die berücksichtigt werden müssen. Der wichtigste davon ist die Auswahl der richtigen Funktionen für Ihr Problem. Sie können auch kompliziertere Dinge tun, z. B. Mischungsmodelle und kernbasierte Dichteschätzungen, aber all dies ist zu detailliert und zu zeitaufwendig, um eine Antwort zu schreiben.

Als Motivation und Bestätigung, dass dieser Ansatz es wert ist, ausprobiert zu werden, hier ein Beispiel von etwas, das ich vor langer Zeit als Hausaufgabe für einen Kurs gemacht habe und das dem sehr ähnlich ist, was Sie erreichen möchten. Ziel war es, das Tier aus der Hintergrundvegetation zu erkennen (linkes Bild). Die Abbildung rechts zeigt die nach dem "Lernen" erhaltene Binärmaske zur Unterscheidung von Vordergrund und Hintergrund.

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

Um mehr über maschinelles Lernen zu erfahren, sollten Sie sich einige Lehrbücher ansehen. Eines der bekanntesten und oft empfohlenen Lehrbücher auf diesem Gebiet ist:

T. Hastie, R. Tibshirani und J. Friedman, Die Elemente des statistischen Lernens: Data Mining, Inferenz und Vorhersage. 2. Aufl., Springer-Verlag (2008)

Dieses Dokument ist jetzt als kostenloses PDF unter dem angegebenen Link verfügbar. Ein weiteres anständiges Buch ist:

RO Duda, PE Hart und DG Stork, Pattern Classification , 2. Aufl., John Wiley & Sons (2001)


1
In diesem Zusammenhang möchte ich auf ml-class.org hinweisen, das eine hervorragende Einführung in das maschinelle Lernen darstellt.
Björnz

Interessante Methode. Wenn Sie jedoch sagen, dass Py (Spur) und Py (Wald) die "Wahrscheinlichkeit sind, eine Spur im gesamten Bild zu finden", meinen Sie dann die Wahrscheinlichkeit, sie in einem 8x8-Block oder im gesamten Bild zu finden? Wenn das gesamte Bild wäre, würde ich mir vorstellen, dass beide 100% sind, da alle Trainingsbilder beide irgendwo haben werden.
Cerin

@Cerin: Sorry, von Py (trail), ich meine die Wahrscheinlichkeit, es in einem Block zu finden. Das wäre also die Summe aller Blöcke, die eine Spur von der Gesamtzahl der Blöcke im gesamten Bild haben. Ich habe es bearbeitet, um das zu korrigieren
Lorem Ipsum

Wie würden Sie den Feature-Space X definieren? Würden Sie so etwas wie K-Means-Clustering verwenden, um die Dimensionalität der 64-Punkt-Merkmalsvektoren auf 10 Merkmale zu reduzieren?
Cerin

@Cerin Ja, K-means ist einer der gängigen Ansätze zur Reduzierung der Dimensionalität.
Lorem Ipsum


5

Es sieht aus wie ein Problem für die Textur-Segmentierung (keine Farbsegmentierung) Es gibt viele Methoden,

Sie verwenden häufig Gabor-Wavelets wie diese http://note.sonots.com/SciSoftware/GaborTextureSegmentation.html

Superpixel-basierte Segmentierung http://ttic.uchicago.edu/~xren/research/superpixel/

und ähnliche Graphschnitt-Segmentierung http://en.wikipedia.org/wiki/Graph_cuts_in_computer_vision

Hier ist die Wiki-Übersicht ( http://en.wikipedia.org/wiki/Segmentation_(image_processing)


Gabor Textur Segmentierungen scheint schön zu sein!
Nr.
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.