2016-11-18 9 views
2

Ich möchte die Tabellendaten aus Bildern oder gescannten Dokumenten extrahieren und die Header-Felder auf ihre jeweiligen Werte meist in einem Versicherungsdokument zuordnen. Ich habe versucht, indem Sie sie Zeile für Zeile extrahieren Linie und dann Mapping sie mit ihrer Position auf der Seite. Ich habe die Tabellengrenze definiert, indem ich einen Tabellenanfang und -ende-Pivot definiert habe, aber es gibt mir kein richtiges Ergebnis, da die Header manchmal mehrere Zeilen haben (ich hatte dies in PHP implementiert). Ich möchte auch wissen, ob ich mit maschinellem Lernen dasselbe erreichen kann.Tabellendaten Extraktion aus Bild oder gescannten Dokumenten (nicht pdf)

für PDF-Dokumente habe ich verwendet tabula-java die für mich ziemlich gut funktioniert. Gibt es eine ähnliche Art von Implementierung für Bilder?

Insurance_Image

Die Dokumente ähnlicher Art wie in der Verbindung würden oben, aber von verschiedenen Dienstanbietern so eine generische Methode, Daten zu extrahieren sehr nützlich wäre.

Im Bild oben I wie Fabrikat = YAMAHA, MODEL = FZ-S, CC = 153 usw.

Dank Karte Wert wollen.

+0

Wird es immer dieselbe PDF-Vorlage geben? – Elia

+0

Nein. Es kann je nach Dienstanbieter unterschiedlich sein. –

Antwort

0

Ich würde definitiv Tesseract geben, eine sehr gute OCR-Engine. Ich benutze es erfolgreich beim Lesen aller Arten von Dokumenten, die in E-Mails eingebettet sind (PDF, Bilder), und ein Kollege von mir benutzte es für etwas, das Ihrem Anwendungsfall sehr ähnlich ist - das Lesen bestimmter Felder aus Rechnungen.

Nachdem Sie das Dokument analysiert haben, verwenden Sie einfach Regex, um die Felder von Interesse auszuwählen.

Ich glaube nicht, dass maschinelles Lernen besonders nützlich für Sie wäre, es sei denn, Sie planen, Ihre eigene OCR-Engine zu erstellen. Ich würde mit vorhandenen Bibliotheken beginnen, sie bieten sehr gute Leistung.

0

Die einfachste und zuverlässigste Weg, es ohne viel Wissen in OCR, dies zu tun wäre:
- Nehmen Sie eine leere Vorlage als Referenz und markieren Sie die Kästchen-Koordinaten, die Sie die Daten aus extrahieren müssen. Beschriften Sie sie und speichern Sie sie für den zukünftigen Gebrauch. Dies wird nur einmal für jede Vorlage durchgeführt.
- Wenn Sie nun die gleiche Vorlage lesen, ändern Sie die Größe, um sie an die Dimensionen der Referenzvorlagen anzupassen (wenn sie nicht bereits übereinstimmt).
- Sie haben bereits die Koordinaten jeder Box und wissen, welche Daten darin enthalten sein sollten (weil Sie sie beschriftet und im ersten Schritt gespeichert haben).
Was bedeutet, dass Sie jetzt nur die Pixel in jeder Box analysieren können, um zu wissen, was dort geschrieben ist.
Dies bedeutet, dass Sie in der Lage sein sollten, die Daten in jedem dieser Felder zu erhalten, wenn Sie eine Liste beschrifteter Felder (die Sie im ersten Schritt extrahiert haben) erhalten. Wenn diese Daten getippt und nicht handgeschrieben sind, wären die extrahierten Daten einfacher zu analysieren oder machen alles, was Sie wollen, mit einfachen OCR-Bibliotheken.
Oder wenn die Daten immer die gleiche Größe und Schriftart wie Ihre Beispielvorlage oben haben, dann könnten Sie einfach Ihre eigene kleine Datenbank von Buchstaben dieser Schrift und Größe erstellen. oder vielleicht ganze Wörter? Hängt von den möglichen Antworten jeder Box ab.

Trotzdem ist dies bei weitem nicht der beste Ansatz, aber es würde die Arbeit mit minimalem Aufwand und Wissen in OCR definitiv erledigen.

Verwandte Themen