Bildverarbeitung vor der Feature-Erkennung

9

Ich habe einen Feature-Detektor basierend auf Harris-Ecken implementiert . Es funktioniert meistens gut, aber es gibt Fälle, in denen es schlecht funktioniert. Ich muss dafür sorgen, dass es auf vielen verschiedenen Bildern funktioniert, ohne es einzeln zu konfigurieren.

Das Problem liegt beim Detektorschwellenwert. Wenn der Detektor zu niedrig eingestellt ist, wird er zu oft ausgelöst, was zu einer Vielzahl von Funktionen führt. Wenn zu hoch eingestellt, gibt es zu wenig Funktionen.

Ich habe dies teilweise durch ANMS (Adaptive Non-Maximal Suppression) gelöst , um die Anzahl der Merkmale zu verringern, bevor ihnen Deskriptorvektoren zugewiesen wurden .

Bilder wie dieses sind jedoch das Problem:

Geben Sie hier die Bildbeschreibung ein

Sie haben einen geringen Kontrast und ich kann es mir nicht leisten, den Schwellenwert für alle Bilder zu niedrig einzustellen. Dies würde dazu führen, dass der Detektor an diesen Bildern arbeitet, aber andere Bilder würden Hunderttausende von Funktionen enthalten, die mit ANMS nur langsam gefiltert werden und die Gesamtleistung beeinträchtigen.

Ich dachte daran, das Bild vor der Feature-Erkennung anzupassen. Vielleicht würde der Histogrammausgleich den Job machen. Dies kann eine gültige Operation sein, da globale Änderungen des Kontrasts keine Auswirkungen auf Merkmalsdeskriptoren haben (sie sind unveränderlich gegenüber Änderungen der Helligkeit und des Kontrasts).

Vielleicht würde es besser funktionieren, mit einer adaptiven Schwelle oder einer Heuristik zu arbeiten.

Irgendwelche anderen Vorschläge?

Libor
quelle
@Seyhmus Güngören: Oh. Ich habe die Antworten akzeptiert, die ich bisher erhalten habe, da ich ausreichend zufriedenstellende Lösungen gefunden habe, aber immer noch auf bessere oder ausführlichere Antworten gewartet habe.
Libor
@Libor Es ist gut für Ihre neuen Fragen, da es im aktuellen Fall möglicherweise ansprechender ist, Ihre Fragen zu lösen.
Seyhmus Güngören
@Libor Haben Sie eine Histogrammübereinstimmung in Betracht gezogen, indem Sie ein Gauß-ähnliches Histogramm ausgewählt haben, das einen Mittelwert um 128 hat?
Seyhmus Güngören
@ SeyhmusGüngören Ja, ich habe darüber nachgedacht. Ich werde das wahrscheinlich mit ein paar anderen Ideen versuchen.
Libor
@Libro Können Sie bitte sagen, wie Sie die erkannten Funktionen nutzen möchten? Meine einzigen Ideen sind inhaltsbasiertes Abrufen oder Abgleichen von Bildern (z. B. zur Schätzung der Homografie), aber da dies das einzige ist, was ich jemals mit ihnen gemacht habe, könnte ich mich irren :) Wenn Sie dies andererseits verwenden möchten für sie könnte ich vielleicht beitragen.
Penelope

Antworten:

1

Eine Möglichkeit wäre, eine einfache Kantenerkennung (wie Laplace) durchzuführen und die mittlere Intensität des Ergebnisses als Grundlage für den Schwellenwert für die Harris-Ecken zu verwenden. Wenn Sie einen geringen Kontrast haben, erhalten Sie weniger Kanten und bei geringerer Intensität erhalten Sie bei hohem Kontrast mehr Kanten und höhere Intensitäten.

Sie sind nicht der einzige, der mit diesem Problem zu kämpfen hat. Wenn Sie Zugriff auf Papierdatenbanken haben, könnte dies interessant sein:

Es könnte sich lohnen, mehr nach (automatischer) adaptiver Harris-Eckenerkennung zu suchen.

