mustervergleich



  • Hallo!

    Ich sitz shcon ziemlich lange an einem projekt, bei dem es schliesslich um das vergleichen von mustern geht, aber da kenn ich mich noch nicht so gut aus mit...
    hier mal ein beispiel:
    http://images3.pictiger.com/images/c6/209de774b5ee5c41e3f0031e8b873ac6.jpg

    das sind bauchmuster von tieren, aber darum gehts erstmal nciht.

    Das Programm soll jetzt sagen, ob diese beidne Muster gleich, bzw. wie ähnlich sie sind. Zur Zeit vcergleiche ich jeden Pixel mit dem entsprechenden auf dem anderen Muster. Wenn sie stimmen gits einen punkt, wenn nicht, dann nicht. Zum schluss teile ich erreichte punkte durch mögliche punkte (=anzahl pixel) und komme so auf einen ähnlichkeitswert. Bei diesem Beispiel beträgt der aber auch leider nur 70% oder so ähnlich.

    Wie man aber sieht, stimmen die muster nicht so sehr pixel für pixel überein, sondern eher in den formen, also die schwarzen flecken sind bei beiden mustern gleichförmig. Und das ist mein Problem, ich weiß nicht, wie ich die beiden Muster sonst noch vergleichen kann als auf pixelebene. Hat jemand vielleicht eine idee oder wieß wie man sowas machen kann?

    edit: der blaue rand in dem bild zeigt an, dass der rand nicht bewertet wird, weil da sowieso fast alle muster schwarz sind

    Gruß, Maxi



  • also erkennung von formen ist IMO sehr schwierig. ein anfang wäre, die farben zu reduzieren, da dadurch die form-erkennung einfacher wird.....

    aber dann kommt halt die erkennung der form, und die ist schon schwieriger.....



  • kantenerkennung waer ein anfang.



  • @loki:
    die Bilder sind schon auf rot oder schwarz reduziert, noch mehr kann man niht reduzieren 🙂

    @c.rackwitz: Wie meinst du das mit kanten erkennung? Kann damit jetzt auf die schnelle erstmal ncihts anfangen

    maxi



  • meld dich mal bei mir per icq. ich hab da ein paar texte fuer dich ueber mustererkennung, die ich mal hochladen werde.



  • Vielleicht könnte man da auch über eine "Eckendetektion" (andere Stichwörter: interest point detection, corner detection) herangehen. Wenn du die Ecken hast, hast du vielleicht soetwas ähnliches wie diese Merkmale, die bei dem Vergleich von Fingerabdrücken genommen werden. Dazu würde es dann sicherlich jede Menge Material im Netz geben, wo erklärt wird, wie man solche "Karten" von "Interest Points" am Besten miteinander vergleicht.



  • @crackwitz: hab grad kein icq zur hand, kannst du mir auch mailen?
    -cut-
    wär ganz lieb 🙂 ich lösch die adresse dann wieder, wenns angekommen ist

    @gregor: Ich such mal nach interest points usw. Vielleicht find ich ja was schickes 🙂

    edit: gibt es libs, die so harris-filter oder sowas schon implementiert haben? Da scheints ja ne menge algos für zu geben, vielleicht gibts da auch bibliotheken für?

    Maxi



  • Maxi schrieb:

    @gregor: Ich such mal nach interest points usw. Vielleicht find ich ja was schickes 🙂

    Was die Detektion betrifft, hätte ich da schon was für dich. ...ist aber vielleicht ein bischen "Overkill" für deine Anwendung hier:

    http://kogs-www.informatik.uni-hamburg.de/~koethe/papers/abstracts/structureTensor.html



  • och overkill ist nich so schlimm, ich kann eigentlich ganz gut das wichtige von dem zZ noch unwichtigem unterscheiden, und ausserdem trainierts englisch 🙂
    hab auch schon paar MB pdfs gezogen, die sowas behandeln.



  • Maxi schrieb:

    edit: gibt es libs, die so harris-filter oder sowas schon implementiert haben? Da scheints ja ne menge algos für zu geben, vielleicht gibts da auch bibliotheken für?

    http://kogs-www.informatik.uni-hamburg.de/~koethe/vigra/



  • hey, cool!

    das sieht auf den ersten blick wirklich gut aus, wsa die alles kann, ich zieh sie grad und schau sie mir dann mal an, muss dann aber auch erstmal off gehen, hab mein prog-pc unten im keller ohne inet 🙂

    gruß, Maxi



  • so, vigra läuft und spuckt mir schöne kanten bzw. eck-pounkte aus. jetzt muss ich die noch vergleichen.

    Aber mir fallen dazu keine richtigen stichworte ein... vielleicht habt ihr ne idee?



  • in einem der pdfs waren techniken fuer sowas... wobei ausrichtung oder groesse nichts ausmacht. wie diese techniken sich nennen, hab ich nicht behalten.



  • Maxi schrieb:

    so, vigra läuft und spuckt mir schöne kanten bzw. eck-pounkte aus. jetzt muss ich die noch vergleichen.

    Aber mir fallen dazu keine richtigen stichworte ein... vielleicht habt ihr ne idee?

    Ich weiß auch nicht, wie das geht. Aber eine Idee, die ich jetzt gerade habe, wäre folgende:

    Man könnte sich mit Hilfe der gefundenen Eckpunkte einen vollständigen Graphen erstellen, dessen Knoten die Eckpunkte wären und dessen Kanten mit den Distanzen zwischen den einzelnen Eckpunkten bewertet wären. Da gibt es dann bestimmt Algorithmen, mit denen man testen kann, ob die Graphen zweier solcher Muster Teilgraphen besitzen, die sich stark ähneln.

    ...ist jetzt aber nur so ein Gedanke gewesen. Ich weiß nicht, ob man das so macht und ob das überhaupt sinnvoll ist.

    EDIT: Ich habe mal geguckt, ob ich da etwas mit Google finde. Möglicherweise ist da "point matching" ein ganz guter Suchbegriff. Kannst ja selbst mal gucken.


Anmelden zum Antworten