Automatische Seriennummer-Erkennung – so klappt`s!

Eigentlich wäre es so einfach gewesen: Keine händische Eingabe mehr von Seriennummern – dafür das Einlesen über ein Lesestift in eine Fiori-App. Besonders, da man im Normalfall eine Vielzahl von Seriennummern zu verarbeiten hat, versprach man sich mit dem Lesestift einen deutlich schnelleren und sichereren Prozess.
Nur leider war die Oberfläche zu „glänzig“ und die Erfolgsrate lag nur bei 33%. Es musste also eine Alternative her.

Unsere Idee kam von den ESR-Scan-Apps der Banken: Weshalb nicht die Seriennummern filmen bis wir eine gültige Nummer erkennen? So gedacht, so einen POC gemacht:

Wir schraubten eine WebCam auf ein Stativ und bauten eine Vorrichtung aus Holz, so dass Produkte mit der Seriennummer schnell und einfach darunter geschoben werden können. Im Browser läuft eine Fiori-App, die auf das produzierte HTML5-Video-Element zugreift. Zwar werden nicht mehr alle Browser unterstützt, aber Chrom und Firefox funktionieren prima. Ungefähr alle 500ms machen wir ein internes Foto aus dem Video-Stream, das trotz der Oberfläche gestochen scharf ist. Um Störfaktoren zu reduzieren, wandeln wir diese mittels HTML-Boardmittel in ein Graustufen-Bild um und passen den Kontrast an. Somit sind auch die letzten Oberflächenprobleme «geglättet». Für die OCR-Erkennung verwenden wir tesseract.js mit dem vorgelernten OCRB Schriftsatz. Das Grundkonzept basiert auf Computer Vision Algorithmen. Es erkennt den Text in Bereichen, Linien, Wörtern und Zeichen.

Das Resultat
In ein paar Millisekunden wird die Seriennummer vollständig mit Buchstaben und Zahlen erkannt. Voraussetzung dafür ist, dass das Foto möglichst gerade ist. In der Regel müssen 1-2 Fotos ausgewertet werden, bis das Muster zuverlässig erkannt wird. Nur das S und die 5 sowie die 0 und das O machen manchmal bei der Erkennung etwas Probleme. Dies ist aber im Kontext klar erkennbar und somit kann im Zweifelsfall korrigiert werden.

Alternativ zu Tesseract haben wir den SAP Leonardo Service «Inference Service for Scene Text Recognition» aus der Cloud angebunden. Dieser Dienst gehört in die Kategorie des «Machine Learnings», wobei das Modell fest verdrahtet ist. Obwohl das kleine Bild über das Internet transferiert werden muss, geht der Prozess recht zackig. Das Resultat lässt sich auch hier sehen – mit den ähnlichen Herrausforderungen wie bei Tesseract. Interessanterweise, wird auch bei diesem Service das Resultat mit dem 2. oder 3. Foto genauer.

Fazit: Das Resultat lässt sich sehen und macht Spass.

Tesseract: Die OCR-Erkennung ist schnell, braucht keine Installation und ist kostengünstig. Die gelernten Bibliotheken für die maschinelle Erkennung sind brauchbar, besonders dank OCRB.
SAP: Schnell und einfach zu integrieren, ein eigener Learning-Prozess ist nicht vorgesehen (mit diesem Service), die Erkennung funktioniert aber gut.