Geerten
quelle
Das ist kein Widerspruch. Der Detektor hat zwei Stufen: 1) Merkmale erkennen, 2) Merkmale beschreiben. Der Histogrammausgleich sollte sich auf Stufe 1 auswirken (mehr Merkmale erkannt), nicht auf Stufe 2. Ich muss eine moderate Anzahl von Merkmalen erkennen, damit sie nicht stark gefiltert werden müssen.
Libor
Ok, ich habe darüber nachgedacht, aber Ihre Frage hat es nicht ganz klar gemacht. Ich möchte das Kantenbild nicht als Eingabe für den Feature-Detektor verwenden, sondern als Ihr eigenes Maß für den Wert für den Schwellenwert.
Geerten
Danke, das ist ein interessanter Gedanke. Der Harris-Eckendetektor verwendet abgeleitete Bilder (dx, dy, dxy), um an jedem Punkt ein Eckmaß zu erstellen. Da dies bereits auf Kantenmaßen basiert, denke ich jetzt darüber nach, ein Histogramm der Eckantwortfunktion zu erstellen und den Schwellenwert dieses Histogramms zu berechnen. Du hast mich inspiriert, danke :)
Libor
Ich bin froh, dass ich dich inspirieren konnte;) Ein Papier wurde hinzugefügt, das hilfreich sein könnte.
Geerten
2

Müssen Sie wirklich Harris-Ecken verwenden? Nach Harris-Ecken wurden viele Funktionen mit besseren Eigenschaften entwickelt. Eine gute Übersicht finden Sie in diesem Artikel:

Basierend auf diesem Artikel sowie meiner persönlichen Erfahrung würde ich vorschlagen, entweder auf MSER (Maximally Stable Extermal Regions) umzusteigen oder sie sogar mit DoG (Difference of Gaussians) zu kombinieren - den Funktionen, die zuerst als Teil der SIFT-Pipeline vorgestellt wurden.

Wenn das Problem wirklich kontrastarm ist , sollten die MSER-Funktionen Sie wirklich glücklich machen: Sie sind (ziemlich) unveränderlich gegenüber Änderungen in der Beleuchtung. Kurz gesagt, sie sind verbundene Bereiche des Bildes, die durch eine Reihe verschiedener Schwellenwert-Binärisierungen stabil sind.

Der Feature-Extraktionsprozess ist unabhängig von der Berechnung der Deskriptoren. Daher sollte es nicht zu schwierig sein, neue Methoden zur Feature-Extraktion in Ihren Prozess zu integrieren.

Außerdem habe ich von Multiscale Harris-Ecken als Erweiterung von Harris-Ecken gehört (aber noch nie damit gearbeitet) . Ich weiß nicht viel über sie und kann persönlich keine Lesematerialien zu diesem Thema empfehlen. Deshalb überlasse ich Ihnen die Artikelsuche und wähle die interessantesten Materialien aus.


Darüber hinaus könnte ich vorschlagen, dass das von Ihnen gepostete Bild andere Probleme als einen geringen Kontrast aufweist . Nach meiner persönlichen Erfahrung neigen Vegetation wie Büsche oder möglicherweise das Feld, das Sie haben, sowie die schönen sprudelnden Wolken dazu, "generische Merkmale" zu erzeugen - Merkmale, die tendenziell ähnliche (oder unähnliche) Deskriptoren aufweisen wie viele andere Merkmale.

In der Praxis bedeutet dies, dass bei der Merkmalsanpassung von zwei Bildern aus einer anderen Perspektive Merkmale, die aus diesen Arten von Oberflächen extrahiert wurden, tendenziell falsch übereinstimmen. Ich habe eine Masterarbeit gemacht , die sich zu einem großen Teil mit der Merkmalsextraktion befasst, die beim Merkmalabgleich verwendet werden soll, um eine Homographietransformation zwischen zwei Bildern zu berechnen, als ich auf dieses Problem stieß. Ich habe zu diesem Zeitpunkt keine anderen Artikel gefunden, die dieses Problem beschreiben, aber meine These könnte für Ihren Gesamtansatz hilfreich sein.

