Projektidee - Typenschildleser

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 1328
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 4.99, FPC-Version: 3.3.1
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Projektidee - Typenschildleser

Beitrag von kralle »

Moin,

ein Kollege (ohne Programmierkenntnisse) hat so ein Tool, mit Hilfe von KI als Web-App erstellt.
Nachteil, die API, die die Bildauswertung macht, verlangt für jedes Bild Geld und man muss immer einen Netzwerkverbindung haben.

Deshalb meine Überlegung, ob man so etwas nicht auch mittels Lazarus machen kann.

Die Anforderungen sind nicht einfach:
1. Die Anwendung sollte Bilder direkt mittels Kamera aufnehmen
2. Auswerten der Informationen aus den aufgenommenen Typenschilder (Beispiele als Anhang)
3. Erkannte Daten in einem Formular anzeigen und
4. Daten im Formular Nachbearbeiten und Ergänzen
5. Daten in eine Excel-Tabelle speichern.

Das ist der Grundstock.
Weitere Funktionen wären:
- Daten auf einem Server speichern
- Alternativ per E-Mail versenden
- Eine Prüflingsnummer die automatisch hoch zählt, aber von Hand überschrieben werden kann und dann wieder mit der letzten
automatisch erstellten Nummer weiter macht.

Und jetzt die härteste Anforderung: Apple, Android, Windows Phone/Tablet.

Bestimmt kein mal eben Nebenbei-Projekt (außer vielleicht für Pluto :lol: :lol: :lol: )

Bis Morgen
Kralle
Dateianhänge
Typenschilder02.zip
Drei Bilder mit weiteren Typenschildern
(3.53 MiB) 16-mal heruntergeladen
Typenschilder01.zip
Drei Bilder von Typenschildern
(3.3 MiB) 18-mal heruntergeladen
OS: MX Linux, Linux Mint und Windows 10
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Projektidee - Typenschildleser

Beitrag von af0815 »

kralle hat geschrieben: Fr 6. Mär 2026, 17:29 Und jetzt die härteste Anforderung: Apple, Android, Windows Phone/Tablet.
Windows Phone/Tablett gibt es IMHO nicht mehr. Wenn dann ist es Win11 on ARM.

Für iOS, Android, Win gibt es OpenCV. Das als Grundlage.

Aber die Plattformen sind relativ unterschiedlich und von Lazarus bzw. FPC kenne ich nicht unbedingt die besten/aktuellesten Schnittstellen zu OpenCV. Vor allen iOS und Android kenne ich aktuell keine Bindings, die in Lazarus funktionieren. Aber ich habe auch nicht damit viel zu tun gehabt. Vielleicht hat wer Links dazu.

Punkt 2 ist schon mal eine riesen Sache. Damit habe ich mich doch einige Jahre(zehnte) mit professionellen System von Cognex und Keyence herumgeschlagen :-)

Du must einmal die Bilder in Helligkeit normieren, dann Drehungen berücksichtigen (geht oft mit Kantenerkennung) und dann kann man sich auf die Suche nach Daten (OCR) machen. SInd die Positionen bekannt ? Wenn ich mir die Beispiele ansehe eher nicht. Vor allen wenn du nicht weist was du genau suchst wird das schon problematisch. Mit OpenCV bekommst du du nur einen Salat von gefundenen Strings. Im günstigsten Fall, alles was am Schild erkennbar war. Und das musst du als gewünschte Info extrahieren.

Eine LLM hat natürlich bereits viele Typenschilder gelernt und kann die neuronal besser interpretieren. Da bist du mit OpenCV meilenweit entfernt. Ich könnte das auch nicht mit Cognex oder Keyence vernünftig lösen. Weil die Schilder komplett unterschiedlich sind und keine Strukturierte Info haben.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

pluto
Lazarusforum e. V.
Beiträge: 7198
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Projektidee - Typenschildleser

Beitrag von pluto »

kralle hat geschrieben:Bestimmt kein mal eben Nebenbei-Projekt (außer vielleicht für Pluto :lol: :lol: :lol: )
Fertig....

