Orientierungsprobleme bei der Dokumentenerkennung (Kofax Transformation Modules)

Keine Kommentare

Bei der intelligenten Dokumentenklassifizierung und Datenextraktion von Eingangspost in Unternehmen müssen die Eingangskanäle Papier, Email und Fax berücksichtigt werden. Normalerweise ist die Orientierung der digitalisierten Dokumente (0°, 90°, 180° oder 270° gedreht) dabei egal. Im Rahmen der OCR-Erkennung erkennt das System die Drehung des Dokuments und richtet es wieder ‚lesbar‘ aus.

Manchmal versagt dieser automatische Ausrichtungsmechanismus, da insbesondere Faxe meist die sogenannte Fax-Kopfzeile besitzen, die häufig 180° gedreht zum Faxtext steht. Dies passiert z.B., wenn die zu faxende Seite verkehrt herum in das Faxgerät gelegt wird. Aber auch Papierdokumente haben manchmal um 90° gedrehte Anmerkungen/Nummern links oder rechts vom eigentlichen Text stehen. Dieser Blog Post erklärt, wie das Problem dank eines KTM-Skripts lösbar ist.

Insbesondere bei Faxen wird dann von der OCR die um 180° gedrehte Fax-Kopfzeile zuerst gelesen und die eigentlich falsche Orientierung des Dokuments wird nicht korrigiert:

Unsere Kunden setzen häufig die Lösung „Kofax Transformation Modules“ (KTM) zur automatisierten Verarbeitung ihrer Eingangspost ein. Die oben beschriebene Problematik der manchmal nicht durchgeführten Rotationskorrektur tritt auch bei diesem Produkt auf. Zur Lösung gibt es von Kofax einen Hinweis (Kofax-Knowledgebase-Artikel 19794).

Über ein Stück KTM-Skript werden rechteckige Bereiche an den Seitenrändern gelöscht, so dass die OCR den dort gedruckten Text nicht mehr findet. Diese Bereichslöschung findet nur an dem im Speicher geladenen Dokument statt. Das Original bleibt unverändert. Die Breite dieser Bereiche (im Beispiel unten: 100) muss dann an das Beleggut angepaßt werden:

Private Sub Document_BeforeClassifyXDoc(ByVal pXDoc As CASCADELib.CscXDocument, ByRef bSkip As Boolean)
Dim oImage As CscImage
Dim lMargin As Long

lMargin = 100

'Get current image for page 1
Set oImage = pXDoc.CDoc.Pages(0).GetImage()

'Erase a margin around the edge of the image
oImage.EraseRect 0, 0, lMargin, oImage.Height
oImage.EraseRect oImage.Width-lMargin, 0, lMargin, oImage.Height
oImage.EraseRect 0, 0, oImage.Width, lMargin
oImage.EraseRect 0, oImage.Height-lMargin, oImage.Width, lMargin

'Clean up memory
Set oImage = Nothing

End Sub

Zum Austesten der Bereichsgröße habe ich mir das im Speicher geänderte Dokument als TIF-Datei in das tempöräre Verzeichnis geschrieben. Dort konnte ich mir dann die Auswirkung der Löschung per Viewer ansehen (siehe Skript unten).

oImage.EraseRect löscht den Bereich, indem es ihn ‚weiß‘ macht. Dadurch ist der gelöschte Bereich auf einem Dokument mit in der Regel weißem Hintergrund oft schlecht zu identifizieren. Stattdessen kann man auch oImage.Redact einsetzen, bei dem die Bereiche geschwärzt werden. So kann man recht einfach die Bereichsgröße austesten:

Private Sub Document_BeforeClassifyXDoc(ByVal pXDoc As CASCADELib.CscXDocument, ByRef bSkip As Boolean)
Dim oImage As CscImage
Dim lMargin As Long

lMargin = 100

'Get current image for page 1
Set oImage = pXDoc.CDoc.Pages(0).GetImage()

'Erase a margin around the edge of the image
oImage.Redact 0, 0, lMargin, oImage.Height
oImage.Redact oImage.Width-lMargin, 0, lMargin, oImage.Height
oImage.Redact 0, 0, oImage.Width, lMargin
oImage.Redact 0, oImage.Height-lMargin, oImage.Width, lMargin

'Save image to temp
oImage.Save("C:\temp\Redact.tif",CscImgFileFormatTIFFFaxG4)

'Clean up memory
Set oImage = Nothing
End Sub

Das Originaldokument:

Das veränderte interne Dokument:

Dieses dadurch veränderte Verhalten der Rotation ist leider nicht im KTM Project Builder nachzuvollziehen, es funktioniert dann aber zur Laufzeit. Im KTM Project Builder kann man allerdings mit der oben erwähnten oImage.Save-Funktionalität das im Speicher geänderte Bild zur Überprüfung abspeichern. Die Zeile mit oImage.Save sollte allerdings nur im Project Builder aktiv sein und zur Laufzeit deaktiviert werden.

Dieses einfache Bereichslöschen hat in unseren Kundenprojekten dafür gesorgt, dass alle Faxe richtig ausgerichtet wurden und wir das gewünschte OCR-Ergebnis zur Datenextrakton erhielten. Bei Faxen reicht es auch schon aus, nur den oberen Rand mit der Fax-Kopfzeile zu schwärzen.

 

Tags

Voss Jürgen

Jürgen Voss unterstützt unsere Kunden bei der Erfassung von Eingangsdokumenten, deren Klassifikation samt Datenextraktion und anschließendem Starten der Geschäftsprozesse.

Die erfassten Dokumente werden dabei in Dokumentenmanagement-systemen wie CenterDevice oder Archivsystemen sicher abgelegt. Dazu zählt auch die E-Mail-Archivierung und die Ablage über die SAP-Archivierungsschnittstelle ArchiveLink.

Kommentieren

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.