Wie Sie bereits festgelegt haben, werden Schwellenwerte und Techniken, die bei den meisten Bildern einwandfrei funktionieren, aufgrund ihrer meist homogenen Bereiche zu kleinen Merkmalen in dieser Art von Bildern extrahiert. Diese Art von Bildern stellt Probleme beim Feature-Matching (das auf das Zusammenfügen von Bildern erweitert werden kann), beim inhaltsbasierten Abrufen von Bildern und bei der Verfolgung sowie bei ähnlichen Anwendungen dar. Derzeit funktioniert keine Methode recht gut.

Methoden, die sowohl für diese Art von Bildern als auch für die typischen Fälle gut funktionieren, werden derzeit untersucht und erforscht, beispielsweise ein Ansatz, an dem ich in dieser Antwort kurz beschrieben habe .

Penelope
quelle
Vielen Dank für die ausführliche Antwort, ich werde die Papiere durchgehen, wenn ich etwas Freizeit habe. Ich habe einen Feature-Detektor implementiert, der zwei Probleme hat: Komplexität der Implementierung und Patentprobleme. Meine Anwendung ist eine kommerzielle Bibliothek für Bildausrichtung und Stitching. Daher habe ich nur begrenzte Ressourcen und Zeit für die Implementierung und kann es mir nicht leisten, für SIFT oder SURF zu bezahlen. Ich werde wahrscheinlich entweder zu MSER oder einem anderen fortschrittlichen Detektor / Deskriptor wechseln, aber bisher funktionieren Harris-Ecken gut, mit Ausnahme von Bildern mit schlechter Beleuchtung.
Libor
@Libor Das ist das Schöne daran: Du musst nicht wechseln. Sie können die neuen Funktionen einfach zu Ihrer vorhandenen Erkennungs-> Beschreibungspipeline hinzufügen . Unabhängig davon, wie die Features extrahiert werden, können Sie ihre Deskriptoren immer mit derselben Taktik berechnen. Von all dem, was ich geschrieben habe, könnte sich der erste Artikel, der den Vergleich verschiedener Optionen zur Erkennung / Beschreibung erwähnt, als am nützlichsten erweisen.
Penelope
Ich habe große Deskriptoren gesammelt und dann PCA verwendet, um die Geschwindigkeit und die Unterscheidungskraft der Deskriptoren zu verbessern. Die PCA ist jedoch für große Datenmengen recht kostspielig. Diese Arbeit hat mich wegen der generischen Verbesserung der Deskriptoren angezogen. Bisher verwende ich nur die "Feature Space Outlier Rejection", die lediglich einen Schwellenwert für Feature-Übereinstimmungen basierend auf einem Abstand von 1 nn / 2 nn aufweist. Dies wird von D. Lowe in seinen Arbeiten beschrieben und hat eine sehr gute Unterscheidungskraft, da es die Schalen-Eigenschaft von Entfernungen in hochdimmen Räumen ausnutzt.
Libor
Bei den Detektoren sind große Blickwinkeländerungen und Skalierungsinvarianz kein Problem, da beim Bildmosaikieren (Panoramen, Mikroskope) der Zoom normalerweise unverändert bleibt und affine oder projektive Verformungen zwischen übereinstimmenden Bildern recht gering sind. Das Hauptproblem sind wirklich zu wenig oder zu viele erkannte Merkmale und schlechte Deskriptoren.
Libor
Ich persönlich weiß nicht viel über die Wahl des Deskriptors, ich habe nur mit SIFT gearbeitet. In dem von Ihnen angegebenen Link wurde jedoch erwähnt, dass sie den DAISY-Deskriptoren ähnlich sind, an die ich mich auch erinnere, dass sie als sehr gut bewertet wurden. Das Kombinieren von mehr Feature-Extraktoren sollte Ihnen hoffentlich mehr Features bieten, und die Skalierungsinvarianz kann nur dann von Vorteil sein, wenn Sie sie nicht benötigen. Ich habe einige Arbeiten gelesen, in denen erwähnt wird, dass die Arbeit mit mehreren Feature-Extraktoren die Unterscheidungskraft erhöht (ich kann die Links nachschlagen, wenn Sie möchten).
Penelope