du machst ein bild, digitalisierst es und jagst deinen Algorithmus drauf
Hallo alle zusammen
Bin in dem Gebiet Objekterkennung noch relativ neu und auch hier im Forum und habe deshalb auch noch nicht so den Überblick was alles schon erwähnt und geschrieben wurde. Deshalb entschuldige ich mich sollte mein Anliegen hier schön ausreichent diskutiert worden sein.
Es geht hierbei um folgendes. Ich haben ein Programm das auf ein Bild den Canny-Algorithmus anwendet, mir also die Kanten findet. Mein Ziel ist es nun erstmal ganz einfache Objekte(Quadrat Kreis Dreieck ) erkennen zu können(größenunabhängig). Neuronale Netze wollte ich hier nicht verwenden da das für den zweck wohl etwas überzogen ist. Mein Problem ist nun das ich bis jetzt noch nicht wirklich einen Überblick habe wie die eigentliche Erkennung ablaufen kann und welche Möglichkeiten es gibt.
Wäre euch sehr dankbar wenn mir jemand einen Überlick und Tips geben könnte.
Gruss Spongebob
du machst ein bild, digitalisierst es und jagst deinen Algorithmus drauf
Eine echte Experten-Antwort ...du machst ein bild, digitalisierst es und jagst deinen Algorithmus drauf
Spongebob: Wenn du die (geschlossenen) Linienzuege der Objekte hast (also ohne Luecken), kannst du fuer den Anfang versuchen, das Verhaeltnis von Umfang und Flaeche zu bestimmen. (Kompaktheit). Man kann es so skalieren, dass die Kompaktheit fuer einen Kreise =1 ist und bei anderen Objekten entsprechend groesser, je weiter sie von der Kreisform abweichen.
Du kannst auch die Ecken zaehlen, indem du den Kanten Richtungen zuordnest usw.
Weitere Merkmale, die invariant gegenueber Rotation, Bewegung und Skalierung sind, sind die sogenannten Momente. Einfach mal danach googeln, da findet sich sicher ne Menge.
Etwas aufwaendiger ist auch das Ausrechnen von Fourierdeskriptoren der Linienzuege, damit kann man aber dann auch Buchstaben unterscheiden und das ganze auch relativ rotationsinvariant.
Hoffe das gibt erstmal ein paar mehr Anregungen als der letzte Beitrag ...
Grüße,
zefram
--
www.roboking.de - Jetzt bis zum 31. Mai 2007 anmelden für die fünfte Runde des großen Roboterwettbewerbs für Schüler aus Deutschland, Österreich und der Schweiz -
Noch ein Nachtrag: Um die gefundenen Kanten in Geradengleichungen umzuwandeln (fast wie in der Schule mit y=m*x+a, aber nur fast) ist die Hough-Transformation ganz nett. Die gibts auch etwas komplizierter fuer Kreise, Ellipsen ...
Und ueberhaupt zu empfehlen: (Bernd?) Jaehne, Digitale Bildverarbeitung
Grüße,
zefram
--
www.roboking.de - Jetzt bis zum 31. Mai 2007 anmelden für die fünfte Runde des großen Roboterwettbewerbs für Schüler aus Deutschland, Österreich und der Schweiz -
Hi Zefram
Ich danke dir für deine Antwort. Ich werde mal noch etwas in die Richtung die du angesprochen hast lesen und hoffe das es mich weiter bringt. Das mit der Houghtransformation hatte ich mir auch überlegt, nur hab ich jetzt gelesen das dieser Ansatz zumindest für die Erkennung von Kreisen Ellipsen usw. in der Praxis nicht weiter verfolgt wird(Steinbrecher).
Gut das du mich darauf bringst. Ich habe mir vor kurzen sogar persönlich von Herrn Jähne das Buch ausgeliehen . Werd es dann doch nochmal etwas Gründlicher anschauen.
Wenn du sonst noch gute Quellen kennst oder so bin ich natürlich sehr dankbar für jede Info die mich weiterbringt.
Gruß
Spongebob
Hi eFFex
Du hättest doch bei deiner Antwort nicht so ins Detail gehen brauchen aber danke für die Mühe
Gruß
Spongebob
war auf Grund der frühen Morgenstunde zu müde, deine frage voll zu erfassen. ich dachte du hättest deinen Algorithmus und wüsstest nichts damit anzufangen..........=)
Hallo zusammen,
Wie schließt man denn die Lücken am besten, die beim Canny-filtern entstehen?
Hab gegoogled und schon mal herausgefunden, dass die Lücken an Kreuzungspunkten auf die Non-Maximum-Suppression zurückzuführen ist. Ein interessanter Lösungsansatz scheint mir eine zusätzliche Eckendetektion zu sein, aber irgendwie funktioniert das alles noch nciht so, wie ich's mir vorstelle.
Würde mich sehr freuen wenn ihr mir irgendwie weiterhelfen könntet.
Gruß
BlackyJack
Stichwort: morphologische operationen, closing, opening, dilation, erosion.Wie schließt man denn die Lücken am besten, die beim Canny-filtern entstehen?
Was du moechtest laesst sich zu nem bestimmten Ausmass mit Closing loesen.
Fuer Objekterkennungen lohnt es sich, die per Kantendetektor (Canny, Sobel ...) gefundenen Kanten auf ihre Skelettlinie zu reduzieren. (Skelettierung)
Stichwort Harris Corner Detectoreine zusätzliche Eckendetektion
Grüße,
zefram
--
www.roboking.de - Jetzt bis zum 31. Mai 2007 anmelden für die fünfte Runde des großen Roboterwettbewerbs für Schüler aus Deutschland, Österreich und der Schweiz -
Lesezeichen