Layout-Analyse für Tabellen-Dokumente: Zwischenbericht

Verbund-Arbeitstreffen Smart-HEC 15.01.2021

Robert Sachunsky, J. Nathanael Philipp, Dr. Andreas Niekler


Übersicht


Zeitplan

  • Q4: M10 Erste Beta-Version der KI-Logik ist entwickelt.
    • Status ist ein funktionsfähige Version, die nun hinsichtlich der zu erkennenden Werte evaluiert und angepasst wird.
  • Q5: Ausbau

Problemstellung (Heizkostenabrechnung)

  • Abrechnugszeitraum
  • Nutzungszeitraum
  • Postleitzahl
  • Gebäudefläche
  • Wohnungsfläche
  • Energieträger
  • Verbrauch Energieträger (Anzahl)
  • Verbrauch Energieträger (Einheit)
  • Verbrauch Energieträger (Kosten)
  • Verbrauchseinheiten des Gebäudes
  • Verbrauchseinheiten der Wohnung
  • Verbrauchseinheiten (Einheit)
  • Verbrauch Warmwasser des Gebäudes
  • Verbrauch Warmwasser der Wohnung
  • Verbrauch Warmwasser (Einheit)
  • Kosten des Kaltwassers für Warmwassererzeugung
  • Heizkosten des Gebäudes für Raumwärme
  • Heizkosten des Gebäudes für Warmwasser
  • Anteil Grundkosten für Raumwärme
  • Anteil Grundkosten für Warmwasser

externe Fallunterscheidungen vorab → Entscheidungsbaum

  • Ein-, Zwei-, Mehrfamilienhaus
  • Haus-, Wohnungseigentümer, Mieter, Verwalter
  • Zentralheizung, Etagenheizung, Nachtspeicher
  • Keller, Warmwasserbereitung

interne Klassifikation automatisch:

  • auf welcher Seite?
  • welcher Messdienstleister?
    • BFW
    • Brunata
    • Ista
    • Kalo
    • Minol
    • Techem
    • Sonstige

Problemstellung (Heizkostenabrechnung)

Wie geht der Mensch vor?

Wohnfläche:
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Anteil Grundkosten Heizung:
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Verbrauchseinheiten (Gebäude):
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Verbrauchseinheiten (Wohnung):
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Heizkosten Gebäude (Raumwärme):
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Verbrauch Energieträger (Anzahl):
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Verbrauch Energieträger (Einheit):
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Verbrauch Energieträger (Kosten):
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Problemstellung (Heizkostenabrechnung)

Herausforderungen → Lösungsstrategien

  • Verschränkung von visueller und textueller Information →
    • erst textuelle Klassifikation dann visuelle Segmentierung
  • sehr komplexe Layouts →
    • Pretraining auf Seitensegmentierung
    • Training auf echten Beispielen
    • randomisierte Augmentierung
  • hohe sprachliche Varianz →
    • Pretraining mit Wortvektoren
    • Training auf großen Mengen Text
    • randomisierte Generierung von Varianten
  • redundante Einträge, aber auch mehrseitige Layouts →
    • Augmentierung beim Training
    • Wertbedingungen bei Inferenz
  • Semantik (Addition, Subtraktion, Multiplikation, Division) →
    • Plausibilisierung, Nachkorrektur

Lösungsansatz: partielle Layoutanalyse

  • Grundidee: partielle Layoutanalyse einfacher, relevant nur ~20 Zahlenwerte
  • implizite Modellierung logischer Tabellenstruktur:
    1. Freifeld-Zeilensegmentierung (regelbasiert) → Textzeilen
    2. Standard-OCR Tesseract (CNN-LSTM) → Textzeilen+Text
    3. textuelle Klassifikation (RNN?) → Textzeilen+Text+Kontext
    4. visuelle Segmentierung (Mask-RCNN) auf Bild+Textzeilen+Kontext-Markierung → Kennwert-Markierung
    5. Nachverarbeitung und Extraktion

Lösungsansatz: partielle Layoutanalyse

Objekterkennung/Instanzsegmentierung: Mask-RCNN (Standard)

  • Multitask-Learning für Objekterkennung auf Bildern:
    • Klassifikation
    • Bounding-Box-Regression
    • Pixelmaske innerhalb der BBox

Lösungsansatz: partielle Layoutanalyse

Objekterkennung/Instanzsegmentierung: Mask-RCNN (Erweiterungen)

  • 1 Klasse pro Kennwert, aber Multitask-Learning über alle Klassen (Kennwerte)

  • 2 zusätzliche Eingabe-Kanäle: Text vs. Nontext, Text vs. Kontext

  • 1 zusätzlicher Ausgabe-Layer: Seiten-Klassifikation (welcher Messdienstleister); per Input-as-Output


Lösungsansatz: partielle Layoutanalyse

