5

Ich suche ein bestimmtes Objekt in meinem Foto:Der beste Ansatz für eine bestimmte Aufgabe zur Objekterkennung/Bilderkennung?

Objekt: Umriss eines Rechtecks ​​mit einem X in der Mitte. Es sieht aus wie ein rechteckiges Kontrollkästchen. Das ist alles. Also, keine Füllung, nur Linien. Das Rechteck wird die gleichen Verhältnisse von Länge zu Breite haben, aber es könnte jede Größe oder jede Drehung in der Fotografie sein.

Ich habe eine ganze Reihe von Bilderkennung Ansätze betrachtet. Aber ich versuche das Beste für diese spezielle Aufgabe zu finden. Am wichtigsten ist, das Objekt besteht aus Linien und ist keine gefüllte Form. Außerdem gibt es keine perspektivische Verzerrung, so dass das rechteckige Objekt immer rechte Winkel im Foto hat.

Irgendwelche Ideen? Ich hoffe auf etwas, das ich relativ einfach umsetzen kann.

Vielen Dank.

+0

Die Ebene des X wird immer parallel zur Ebene des Bildes sein, das ich annehme? Also keine perspektivische Verzerrung des X? –

+0

Aktualisierte Frage, siehe oben. (keine Verzerrung, der Standpunkt wird perfekt orthogonal zum Objekt sein, ich hoffe, dass die Terminologie korrekt ist, aber ich denke, Sie wissen, was ich meine). – Ryan

Antwort

0

Sie können lokale Merkmale verwenden, um das Objekt im Bild zu identifizieren. Feature detection wiki

Zum Beispiel können Sie Funktionen auf einem Referenzbild berechnen, das nur das Objekt enthält, nach dem Sie suchen, und die Ergebnisse speichern, sagen wir mal in einer einfachen Textdatei. Danach können Sie nach dem Objekt suchen, indem Sie einfach neu berechnete Merkmale (auf Bildern mit einigen komplexen Szenen, die das Objekt enthalten) mit den Referenzwerten vergleichen.

Hier einige gute Ressource auf lokale Besonderheiten: Local Invariant Feature Detectors: A Survey

3

Sie könnten versuchen, eine Ecke Detektor (zB Harris), um die Ecken der Box zu finden, die Enden und den Schnittpunkt der X, die das Problem vereinfacht um Punkte in der richtigen Konfiguration zu finden.

Edit (Antwort auf Kommentar):

Ich gehe davon aus Sie die Eckpunkte in Ihrem Bild finden, die vier Ecken des Rechtecks, die vier Zeilenende der X- und der Mittelpunkt des X, und einige andere Ecken im Bild aufgrund von Rauschen oder Objekten im Hintergrund. Dies vereinfacht das Problem, eine Menge von 9 Punkten in der richtigen Konfiguration aus einer gegebenen Menge von Punkten zu finden.

Mein erster Versuch wäre, jeden Eckpunkt A zu betrachten. Dann würde ich über die Punkte B in der Nähe von A iterieren. Wenn ich nun annehme, dass (A) die obere linke Ecke des Rechtecks ​​und B ist In der unteren rechten Ecke kann ich leicht berechnen, wo ich die anderen Eckpunkte im Bild erwarten würde. Ich würde eine Suche nach dem nächsten Nachbarn benutzen (oder eine Bibliothek wie FLANN), um zu sehen, ob es Ecken gibt, wo ich sie erwarte. Wenn ich eine Menge von Punkten finden kann, die diesen erwarteten Positionen entsprechen, weiß ich, wo das Symbol wäre, wenn es im Bild vorhanden ist.

Sie müssen versuchen, wenn das für Ihre Anwendung gut genug ist. Wenn Sie zu viele False-Positives haben (Eckensets anderer Objekte, die zufällig ein Rechteck + X bilden), könnten Sie prüfen, ob Linien vorhanden sind (d. H. Hoher Kontrast in der richtigen Richtung), wo Sie sie erwarten würden. Und Sie können prüfen, ob der Kontrast niedrig ist, wenn keine Linien im Muster vorhanden sind. Dies sollte relativ einfach sein, sobald Sie die Punkte im Bild kennen, die den Ecken/Linienenden in dem Objekt entsprechen, nach dem Sie suchen.

+0

Können Sie etwas mehr darüber erklären, wie Sie nach einer Ecken- oder Kantendetektion die "Suche" durchführen können? Weil ich beides implementiert habe und sehen kann, dass es Objektmerkmale definitiv aufnimmt. Aber was ist mein nächster Schritt, um einen Algorithmus ausführen zu können und ihn entweder wahr oder falsch zurückgeben zu lassen, dass das Objekt in diesem gegebenen Foto liegt oder nicht? Die eigentliche Funktion "Suche" ist, worauf ich mich wackelig bin. Vielen Dank. – Ryan

1

Ich würde vorschlagen, die Generalized Hough Transform. Es scheint, dass Sie eine ziemlich einfache, feste Form haben. Die verallgemeinerte Hough-Transformation sollte in der Lage sein, diese Form bei jeder Drehung oder Skalierung im Bild zu erkennen. Sie müssen das ursprüngliche Bild schwellen oder es auf irgendeine Weise vorverarbeiten, damit diese Methode nützlich ist.

Verwandte Themen