Videokonferenz Anlage in Modul E

Wegen Corona konnten wir keine größeren Veranstaltungen in unserem Videokonferenz Raum machen, wir entschieden uns eine Videokonferenz Anlage in Modul E aufzubauen um mehr Leute im Bild zu haben.

Als die Videokonferenz Anlage ankam haben wir sie zusammen mit Mitarbeitern von Vistafon aufgebaut. Wir haben die Audio Einstellungen angepasst damit keine Rückkopplungen entstehen, haben die Kameras so positioniert, dass man jede Person die am Tisch sitzt zu sehen ist. Die höhe des Fernsehers haben wir so gemacht, damit auch wirklich jeder alles gut auf dem Bildschirm sehen kann.

Jetzt steht die Anlage in Modul E, ist voll Funktionsfähig und wird auch regelmäßig benutzt.

Teile diesen Post:

CIB deepER – Evaluation für Business Use Case

Im Rahmen der Ausbildungskooperation zwischen der PSD Bank Nürnberg und der CIB Software ergeben sich stets interessante Schnittmengen.
Im konkreten Use Case geht es um die Suche nach einer Lösung, um die papierhaften Formulareingänge (10 identifizierte Prozesse, die eine gewisse Häufigkeit aufweisen) der PSD Bank zu digitalisieren, den Inhalt zu extrahieren und die gewonnenen Daten im Anschluss machine-usable bereitzustellen, sodass diese per RPA weiterverarbeitet werden können.

Bei näherer Betrachtung des Anwendungsfalls ergab sich sogleich ein Match mit CIBs hauseigener OCR-Engine, CIB deepER.
Um einen Überblick über die Engine und die im Hintergrund arbeitenden neuronalen Netze zu erhalten, wurde ich im Rahmen meines 3. Ausbildungseinsatzes dem KI-Team zugeteilt und durfte den Spezialisten über die Schulter schauen.

Die Analyse und Extraktion von Text aus einem Dokument via OCR erfolgt durch verschiedene ineinandergreifende Segmente:
1) Die Segmentierung:
Hierbei werden die auf dem Dokument (PNG-Bild) befindlichen Wörter (für die Segmentierungs-Engine sind “Wörter” lediglich schwarze Pixel) algorithmisch identifiziert und pixelgenau bestimmt. Eine qualitative Segmentierung stellt den Grundstein für eine belastbare Textextratkion dar.
Da es sich beim Use Case der PSDN um statische Formulare handelt ist keine automatische Segmentierung notwendig. Stattdessen wird im Vorfeld für jedes Formular ein Layout erstellt (JSON-File), die Segmentierung also manuell durchgeführt. Das spart Zeit sowie Rechenleistung und ist weniger fehleranfällig.
Für den speziellen Anwendungsfall wurden außerdem Python-Skripte erstellt, welche das Vorhandensein einer Unterschrift auf dem Formular algorithmisch prüfen.

2) Die Extraktion des Textes:
Dies geschieht mittels der OCR-Engine (LSTM) und einem Zusammenspiel aus div. Frameworks (u.a. Tensorflow und Torch). Die

3) Bereitstellung des Ergebnisses:
Die identifizierten Daten stehen nun in einem JSON-File bereit.
Dieses soll unserem RPA-Robot mittels API-Call (POST-Request) bereitgestellt werden – dieser Task wird Gegenstand meiner kommenden zwei Wochen bei CIB sein.
– I’ll keep you updated.

Teile diesen Post:

Barcode-Erkennung in der CIB pdf toolbox funktioniert nicht richtig