Nein Spaß beiseite. Ich habe mir Tesseract4Delphi runtergeladen und ausprobiert. Deine Bilder haben bis auf eins eine zu schlechte Auflösung. Einige sind zu "hell".
Das hier "IMG_20260306_170149" geht Realtiv gut mit wenigen Fehlern.
Das erste IMG_20260306_170113 ist zu hell.

Habe erst angefangen das Demo zum laufen zu bringen und habe einige Tests gemacht.

Bin überrascht, wie gut das inzwischen geht. Jedoch wird nur das BMP unterstützt.
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7198
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Projektidee - Typenschildleser

Beitrag von pluto »

Ich habe mal ein wenig das Beispiel Programm erweitert. Das ist ein Beispiel Bild, was dabei war.
Ich muss sagen das klappt schon mal sehr gut. Für den Anfang.
test1.png
test1.png (22.38 KiB) 179 mal betrachtet
MFG
Michael Springwald

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2883
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Projektidee - Typenschildleser

Beitrag von m.fuchs »

Was ist denn das fachliche Ziel dieses Projekts? Also wozu werden die Daten der Typenschilder benötigt?
0118999881999119725-3

Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Benutzeravatar
Jorg3000
Lazarusforum e. V.
Beiträge: 439
Registriert: So 10. Okt 2021, 10:24
OS, Lazarus, FPC: Win64
Wohnort: NRW

Re: Projektidee - Typenschildleser

Beitrag von Jorg3000 »

Hi!
Bevor man das OCR mit Tesseract https://github.com/salvadordf/Tesseract4Delphi
durchführt, ist es offenbar üblich, das Bild zu entzerren, mithilfe von OpenCV https://github.com/gidesa/ocvWrapper46
wie schon von AlterPascaler und af0815 geschrieben.

In der Theorie:
- nur Rotation korrigieren (deskew) => findContours, minAreaRect, getRotationMatrix2D, warpAffine
- perspektivische Entzerrung => edges = Canny(), findContours, approxPolyDP, getPerspectiveTransform, warpPerspective
- Thresholding (s/w-Grenzwert)

Die Umsetzung für Rotation und perspektivische Entzerrung scheint nicht ganz trivial zu sein.

Und im KI-Bereich gibt es inzwischen lokal ausführbare, destillierte Modelle, die man mit ein paar GB Hauptspeicher zum Laufen kriegt.
Für die Bild-Auswertung gibt es Vision-Language-Modelle (VLM), wobei man spezialisierte Modelle zur Text-Erkennung natürlich am "OCR" im Namen erkennt.
Ich habe LM Studio installiert und bekomme in der Modell-Suche einige OCR-Modelle aufgelistet. Ich habe aber gerade keine Lust es auszuprobieren.

Auch für KI (VLM mit OCR) soll es sehr vorteilhaft sein, vorher eine perspektivische Entzerrung durchzuführen und das Bild auf Ausschnitte (Textspalten) zu reduzieren.
Ich glaube das ist alles eine Riesenaufgabe. Da kann man euch nur viel Glück wünschen.
Grüße, Jörg

Benutzeravatar
theo
Beiträge: 11219
Registriert: Mo 11. Sep 2006, 19:01

Re: Projektidee - Typenschildleser

Beitrag von theo »

Mal angenommen, OCR etc. funktioniert: Wie willst du den Textsalat auswerten (Dein Punkt 3)?

Wenn ich z.B. dein Bild "IMG_20260306_170113.jpg" an den Google Translator schicke, dann erkennt der die Textteile recht gut.
Aber wie willst du (automatisch) wissen, welche Buchstaben und Zahlen welche Bedeutung haben?
Z.B (Wurde vom Translator auf Englisch übersetzt, aber das ist ja erstmal egal):

Do not connect in series
Do not operate covered
Disconnect from power only when unplugged
For indoor use only
16
250
HKX-4/4N
TÜV
SUD
Certified Safety
Intertek
HONGYI


Was kann man damit anfangen? Ohne "KI" wahrscheinlich nicht viel, ausser man sucht nach Bekanntem, wie "TüV".
Mein Tipp: Wenn es dafür eine kommerzielle Lösung gibt, dann bezahle und lass gut sein. :wink:

Antworten