2 Punkte von GN⁺ 2024-05-14 | 1 Kommentare | Auf WhatsApp teilen

Korrektur verzogener Seiten (Page Dewarping)

  • Die Aufgabe, Bilder von aufgerollten Seiten zu glätten, wird als Optimierungsproblem behandelt.

Hintergrund

  • Bestehende Methoden zur Korrektur von Verzerrungen, etwa die Leptonica-Bibliothek oder der Coordinate Transform Model (CTM)-Ansatz, verwenden einen hierarchischen Ansatz zur Problemzerlegung.
    1. Text wird zeilenweise segmentiert.
    2. Es wird ein Warping bzw. eine Koordinatentransformation gesucht, damit die Zeilen parallel und horizontal werden.
  • Inspiriert vom 3D-Zylindermodell-basierten Ansatz von CTM wurde ein eigenes parametrisches Modell mit Parametern erstellt, die die Form der Seite bestimmen.
    • etwa 3D-Rotations-/Translationsvektoren, der Steigungswert der Seitenkrümmung, horizontale Linien-Offsets usw.
  • Formuliert als Optimierungsproblem
    • Im Originalfoto werden entlang horizontaler Textbereiche Keypoints gesucht.
    • Ausgehend von einer Anfangsschätzung werden die Modellparameter optimiert, um den Reprojektionfehler der Keypoints zu minimieren.

Verfahren

  1. Extraktion der Seitenränder
  2. Erkennung von Textkonturen
  • Nutzung von Binarisierung, morphologischen Operationen und Connected-Component-Analyse
  • Speziell darauf ausgelegt, auch Tabellen mit vertikalem Text zu erkennen
  1. Gruppierung der Textkonturen zu horizontalen Bereichen
  2. Sampling von Keypoints in horizontalen Bereichen
  3. Schätzung der initialen Modellparameter
  4. Minimierung des Reprojektionfehlers per Optimierung
  • Verwendung des Powell-Solvers aus scipy.optimize.minimize
  • Nimmt den größten Teil der Laufzeit ein
  1. Koordinatentransformation mit dem optimalen Modell, anschließend Bild-Remapping und Binarisierung

Ergebnisse

  • Funktioniert gut bei verschiedenen Beispielbildern
  • Die große Zahl an Modellparametern macht die Optimierung zeitaufwendig
  • Horizontale Verzerrungen wurden nicht berücksichtigt

Fazit

  • Typischer Workflow, bei dem zunächst Hintergrundwissen aufgebaut und das Problem dann als Optimierungsaufgabe formalisiert wird
  • Ein ähnlicher Ansatz wie bei Deformable Part Model und Active Appearance Model
  • Nebenbei wurden auch praktische Kenntnisse im Umgang mit Tools wie Emacs und Pylint gewonnen
  • Es sind keine weiteren Ausbaupläne vorgesehen, aber als Projekt für den Unterricht in Computer Vision ist es durchaus referenzwürdig

Meinung von GN⁺

  • Für praktische Nutzbarkeit scheint auch eine Korrektur horizontaler Verzerrungen nötig zu sein. Dafür wäre vermutlich wie bei CTM ein ausgefeilteres Modell erforderlich.
  • Eine höhere Optimierungsgeschwindigkeit wirkt wichtig. Weniger Parameter oder schnellere Optimierungsmethoden könnten helfen.
  • Ein Vergleich mit Deep-Learning-basierten Verfahren wäre interessant. Vielleicht kann Deep Learning Merkmalsextraktion und Modellierung gleichzeitig lösen.
  • Für den Einsatz in der industriellen Dokumentendigitalisierung müsste die Robustheit gegenüber Dokumenten mit sehr unterschiedlichen Layouts weiter verbessert werden.
  • Die Veröffentlichung als Open Source ist positiv, für den praktischen Einsatz wäre die Distribution als eigenständiges Programm aber wohl besser als ein Python-Skript.

1 Kommentare

 
GN⁺ 2024-05-14
Hacker-News-Kommentare

Zusammenfassung:

  • Bei der Bildbinarisierung sollte man vorsichtig mit einem hohen Schwellenwert sein
    • Für normalen Text funktioniert das gut, aber Illustrationen oder Fußnoten können so stark beschädigt werden, dass sie kaum noch lesbar sind
    • Wenn der Google-Books-Scan der einzige verfügbare ist, hat man möglicherweise Pech
  • Selbst im Jahr 2024 ist diese Funktion nicht in Dokumentenscanner-Apps integriert
  • Der frühere Adobe-CEO John Warnock setzte sich für die Bewahrung seltener historischer Bücher ein
    • de-curling von gescannten Seiten, die sich nicht aufschlagen lassen, war eine Herausforderung
    • Verwandtes Projekt: Rare Book Room
  • Dieser Beitrag ist ein Beispiel dafür, wie man technische Projekte und Entscheidungen effektiv dokumentiert, und eignet sich als Referenz für die Arbeit
  • Während des Studiums stieß ich beim Erstellen einer Scan-App für farbcodierte Notizen auf das Problem von Farbverzerrungen
    • Die Farben am oberen und unteren Seitenrand waren unterschiedlich, wodurch sich blaue und grüne Stifte schwer unterscheiden ließen
  • Das Ergebnis wirkt angemessen, aber das Warp-Modell ist etwas zu global
    • Es erfasst nicht alle komplexen Verformungen des Papiers, sodass im Endergebnis Restverzerrungen sichtbar bleiben
  • Ein interessanter Artikel, den ich schade finde, 2016 verpasst zu haben
    • Der gesamte Prozess von der Problemdefinition über den Einsatz cleverer Techniken bis hin zu einer gut funktionierenden Lösung wird gut beschrieben
    • Ich werde es vermutlich nie selbst verwenden, aber es ist ein hervorragendes Beispiel für Problemlösung
  • Bei der Installation ist ein Fehler aufgetreten, ich habe ein GitHub-Issue erstellt
  • Es wäre schön, auch de-wrinkling für Kassenzettel auszuprobieren
  • Wenn man nur OCR braucht, kann man diesen Schritt vielleicht überspringen
  • Google hat dieses Problem schon vor 10 Jahren gelöst
  • Bei wertvollen Büchern und Dokumenten wäre kontaktloses de-warping per Röntgentomographie möglich