Ich hatte derzeitig einen Fall von der Fiducia & GAD IT AG, in dem unsere CIB pdf toolbox 1.44.1 die Barcodes auf einem PDF Dokument nach drucken mit dem CIB pdf brewer nicht korrekt erkannt hat. Die DataMatrix-Barcodes wurden vor dem Druck einmal pro Seite erkannt was korrekt ist, aber wenn man das Dokument durch den CIB pdf brewer laufen lässt, werden die DataMatrix-Barcodes danach doppelt oder gar nicht mehr von der pdf toolbox erkannt. Ein Grund dafür liegt beim Adobe Reader welcher die Daten als einzelne Bereiche anzeigt oder nicht zusammenhängende Abschnitte zurück liefert. Die bisherige Erkennung liefert die Barcodes als Bilder in den PDF Objekten, die nach dem Druck über dem Adobe Reader, nicht mehr verfügbar sind.

Ich habe ein Testset für die CIB pdf toolbox 1.44.1 gebaut und konnte so das Geschehen von der Fiducia & GAD IT AG reproduzieren. Um Fehler ausschließen zu können habe ich ein CIB pdfModule Testset gebaut, welches die Komprimierung testet. Nachdem ich alle Kompressionsstufen getestet habe, konnte ich feststellen das alle Barcodes korrekt pro Seite erkannt wurden. Im CIB pdf toolbox Testset habe ich eine neue Property gesetzt (BarcodeRecognitionMode = “RecognizePages”) welches den Inhalt erst in ein Bild umwandelt und dann die Barcode-Erkennung startet, was den Vorteil hat dass alles eine Ebene ist und so nicht mehrere Barcodes auf einer Seite erkannt werden können, der Nachteil dabei ist dass die Erkennung von den Barcodes länger dauert. Dann habe ich auf allen komprimierten Dokumenten die Barcode-Erkennung gestartet und konnte feststellen, dass auf den Dokumenten welche mit der Kompressionsstufe: Hoch und Höchst komprimiert wurden, es bis zu 15 Minuten gedauert hat bis die Barcodes korrekt erkannt wurden, auf den anderen Dokumenten mit niedrigerer Kompressionsstufe ging die Erkennung wesentlich schneller.

Also habe ich ein neues CIB pdf toolbox Testset gebaut welches die neueste Version beinhaltet. In der Version wurde Laufzeit für die Erkennung der DataMatrix-Barcodes verbessert. In diesem Testset habe ich die gleiche Property wie im alten Testset gesetzt und dazu auch Koordinaten von den Barcodes angegeben damit es nur einen bestimmten Bereich in Anspruch nimmt und nicht lange mit dem suchen beschäftigt ist. Somit konnte die Zeit von der Erkennung der Barcodes auf bis zu unter einer Minute reduziert werden.

Die Lösung für dieses Auftreten wird in der neuen CIB pdf toolbox Version 1.46.0 beinhaltet sein. Das Release für die Version 1.46.0 wird Voraussichtlich ende Februar zur Verfügung stehen. Die Erkennung der Barcodes wird dadurch zuverlässiger und liefert die Barcodes korrekt pro Seite, aber nimmt etwas mehr Zeit in Anspruch.

Teile diesen Post:

Automatisches Festlegen von Treshhold in Segmentierung

Bei der Segmentierung der Zeilen für Deeper erkennt das neuronale Netz, das der Segmentierung zu Grunde liegt, immer wieder falsche Zeilen. Allerdings werden diese falsch gefundenen Zeilen mit einer geringen Confidence (Sicherheit der Erkennung) versehen, weshalb sie zum größten Teil rausgefiltert werden können indem man ab einem gewissen Schwellwert diese Zeilen nicht in das Segmentierungsergebnis übernimmt. Bisher wurde dieser Schwellwert bei einem neu trainierten Netz händisch ermittelt. Das soll jetzt automatisch passieren.

Vorbereitung

Um den Trashhold bestimmen zu können werden teile des Produkts Cibtextcompare verwendet um die Positionen der erkannten Boxen mit einer Ground Trouth zu vergleichen. Dadurch, dass die Zeilen anders erkannt werden, als sie in unserer Testmenge hinterlegt sind müssen die Referenzdokumente erst auf das Gleiche Format geändert werden bis man die Zeilen miteinander Vergleichen kann.

