ScanVIN.app Logo Scan VIN
Sprache
Sprache auswählen
Die Sprachänderung behält die aktuelle Unterseite bei.

Wie funktioniert unser VIN-Scanner?

Wie funktioniert unser VIN-Scanner? Die manuelle Eingabe einer VIN ist eine dieser kleinen, nervigen Aufgaben, bei denen ein Fehler reale Verluste verursachen kann. War das eine 8 oder ein B? 5 oder S? Ein falsches Zeichen, und der Fahrzeughistorienbericht kommt leer zurück – oder, noch schlimmer, beschreibt das Auto von jemand anderem. Deshalb haben wir einen VIN-Scanner entwickelt, der vollständig im Browser Ihres Smartphones läuft. Ohne App-Installation, ohne Bilder zu versenden. In diesem Beitrag zeigen wir, was in den zwei, drei Sekunden wirklich passiert, zwischen dem Ausrichten der Kamera auf die VIN und dem Anzeigen des Ergebnisses – einschließlich einiger Dinge, die uns beim Entwickeln selbst überrascht haben.

Zwei neuronale Netze, eine Aufgabe

Wenn Sie auf „Scannen” tippen, lädt Ihr Browser zwei kleine KI-Modelle (insgesamt etwa 13 MB – nach dem ersten Besuch im Cache gespeichert) und führt sie lokal per WebAssembly aus. Jedes davon hat eine sehr konkrete Rolle. Der Finder. Das erste Modell ist ein Objektdetektor aus der YOLO-Familie, den wir mit genau einem Ziel trainiert haben: die VIN im Kameraframe zu finden. Nicht „Text finden” – VIN finden. Es hat VINs auf Windschutzscheiben-Plaketten, Aufklebern an der B‑Säule, in blankes Metall eingeschlagen auf Federbeindomen sowie auf gedruckten Zulassungsdokumenten gesehen, und erkennt daher den Unterschied zwischen einer VIN, einem Kennzeichen oder einer zufälligen Teilenummer. Wichtig ist: Es zeichnet nicht einfach nur einen Rahmen um die VIN – es gibt einen rotierten Rahmen zurück und kennt dadurch den exakten Winkel des Textes, selbst wenn Sie das Telefon schief halten oder den Motorraum seitlich aufnehmen. Leser. Der ausgeschnittene und begradigte Pixelstreifen geht anschließend in ein zweites Modell: ein Texterkennungsnetz aus der PaddleOCR‑Familie, das wir speziell auf VINs feinabgestimmt haben. Ein universelles OCR‑Modell muss Tausende von Zeichen berücksichtigen – unseres kennt nur 33.

Warum nur 33 Zeichen? Eine Kuriosität aus dem Jahr 1981

Die Buchstaben I, O und Q sind in VINs verboten. Die ISO‑Norm von 1981 hat sie ausgeschlossen, weil sie sich zu leicht mit den Ziffern 1 und 0 verwechseln lassen – auf eingeschlagenem Metall, auf ausgeblichenen Aufklebern und (ironischerweise) in der OCR. Wir haben diese Regel direkt im Alphabet des Leser‑Modells verankert. Es ist physisch nicht in der Lage, ein O auszugeben – wenn ein Zeichen rund aussieht, ist die nächste zulässige Antwort 0, und genau das meldet es. Eine ganze Klasse klassischer OCR‑Fehler kann schlicht nicht auftreten. Das ist der größte einzelne Vorteil der Feinabstimmung auf VINs, statt eine fertige OCR‑Engine zu verwenden.

Ein einzelnes Foto ist Raten. Video ist ein Beweis.

