Marker im 2D-Bild erkennen

8

Ich hoffe, ein wenig Hilfe bei der 2D-Objekterkennung zu bekommen. Ich werde einen kurzen Überblick über den Kontext geben, in dem dies umgesetzt wird.

Es wird ein Bild von der Decke gemacht. Die Decke wird mit Markierungen versehen, so dass die Ausrichtung der Kamera bestimmt werden kann. Die Bilder werden immer nach oben gerichtet aufgenommen. Mein Ziel ist es, einen dieser Marker im Bild zu erkennen und seine Rotation zu bestimmen. Daher werden Rotation und Skalierung (in einem geringeren Ausmaß) die zwei Hauptfaktoren sein, die bei der Bilderfassung verwendet werden. Ich werde die Software entweder in C # oder Matlab schreiben (noch nicht ganz sicher).

Der Marker könnte beispielsweise ein Pfeil wie dieser sein:

Ein Bild von der Decke würde Markierungen enthalten. Die Software muss einen einzelnen Marker erkennen und feststellen, dass er um 170 Grad gedreht wurde.

Ich habe keine Erfahrung mit Bildanalyse. Ich weiß, dass die Bildverarbeitung ein ziemlich breites Thema ist und ich hoffe, dass ich einen Rat bekommen kann, in welche Richtung ich gehen soll und welche Techniken für meine Anwendung am besten geeignet sind. Danke!

    
Mav3rick 08.11.2009, 23:39
quelle

6 Antworten

3

Ich würde MATLAB empfehlen oder wenn Sie C # verwenden möchten, Emgu CV ist hübsch gut.

Hough-Transformationen sind eine großartige Idee. Sobald Sie die Kanten in Ihrem Bild erkannt haben, z. B. mit einem Canny-Kantendetektor , erhalten Sie ein Kantenbild (das binär ist) Bild mit nur 1 oder 0 für Werte).

Dann transformiert die Hough-Geradentransformation (im Wesentlichen) eine Linie um jedes weiße Pixel im Kantenbild (die Auflösung der Linie hängt von Ihnen ab) unter Verwendung einer parametrisierten Funktion für die Linie und berechnet die Gesamtanzahl von Weiß (geschätzt bei 1) Pixel entlang jeder gesponnenen Linie und speichert diese Information in einem großen Akkumulator, der die Daten speichert, die durch die Parameter der Linie indiziert sind.

alt text http://upload.wikimedia.org/wikipedia/en/a/af /Hough_space_plot_example.png

Im obigen Beispiel lautet die parametrische Form für eine Zeile:

%Vor%
  

wo rho ist die Entfernung und Theta ist   der Winkel

Wie Sie sehen können, können Sie herausfinden, wie viele Zeilen in diesem Winkel ausgerichtet sind. Natürlich musst du etwas mehr Arbeit aufwenden, um herauszufinden, welche Linien in diesem Winkel ausgerichtet sind, da du 5 andere Linien pro Pfeil hast, aber das sollte nicht zu schwer sein.

    
Jacob 09.11.2009, 05:05
quelle
4

Ich bin nicht direkt in diesem Bereich, aber ich würde Ihnen sagen, dass Sie mit der Kantenerkennung beginnen sollten. Wenn Sie einen Hintergrund in Mathe / Technik haben, sind die Materialien ziemlich einfach zu verstehen:

Dies schien einige Ideen zu wecken: Ссылка

    
Dlongnecker 08.11.2009 23:46
quelle
3

Wie immer in der Computer Vision ist Ihr erstes Problem die Bildbeleuchtung und -akquisition. Bevor Sie fortfahren, stellen Sie fest, wie Ihre Marker an der Decke gedruckt werden, wie ihre Form aussieht, mit welchem ​​Licht Sie sie sehen und mit welcher Kameraeinstellung Sie sich die Marker ansehen.

Wenn Sie ein gutes Material, ein gutes Licht und eine gute Kamera haben, haben Sie möglicherweise kein Problem, das Bild zu verarbeiten. Sie können zum Beispiel einen vollen Pfeil in einem retro-reflektierenden Material drucken, mit einem längeren Schwanz als Ihr Beispiel, verwenden Sie ein farbiges Licht und einen entsprechenden Filter auf der Kamera. Alles, was du auf deinem Bild hast, sind Pfeile ... es gibt viele andere Möglichkeiten, das Bild zu erhalten, das dir dort helfen wird.

Sobald Sie einfache Pfeile haben, gibt Ihnen eine einfache Blob-Analyse (die aus der Berechnung statistischer Momente von Objekten im Bild besteht) viele Informationen: Jeder Pfeil sollte Werte haben, die für die 7 hu-Momente fast gleich sind Um Objekte effizient zu filtern, gibt Ihnen die aus den zentralen Momenten berechnete Orientierung den Winkel des Pfeils. Blob-Analyse ist nur statistisch, es ist extrem schnell.

    
Adrien Plisson 09.11.2009 08:00
quelle
3

Mehrere Systeme wurden entwickelt, um Marker und ihre Orientierung robust zu erkennen:

Wenn Ihr primäres Ziel nicht darin besteht, zu lernen, sondern die Anwendung funktionieren zu lassen, würde ich vorschlagen, dass Sie eine davon verwenden. Es ist keine einfache Aufgabe für einen Anfänger, die Position und Orientierung eines zufälligen Markers in einem Bild zuverlässig zu erkennen.

Andererseits, wenn Sie sehr daran interessiert sind, zu lernen, würde ich Sie auch zu ARToolKit und seine Publikationen (und ihre Referenzen) , die erklären, wie Marker-Erkennung robust implementiert werden kann.

    
Ivan 09.11.2009 09:48
quelle
2

Sie müssen Kantenerkennung untersuchen, also schauen Sie in Hough-Filter. Danach müssen Sie in Muster-Klassifikatoren und Feature-Extrahierung schauen.

Dieses Dokument enthält einen Algorithmus, der ohne Kantenerkennung zu funktionieren scheint. Dieser Buchauszug ist mehr ausgerichtet auf die Art der Symbolerkennung, die Sie beabsichtigen, sobald Sie die Kantenerkennung durchgeführt haben.

    
Heath Hunnicutt 08.11.2009 23:52
quelle
1

Eine rigorose Methode zur Bestimmung der Ausrichtung eines Bildes, das unter projektiver Geometrie aufgenommen wurde (die meisten Kameras), besteht in den Fluchtpunkten und Fluchtlinien . Gute Nachrichten für Sie: Ihr Marker kann verwendet werden, um diese Informationen zu finden! Weitere gute Nachrichten, Ihr Bild kann korrigiert sein, so dass die Bildspalten (die y-Achse) der Aufwärts-Abwärts-Richtung entsprechen. Mehr zu diesem Thema finden Sie in Kapitel 8 von Hartley und Zisserman's Buch, Multiple View Geometrie in Computer Vision .

Denken Sie auch daran, dass Sie wahrscheinlich an dem radialen Verzerrungsproblem , der Verzerrung, die durch das Kameraobjektiv verursacht wird, arbeiten müssen. Die anderen Jungs haben recht, wenn es um das Problem der Pfeilerkennung geht: Sie müssen Kantenerkennung und danach Hough-Transformation oder Template-Anpassung verwenden. Weitere Informationen finden Sie in Gonzalez und Woods Buch Digital Image Processing .

    
TH. 09.11.2009 12:10
quelle