Außerdem müssen auch die erkannten Zeilen unbearbeitet gespeichert werden, sodass das Ergebnis nicht verfälscht wird.

Vergleich

Sobald die zu vergleichenden erkannten Ergebnisse vorbereitet sind wird überprüft wie weit sich die Boxen überschneiden, und sobald eine Genügend große Überschneidung vorliegt werden die erkannten Zeilen, die nicht aus der Groundtrouth stammen, als valide markiert. Die Zeilen, die nicht für valide erklärt wurden werden daraufhin auf ihre Confidence überprüft. Übersteigt die größte Confidence der als falsch markierten Zeilen keine einzige Confidence der validen Zeilen wird ein Trashhold minimal höher als die höchste Confidence der falsch erkannten Zeilen eingestellt und die falschen Zeilen werden künftig rausgefiltert.

Teile diesen Post:

Debugging in Comparelogik

Nachdem ein Fehler in einem Tool zum vergleichen von OCR-Ergebnissen entstanden ist musste dieser Fehler aus dem Code entfernt werden.

Zuerst musste der Fehler reproduziert werden. Als das getan war musste die Ursache für den Fehler erkannt werden.

Dazu habe ich den in PyCharm eingebetteten Debugger verwendet. Ein Debugger ist ein Programm, dass Code ausführt und den Status an einer bestimmten stelle des Codes zurückgeben kann.

Um den Fehler verstehen zu können habe ich einen Breakpoint vor der Stelle mit dem auftretenden Fehler gesetzt und mir den Inhalt des Dicts, bei dem ein Key-Error auftritt angeschaut. Dabei ist aufgefallen, dass ein Element aufgerufen wird obwohl es vorher gelöscht wurde.

Als Lösung werden Elemente, die bereits gelöscht sind aus der Liste der zu Löschenden Elemente gelöscht.

Teile diesen Post:

CIB flow – Eine Prozess Management Plattform

CIB flow ist eine BPMN (“Business Process Model and Notation”) basierte Plattform, welche Prozessabläufe vereinfacht und automatisiert.

Aufgrund von zahlreichen unserer Produkte, die angebunden werden können, ist der Abdeckungsbereich für automatisierte Abläufe/Prozesse riesengroß. Sei es mit Hilfe von zum Beispiel CIB doXiview, eine Dokumentbearbeitungs Plattform oder CIB deepER, unsere Hauseigene KI (Künstliche Intelligenz).

Wir von der CIB benutzen Camunda als Engine für unser Produkt CIB flow, was demnächst auf dem Markt erscheint. Durch die Verwendung von Camunda ist die Benutzung sowie Erstellung von Prozessen bzw. Prozessketten vereinfacht.

Teile diesen Post:

Office365 – Microsoft Teams

Mit Office365 kommt auch eine neue App, Microsoft Teams. Microsoft Teams ist eine Text- und Videochatplattform mit dem wir zukünftig unsere Nachrichten austauschen als auch unsere Konferenzen halten werden. Der Grund dafür ist, dass wir intern unser TeamViewer & Spark ablösen werden.

Um mit einem Nutzer zu schreiben kann man oben in der Suchleiste nach der Person suchen oder man kann auch unter dem Reiter Teams in z.B. der Allgemein Gruppe oben rechts auf das i(info) klicken, dann werden alle Personen von der CIB angezeigt, man kann dann mit der Maus über das Profilbild des Nutzers gehen, dann bekommt man mehrere Optionen wie z.B.: Chat öffnen, E-Mail versenden, Anruf starten oder Video-Anruf starten.

Mit der Suchleiste kann man nicht nur Personen suchen, man kann auch Dateien oder auch nach alten Nachrichten suchen. Man kann auch mit den Apps/Addons benutzerdefiniert sich Erweiterungen für Teams herunterladen wie z.B.: eine Wetter-Anzeige in der Suchleiste, indem man nach @Weather sucht und eine Postleitzahl dahinter schreibt bekommt man so das Wetter angezeigt.