In einer frühen Phase haben wir eine Entscheidung getroffen, die den gesamten Scanner geprägt hat: Vertraue niemals einem einzelnen Frame. Deine Kamera liefert mehrmals pro Sekunde einen neuen Frame. Anstatt also alles auf eine einzige Aufnahme zu setzen, liest der Scanner die VIN immer wieder aus und lässt die Frames abstimmen. Das Ergebnis wird erst akzeptiert, wenn unabhängige Frames übereinstimmen – und die Schwelle für diese „Übereinstimmung“ ist flexibel:

  • Wenn dieselben 17 Zeichen zweimal erscheinen und die integrierte Prüfsumme der VIN korrekt ist, akzeptieren wir das Ergebnis nahezu sofort.
  • Keine Prüfsumme? (Mehr dazu weiter unten.) Dann warten wir auf eine dritte Bestätigung.
  • Wenn sich die Frames bei einem Zeichen weiterhin nicht einig sind, wird jeder Kandidat danach gewichtet, wie sicher sich der Leser war – Zeichen für Zeichen. Diese letzte Regel hat sich in den Tests bewährt. In einem unserer Testclips – ein Zulassungsdokument im grellen Licht – sorgte eine Spiegelung dafür, dass 0 in der Seriennummer in mehr als der Hälfte der Frames wie eine 8 aussah. Reines Wiederholen hätte die falsche Antwort gewählt. Aber die Sicherheit des Modells bei diesen 8 war konstant niedriger als bei reinen 0-Lesungen, und die Abstimmungslogik lautet hat es erkannt. Der Scanner hat einfach eine Sekunde länger gewartet, bis sich die Evidenz stabilisiert hatte – und dann die korrekte VIN zurückgegeben.

Prüfsumme, die nur bei manchen Fahrzeugen funktioniert

Fahrzeug-Identifizierungsnummern (VIN) enthalten einen versteckten Selbstprüfmechanismus: Position 9 ist die Prüfziffer, die aus den übrigen 16 Zeichen berechnet wird. Das ist ein hervorragendes Verifikationssignal – wenn es funktioniert. Es gibt jedoch einen Haken: Sie ist nur für Fahrzeuge verpflichtend, die in Nordamerika verkauft werden. Die meisten VINs aus dem europäischen Markt verwenden sie überhaupt nicht. Deshalb behandelt unser Scanner die Prüfziffer als Bonus, niemals als Voraussetzung. Wenn sie stimmt, können wir das Ergebnis schneller akzeptieren. Wenn sie nicht stimmt, ist das kein Fehler – es handelt sich dann höchstwahrscheinlich einfach um ein europäisches Fahrzeug, und die Last trägt das Frame-Voting-System.

Deine VIN verlässt niemals dein Telefon

Das sollte klar gesagt werden: Die Kameraframes werden vollständig auf deinem Gerät verarbeitet. Die KI-Modelle werden in deinen Browser geladen; deine Bilder werden niemals irgendwohin übertragen. Es gibt keinen Server, der die Erkennung durchführt, kein Foto, das in der Cloud gespeichert wird. Das Einzige, was dein Telefon verlässt, ist die finale, 17-stellige VIN – und auch das nur, wenn du zur Berichtsseite weitergehst. Das war nicht nur eine Entscheidung aus Datenschutzgründen. Dadurch ist der Scanner auch schnell (kein Hin- und Her zum Server für jedes einzelne Frame) und funktioniert auch bei schwachem Empfang in der Tiefgarage – also genau dort, wo du am häufigsten neben der VIN stehst.

Wie das in der Praxis aussieht

In unseren Tests – VINs auf der Windschutzscheibe, Aufkleber an den Türen, in die Federbeindome eingeschlagene VINs und sogar die Zulassungsbescheinigung – lokalisiert der Scanner die korrekte VIN in der Regel innerhalb von einer bis vier Sekunden. Einige offene Hinweise, wie du das weiter beschleunigen kannst:

  • Licht ist der wichtigste Faktor. Die Taschenlampen-Taste gibt es nicht ohne Grund – eingeprägte VIN-Nummern im Motorraum lieben das.
  • Geh nah heran. Die VIN-Nummer sollte den Rahmen der Hilfsgrafik ungefähr ausfüllen.
  • Versuche nicht, völlig ruhig zu halten. Du brauchst keine perfekt stabile Hand – das Abstimmungssystem ist genau für die kleinen Bewegungen ausgelegt, die eine echte Hand macht.

