debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild
debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild
Guten Morgen zusammen,
ich bin auf der Suche nach einem Program welches mittels OCR Texterkennung KFZ-Kennzeichen aus einem Bild erkennt.
Ich habe bereits tesseract getestet. Jedoch erkennt die Software keinen Text (KFZ-Kennzeichen) aus dem Bild?
Ich habe es anschließend mit einem geschriebenen Text im Bild probiert und das funktioniert.
Vielleicht gibt es zusätzliche Parameter oder Möglichkeiten in tesseract?
Oder kennt jemand ein Tool für Debian was so etwas realisieren kann?
ich bin auf der Suche nach einem Program welches mittels OCR Texterkennung KFZ-Kennzeichen aus einem Bild erkennt.
Ich habe bereits tesseract getestet. Jedoch erkennt die Software keinen Text (KFZ-Kennzeichen) aus dem Bild?
Ich habe es anschließend mit einem geschriebenen Text im Bild probiert und das funktioniert.
Vielleicht gibt es zusätzliche Parameter oder Möglichkeiten in tesseract?
Oder kennt jemand ein Tool für Debian was so etwas realisieren kann?
Zuletzt geändert von joe2017 am 26.07.2023 07:24:18, insgesamt 2-mal geändert.
Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild
Wahrscheinlich liegt es daran, das tesseract die Sprache eines KFZ Kennzeichen nicht erkennt und daher auch nichts ausgibt.
Kann man vielleicht eine reine Texterkennung ohne Language starten. Einfach nur die erkannten Zeichen (Buchstaben, Zahlen) ausgeben.
Kann man vielleicht eine reine Texterkennung ohne Language starten. Einfach nur die erkannten Zeichen (Buchstaben, Zahlen) ausgeben.
Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild
Da ist tesseract wohl zu viel Müll im Bild. Wenn ich die ersten beiden Kennzeichen aus dem Wikipediaartikel [1] nehme, dann erhalte ich zunächst kein Ergebnis.
Entferne ich mit einem Bildbearbeitungsprogramm die rechte und linke Kante (inklusive Länderkennung), dann erhalte ich zumindest für das Deutsche Kennzeichen eine fast korrekte Erkennung. (Die Plaketten werden fälschlicherweise als Zeichen erkannt.)
Schneide ich dann zusätzlich noch die Plaketten aus, dann erhalte ich für das Deutsche Kennzeichen eine korrekte Erkennung und für das Österreichische eine nahezu Korrekte. (Das Leerzeichen zwischen Buchstaben und Zahlen fehlt.)
tesseract kennt außerdem einen Schalter --psm, der bei unterschiedlichen Parametern unterschiedliche, ähnlich fehlerhafte Ergebnisse liefert, auch auf den unbearbeiteten Nummernschildern. Vielleicht könnte man davon ein paar durchlaufen lassen und sich dann aus den unterschiedlichen Ergebnissen das "wahrscheinlichste" Nummernschild zusammenstückeln.
"Professionelle" Kennzeichenerkennung (an Mautbrücken etc.) haben sicher eine "Sprache" für Kennzeichen hinterlegt. Da dürften u.A. die Regeln aus [2] hinterlegt sein. Genau dieses Regelwerk fehlt tesseract, weshalb es versucht viel zu viel zu erkennen, und sich dann verschluckt.
[1] https://de.wikipedia.org/wiki/Kraftfahrzeugkennzeichen
[2] https://de.wikipedia.org/wiki/Kfz-Kennz ... nd)#Aufbau
Entferne ich mit einem Bildbearbeitungsprogramm die rechte und linke Kante (inklusive Länderkennung), dann erhalte ich zumindest für das Deutsche Kennzeichen eine fast korrekte Erkennung. (Die Plaketten werden fälschlicherweise als Zeichen erkannt.)
Schneide ich dann zusätzlich noch die Plaketten aus, dann erhalte ich für das Deutsche Kennzeichen eine korrekte Erkennung und für das Österreichische eine nahezu Korrekte. (Das Leerzeichen zwischen Buchstaben und Zahlen fehlt.)
tesseract kennt außerdem einen Schalter --psm, der bei unterschiedlichen Parametern unterschiedliche, ähnlich fehlerhafte Ergebnisse liefert, auch auf den unbearbeiteten Nummernschildern. Vielleicht könnte man davon ein paar durchlaufen lassen und sich dann aus den unterschiedlichen Ergebnissen das "wahrscheinlichste" Nummernschild zusammenstückeln.
Das dürfte zumindest ein Teil der Erklärung sein.joe2017 hat geschrieben:21.07.2023 09:23:45Wahrscheinlich liegt es daran, das tesseract die Sprache eines KFZ Kennzeichen nicht erkennt und daher auch nichts ausgibt.
"Professionelle" Kennzeichenerkennung (an Mautbrücken etc.) haben sicher eine "Sprache" für Kennzeichen hinterlegt. Da dürften u.A. die Regeln aus [2] hinterlegt sein. Genau dieses Regelwerk fehlt tesseract, weshalb es versucht viel zu viel zu erkennen, und sich dann verschluckt.
[1] https://de.wikipedia.org/wiki/Kraftfahrzeugkennzeichen
[2] https://de.wikipedia.org/wiki/Kfz-Kennz ... nd)#Aufbau
Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild
NULL-Ahnung, ob das überhaupt geht oder hilfreich sind.
Kann man der OCR die Schriftart bekannt machen?
Ist auf der verlinkten Seite auch zum Download.
Kann man der OCR die Schriftart bekannt machen?
https://www.autokennzeichen.info/kennze ... iftart.htmGleichzeitig war jedoch auch die deutlich verbesserte maschinelle Ablesbarkeit in Kennzeichenerfassungssystemen z.B. durch Mautsysteme ein Argument für die Einführung.
Ist auf der verlinkten Seite auch zum Download.
Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild
Zusaetzlich wuerde ich OpenCV einen Versuch wagen. Stichwort: ANPR (Automatic Number Plate Recognition).
Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild
Die KFZ-Kennzeichen waren ja darauf ausgelegt, dass man die schon in den 80ern automatisch erkennen konnte. was für extra darauf ausgelegte Systeme ein Vorteil ist, dürfte für Systeme, die an anderem Material trainiert wurden ein Problem sein. Insofern würde ich auch nach darauf spezialisierter softwere suchen.
rot: Moderator wanne spricht, default: User wanne spricht.
Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild
Weg.li hat eine recht gute KFZ Zeichenerkennung. KO welcher Algorithmus dort Anwendung findet.
Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild
Guten Morgen,
ich denke, dass OpenCV ein guter Ansatz sein könnte. Jedoch kann ich kein Python Programmieren.
Weißt du, ob es hierzu auch bash script Tutorials gibt?
OpenCV in Verbindung mit Tessseract wahrscheinlich.
-
- Beiträge: 749
- Registriert: 17.10.2006 08:57:58
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: Stuttgart
Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild
Schon mal Cuneiform probiert? Dss ist eine russische Entwicklung, Vielleicht ist das auf Kennzeichenüberwachung trainiert
Cuneiform installieren (non-free)
Cuneiform im Terminal
Text aus BILDDATEI auslesen und in AUSGABEDATEI schreiben:
Optionen (Auszug):
-l Sprach-ID, z.B. eng (Englisch), ger (Deutsch), fra (Französisch), spa (Spanisch), por (Portugiesisch)
-f Ausgabeformat, z.B.: text (default) und rtf
-o Ausgabedatei (Name)
Beispiel: Deutschen Text aus Bild pic.tiff auslesen und in Datei Text im Textformat schreiben:
Cuneiform installieren (non-free)
Code: Alles auswählen
$ sudo apt install cuneiform
Text aus BILDDATEI auslesen und in AUSGABEDATEI schreiben:
Code: Alles auswählen
$ cuneiform -l [SPRACHID] -f [AUSGABEFORMAT] -o [AUSGABEDATEI] ([EXTRAOPTIONEN]) [BILDDATEI]
-l Sprach-ID, z.B. eng (Englisch), ger (Deutsch), fra (Französisch), spa (Spanisch), por (Portugiesisch)
-f Ausgabeformat, z.B.: text (default) und rtf
-o Ausgabedatei (Name)
Beispiel: Deutschen Text aus Bild pic.tiff auslesen und in Datei Text im Textformat schreiben:
Code: Alles auswählen
$ cuneiform -l ger -o Text pic.tiff
Googlet, so werdet Ihr finden. Klicket, so wird Euch aufgetan.
Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild
Ich habe gerade etwas herausgefunden.
Wenn ich über die commandline folgendes eingebe funktioniert die OCR nicht
Wenn ich OCRFeeder installiere, das selbe Bild in der Anwendung lade, bei OCR-Anwendung "Tesseract" auswähle und bei Verschiedenes "KEINE SPRACHE" wähle, erhalte ich das Nummernschild!
Jetzt ist die Frage wie ich "no language" bei der commandline angeben kann. Vielleicht funktioniert es dann.
Wenn ich über die commandline folgendes eingebe funktioniert die OCR nicht
Code: Alles auswählen
tesseract /path/to/img.png /path/to/output
Jetzt ist die Frage wie ich "no language" bei der commandline angeben kann. Vielleicht funktioniert es dann.
Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild
Ich habe festgestellt, dass auch eng funktioniert.
Jedoch nur, wenn ich den Ausschnitt exakt auf das KFZ Kennzeichen markiere. Wenn der Ausschnitt größer ist, erkennt die Software OCRFeeder seltsamerweise gar nichts mehr.
Vielleicht liegt es an dem Ausschnitt. Kann man vielleicht bei einem Bild nur das KFZ Kennzeichen raus filtern? Vielleicht funktioniert das nur so?
Jedoch nur, wenn ich den Ausschnitt exakt auf das KFZ Kennzeichen markiere. Wenn der Ausschnitt größer ist, erkennt die Software OCRFeeder seltsamerweise gar nichts mehr.
Vielleicht liegt es an dem Ausschnitt. Kann man vielleicht bei einem Bild nur das KFZ Kennzeichen raus filtern? Vielleicht funktioniert das nur so?
Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild
Vielleicht kann man mit convert und crop automatisch nur das weiße kfz kennzeichen ausschneiden?
Geht so etwas?
Geht so etwas?
Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild
Also ich habe das Ganze jetzt mit einer mörderischen Syntax gelöst und erfolgreich getestet.
Jetzt muss ich nur noch weitere Tests durchführen.
Anbei die aktuelle Syntax
Folgendes wird durchgeführt:
-crop 200x100+200+600 (Bild grob beschneiden)
-resize 800x400\! (Auflösung ändern)
-set density 300 (DPI anpassen)
-colorspace Gray (Bild in Grautönen)
-sharpen 4x4 (Bild Schärfen)
-brightness-contrast -20 (Bild etwas abdunkeln)
-monochrome (Bild in s/w)
-blur 0x1 (Bild weichzeichnen)
-brightness-contrast -90 (Bild start abdunkel)
-trim (Durch das starke abdunkeln ist fast nur noch das KFZ weiß und der TRIM Parameter beschneidet alles schwarze)
-monochrome (Bild in s/w - wird somit wieder heller)
Jetzt muss ich nur noch weitere Tests durchführen.
Anbei die aktuelle Syntax
Code: Alles auswählen
convert /path/to/image.png -crop 200x100+200+600 -resize 800x400\! -set density 300 -colorspace Gray -sharpen 4x4 -brightness-contrast -20 -monochrome -blur 0x1 -brightness-contrast -90 -trim -monochrome /path/to/newimage.png && tesseract -l eng /path/to/out
-crop 200x100+200+600 (Bild grob beschneiden)
-resize 800x400\! (Auflösung ändern)
-set density 300 (DPI anpassen)
-colorspace Gray (Bild in Grautönen)
-sharpen 4x4 (Bild Schärfen)
-brightness-contrast -20 (Bild etwas abdunkeln)
-monochrome (Bild in s/w)
-blur 0x1 (Bild weichzeichnen)
-brightness-contrast -90 (Bild start abdunkel)
-trim (Durch das starke abdunkeln ist fast nur noch das KFZ weiß und der TRIM Parameter beschneidet alles schwarze)
-monochrome (Bild in s/w - wird somit wieder heller)
Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild
OpenCV ist eine C++ Lib, die ursprünglich für C war. Die C++, Python Java, MATLAB und JS kam erst später dazu.
Ich würde mal ML-Zeug nutzen:
https://github.com/topics/plate-detection
https://github.com/sergiomsilva/alpr-unconstrained
https://github.com/roflcoopter/viseron
Tippe das funktioniert super.
rot: Moderator wanne spricht, default: User wanne spricht.
Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild
Gibt es vielleicht noch eine Möglichkeit mittest terminal command die rechteckige Form des KFZ zu erkennen und das Bild dementsprechend zu schneiden?