壹沓AI觀察:如何基于NLP(BERT)提高OCR精度
光學字符識別(OCR)是一種從掃描的文檔中提取數據的技術,目前廣泛應用于各類對接傳統政務、商務的機器人流程自動化領域,該技術準確性取決于輸入圖像的質量。壹沓科技認識到OCR在實際的應用中面臨的一個重要挑戰為:當字符級精度稍微下降時,字級精度下降顯著。相關研究表明:當字符級精度達到98%時,OCR技術提取的錯誤單詞將達到10-20%。正如下圖所示。
▲Yalniz,Ismet和Manmatha,R.的一種用于自動OCR評估書的快速對齊方案
壹沓科技的認知智能平臺CubeCognition正在使用NLP(Natural Language Processing)技術增強OCR的處理精度,可以很大程度解決上述問題。在面向數字機器人(CubeRobot)流程自動化研發和互聯網大數據文本挖掘的企業服務和實踐的過程中,我們除了借助傳統的基于大文本統計詞頻模型的NLP技術外,也在探索利用最新深度學習成果的方法。本文將介紹國外Statestitle公司的經驗,如何在實際場景的文檔OCR過程中使用Spell Checker和BERT1(預訓練的NLP模型)來提高OCR的精度。
▲OCR-BERT 管道
BERT(Bidirectional Encoder Representions from Transformers)是Google開發的一種自然語言處理技術,并使用Wikipedia(2.5B個單詞+ BookCorpus(800M個單詞)對BERT模型進行了訓練。該模型可用于各種NLP任務,包括句子預測,句子分類和遺漏單詞預測。本文將通過PyTorch使用預訓練的BERT模型來糾正OCR技術提取的錯誤單詞。
▲Google BERT目前支持90多種語言
使用BERT提高OCR處理的準確
本文列舉一個帶有代碼的示例。該示例使用python處理掃描的圖像并使用OCR和BERT創建文本文檔。
A.使用OCR技術處理掃描圖像
▲帶有錯誤的單詞的OCR輸出
B.處理文件并識別不可讀的單詞
SpellChecker 函數將拼寫錯誤的單詞識別出來,并且使用不常見的名稱為其打上標記。本文使用nltk的‘詞性’標簽排除人名來識別該類單詞。為了從BERT獲得預測,每個不正確的單詞都需要替換為[MASK]令牌。最后,將來自SpellChecker的建議替換單詞存儲在建議單詞列表里。
壹沓科技在中文環境的實踐中表明這個方式作用于中文的單字效果也是十分顯著的。
▲單詞不正確的文檔被[MASK]替換
C.加載BERT模型并預測替換單詞
BERT模型尋找[MASK]令牌,然后根據序列中其他未屏蔽單詞提供的上下文,嘗試預測被屏蔽單詞的原始值。BERT還接受分段嵌入,分段嵌入指的是用于區分多個句子并協助單詞預測的向量。例如 “Tom went to store. He bought two gallons of milk.”的段向量可以為 [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1]。
▲BERT 預測
D.使用SpellChecker的建議優化BERT預測
BERT預訓練語言模型對于預測被屏蔽單詞的多個可行替換非常有用,但是該模型不知道OCR發現的任何字符。我們可以通過SpellChecker的建議單詞列表來彌補這種不足,該單詞列表包含了OCR輸出亂碼。與僅依靠BERT相比,將BERT的基于上下文的建議與SpellChecker的基于單詞的建議結合起來可以產生更好的預測。
▲最終輸出,帶有來自BERT和SpellChecker的正確單詞的文本
總結
BERT語言模型很好地預測了被屏蔽單詞的可行替換。在上面的示例中,當要求預測“conmer”的掩蓋值時,模型建議使用“consumer”,“goverment”,“business”作為可行選擇,盡管這些建議都有意義,但“consumer ”的輸出概率最高。如果沒有SpellChecker來增加BERT的結果,我們可能會對屏蔽單詞進行錯誤分類。
本文使用的方法適用于單詞而不是數字。如需處理數字的話要使用其它方法(諸如校驗和之類的方法)。與單獨使用SpellChecker相比,本文還建議使用特定的‘錯誤/建議’標識。
通過壹沓科技的項目實踐,也可以得到類似的結果,在漢字的處理過程中,由于書面文件在字體、污漬、褶皺等原因,給識別精度也造成了一定的挑戰,解決此類問題一方面可以采用類似本文提到的OCR后處理糾錯的方案,另一方面也可以在OCR處理內部增強,OCR過程中會得到字塊所對應漢字的的可選項,一般也是以圖形識別的概率排序后輸出,如果對于置信度低于一定閾值的字符,通過MASK的方法,同時讓BERT根據上下文的關系來預測被掩蓋的錯誤漢字,我們也會同步得到一些來自語義關系的可行選項概率排序表。也就是說前者是通過圖像處理的原理得到的可行選項,后者是根據語義關系得到的可行選項,兩類選項通過交叉對比,便可以得到更為準確的最終結果。
注:本文案例部分源自
https://www.statestitle.com/resource/using-nlp-bert-to-improve-ocr-accuracy/
作者:Ravi Ilango
關于壹沓科技
壹沓科技成立于2016年11月,聚焦于前沿技術在企業數字化中的應用,我們在自然語言處理-NLP、圖像文字識-OCR、知識圖譜-KG、大數據挖掘-Data Mining、機器人流程自動化-RPA和業務流程重構及管理-BPR&BPM等領域具備完整的自主研發能力,已獲得軟件知識產權數十個。
公司核心的業務包括數字機器人產品(矩陣數字機器人-Matrix Robot)和互聯網大數據品牌管理(品牌方程-Formula DBM),已經為多個行業數百家企業及政府提供專業解決方案。
總部位于上海 ,在北京、深圳設有分公司, 已獲得高新技術企業、雙軟及專精特新企業等專業認證 。核心團隊來自于多家知名上市公司,在企業服務及互聯網從業超過10年,擁有大數據、云服務及人工智能領域的豐富經驗。
轉載請在文章開頭和結尾顯眼處標注:作者、出處和鏈接。不按規范轉載侵權必究。
未經授權嚴禁轉載,授權事宜請聯系作者本人,侵權必究。
本文禁止轉載,侵權必究。
授權事宜請至數英微信公眾號(ID: digitaling) 后臺授權,侵權必究。
評論
評論
推薦評論
暫無評論哦,快來評論一下吧!
全部評論(0條)