Objekte auf Bild erkennen
-
Hallo,
ich habe Fotos, auf denen ich Objekte erkennen muss. Es ist ein weißer Untergrund. Wenn ich einzelne Farbwerte der Pixel auslese, dann sind die aber nicht alle weiß, sondern haben auch Mischtöne.
Andere Überlegung ist es über eine abgewandelte Biometrische Analyse zu machen.
Hat jemand Tips ???
Danke,
Jannik
-
sieht mir eher nach einem versuch captchas zu hacken aus
-
Hallo,
nein, das kenn ich nicht. Es werden Objekte auf den Tisch bzw. ein Blatt gestellt. Und dieses wird fotografiert und soll dann im Rechner auswertbar sein. Im PC können diese Objekte dann verschoben werden und diverse andere Dinge damit gemacht werden.##Jannik
-
Moderne Verfahren benutzen neuronale Netze, die auf "XYZ"-Erkennung trainiert sind. Ansonsten gibt es genug Literatur dazu im Netz.
Meines Wissen gibts es OpenSource-Libs für die Problematik.
Ansonsten musst du grundsätzlich mit "Erkennungs-Fehlern" umgehen können, theoretisch und praktisch.
Denn ein "B" ist mit großer Warscheinlichkeit auch eine "8" ...
Greetz
nurF
-
Dieser Thread wurde von Moderator/in akari aus dem Forum VCL (C++ Builder) in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Jannik schrieb:
Hallo,
[...]
Hat jemand Tips ???
[...]Drei Bücher IMHO recht sinnvoll sind:
Computer Vision: A Modern Approach (Forsyth, Ponce)
Pattern Classification: Pattern Classification Pt.1 (Duda, Hart, Stork)
Pattern Recognition and Machine Learning (Bishop)
-
Sieh dir mal die OpenCV - Bibliothek von Intel an
Mfg XBert
-
nurf schrieb:
Moderne Verfahren benutzen neuronale Netze, die auf "XYZ"-Erkennung trainiert sind.
Hast du Links dazu, also nicht zu neuronalen Netzen allgemein, sondern genau zu dieser "XYZ"-Erkennung?
-
Da wirst du in Bezug auf Gesichtererkennung bei Webcams eine Menge im Netz finden (Bild in Bild erkennung). Ich meine, mal einen recht ausführlichen Artikel auf Codeproject darüber gelesen zu haben.
-
nurf schrieb:
Moderne Verfahren benutzen neuronale Netze, die auf "XYZ"-Erkennung trainiert sind.
Das bezweifle ich ehrlich gesagt. Neuronale Netze sind weder besonders modern, noch für irgendwelche Dinge besonders gut ausgelegt. Dafür kann man ziemlich viel damit machen, sie sind sozusagen für jedes Problem die zweitbeste Lösung. Wenn man aber mehr Informationen hat, dann möchte man die normalerweise lieber direkter ausnutzen.
Generell wird eine Objekterkennungsaufgabe in mehere Schritte aufgeteilt:
1)Sensierung: Aufnahme des Bildes (vielleicht kannst Du an den Beleuchtungsparametern was drehen um spätere Schritte zu vereinfachen
- Segmentierung: Zerlegen des Bildes in verschiedene Bereiche (z.B. Hintergrund vs. Objekt, hier gibt es einfach Schwellwert-Techniken auf dem Grauwert, aber auch kompliziertere Verfahren, die gewisse Formen extrahieren.
Nach Schritt 2) hat man einige Bereiche des Bildes gefunden (sogennante regions of interest = roi), die einen näher interessieren. Diese kann man nun ausschneiden, evtl. etwas bearbeiten (entrauschen, auf normgröße skalieren oä)
- Extraktion von Merkmalen
Das kann das Bild an sich sein, aber auch Grauwertverteilungen, Kantenlängen, Fourierdeskriptoren, Hauptkomponenten Länge/Breite/Umfang oder was eben sonst sinnvoll ist. Eine gute Menge von Merkmalen zu finden, die geeignet ist, die Klassifikationsaufgabe robust durchzuführen, ist ein wesentlicher Schritt und entscheidend für den Erfolg des Gesamtsystems.
4)Klassifikation
Das kann man mit einem neuronalen Netz machen, es geht aber auch mit diversen anderen Verfahren, etwa Support-Vektor-Maschinen oder auch simplen k-nearest-neighbor oder schablonen-basierten Ansätzen. Bei geeigneter Wahl der Merkmale lässt sich hier oft viel gewinnen.Gerade für den vierten Schritt gibt es auch einiges an Software, nachdem man Schritte 1),2),3) umgesetzt hat, kann man damit Testdaten erzeugen und einfach mal mit verschiedenen Klassifikatoren rumspielen. Einige der Tools können sogar direkt Code für den Klassifikator erzeugen. Wenn's noch nicht so gut klappt lohnt es sich evtl. auch nochmal zu einem der vorigen Schritte zurück zu gehen.
-
Jester schrieb:
4)Klassifikation
Das kann man mit einem neuronalen Netz machen, es geht aber auch mit diversen anderen Verfahren, etwa Support-Vektor-Maschinen oder auch simplen k-nearest-neighbor oder schablonen-basierten Ansätzen. Bei geeigneter Wahl der Merkmale lässt sich hier oft viel gewinnen.Gerade für den vierten Schritt gibt es auch einiges an Software, nachdem man Schritte 1),2),3) umgesetzt hat, kann man damit Testdaten erzeugen und einfach mal mit verschiedenen Klassifikatoren rumspielen. Einige der Tools können sogar direkt Code für den Klassifikator erzeugen. Wenn's noch nicht so gut klappt lohnt es sich evtl. auch nochmal zu einem der vorigen Schritte zurück zu gehen.
Bezüglich des 4. Punktes kann ich übrigens auch sehr dieses eine Buch empfehlen, das schon genannt wurde:
Pattern Classification: Pattern Classification Pt.1 (Duda, Hart, Stork)
-
Gregor@Uni schrieb:
Jester schrieb:
4)Klassifikation
Das kann man mit einem neuronalen Netz machen, es geht aber auch mit diversen anderen Verfahren, etwa Support-Vektor-Maschinen oder auch simplen k-nearest-neighbor oder schablonen-basierten Ansätzen. Bei geeigneter Wahl der Merkmale lässt sich hier oft viel gewinnen.Gerade für den vierten Schritt gibt es auch einiges an Software, nachdem man Schritte 1),2),3) umgesetzt hat, kann man damit Testdaten erzeugen und einfach mal mit verschiedenen Klassifikatoren rumspielen. Einige der Tools können sogar direkt Code für den Klassifikator erzeugen. Wenn's noch nicht so gut klappt lohnt es sich evtl. auch nochmal zu einem der vorigen Schritte zurück zu gehen.
Bezüglich des 4. Punktes kann ich übrigens auch sehr dieses eine Buch empfehlen, das schon genannt wurde:
Pattern Classification: Pattern Classification Pt.1 (Duda, Hart, Stork)
Das hier?!
Pattern classification | ISBN: 0471056693
Ich fand die APR (Advances in Pattern Recognition) des Springer Verlages sehr interessant:
Principles of Visual Information Retrieval | ISBN: 1852333812
Statistical and Neural Classifiers | ISBN: 1852332972
Advanced Algorithmic Approaches to Medical Image Segmentation | ISBN: 1852333898
Object Recognition | ISBN: 1852333987
Computer Vision Beyond the Visible Spectrum | ISBN: 1852336048
Hexagonal Image Processing | ISBN: 1852339144
Support Vector Machines for Pattern Classification | ISBN: 1852339292
Weiterhin kann man Supportwerke gebrauchen, wie z.B.
-
Prof84 schrieb:
Das hier?!
Ja, das ist meiner Meinung nach ein sehr gutes Buch.
Weiterhin kann man Supportwerke gebrauchen, wie z.B.
Ich kenne nur das letztere, aber was hat dieses Buch denn mit dem Thema zu tun? Kombinatorische Optimierung und Objekterkennung sind nun nicht gerade zwei eng verwandte Bereiche.
-
Jester schrieb:
Ja, das ist meiner Meinung nach ein sehr gutes Buch.
Ok, ich bestelle es mir mal.
Jester schrieb:
Ich kenne nur das letztere, aber was hat dieses Buch denn mit dem Thema zu tun? Kombinatorische Optimierung und Objekterkennung sind nun nicht gerade zwei eng verwandte Bereiche.
Ja, aber logisch! Erfolgreiche Mustererkennung setzt sich aus einer Komposition von unterschiedlichen Methoden und Prozessen zusammen. Die Taxonomie und Skalierung der unterschiedlichen Techniken wird durch Themen wie Kombinationsoptimierung und Constraint Prozessing abgedeckt.
-
Prof84 schrieb:
Jester schrieb:
Ja, das ist meiner Meinung nach ein sehr gutes Buch.
Ok, ich bestelle es mir mal.
Ob es für Dich das Richtige ist, ist eine andere Frage. Das ist praktisch ein Grundlagenbuch zur Mustererkennung. Aber Du wirst in dem Zusammenhang vermutlich eh schon jede Menge Wissen haben.
-
Prof84 schrieb:
Ja, aber logisch! Erfolgreiche Mustererkennung setzt sich aus einer Komposition von unterschiedlichen Methoden und Prozessen zusammen.
Meiner Erfahrung nach ist es weniger der Optimierungsalgorithmus als die Zielfunktion selbst (und natuerlich die Trainingsdaten), die gute Mustererkennung macht. Es ist sicher nicht verkehrt etwas ueber effiziente Algorithmik und Optimierung/Relaxation zu wissen, aber man sollte seine Zeit lieber in Statistik und anderes maschinelles Lernen stecken, und die Optimierung den Optimierungsfachleuten ueberlassen. Nicht umsonst gibts eine grossen Menge an Softwarepaketen, die eine constraintbehaftete Zielfunktion optimieren koennen.
-
Korbinian schrieb:
Meiner Erfahrung nach ist es weniger der Optimierungsalgorithmus als die Zielfunktion selbst (und natuerlich die Trainingsdaten), die gute Mustererkennung macht. Es ist sicher nicht verkehrt etwas ueber effiziente Algorithmik und Optimierung/Relaxation zu wissen, aber man sollte seine Zeit lieber in Statistik und anderes maschinelles Lernen stecken, und die Optimierung den Optimierungsfachleuten ueberlassen. Nicht umsonst gibts eine grossen Menge an Softwarepaketen, die eine constraintbehaftete Zielfunktion optimieren koennen.
Ich bin anderer Meinung und habe auch andere Erfahrung gemacht.
Ich bin der Überzeugung das aufgrund der extremen Komplexität, wie zum Bleistift beim "Natural Language Processing" ein scharfes Scoping auf einzelne Prozesse und Methoden - Du nennst es Zielfunktionen - nicht zum Erfolg führen, noch geführt haben.
Derzeit existierende Lösungen sind doch zu stark in der Anwendbarkeit eingeschränkt.
-
Prof84 schrieb:
Ich bin der Überzeugung das aufgrund der extremen Komplexität, wie zum Bleistift beim "Natural Language Prozessing" ein scharfes Scoping auf einzelne Prozesse und Methoden - Du nennst es Zielfunktionen - nicht zum Erfolg führen, noch geführt haben.
Schoen dass du NLP ansprichst. Gerade in diesem Gebiet wurde /viel mehr/ durch modellierung erreicht denn durch optimierung. Ich moechte damit nur sagen, dass wenn man sich in das Gebiet Mustererkennung einarbeiten will, es viel sinnvoller ist, seine Zeit in Modellierung und Statistik zu stecken als in die kryptische Mathematik der (numerischen oder kombinatorischen) Optimierung. Die besten Optimierungen helfen nichts, wenn das Modell nix taugt. Wenn du natuerlich Zeit fuer beides hast, und neben dem Modell auch noch die numierische optimierung aus dem aermel schuettelst, na dann viel Erfolg. Ist aber kein Zufall, dass es wenig Experten fuer beide Enden gibt, da einfach beide Seiten zu komplex sind...
-
Korbinian schrieb:
Schoen dass du NLP ansprichst. Gerade in diesem Gebiet wurde /viel mehr/ durch modellierung erreicht denn durch optimierung. Ich moechte damit nur sagen, dass wenn man sich in das Gebiet Mustererkennung einarbeiten will, es viel sinnvoller ist, seine Zeit in Modellierung und Statistik zu stecken als in die kryptische Mathematik der (numerischen oder kombinatorischen) Optimierung. Die besten Optimierungen helfen nichts, wenn das Modell nix taugt.
Ja, bin ich mit Dir d' accord!
Korbinian schrieb:
Wenn du natuerlich Zeit fuer Beides hast, und neben dem Modell auch noch die nummrische optimierung aus dem aermel schuettelst, na dann viel Erfolg. Ist aber kein Zufall, dass es wenig Experten fuer beide Enden gibt, da einfach beide Seiten zu komplex sind...
Es sind sogar bei mir vier Enden in der MDD (ich bevorzuge den Begriff Konzeptionierung):
- Application Models
- Domain Models
- Refactoring Models
- Scientific & Empirical Laws (Mathematische und algorithmische Beschreibung, die in der Kompexibilitätstheorie eindeutig erfassbar sind - sind aber auch Modelle)
Ich habe bis heute ungefähr ein Duzend Wissenschaftler gefunden, die sich in diesen Tetraeder bewegen. Wir arbeiten hierbei in der automatischen Konzeption mit gerichteten und zufälligen Entwicklungen. Dabei spielen Musterklassifikationen und -erkennung eine Schlüsselrolle.
Unter den Punkten 3 und 4 verstehst Du wahrscheinlich die Optimierung und unter Punkt 1 und 2 wohl das was Du mit Modellierung meinst.
-
klingt für mich eher so, als wäre genau dieser ganzheitliche aspekt thema der forschung
wenn man zielgerichtet genau ein problem lösen möchte - gerade in der wissenschaft - dann ist es nicht nur opportun, sondern unglaublich hilfreich, wenn man soviele teilprobleme wie möglich durch standardverfahren löst. das spart nicht nur zeit, sondern hält auch den kopf für das eigentliche problem frei.