Datenbedarf und Groundtruth-Erstellung

  • textuelle Varianten (Formulierungen) für Kontexte (Plaintext)

  • Bilder annotiert mit Markierungen für jeden Kennwert:

    • Kontext
    • Kennwert
  • Herausforderung: DL-Training braucht große Mengen Daten

    • automatische Vorverarbeitung mit OCR-D-Pipeline
    • manuelle Annotation mit LAREX (PAGE-XML)

Lösungsansatz: partielle Layoutanalyse

Groundtruth-Erstellung

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

||


Lösungsansatz: partielle Layoutanalyse

Reduktion des Datenbedarfs

  • Bild-Augmentierung
  • Modell-Transfer von Standardproblemen

||||

||||


Schwierigkeiten

automatische Vorverarbeitung

OCR-D optimiert für saubere Scans historischer Drucke

  • Kontrast/Farbnormalisierung (neu)
  • Roh-Entrauschung (neu)
  • Deskewing (teilweise nicht robust)
  • De-Keystoning/Dewarping (unbrauchbar)

Schwierigkeiten

automatische Vorverarbeitung

Deskewing: Robustheit


Schwierigkeiten

automatische Vorverarbeitung

Dewarping: Hintergrund/Ausleuchtung/Layout


Schwierigkeiten

LAREX / Annotations-Server

  • Bugs bei Installation
  • Bugs bei PAGE-Import/Export
  • Bugs bei Darstellung
  • Bugs bei Handling

Schwierigkeiten

Mask-RCNN / Training (1)

  • Implementierung (Upstream) jetzt nicht mehr gepflegt
  • Bugs in Batch-Generatoren (identische Bilder in allen Threads, Hängen bei unvollständigen Batches)
  • GPU-Speicherbedarf auf Workstation, Multi-GPU / CPU-Oversubscription auf HPC-Cluster
  • zusätzl. Eingabekanäle / Modelltransfer
  • Augmentierung: Verallgemeinerung (Bild vs. Markierung vs. Annotation)

Schwierigkeiten

Mask-RCNN / Training (2)

  • auf leeren Seiten: zufällige Proposals generieren (statt nichts), mit negativen Regionen auffüllen (statt nichts)
  • Falschpositive: Hintergrund lernen durch saubere Unterscheidung zwischen Füll-Null und Klasse Null
  • nur 1 Klasse auf einmal: inaktive Klassen in Zielfunktion korrekt unterdrücken (nicht unerlaubt klassifizierte Instanzen sondern Klassen-Anteil in Kreuzentropie)
  • nur 1 Klasse auf einmal: auch bei Inferenz

Schwierigkeiten

Open-Source-ML allgemein

  • Frameworks zum Maschinellen Lernen: sehr kurzlebig
  • hohe Komplexität, viele Details, Korrektheit nur statistisch überprüfbar →
    • riskant bei neuen Aufgaben / Daten
    • erschwert zeitliche Planbarkeit
  • Skalierung und Domain-Adaption aufwendig

Status und Aussicht

Beispiele


Status und Aussicht

Experimente

  • alles einmal durchtrainieren, dann kontinuierlich weiter evaluieren (mAP)
  • Hyperparameter (Layer-Topologie, NMS-Schwellwerte und Konfidenzen, Optimierer, Regularisierung, Lernrate, Augmentierung)
  • erst leichte Klassen (Datum, Kosten, Fläche), dann schwere (Verbrauch/Einheiten, Anteile)
  • erst leichte Beispiele (Altdaten), dann schwere (Neudaten)
  • erst homogene Layouts, dann generisch Sonstige unter Mischung aller Daten
  • Transfer nicht von Photoszenerie-Detektion, sondern von domänenspezifischen Modellen: PubLayNet-Seitensegmentierung trainieren
  • Durchlauf-Prototyp als Docker-Webservice (Bild→Kennwerte)

Status und Aussicht

Nächste Schritte (aktuell)

  • Training von Sonstige ohne die (schlechten) Daten aus Sonstige
  • Evaluierung
  • Training mit Kontext-Degradierung, um Unterschied zwischen Lernphase und Kannphase bei Textklassifikation/Kontextmarkierung zu reduzieren
  • Training auf RGB-Daten
  • Training mit Kontextmarkierung Text vs Zahl

Status und Aussicht

Nächste Schritte (weiter)

  • Laufzeit-Integration OCR-D-Pipeline in Webservice
  • Bootstrap/Konsolidierung Groundtruth
  • weitere (komplexere) Kennwerte dazunehmen
  • Seitenklassifikation (Messdienstleister) durch Erweiterung auf 4. Head-Layer; Trainingsmethode Input-as-Output
  • Textklassifikation verbessern (trainieren?)

Status und Aussicht

Nächste Schritte (weiter)

  • Optimierung (v.a. Robustheit gegenüber schlechter Bildqualität, Rückweisung/Konfidenz)
  • logisches Datenmodell zur wechselseitigen Plausibilisierung
  • Werkzeuge für Training kapseln und für Nachführung von weiterem GT verfügbar machen (mehr Daten / neue Klassen / neue Layouts)
  • Publikation und Dokumentation
Select a repo