Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Formerkennung (https://www.delphipraxis.net/119026-formerkennung.html)

clock50 19. Aug 2008 23:33


Formerkennung
 
Hallo zusammen,

ich habe mal wieder eine naja Verrückte Idee: Wenn ich nun ein Bild lade und nun Formen erkennen will z.B. Zahlen wie müßte man dann vorgehen?

Also ich habe mir schon mal Gedanken gemacht:
1. ich weiß wonach ich Suche (ziffern 0-9)
2. ich weiß nicht welche Farbe - also mache ich alles erstmal grau besser noch schwarz und weiß
3. ich weiß nicht wie groß das ist was ich suche - nun muß ich alle Farbunterschiede finden und selektieren - dann versuche ich die vorgaben (ziffern) an die größe der selektierten Flächen anzupassen und füge sie in die Fläche ein dann muß ich sehen wie groß nun der Anteil von schwarz ist - wo nun der schwarzanteil am grösten ist das könnte es sein

oder sehe ich das ganz falsch? hat jemand ne bessere Idee?

Torpedo 19. Aug 2008 23:57

Re: Formerkennung
 
Zuerst würde ich das Bild mal in kleinere Bilder unterteilen.
Also wenn du ein Bild mit 3 Ziffern hast, die einzelnen Ziffern rausschneiden.
Man könnte das so machen, dass man einfach schaut, wo ein schwarzer Pixelhaufen ist, der komplett von weißen Pixeln (Toleranz nicht vergessen) umkreist ist.
Dann diese Bilder mit vorgefertigten Bildern vergleichen und schauen zu welchen es die meisten Gemeinsamkeiten hat...

Dunkel 20. Aug 2008 00:12

Re: Formerkennung
 
Nicht ohne Grund sind Captchas (Du hast doch bestimmt vor, die Dinger automatisch zu erkennen) ein Forschungsgebiet der IT. OCR ist schon eine Sache, kompliziert genug ist es trotzdem, definierte alphanummerische Zeichen zu erkennen. Captchas, welche so ausgelegt sind, dass diese nicht ohne weiteres automatisiert erkannt werden können, sind eine ganz andere Sache. Zieh Dich warm an, wenn Du das wirklich durchziehen möchtest, es wird bestimmt ein paar Winter dauern, bis Du zufriedenstellende Ergebnisse erzielst. Und Captchas werden immer weiter entwickelt; wo gab es nochmal die Captchas, bei denen man nur die Buchstaben eingeben soll, an denen sich eine Katze "ankuschelt"?

Mackhack 20. Aug 2008 03:48

Re: Formerkennung
 
Zitat:

Zitat von Dunkel
[...]wo gab es nochmal die Captchas, bei denen man nur die Buchstaben eingeben soll, an denen sich eine Katze "ankuschelt"?

Rapidshare...

clock50 20. Aug 2008 07:53

Re: Formerkennung
 
ganz so kompliziert wollte ich das auch nicht. also -
1. ich mache die Bilder selbst
2. OCR hat mich an eine alte Zugabe zu einem Scanner erinnert da hat er das Bild von oben nach unten gescannt und die Zeichen zeilenweise erfasst

Dunkel 20. Aug 2008 09:43

Re: Formerkennung
 
Zitat:

Zitat von clock50
ganz so kompliziert wollte ich das auch nicht. also -
1. ich mache die Bilder selbst

Ist es dann nicht einfacher, direkt die Tastatur zu benutzen? Wieso den Umweg über ein Bild? :zwinker:
Was für ein Hintergrund hat Dein Vorhaben? Spaß an der Freude?
Guck Dir mal dieses OS-Projekt an. Könnte interessant für Dich sein.

Zitat:

Zitat von clock50
2. OCR hat mich an eine alte Zugabe zu einem Scanner erinnert da hat er das Bild von oben nach unten gescannt und die Zeichen zeilenweise erfasst

Genau diese Software meine ich. Vom Prinzip her ist es das Selbe. Nur ist es wesentlich einfacher, gerade ausgerichtete, gleich große alphanummerische Zeichen zu erkennen als verschieden große, gedrehte und verzerrte Schriftzeichen.

Nikolas 20. Aug 2008 09:52

Re: Formerkennung
 
Welche Formeln willst du denn erkennen? Wie groß und unterschiedlich sind sie? Ich habe letztens ein Programm geschrieben (Java), bei dem ich eine Objekterkennung über Fourierdeskriptoren durchgeführt habe. Für Objekte, die größer als 2cm sind, dürfte dieser Ansatz gut funktionieren, für kleinere wirds etwas schwieriger, da braucht man vielleicht einen ganz anderen Ansatz.
Bei den FourierDeskriptoren müsstest du dich z.B. um Unterschiede in der Größe oder in der Rotation keine Gedanken machen, diese Unterschiede werden rausgerechnet. Zeig doch einfach mal ein Beispielbild, sonst wird's sehr schwierig, einen sinnvollen Ansatz vorzuschlagen, da die doch recht problemspezifisch sind.

clock50 20. Aug 2008 10:25

Re: Formerkennung
 
Hallo,

1. wie beschrieben möchte ich nur ziffern 0-9 erkennen
2. die Bilder sollen von einer Webcam im Auto gemacht werden
3. Geschwindigkeitsbegrenzungen in unserem Schliderwald sind oft genug nicht gut zu sehen(leicht zu übersehen), gerade wenn man irgendwo ist, wo man sich nicht auskennt

stahli 20. Aug 2008 10:36

Re: Formerkennung
 
Ich denke, dann wäre "Bilderkennung" der bessere Weg. Du musst ja erst mal das Schild an sich erkennen. Wenn die Kamera ansonsten eine Hausnummer 200 erfasst - oha!!!

Und die möglichen Geschwindigkeiten auf einem Schild halten sich ja in Grenzen. Die Zahl zu interpretieren ist dabei sicher das eher kleinere Übel, könnte ich mir vorstellen.

Nikolas 20. Aug 2008 10:38

Re: Formerkennung
 
"Die Ziffern 0-9 erkennen"
ist eine sehr schlechte Beschreibung deines Problems. Handgeschrieben? Gedruckt? (bekannter Schriftsatz? optimiert für OCR?) Hintergrund bekann? einfarbig? Beleuchtung? Wie können die Zahlen gedreht sein?

Bevor du das Problem nicht exakt beschreiben kannst, weisst du nicht, nach welchem Algorithmus du suchen musst.

Das erkennen der Zahlen wird noch dein kleinstes Problem sein. Die schnelle (!) Extraktion der Schilder wird eher dein Problem sein. Wenn ich mich recht entsinne, sind die gesuchten Schilder kreisrund, so dass dir bei der Extraktion eine Hough-Transformation helfen könnte. (wobei die vielleicht nach einer Anpassung für Ellipsen suchen musst, weil du die Schilder wohl nie direkt von vorne siehst).

Wenn du dann die Ellipsengleichung für die Kontur des Schildes hast, kannst du die Pixel in der Kontur wieder in einen Kreis überführen und danach z.B. Pixelweise mit Trainingsbilder vergleichen. Dafür brauchst du einfach nur ein paar Testbilder (für jedes zu erkenende Schild), über die du dann mittelst, um Beleuchtung und Verschmutzung etwas rauszumitteln und kannst dann das beste Schild auswählen.

Probleme könnte dir die Rechenzeit beim Extrahieren der Schilder machen, da du z.B. auf der Autobahn schon 10 Bilder pro Sekunde verarbeiten können musst. Und das wird auf einem Laptop mit der vorgeschlagenen Hough-Trafo schwierig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz