Von der Bildflut zur Struktur – Wie wir ein OCR-gestütztes Bildsortiersystem mit OpenAI, YOLOv5 und Python aufgebaut haben
Wenn man tausende Fotos von Autos auf der Rennstrecke hat – aus allen möglichen Perspektiven, bei wechselnden Lichtverhältnissen, mit Startnummern, Aufklebern, Logos oder Nummernschildern – wird das Sortieren schnell zur Sisyphusarbeit. Deshalb haben wir ein Ziel verfolgt: Die Sortierung soll automatisch erfolgen. Ohne manuelles Umbenennen, Verschieben oder Vergleichen.
Entstanden ist ein intelligentes Tool, das Bilder analysiert, wichtige Informationen erkennt (wie Startnummer, Automarke oder auffällige Merkmale), und diese in übersichtliche Ordner ablegt. Alles läuft lokal auf dem eigenen Rechner – datenschutzkonform, nachvollziehbar und erweiterbar.
Dazu haben wir moderne KI-Technologien kombiniert – darunter Objekterkennung, Texterkennung und GPT-gestützte Analyse – gesteuert über ein einziges Python-Skript.
Entstanden ist ein intelligentes Tool, das Bilder analysiert, wichtige Informationen erkennt (wie Startnummer, Automarke oder auffällige Merkmale), und diese in übersichtliche Ordner ablegt. Alles läuft lokal auf dem eigenen Rechner – datenschutzkonform, nachvollziehbar und erweiterbar.
Dazu haben wir moderne KI-Technologien kombiniert – darunter Objekterkennung, Texterkennung und GPT-gestützte Analyse – gesteuert über ein einziges Python-Skript.
Unser Technologie-Mix
Damit das System zuverlässig funktioniert, setzen wir auf verschiedene Bausteine:
Die Ergebnisse speichern wir in einer JSON-Datei, damit wir später flexibel darauf zugreifen können.
- Python bildet das Rückgrat. Hier läuft die gesamte Steuerung, inklusive Dateiverwaltung, Bildanalyse und Sortierlogik.
- YOLOv5 hilft beim Erkennen von Startnummern und Autonummern. Wir haben das Modell selbst trainiert, damit es speziell für Motorsport-Bilder optimiert ist.
- Tesseract OCR liest den Text aus den erkannten Nummernschildern aus.
- OpenAI GPT-4o bringt Kontext ins Spiel. Dieses KI-Modell erkennt feine Unterschiede – wie spezielle Aufkleber, Logos oder Merkmale – und hilft bei der Bildzuordnung.
- OpenCV und Pillow werden zur Bildverarbeitung und Visualisierung eingesetzt.
Die Ergebnisse speichern wir in einer JSON-Datei, damit wir später flexibel darauf zugreifen können.
Der Workflow im Überblick
Der gesamte Prozess läuft in mehreren Stufen ab – alles automatisiert über ein zentrales Python-Skript:
- Bilder einlesen
Das Skript durchsucht einen Ordner voller unsortierter Bilder und bereitet sie zur Analyse vor. - Bildverkleinerung & Kompression
Um Uploadzeiten zu reduzieren und die Analyse zu beschleunigen, werden die Bilder auf eine standardisierte Größe verkleinert und im JPEG-Format komprimiert. - Erkennung von Nummern & Text
Das lokal trainierte YOLO-Modell erkennt Bereiche mit Startnummern oder Autonummern. Diese Bildausschnitte werden an Tesseract OCR übergeben, um die Nummern als Text zu extrahieren. - Bildanalyse durch GPT
Das Bild – oder auf Wunsch nur ein komprimierter Bildausschnitt – wird zusätzlich an OpenAI GPT-4o gesendet. Dieses Modell beschreibt das Bild semantisch: Welche Farben sind erkennbar? Welche Marke? Gibt es visuelle Merkmale wie Spoiler, Aufkleber oder Logos? - Daten speichern
Alle analysierten Informationen werden in einer JSON-Datei gesichert. So behalten wir den Überblick und können später gezielt darauf zugreifen.
- Sortierung
Am Schluss erzeugt GPT-4o auf Basis der JSON-Daten eine logische Sortierstruktur – etwa nach Startnummern, Farben, Marken oder auffälligen Merkmalen – und die Bilder werden in passende Ordner verschoben.
Labeling mit Roboflow
Herausforderungen
Natürlich lief nicht alles von Anfang an reibungslos. Einige der spannenderen Herausforderungen:
- Autonummern vs. Startnummern unterscheiden
Manche Autos hatten beide – andere nur eine der beiden. Und manchmal war die Startnummer als Aufkleber auf der Seitenscheibe versteckt. - Bilder aus unterschiedlichen Perspektiven
Das gleiche Auto von vorne, hinten oder schräg fotografiert – jedes Bild sieht anders aus. Die KI musste lernen, dass es sich trotzdem um dasselbe Fahrzeug handelt. - Unklare oder fehlende Erkennungen
Bei ungünstigem Licht oder starkem Schatten versagten OCR oder Objekterkennung. Hier mussten wir kreative Lösungen finden – z. B. durch manuelles Nachtrainieren oder Kombination mit Kontextanalyse von GPT. - Leistung auf CPU
Da nicht jeder über eine leistungsfähige GPU verfügt, haben wir darauf geachtet, dass das System auch auf „normalen“ Windows-Rechnern funktioniert.
Warum lokal?
Man hätte das Ganze auch als Weblösung mit Cloudspeicher bauen können – wir haben uns aber bewusst für eine lokale Lösung entschieden. Die Vorteile:
- Datenschutz & Kontrolle
Motorsportbilder enthalten teilweise auch Personen oder Fahrzeugkennzeichen. Lokal bleibt alles unter eigener Kontrolle. - Performance & Kostenkontrolle
Keine Uploadzeiten für große Bildmengen. Und: GPT-4o-Nutzung kann gezielt und limitiert erfolgen – nur bei Bedarf. - Flexibilität für Erweiterungen
Wer möchte, kann eigene Sortierregeln ergänzen oder das System mit weiteren Tools (z. B. n8n oder Mistral OCR) verknüpfen.
Fazit
Was als Experiment begann, wurde zu einem praxisnahen Werkzeug: Unser System erkennt Fahrzeuge auf Bildern, analysiert sie mit moderner KI und sortiert sie automatisch – ganz ohne manuelles Zutun.
Die Kombination von OpenAI GPT-4o, lokal trainiertem YOLOv5, Tesseract und Python hat sich als schlagkräftig erwiesen. Die Ergebnisse sind erstaunlich präzise, und die Erweiterbarkeit ist hoch: Neue Erkennungsmerkmale, bessere Modelle oder zusätzliche Analysefunktionen lassen sich problemlos integrieren.
Besonders stark ist die Lösung dort, wo klassische Texterkennung an ihre Grenzen stösst – z. B. bei verschwommenen oder schräg aufgenommenen Nummern. Hier bringt GPTs multimodale Fähigkeit einen echten Mehrwert durch Kontextverständnis.
Die Kombination von OpenAI GPT-4o, lokal trainiertem YOLOv5, Tesseract und Python hat sich als schlagkräftig erwiesen. Die Ergebnisse sind erstaunlich präzise, und die Erweiterbarkeit ist hoch: Neue Erkennungsmerkmale, bessere Modelle oder zusätzliche Analysefunktionen lassen sich problemlos integrieren.
Besonders stark ist die Lösung dort, wo klassische Texterkennung an ihre Grenzen stösst – z. B. bei verschwommenen oder schräg aufgenommenen Nummern. Hier bringt GPTs multimodale Fähigkeit einen echten Mehrwert durch Kontextverständnis.
Ausblick
Wir haben schon jetzt viele Ideen für die Weiterentwicklung:
- Bessere Merkmals-Clustering
Ähnliche Autos (z. B. gleiche Sponsoraufkleber, Farbvarianten, Serien) sollen künftig automatisch gruppiert werden – auch wenn Start- oder Autonummer fehlen. - Integration von Mistral OCR
Die Open-Source-OCR von Mistral könnte eine spannende Alternative oder Ergänzung zu Tesseract darstellen. - GPU-Unterstützung & Speedup
Aktuell läuft alles auch auf CPU. Mit CUDA-Unterstützung und TensorRT ließen sich YOLO- und OCR-Prozesse massiv beschleunigen. - User-Interface & n8n-Automation
Einfache Bedienung über ein lokales Interface oder Integration in Automatisierungsplattformen wie n8n – für wiederkehrende Sortieraufgaben oder Serienverarbeitung. - Objekterkennung erweitern
Wir könnten weitere Merkmale trainieren – z. B. Helmfarben der Fahrer, Aufkleberkombinationen oder auch Schäden am Fahrzeug.