Re: Fragen zum Thema Mustererkennung
Moin moin,
Als Programmier-Fortgeschrittener habe ich mich selber mal an
das Thema Mustererkennung herangewagt und ein kleines Programm
geschrieben, das ein Bild auf dem Desktop erkennen soll. Ich
habe es so zu lösen versucht, indem der Desktop Pixel für
Pixel nach Übereinstimmungen abgesucht wird. Allerdings lief
das Ganze, wie zu erwarten, sehr langsam ab.
Nun zu den Fragen:
Wie lässt sich das optimieren?
Wie arbeitet das Gehirn, um zum Beispiel ein Gesicht zu
erkennen? (bestimmt nicht Pixel für Pixel...)
Und wie kann ich ein mögichst "Gehirn-nahes" Programm
schrieben?
Und gibt es dafür irgendwelche erfolgreichen Ansätze in der
Gegenwart?
Optimieren läßt es sich, indem du Merkmale im Bild findest und extrahierst.
Da gibt es eine unzahl von Möglichkeiten:
- Farbmerkmale
- Formmerkmale
- Histogrammbasierte Merkmale
- Übergangsmatrizen für Grauwertübergänge
und noch viel mehr.
Aktuell in der Forschung wird meines Wissens viel mit sogenannten SIFT-Merkmalen (SIFT = Scale Invariant Feature Transformation) verwendet.
Diese Merkmale haben die schöne Eigenschaft, daß sie Invariant gegenüber Rotationen, Skalierungen, annäherend zu Beleuchtungsänderungen und sogar annäherend invarient bezüglich 3D-Ansichtsänderungen.
Auch relativ neu (lustigerweise habe ich die versucht in meiner Diplomarbeit selber zu implementieren ^_^) sind MSER (Maximal Stable Extremal Regions).
Sie besitzen ähnliche Invarianzeigenschaften wie die SIFT-Merkmale.
Die o.g. Merkmalsarten sind jedoch nicht sonderlich trivial zu implementieren.
Es gibt also eine Unzahl von Methoden für unterschiedliche Anforderungen.
Schau einfach mal bei scholar.google vorbei - da lassen sich viele Wissenschaftliche Papers finden.
Mithilfe der Merkmalsextraktion wird bereits versucht die Wahrnehmung des Menschen zu immitieren. Es ist jedoch nicht so einfach, da die meisten Verfahren entweder nur auf Farbe, nur Form oder nur Grauwerten basieren. Da ist die aktuelle Forschung leider nocht längst nicht so weit :)
Grüße
Björn