debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild

Beitrag von joe2017 » 21.07.2023 08:01:11

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?
Zuletzt geändert von joe2017 am 26.07.2023 07:24:18, insgesamt 2-mal geändert.

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild

Beitrag von joe2017 » 21.07.2023 09:23:45

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.

Benutzeravatar
hikaru
Moderator
Beiträge: 13911
Registriert: 09.04.2008 12:48:59

Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild

Beitrag von hikaru » 21.07.2023 09:52:04

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.

joe2017 hat geschrieben: ↑ zum Beitrag ↑
21.07.2023 09:23:45
Wahrscheinlich liegt es daran, das tesseract die Sprache eines KFZ Kennzeichen nicht erkennt und daher auch nichts ausgibt.
Das dürfte zumindest ein Teil der Erklärung sein.
"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

letzter3
Beiträge: 477
Registriert: 16.07.2011 22:07:31

Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild

Beitrag von letzter3 » 21.07.2023 10:37:30

NULL-Ahnung, ob das überhaupt geht oder hilfreich sind.
Kann man der OCR die Schriftart bekannt machen?
Gleichzeitig war jedoch auch die deutlich verbesserte maschinelle Ablesbarkeit in Kennzeichenerfassungssystemen z.B. durch Mautsysteme ein Argument für die Einführung.
https://www.autokennzeichen.info/kennze ... iftart.htm
Ist auf der verlinkten Seite auch zum Download.

rodney
Beiträge: 373
Registriert: 09.12.2016 04:15:59

Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild

Beitrag von rodney » 21.07.2023 12:34:11

Zusaetzlich wuerde ich OpenCV einen Versuch wagen. Stichwort: ANPR (Automatic Number Plate Recognition).

wanne
Moderator
Beiträge: 7556
Registriert: 24.05.2010 12:39:42

Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild

Beitrag von wanne » 21.07.2023 17:00:52

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.

Benutzeravatar
speefak
Beiträge: 532
Registriert: 27.04.2008 13:54:20

Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild

Beitrag von speefak » 23.07.2023 10:14:36

Weg.li hat eine recht gute KFZ Zeichenerkennung. KO welcher Algorithmus dort Anwendung findet.

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild

Beitrag von joe2017 » 25.07.2023 07:36:41

rodney hat geschrieben: ↑ zum Beitrag ↑
21.07.2023 12:34:11
Zusaetzlich wuerde ich OpenCV einen Versuch wagen. Stichwort: ANPR (Automatic Number Plate Recognition).
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.

peter1969
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

Beitrag von peter1969 » 25.07.2023 08:27:47

Schon mal Cuneiform probiert? Dss ist eine russische Entwicklung, Vielleicht ist das auf Kennzeichenüberwachung trainiert :mrgreen:

Cuneiform installieren (non-free)

Code: Alles auswählen

$ sudo apt install cuneiform
Cuneiform im Terminal
Text aus BILDDATEI auslesen und in AUSGABEDATEI schreiben:

Code: Alles auswählen

$ cuneiform -l [SPRACHID] -f [AUSGABEFORMAT] -o [AUSGABEDATEI] ([EXTRAOPTIONEN]) [BILDDATEI]
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:

Code: Alles auswählen

$ cuneiform -l ger -o Text pic.tiff
Googlet, so werdet Ihr finden. Klicket, so wird Euch aufgetan.

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild

Beitrag von joe2017 » 25.07.2023 08:31:46

Ich habe gerade etwas herausgefunden.

Wenn ich über die commandline folgendes eingebe funktioniert die OCR nicht

Code: Alles auswählen

tesseract /path/to/img.png /path/to/output
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.

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild

Beitrag von joe2017 » 25.07.2023 08:53:57

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?

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild

Beitrag von joe2017 » 25.07.2023 09:10:10

Vielleicht kann man mit convert und crop automatisch nur das weiße kfz kennzeichen ausschneiden?
Geht so etwas?

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild

Beitrag von joe2017 » 25.07.2023 09:57:31

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

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
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)

wanne
Moderator
Beiträge: 7556
Registriert: 24.05.2010 12:39:42

Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild

Beitrag von wanne » 25.07.2023 13:10:10

joe2017 hat geschrieben: ↑ zum Beitrag ↑
25.07.2023 07:36:41
OpenCV in Verbindung mit Tessseract wahrscheinlich.
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.

Benutzeravatar
joe2017
Beiträge: 1274
Registriert: 07.08.2017 14:29:51

Re: debian OCR Texterkennung (KFZ-Kennzeichen) aus Bild

Beitrag von joe2017 » 26.07.2023 07:25:36

Gibt es vielleicht noch eine Möglichkeit mittest terminal command die rechteckige Form des KFZ zu erkennen und das Bild dementsprechend zu schneiden?

Antworten