Tech Talk: „Industrial High Speed Cloud OCR“ mit Jan Wagner von coilDNA

Tech Talk: „Industrial High Speed Cloud OCR“ mit Jan Wagner von coilDNA

Herzlich willkommen zum heutigen TechTalk. Mein Name ist Jan Wagner von der Firma CoilDNA. Ich bin Softwareentwickler bei der Firma und unser Thema ist heute Industrial Highspeed Cloud OCR. Kurz zum Background: Warum wir das brauchen oder was?

Was wichtig ist oder was CoilDNA überhaupt macht: Unsere Idee war auf einen Aluminium Coil z.B. einen Code aufzudrücken. Den Code kann man vergleichen mit der DNA Sequenz oder in jeder DNA Zelle ist ein Code, ist eine Information die man herausholen kann und jede DNA-Sequenzen aus diesen ganzen DNA Fragmente wieder zusammensetzen. Nichts anderes macht CoilDNA. Man hat einen ganzen Code über den ganzen Coil verteilt und jede Sequenz von diesem Code kann man zu einem ganzen Fragment zusammenfügen und jede Sequenz enthält Informationen zu diesem Coil, wie der Produzent, welches Material und sonstiges.

Hier sieht man kurz wie der Code aufgedruckt wird. Es gibt einmal, dass er auf einer Seite gedruckt wird oder auf beide Seiten - je nachdem wie man die Teile zusammen schneidet. Und wenn jetzt zu einem gewissen Teil Informationen haben möchte, dann scanne ich diesen Code ab und ich bekomme meine Daten. Somit kann er sicher gehen dieser Teil, dieses Fragment von diesen Coil ist von diesen Produzenten und die Daten passen zusammen.

Vorteil ist, dass ich die Daten genau zu den Positionen auf dem Gesamtcoil, ich bekomme die Qualitätsdaten zu diesem Teil und positionsbezogenen Daten. Hauptgrund ist natürlich Fälschungssicherheit.

Wie kommt man von diesen Code zu den Daten? Da gibt's mehr Schritte. Also ich brauch einmal das Bild von diesen Teilcode, entweder mit einer fixen Kamera auf der Maschine wo der Coil durchläuft und produziert wird oder mit einem mobilen Gerät. Ich scanne den Code ab und kriegt Informationen zurück. Das heißt ich brauche das Bild, dass muss man dann bearbeiten weil aufgrund der Oberflächen Beschaffenheit ist es manchmal schwierig, dass man den Code lesen kann. Aufgrund der Schriftform - die Optical Character recognition funktioniert dort nicht so gut. Ich muss das Bild bearbeiten, das heißt was wir machen ist z.B. das Bild in Grayscale umwandeln, die Orientation schauen - das heißt wenn der Code auf dem Kopf steht umdrehen und Edge Detection. Danach geht's an die character recognition, die funktioniert bei uns cloud based. Wir verwenden Asher, dazu Microsoft Vision von Asia Cognitive Services.

Aus diesem Bild, dem bearbeiteten Bild wird der Code dann extrahiert und der Code formatiert. Es gibt diverse Fehlerquellen wie z.B. B wird manchmal auch als 8 erkannt, dass müssen wir ausmerzen. Unser Code hat 12 Zeichen plus 2 Buchstaben und aufgrund dieser Buchstaben wissen wir wenn es AB ist dann kann es nichts A8 sein, sondern dann muss es AB sein. Wenn wir diesen Code haben, dann können wir von unserer API, von unserer Webservices, die Daten aus der Datenbank holen oder wo auch immer. Wie schon erwähnt, es gibt zwei Modi diesen Code zu scannen. Ich fange auf der rechten Seiten an. Das eine ist relativ einfach sag ich jetzt einmal. Das sind z.B. fixe Kameras die auf der Produktionsmaschine installiert sind. Der Vorteil dabei ist ich habe immer fixe Parameter und da gehts mehrere Zugangswege wie man z.B. diesen .matrix font definiert.

Hier haben wir ein Beispiel von Unternehmen die machen nichts anderes als dass man Textfelder hat, in dem Fall haben wir ein Dotmatrix font 5 mal 7 definiert. So z.B. das A also jedes F11 ist dieser Punkt in den Buchstaben und das ergibt dann das A. Man kann zwar programmatisch in dem Array wie hier dargestellt definieren, damit ergibt sich der Vorteil ich brauch nichts anders machen, ich hab nur dieses Test-file. Ich definier jeden Buchstaben, jede Ziffer in diesem Textfeld und die Kamera erkennt das dann.

Die zweite Variante ist über die Web-App. Bei uns funktioniert das über einen Browser ganz einfach. Beim Browser kann er über die Media Devices Interface zugreifen auf die Kamera, natürlich muss ich dann den Zugriff erlauben und kann den Code einfach abscannen.

Das funktioniert, wenn man sich das kurz einmal ansieht am Beispiel wenn man Daten zu eine Code bekommt. Code wieder abscannen, also schauen, dass man ihn gut erwischt.

Code erkannt. Nochmal kontrollieren, ob das passt. Passt perfekt – Hundertprozent, brauchen nichts bearbeiten. Und man kriegt dann die Daten zu diesem Code. Wann ist der Code erfasst worden ? Wann ist er auf den Coil gedruckt worden? Bei welchem Meter ist der Code? Wie lang ist der Coil und den Namen von dem Bearbeiter.

Warum passiert das? Woran erkennt es manchmal einen Code und manchmal nicht. Wie wir hier sehen auf der linken Seite, wenn das abfotografiere und den Code haben will - das funktioniert nicht aufgrund der Spiegelung, aufgrund der Oberfläche. Ich muss das Bild dementsprechend bearbeiten, dass ich sowas hier rausbekomme. Das heißt das Bild in Greyscale umwandeln, dann natürlich die Orientation anpassen - dann ist der Code schon lesbarer. Und das macht dann die ganzen Systeme wie z.B. Microsoft ein bisschen leichter den Code zu lesen.

Das ist ein Beispiel bei fixer Kameraarbeit und wenn man das Textfile hat und den ganzen fonts definiert, funktioniert es einfacher. Aber wie gesagt, da habe ich fixe Parameter, brauche nicht mehr mein Handy. Wenn das jetzt in der Produktion ist und ich schnell abscanne habe ich verschiedene Parameter.

Wenn jetzt meine Originalbild in die Cloud schicke und da den Code extrahieren will bekomme ich nichts aus. Das war auch hier der Fall, weil das Licht spiegelt zu viel – da kann er keine Zeichen erkennen. Und auf dem unteren Beispiel habe ich ein Code erkannt nach der Bildbearbeitung- natürlich auch nicht optimal wie man hier sieht. Und das sind diese Fehlerquellen, die man ausmerzen muss. Funktioniert auch viel mit AI. Das heißt, dass man sich ein machinelearning Model zurecht stellt und das annähernd, wo man sagt, gewisse Ziffern haben diesen Fehlerwert oder gewisse Ziffern ergeben das. Und dann brauch es nicht selber programmatisch machen.

Zu CoilDNA selbst: Wir sind im Intertrading-Gebäude in Linz, 100 prozent Tochter von der AMAG, daher Aluminium Coil. Das war's dann von meiner Seite. Danke!