Im Reiter Teams kann man die verschiedenen angelegten Gruppen sehen, innerhalb der Gruppen kann man Nachrichten versenden, Dateien hochladen oder auch herunterladen. Um eine Besprechung zu starten muss man oben rechts auf den Knopf “Besprechung” klicken, um Beizutreten bekommt man im Chat der Gruppe eine Nachricht über die man die Besprechung Beitreten kann.

Wenn man auf den Reiter mit den drei Punkte klickt, kann man sich Apps/Addons raussuchen um sein Microsoft Teams benutzerdefiniert oder Praktisch einzurichten.

Teile diesen Post:

Web2Pdf – Webseiten in doXima oder doXisafe archivieren

Web2Pdf ist ein Feature mit dem man Webseiten als PDF in doXima oder doXiview archivieren kann, dazu muss man eine E-Mail an web2pdf@cib.de senden. Dabei kann man verschiedene Optionen/ Parameter festlegen wie das Weiterleiten an Empfänger oder ob das PDF zusätzlich als Anhang in der Antwortmail vorliegen soll.

Um verschiedene Optionen zu setzen muss man bestimmte Parameter im Betreff angeben:

Parametermögliche WerteFunktion
TargetdoXima;doXisafe;text;attachment

Beispiel:
Target:doxima;text
Legt fest:
– ob die Webseite als PDF in doXima abgelegt werden soll 
– ob die Webseite als PDF in doXisafe abgelegt werden soll,
– ob der extrahierte Text der Webseite in den E-Mail Text der Antwortmail übernommen werden soll
– ob das PDF zusätzlich als Anhang der Antwortmail vorliegen soll. 

Es können mehrere Optionen angegeben werden
Als Trennzeichen empfohlen ist “;”.
ReadE-Mail Adresse eines oder mehrerer Nutzer bzw. Gruppe.

Beispiel:
Read:max.mustermann@cib.de;Alle
Über diese Option kann lesender Zugriff für einzelne Nutzer oder Gruppen aus doXima für die archivierte Webseite festgelegt werden.

Write
E-Mail Adresse eines oder mehrerer Nutzer bzw. Gruppe.

Beispiel:
Write:max.mustermann@cib.de
Über diese Option können schreibender Zugriff für einzelne Nutzer oder Gruppen aus doXima für die archivierte Webseite festgelegt werden.
InformE-Mail Adresse eines oder mehrerer Nutzer.

Beispiel:
Inform:max.musterman@cib.de
Damit kann die archivierte Webseite an einen oder mehrere Empfänger weitergeleitet werden.
File<single>|<joined>|<multiple> 

Beispiel:
File:single
wird “single” gesetzt, werden einzelne Dateien zu einer Datei zusammengefügt.
wird “joined” gesetzt, werden einzelne Dokumente in doXima abgelegt und miteinander verknüpft.

Wenn man die bestimmten Parameter im Betreff gesetzt hat, kommt man zum Inhalt. Im Inhalt muss sich der Link zur Webseite befinden, welche man archivieren will. Man kann auch noch etwas dazuschreiben (welches nicht die Archivierung verändert). Nach dem man die E-Mail abgesendet hat, bekommt man nach kurzer Zeit eine Antwort.
Wenn man den Parameter “doxima” angegeben hat, bekommt man in der Antwort-Mail einen Link der zu doXiview oder doXisafe führt, indem sich die archivierte Webseite befindet.

Beispiel:

Anweb2pdf@cib.de
BetreffTarget:attachment;text;doXima;doXisafe;Inform:max.mustermann@cib.de
Inhalt{webseitenlink z.B.: https://www.cib.de/}

Teile diesen Post:

Löschen von Zeilen mit geringer Confidence

Meine Aufgabe besteht momentan darin Zeilen mit zu geringer Confidence (Selbstsicherheit der Erkennung) in der Texterkennung von Deeper auszusortieren.

An sich besteht unsere Texterkennung aus zwei Komponenten. Im ersten Schritt werden Zeilen erkannt und im zweiten in den erkannten Zeilen Text erkannt. Der Stand bisher ist, dass in falsch erkannten Zeilen auch Text erkannt und in das Dokument übernommen wird.

Um falschen Ergebnissen vorzubeugen wird künftig die Confidence der Texterkennung überprüft und wenn sie kleiner als ein Schwellenwert ist wird die Zeile, mit der schlechten Confidence, aussortiert. Dabei ist es Wichtig den Schwellenwert so anzupassen, dass möglichst keine richtige Zeile gestrichen wird und möglichst viele Falsche aussortiert werden.



Teile diesen Post:

Rückblick auf die ersten Monate der Ausbildung…

Seit dem Start meiner Ausbildung konnte ich bei CIB vieles lernen. Mittlerweile bin ich im zweiten Einsatz, habe den ersten Schulblock hinter mir, etliche Leute kennengelernt und neue Freunde getroffen.

Meine Einsätze bei CIB:  Meinen ersten Einsatz habe ich in der Entwicklungsabteilung verbracht, wo ich Step by Step in die CIB-Welt eingeführt wurde. Dort habe ich die CIB-Produktseiten mit einem aktuellen Frontend-Framework eingebaut und meinen kleinen Beitrag zu benutzerfreundlicher Umsetzung unserer Jobbörse geleistet. Wie ich in meinem vorherigen Eintrag geschrieben habe, arbeiten wir zurzeit mit unserem Entwicklerteam an der Online-Plattform(mein zweiter Einsatz). Wir haben schon das Grundgerüst eingebaut und als erstes PDF-Tool in unserem Projekt das Komprimieren implementiert. Als nächstes sind „Ver- und Entschlüsselungsfunktionalitäten“ dran. Wir bemühen uns darum, damit unsere Plattform euch in kurzer Zeit zur Verfügung gestellt wird.

Schulblock: Auch die Berufsschule stellte sich als weniger schlimm heraus als gedacht. Zumal ich hier bemerkt habe, dass ich einen Fable für Wirtschaft, aber auch soziale und personelle Themen habe. Von neu geschlossenen Freundschaften mal ganz abgesehen. Das alles war also eine sehr positive Entwicklung.

Einer der spannenden Aspekte bei der Ausbildung zum Fachinformatiker bei CIB ist, dass man im Laufe der Ausbildung je nach Interessenlage viele verschiedene Abteilungen durchläuft, welche im Zusammenhang mit dem Document Lifecycle stehen und man somit einen optimalen Überblick über das gesamte Dokumenten-Management-System bei CIB erlangt. Dadurch kann man sich im Laufe der Zeit ein großes Bild von dem gesamten IT-Bereich aneignen.

Noch ein weiterer Aspekt, den ich gerne zugeben möchte, ist, dass man frei seine weiteren Einsätze planen und gucken kann, ob man noch mehr rumkommen, also weitere Bereiche bei CIB kennenlernen möchte oder ob man seine bereits vorhandenen Interessen, Vorkenntnisse und sein bereits existierendes Wissen aus bisherigen Einsätzen weiter vertieft.

Wie ihr seht, haben alle Auszubildenden bei uns in der Firma eine Möglichkeit, sich ihre Ausbildung je nach Interessenlage zu gestalten. Was mir in letzter Zeit jedoch immer wieder bewusst wird, ist, dass die letzten zwei Monate wie im Fluge vergangen sind. Deswegen bin ich sehr gespannt, was das nächste Jahr so bringt…

Möchtest du auch das Programmieren von webbasierter Software zu deiner Leidenschaft machen und hautnah an der Weiterentwicklung unserer Firma mitarbeiten?

Dann bewirb dich doch für eine Ausbildung bei CIB und sei Teil unseres Teams.

Viel Erfolg!

Teile diesen Post: