Alle reden von Digitalisierung. Tablet statt Papier. Und ja, das macht in ganz vielen Fällen absolut Sinn. Wenn die Mechanikerin in der Auto-Werkstatt mit dem iPad unterm Arm zur Fahrzeugübergabe kommt und zur Dokumentation gleich 3 Fotos vom Kratzer auf der Stoßstange schießt: Weltklasse!

Aber manchmal hat auch Papier seinen Charme, das müssen wir neidlos anerkennen. Denken Sie an einen (für mein Beispiel frei erfundenen) Musikwettbewerb. Über mehrere Tage hinweg rittern zahlreiche Kinder und Jugendliche vor den Augen von fachkundigen Juror:innen um die begehrten Preise. Natürlich könnte man jeder Jurorin und jedem Juror ein Tablet in die Hand drücken: aber das ist einerseits wegen der Hardware kostenintensiv (der Wettbewerb findet vielleicht nur alle 2 Jahre statt) und vermutlich nicht das bevorzugte Medium für eine 75-jährige Klavierprofessorin: Die möchte sich während des Zuhörens rasch Notizen machen und abschließend ihre Punkte eintragen - ohne 2-Faktor-Authentifzierung und Windows-Update.

Papier statt App?

Warum also nicht überlegen, dieses UI bewusst auf Papier auszulagern? Weil wir die Daten natürlich digital verarbeiten, die Jurypunkte automatisiert zusammen zählen und abschließend Urkunden drucken möchten. Genau hier kommt der Azure Form Recognizer ins Spiel: ein AI-unterstütztes Service von Microsoft Azure, mit dem sowohl gedruckte als auch handschriftliche Dokumente analysiert und digitalisiert werden können.

Wir möchten eine handschriftliche Jurybewertung automatisiert weiterverarbeiten.

Erkennung einer handschriftlichen Jurybewertung mit dem Azure Form Recognizer

Wie funktioniert der Azure Form Recognizer?

Der Azure Form Recognizer ermöglicht (neben der Nutzung einiger vortrainierter Modelle für Rechnungen, Belege oder Visitenkarten) das Trainieren eines spezifischen Modells zur Erkennung eigener Formulare. Das Service ist somit viel mächtiger als eine reine OCR-Erkennung: Es versteht aufgrund bereitgestellter Trainingsdaten, welche Informationen am Formular für uns wichtig sind. Es weiß, wo ein Datum zu erwarten ist, wo am Papier eine Checkbox angekreuzt werden kann oder dass die Jurypunkte immer aus ganzen Zahlen bestehen.

Der erste Schritt ist der Upload von beispielhaft ausgefüllten Formularen und das Kennzeichnen der relevanten Informationen. Das webbasierte Form Recognizer Studio hilft, diese Tätigkeit rasch zu erledigen. Mindestens 5 Dokumente sind notwendig, um ein erstes Mal auf den “Train”-Button klicken zu können.

Nach 1-2 Minuten ist das Modell trainiert, und über das Form Recognizer Studio kann der Erfolg sofort überprüft werden: ein neues, für das Modell noch unbekanntes Dokument uploaden - und (hoffentlich) begeistert feststellen, wie viele Informationen bereits erkannt wurden. Selbstverständlich kann die Analyse nun auch mittels REST-API erfolgen, für .NET gibt es einen eigenen SDK (NuGet-Package Azure.AI.FormRecognizer).

Im folgenden Beispiel wird ein lokal abgespeichertes Foto eines Formulars zum Form Recognizer-Endpunkt geschickt - um anschließend die erkannten Informationen auf der Konsole auszugeben.

using Azure;
using Azure.AI.FormRecognizer.DocumentAnalysis;

var file = @"C:\Jurybewertung-Smartphone.jpg";
using var stream = File.OpenRead(file);

string endpoint = "https://formrecognizer-softaware-demo.cognitiveservices.azure.com/";
string apiKey = "<api-key>";
var credential = new AzureKeyCredential(apiKey);
var client = new DocumentAnalysisClient(new Uri(endpoint), credential);

string modelId = "v0.3";
var options = new AnalyzeDocumentOptions() { Locale = "de-DE" };

var operation = await client.AnalyzeDocumentAsync(WaitUntil.Completed, modelId, stream, options);
var result = operation.Value;

foreach (var document in result.Documents)
{
    foreach (var field in document.Fields)
    {
        Console.WriteLine($"{field.Key} ({field.Value.ValueType})");
        
        if (field.Value.ValueType == DocumentFieldType.List)
        {
            var rows = field.Value.AsList();
            foreach (var row in rows)
            {
                var columns = row.AsDictionary();
                foreach (var cell in columns)
                {
                    Console.Write($"{cell.Key} = {cell.Value.Content}  |");
                }
                Console.WriteLine();
            }
        }
        else
        {
            Console.WriteLine(field.Value.Content);
        }
        
        Console.WriteLine();
    }
}

Das Originalbild:

Original-Bild, das zum Service gesandt wurde

Die erkannten Details:

Konsolenausgabe

Resümee

Der Azure Form Recognizer bietet beeindruckende Möglichkeiten, wenn es darum geht, handschriftliche oder gedruckte Formulare zu erkennen. Für Rechnungen, Belege oder Visitenkarten gibt es bereits vortrainierte Modelle, richtig spannend wird es aber, wenn eigene Modelle auf Basis von Trainingsdaten erstellt werden. Das Form Recognizer Studio hilft dabei, die Trainingsdaten zu “labeln” und die Modelle zu testen.

Sie haben viele PDFs, die Sie gerne automatisiert und mit Hilfe künstlicher Intelligenz analysieren und auswerten würden? Oder handschriftliche Formulare, die derzeit mühsam abgetippt werden? Ich freue mich auf Ihre Kontaktaufnahme - vielleicht ist der Azure Form Recognizer genau die richtige Lösung.