Unter der Haube, kurz gefasst

Für technisch Interessierte: Die Detektion läuft auf einem YOLO-basierten Modell, das nach ONNX exportiert wurde, die Erkennung übernimmt ein feinabgestimmtes PaddleOCR-Modell mit auf VIN-Zeichen beschränktem Alphabet, und beide laufen in einer einzigen WebAssembly- Laufzeitumgebung (ONNX Runtime) innerhalb eines Web Workers, sodass die Seite reaktionsschnell bleibt. Die Perspektivkorrektur zwischen den beiden Modellen – also das Geraderücken eines verdrehten VIN-Streifens – verwendet dieselbe Mathematik wie die Scan-App auf deinem Smartphone. Der Rest ist sorgfältige Ingenieursarbeit rund um ein Prinzip: günstige Auslesungen, häufig durchgeführt, verifiziert durch Übereinstimmung.

Dem Scanner beibringen, wie eine VIN aussieht

Vor Kurzem haben wir ein drittes „Modell” hinzugefügt – und es ist kein neuronales Netz. Es ist eine statistische Karte davon, wie echte VINs aussehen, erstellt aus über einer halben Million echter VINs aus europäischen und US-amerikanischen Fahrzeugregistern.

Die Idee dahinter: Eine VIN ist keine zufällige Zeichenfolge – sie hat eine Grammatik. Die ersten drei Zeichen identifizieren den Hersteller, die nächsten acht kodieren Modell, Baujahr und Werk, und jeder Hersteller folgt seinen eigenen starren Mustern (Volkswagen liebt WVWZZZ…, BMW hat seinen eigenen Dialekt). Wenn die OCR also WVW2ZZ… liest, weiß unser Sprachmodell, dass eine 2 an dieser Stelle tausendmal unwahrscheinlicher ist als ein Z – und bevorzugt stillschweigend die Lesart, die der Hersteller tatsächlich einstanzen würde.

Anstatt das Lesenetz an jeder Position das einzelne wahrscheinlichste Zeichen wählen zu lassen und auf das Beste zu hoffen, erkundet der Scanner nun mehrere Kandidaten-Lesarten gleichzeitig (eine Technik namens Beam Search) und bewertet jede davon sowohl danach, was die Pixel sagen, als auch danach, was die VIN-Grammatik sagt. Der Gewinn ist genau dort am größten, wo das Scannen am schwierigsten ist: bei VINs, die in blankes Metall gestanzt sind, wo sich ein benachbartes Zeichen in den Ausschnitt schleicht oder ein abgenutztes Zeichen wegfällt. In unserem schwierigsten Testclip stieg der Anteil der perfekt gelesenen Frames von etwa 1 von 9 auf 3 von 4.

Eine Lektion aus dem Testen ist es wert, geteilt zu werden: Ein klügerer Leser ist ein konsistenterer Leser – auch dann, wenn er konsistent falsch liegt. Anfangs las der aufgerüstete Scanner eine abgenutzte Ziffer Frame für Frame auf dieselbe Weise falsch, und die Frames einigten sich bereitwillig auf die falsche Antwort. Die Lösung war, die Messlatte höher zu legen: Bei aktivem Sprachmodell verlangt das Abstimmungssystem nun eine zusätzliche unabhängige Bestätigung, bevor es ein Ergebnis akzeptiert. Genauigkeit ist schön; vertrauenswürdige Genauigkeit ist das eigentliche Produkt.

Und im Einklang mit allem oben Gesagten: Das Sprachmodell ist eine 190 KB große Datei, die zusammen mit den anderen Modellen heruntergeladen wird und vollständig auf deinem Smartphone läuft. Deine VIN verlässt nach wie vor niemals dein Gerät.

Probier es selbst aus: Richte dein Smartphone auf die Ecke der Windschutzscheibe eines beliebigen Fahrzeugs und scanne die VIN-Nummer.

VIN scannen