2016-11-18 183 views
2

我想從圖像或掃描文檔中提取表格數據,並將標題字段映射到其特定值,大多數情況下是在保險單據中。我試圖通過將它們逐行提取然後使用它們在頁面上的位置來映射它們。我通過定義一個表的開始和結束的關鍵點來給表格邊界,但是它沒有給出正確的結果,因爲標題有時會有多行(我在php中實現了這個)。我也想知道我是否可以使用機器學習來實現相同的目標。從圖像或掃描文檔中提取表格數據(不是pdf)

對PDF文檔的我已經使用tabula-java這工作很適合我。是否也有類似的圖像類型的實現?

Insurance_Image

的文件將是相似類型的如在上述不同的服務提供商的但如此提取這種數據的一種通用方法將是非常有用的鏈接。

在上述我要像製作= YAMAHA,MODEL = FZ-S,CC = 153等

由於映射值的圖像。

+0

它會始終是相同的PDF模板嗎? – Elia

+0

不可以。根據服務提供商的不同,可能會有所不同。 –

回答

0

我肯定會給Tesseract一個很好的OCR引擎。我一直在成功地閱讀嵌入到電子郵件中的各種文檔(PDF,圖像),我的一位同事使用它來處理與您的用例非常相似的內容 - 從發票中讀取特定字段。

解析文檔後,只需使用正則表達式來選擇感興趣的字段。

我不認爲機器學習對你特別有用,除非你打算建立你自己的OCR引擎。我會從現有的庫開始,它們提供非常好的性能。

0

做纔不至於在OCR很多知識是最簡單和最可靠的方法:
- 以供參考空的模板和標記的箱子座標,你需要從提取數據。標記並保存以備將來使用。這將只對每個模板完成一次。
- 現在,當閱讀相同的模板時,調整其大小以匹配參考模板尺寸(如果它尚未匹配)。
- 您已經知道每個盒子的座標,並知道它應該包含哪些數據(因爲您將它們標記並保存在第一步)。
這意味着現在您只需分析每個框中包含的像素即可知道寫入的內容。
這意味着,給定一個標籤框的列表(您在第一步中提取的),您應該能夠在每個框中獲取數據。如果輸入的數據不是手寫的,則使用簡單的OCR庫可以更輕鬆地分析提取的數據或執行任何您想要的操作。
或者,如果數據的大小和字體總是與上面的示例模板相同,那麼您可以創建自己的字體和大小的字母小型數據庫。或者也許是完整的話?取決於每個盒子的可能答案。

無論如何,這不是迄今爲止最好的方法,但它肯定會在OCR中以最小的努力和知識完成工作。