Ich bin ein neuer Typ in Bildverarbeitung und Computer Vision, daher könnte diese Frage für Sie dumm sein.
Ich habe gerade einige Algorithmen zur Erkennung und Beschreibung von Merkmalen gelernt, wie Harris, Hessian, SIFT, SURF . Sie verarbeiten Bilder, um diese Schlüsselpunkte herauszufinden, und berechnen dann für jeden einen Deskriptor . Der Deskriptor wird für den Merkmalsabgleich verwendet.
Ich habe SIFT und SURF ausprobiert und festgestellt, dass sie nicht so robust sind, wie ich dachte, da sie für 2 Bilder (eines ist ein wenig gedreht und affiniert) nicht gut zu den Merkmalen passen, unter fast 100 Merkmalspunkten nur 10 Übereinstimmungen sind gut.
Also frage ich mich
Wofür können wir diese Merkmalserkennungsalgorithmen in der Praxis verwenden? Gibt es robustere Algorithmen zur Erkennung und Anpassung von Merkmalen? Oder SIFT und SURF ist schon gut, ich muss es nur für die weitere Verwendung verfeinern?
Ein weiteres Problem ist, dass ich dachte, diese Algorithmen sind nicht für Echtzeitanwendungen geeignet (ohne Berücksichtigung der Multi-Core-Implementierung), aber es gibt einige kommerzielle Produkte (wie Kinect), die in Echtzeit funktionieren und reagieren! Ich gehe davon aus diesen Produkten auch erkennen und Match - Funktion von dem, was sie sehen , haben sie die Algorithmen verwenden wie SIFT ? Wie konnten sie Merkmale so gut erkennen?
Mit meinem begrenzten Wissen weiß ich, dass Feature Matching verwendet werden kann, um dieselben Objekte in zwei Bildern herauszufinden oder Homografien zu schätzen, aber einen anderen Zweck für Feature Feature Matching?
Antworten:
Bildschlüsselpunkte sind ein Schlüsselmerkmal in vielen industriellen und akademischen Bild- und Videoverarbeitungssoftware. Das Prinzip dahinter ist immer dasselbe:
Nun noch etwas mehr Details.
Warum Punkte erkennen? Grundsätzlich, weil ein Punkt ein Schnittpunkt zweier Linien ist. Als solches wird es viel genauer (und stabiler) als Linien oder andere Merkmale (Fläche usw.) erkannt. Dies ist allgemein bekannt in Computer Vision, was später in einem Artikel von Mikolajczyk bewiesen wurde . Dies ist tief in jedem Punktdetektor verwurzelt: Beispielsweise stützt sich der Harris-Punktdetektor auf die hessische Matrix, um zu überprüfen, ob zwei Kreuzungslinien vorhanden sind.
Warum ist der Beschreibungsteil optional? Grundlegende Punktdetektoren (Harris, SUSAN, Moravec, FAST) werden ohne Deskriptor geliefert. Der Abgleich erfolgt rein ortsbezogen. Daher werden sie hauptsächlich für die Videoverarbeitung verwendet. Die Intuition dahinter ist, dass Sie viele, viele Punkte haben können, dann einen robusten Schätzprozess (z. B. RANSAC). Neuere Schlüsselpunkte (SIFT und die folgenden) enthalten jedoch einen Bild-Patch-Deskriptor, da sie in komplexeren Situationen (Objekterkennung, große Basislinienanpassung ...) verwendet werden sollen.
Was ist der Unterschied zwischen Harris / Hessian und SIFT / SURF? Neben dem Deskriptor enthält SIFT / SURF auch eine Lokalisierung im Maßstab . Wenn Sie also einen SIFT / SURF-Punkt erkennen, erwarten Sie, dass Sie ihn auch dann wiederfinden, wenn Ihr Bild vergrößert / verkleinert wurde usw.
Was ist der Unterschied zwischen SIF und SURF? Nun, SURF ist eigentlich meistens eine ungefähre Version von SIFT, die sich besser für schnelle Berechnungen eignet (unter Verwendung integraler Bilder). Folglich ist SURF unter affinen Transformationen nicht so stabil (so "gut") wie SIFT, aber es kostet ungefähr 1/10 der Rechenkosten.
Sind sie für Echtzeitsoftware geeignet? Ja, sicher für Harris. SURF wurde so konzipiert, dass es schnell ist, daher sollte eine gute Implementierung auch schnell sein. SIFT wurde nicht für Geschwindigkeit entwickelt, aber Sie können GPU-Implementierungen finden. Wenn Sie jedoch auch auf Geräten der unteren Preisklasse wirklich schnell sein möchten, müssen Sie aktuelle Punkte wie FAST (Detektor), BRIEF, ORB, BRISK, FREAK (Binärdeskriptoren) überprüfen.
Was kannst du mit ihnen machen? Nun, viele Dinge. Indem Sie Punkte in Videos verfolgen, können Sie sie stabilisieren, mit Objekten erweitern und Objekte verfolgen. Durch Abgleichen von Punkten zwischen Kameras können Sie den Kalibrierungsprozess von 3D-Rekonstruktionspipelines automatisieren. Durch Abgleichen von Punkten auf Teilen eines Objekts können Sie Objekte erkennen. Und wahrscheinlich noch viel mehr ...
quelle
Nun, das ist eine großartige Antwort von @sansuiso. Ich werde mich also auf verschiedene Verwendungsmöglichkeiten erkannter Schlüsselpunkte konzentrieren und einige Beispiele für Sie beschreiben. Es gibt sicherlich mehr Verwendungszwecke, die aufgeführten basieren nur auf dem, mit dem ich bisher in Kontakt gekommen bin.
Content Based Image Retrieval (CBIR) Sie behandeln die Features (die Feature-Vektoren, die Sie erhalten, nachdem Sie Feature-Deskriptoren auf die erkannten Punkte angewendet haben ) als visuelle Wörter . Auf diese visuellen Wörter wenden Sie Bag-of-Word- Techniken an, die zuerst für das Abrufen von Text eingeführt wurden (denken Sie an Google). Ich habe eine ziemlich detaillierte Antwort auf die hier (siehe auch Referenzen darin). So können Sie:
("Grob") Homografieschätzung für Bildpaare Erkennen Sie Merkmale, führen Sie Übereinstimmungen durch, wählen Sie die robustesten Übereinstimmungen aus und schätzen Sie dann die Homografie basierend auf diesen Übereinstimmungen. Es gibt einige Techniken zur Verbesserung der Leistung: Zusätzlich zu nur übereinstimmenden Deskriptoren können auch räumliche Informationen verwendet werden (z. B. kann eine Übereinstimmung abgelehnt werden, wenn ihre Nachbarn aus Bild A nicht in derselben Nachbarschaft in der Bild B-Beispieltechnik in der Nähe übereinstimmen Das Ende dieses Artikels Kann zum Beispiel verwendet werden in:
Feature-Tracking Ich kann Ihnen nicht so viel darüber erzählen, wie dies gemacht wird, da ich selbst nicht viel Tracking gemacht habe, aber ich kann Ihnen einige Beispiele geben, wann dies nützlich sein könnte. Die Idee ist, einige Punkte von Interesse auszuwählen und dann ihre Position im Video von Bild zu Bild zu verfolgen. Beispiele (ich habe gesehen):
quelle
Es gibt eine Website, auf der Sie viele Informationen zu Ihren Fragen finden: http://www.robots.ox.ac.uk/~vgg/research/affine/
Es enthält Informationen zu Feature-Detektoren und Deskriptoren, deren aktuelle Leistung und welche in welchem Szenario am besten ist.
Dieses Feld hat noch viel zu tun.
Wenn Sie beispielsweise eine Stereorekonstruktion durchführen möchten, schlagen diese Algorithmen normalerweise bei Bildern mit mehreren Blickwinkeln fehl. Sie können etwas davon versuchen.
quelle