面向初學者的光學字符識別 [OCR] 簡介
已發表: 2021-02-08OCR 或光學字符識別 (OCR) 用於從票據和收據或任何上面有書面內容的圖像中提取信息。 為了開發此解決方案,OpenCV 可用於處理圖像,這些圖像可以進一步輸入 Tesseract OCR 引擎,該引擎可以從這些圖像中提取文本。
但是,只有在圖像清晰且文本足夠可見的情況下,文本刪除過程才能有效。 在零售應用中,為了從發票中提取文本,發票可能會被水印淹沒,或者賬單上可能有陰影,阻礙了信息的獲取。
從較長的文本頁面中捕獲信息片段也可能是一項艱鉅的任務。 為了解決這些問題,謹慎的做法是在信息提取管道中,圖像處理模塊中有一個地方可以處理上述困難。
它包括幾個子過程,即文本的本地化、字符分割和這些字符的識別。 儘管很少有系統在沒有分段的情況下進行管理。 這種方法是利用幾個過程產生的,例如應用最小二乘法來降低錯誤率和支持向量機來匹配字符。
儘管如此,通常為了識別圖像中字符的佔用情況,還是會使用卷積神經網絡 (CNN)。 文本可以被視為一致的字符序列。 更準確地檢測和識別這些字符是一個難題,可以通過使用一種特殊類型的神經網絡來解決,即循環神經網絡 (RNN) 和長短期記憶 (LSTM)。
通過將文本調整為 blob 來收集單詞。 此外,還會檢查這些行和區域的等效文本。 文本行僅根據它們之間的間距類型劃分為單詞。 識別方法分為兩步。 首先,識別每個單詞。 每個完美或正確識別的單詞都作為訓練數據額外傳遞給自適應分類器。

作為輸入接收的圖像將被分批檢查和處理。 文本逐行輸入 LSTM 模型。 Tesseract 是一種光學字符識別引擎,可用於各種操作系統。 它使用 CNN 和 LSTM 架構的組合來精確地從圖像數據中識別和導出文本。 然而,帶有噪聲或陰影的圖像會影響檢索的準確性。
為了最大限度地減少噪聲或提高圖像質量,可以使用 OpenCV 庫對圖像進行預處理。 這樣的預處理步驟可以包括發現ROI或感興趣區域、裁剪圖像、去除噪聲(或不需要的區域)、閾值化、膨脹和腐蝕、輪廓或邊緣的檢測。 完成這些步驟後,OCR 引擎可以讀取圖像並完美地從中提取相關文本。
目錄
使用的工具
1.OpenCV
OpenCV 是一個最初與語言 C/C++ 和 python 兼容的庫。 它通常用於處理帶有圖像樣本的數據。 庫中存在大量預定義的有用函數,可對圖像樣本進行必要的轉換。 所有上述功能,如膨脹、腐蝕、切片、邊緣檢測等,都可以使用這個庫輕鬆完成。
2. 正方體 OCR 引擎
由 Google 發布,是一個廣泛用於文本識別的開源庫。 它可用於檢測和識別各種語言的文本。 處理速度非常快,幾乎可以立即給出圖像的文本輸出。 許多掃描應用程序利用這個庫並依賴於它的提取技術。

文本提取過程中涉及的步驟
(1) 首先,將可能的圖像處理技術,如輪廓檢測、噪聲去除、腐蝕和膨脹函數應用於輸入的噪聲圖像樣本。
(2) 在這一步之後,就完成了票據上水印和陰影的去除。
(3) 此外,票據被分割成部分。
(4) 分割後的部分通過 Tesseract OCR 引擎得到完整的文本。
(5) 最後使用正則表達式,我們得到所有重要信息,例如總金額、購買日期和每件商品的費用。
讓我談談帶有文本的特定圖像——發票和賬單。 他們通常有水印,大多數是發行賬單的公司。 如前所述,這些水印是有效提取文本的障礙。 通常,這些水印本身包含文本。
這些可以被視為噪音,因為 Tesseract 引擎可以識別一行中各種大小的文本。 與水印一樣,陰影也會抑制引擎有效提取文本的準確性。 通過增強圖像的對比度和亮度來消除陰影。
對於帶有貼紙或水印的圖像,將執行多步驟處理。 該過程包括將圖像轉換為灰度、應用形態變換、應用閾值處理(可以是二進制反轉或 otsu 變換)、在較暗區域中提取較暗像素,最後在水印區域粘貼較暗像素。 回到陰影去除的過程。
首先,將膨脹應用於灰度圖像。 在此之上,帶有適當內核的中等藍色會抑製文本。 此步驟的輸出是包含部分陰影和存在的任何其他變色的圖像。 現在在原始圖像和獲得的圖像之間計算一個簡單的差分運算。 最後,在應用閾值處理後,我們得到的是沒有陰影的圖像。
文本的識別和提取
可以在圖像中找到的印記文本上構建和訓練卷積神經網絡模型。 該模型還可用於檢測具有相同字體的其他相似圖像中的文本。 Tesseract OCR 引擎用於從使用計算機視覺算法處理的圖像中恢復文本。

對於光學字符識別,我們必須執行文本定位,然後進行字符分割,然後進行字符識別。 所有這些步驟都由 Tesseract OCR 執行。 Tesseract OCR 引擎在打印文本而不是手寫文本時被證明是高度準確的。
獲取相關信息
具體來說,在提取的所有文本中,使用多個正則表達式可以輕鬆獲得購買日期、總金額等重要信息。 印在發票上的總金額可以通過應用正則表達式來提取,因為它通常出現在發票的末尾。 許多此類有用的信息可以根據其日期進行存儲,以便於訪問。
準確性
文本檢索的準確性可以定義為 Tesseract OCR 獲得的並且已經在發票中的正確信息數量與文本圖像中實際出現的單詞的累積數量之比。 更高的準確性意味著更高的預處理技術效率和 Tesseract OCR 提取信息的能力。
接下來是什麼?
如果您有興趣了解有關機器學習的更多信息,請查看 IIIT-B 和 upGrad 的機器學習和人工智能 PG 文憑,該文憑專為工作專業人士設計,提供 450 多個小時的嚴格培訓、30 多個案例研究和作業、IIIT- B 校友身份、5 個以上實用的實踐頂點項目和頂級公司的工作協助。
從世界頂級大學學習ML 課程。 獲得碩士、Executive PGP 或高級證書課程以加快您的職業生涯。
