TrOCR:基于Transformer的新一代光學字符識別
編者按:很長一段時間以來,文本識別一直都是一個重要的關于文檔數字化的研究課題?,F有的文本識別方法通常采用 CNN 網絡進行圖像理解,采用 RNN 網絡進行字符級別的文本生成。但是該方法需要額外附加語言模型來作為后處理步驟,以提高識別的準確率。
為此,微軟亞洲研究院的研究員們展開了深入研究,提出了首個利用預訓練模型的端到端基于 Transformer 的文本識別 OCR 模型:TrOCR。該模型簡單有效,可以使用大規(guī)模合成數據進行預訓練,并且能夠在人工標注的數據上進行微調。實驗證明,TrOCR 在打印數據和手寫數據上均超過了當前最先進的模型。訓練代碼和模型現已開源。希望感興趣的讀者可以閱讀全文,了解 TrOCR 的優(yōu)勢所在!
光學字符識別(OCR)是將手寫或印刷文本的圖像轉換成機器編碼的文本,可應用于掃描文檔、照片或疊加在圖像上的字幕文本。一般的光學字符識別包含兩個部分:文本檢測和文本識別。
文本檢測用于在文本圖像中定位文本塊,粒度可以是單詞級別或是文本行級別。目前的解決方案大多是將該任務視為物體檢測問題,并采用了如 YoLOv5 和 DBNet 的傳統(tǒng)物體檢測模型。
文本識別致力于理解文本圖像并將視覺信號轉換為自然語言符號。該任務通常使用編碼器-****架構,現有方法采用了基于 CNN 網絡的編碼器進行圖像理解,以及基于 RNN 網絡的****進行文本生成。
在文本識別領域中,Transformer 模型被頻繁采用,其結構的優(yōu)勢帶來了顯著的效率提升。然而,現有方法仍主要采用 CNN 網絡作為主干網絡,并在此基礎上配合自注意力機制來理解文本圖像;另外,現有方法還依舊采用 CTC 作為****,配合額外的字符級別的語言模型來提高整體的準確率。這種混合模型雖然取得了巨大的成功,但仍然有很大的提升空間:
1. 現有模型的參數是在合成或人工標注的數據上從零開始訓練的,沒有探索大規(guī)模預訓練模型的應用。
2. 圖像 Transformer 模型變得愈發(fā)流行,特別是最近提出的自監(jiān)督圖像預訓練?,F在應當開始探索預訓練的圖像 Transformer 是否可以替代 CNN 主干網絡,以及預訓練的圖像 Transformer 是否可以在單一網絡中配合預訓練文本 Transformer 進行文本識別任務。
因此,微軟亞洲研究院的研究員們聚焦文本識別任務展開了多項研究,并提出了首個利用預訓練模型的端到端基于 Transformer 的文本識別 OCR 模型:TrOCR,模型結構如圖1。
圖1:TrOCR 模型結構示意圖
與現有方法不同,TrOCR 簡單、高效,沒有將 CNN 作為主干網絡,而是把輸入的文本圖像切分成圖像切片,然后輸入到圖像 Transformer 中。TrOCR 的編碼器和****則均使用了標準的 Transformer 結構以及自注意力機制,****生成 wordpiece 作為輸入圖像的識別文本。為了更有效的訓練 TrOCR 模型,研究員們使用了 ViT 模式的預訓練模型和BERT模式的預訓練模型,來分別初始化編碼器和****。
論文:https://arxiv.org/abs/2109.10282
代碼/模型:https://aka.ms/trocr
TrOCR 的優(yōu)勢有三個方面:
1. TrOCR 使用預訓練的圖像和文本模型,利用大規(guī)模無標注數據的優(yōu)勢來進行圖像理解和建模語言模型,不需要額外的語言模型介入。
2. TrOCR 不需要任何復雜的卷積網絡來作為主干網絡,更加易于實現和維護。實驗證明,TrOCR 在打印體和手寫體文本識別任務的基準數據集上均超越了當前最先進的方法,不需要任何復雜的預/后處理步驟。
3. TrOCR 可以很容易地擴展為多語言模型,只需要在****端使用多語種預訓練模型即可。此外,通過簡單調整預訓練模型的參數量配置,使云/端部署變得極為簡便。
實現方法
模型結構
TrOCR 采用了 Transformer 結構,包括圖像 Transformer 和文本 Transformer,分別用于提取視覺特征和建模語言模型,并且采用了標準的 Transformer 編碼器-****模式。編碼器用于獲取圖像切片的特征;****用于生成 wordpiece 序列,同時關注編碼器的輸出和之前生成的 wordpiece。
對于編碼器,TrOCR 采用了 ViT 模式的模型結構,即改變輸入圖像的尺寸,并切片成固定大小的正方形圖像塊,以形成模型的輸入序列。模型保留預訓練模型中的特殊標記“[CLS]”代表整張圖片的特征,對于 DeiT 的預訓練模型,同樣保留了對應的蒸餾token,代表來自于教師模型的蒸餾知識。而對于****,則采用原始的 Transformer ****結構。
模型初始化
編碼器和****均應用在經過大規(guī)模標注/無標注數據預訓練過的公開模型上,從而進行初始化。編碼器采用 DeiT 和 BEiT 模型進行初始化,而****采用 RoBERTa 模型進行初始化。由于 RoBERTa 的模型結構和標準的 Transformer ****不完全匹配,例如缺乏編碼器-****注意力層,因此研究員們將隨機初始化這些在 RoBERTa 模型中不存在的層。
任務流程
TrOCR 的文本識別任務過程是:給定待檢測的文本行圖像,模型提取其視覺特征,并且給予圖像以及已經生成的上文來預測對應的 wordpiece。真實文本以“[EOS]”符號結尾,代表句子的結束。在訓練過程中,研究員們向后旋轉真實文本的 wordpiece 序列,并把“[EOS]”符號挪到首位,輸入到****中,并使用交叉熵損失函數來監(jiān)督****的輸出。在推斷時,****從“[EOS]”符號開始迭代預測之后的 wordpiece,并把預測出的 wordpiece 作為下一次的輸入。
預訓練
研究員們使用文本識別任務作為預訓練任務,因為它可以使模型同時學習到視覺特征提取和語言模型兩者的知識。預訓練過程分為兩個階段:第一個階段,研究員們合成了一個包含上億張打印體文本行的圖像以及對應文本標注的數據集,并在其上預訓練 TrOCR 模型;第二個階段,研究員們構建了兩個相對較小的數據集,分別對應打印體文本識別任務和手寫體文本識別任務,均包含上百萬的文本行圖像,并在打印體數據和手寫體數據上預訓練了兩個獨立的模型,且都由第一階段的預訓練模型初始化。
微調
研究員們在打印體文本識別任務和手寫體文本識別任務上微調了預訓練的 TrOCR 模型。模型的輸出基于 BPE(字節(jié)對編碼)并且不依賴于任何任務相關的詞典。
數據增強
為了增加預訓練數據和微調數據的變化,研究員們使用了數據增強技術,合計七種圖像轉換方法(包括保持原有輸入圖像不變)。對于每個樣例,研究員們在隨機旋轉、高斯模糊、圖像膨脹、圖像腐蝕、下采樣、添加下劃線、保持原樣中會機會均等地隨機選取一個方法對圖像進行變換。
預訓練數據
為了構建一個大規(guī)模高質量的數據集,研究員們從互聯網上公開的 PDF 文檔中隨機選取了兩百萬張文檔頁面。由于這些 PDF 是數字生成的,因此通過把 PDF 文檔轉換為頁面圖像,然后提取文本行和裁切圖像就可以得到高質量的打印體文本行圖像。第一階段的預訓練數據一共包含6億8千萬文本行數據。
對于預訓練的第二階段,研究員們使用5427個手寫字體和 TRDG 開源文本識別數據生成工具,合成了大量的手寫文本行圖像,并隨機從維基百科的頁面中選取文本。該階段預訓練的手寫數據集包含合成數據和 IIIT-HWS 數據集,共計1800萬的文本行。此外,研究員們還收集了現實世界中的5萬3千張收據照片,并通過商業(yè) OCR 引擎識別了上面的文本,對照片進行了修正和裁剪。同樣,研究員們也使用 TRDG 合成了100萬打印體的文本行圖像,并使用了兩種收據字體和其內置的打印體字體。第二階段預訓練的打印體數據集包含330萬的文本行。表1統(tǒng)計了合成數據的規(guī)模。
表1:兩階段預訓練的合成數據規(guī)模
預訓練結果
首先,研究員們比較了不同編碼器和****的組合,來尋找最佳的模型設定。研究員們比較了 DeiT,BEiT 和 ResNet50 網絡作為編碼器的選項。在比較中,DeiT 和 BEiT 均使用了論文中 base 的模型設定。對于****而言,研究員們則比較使用了 RoBERTa-base 初始化的 base ****和使用 RoBERTa-large 初始化的 large ****。作為對照,研究員們對隨機初始化的模型、CRNN 基線模型以及 Tesseract 開源 OCR 引擎也進行了實驗。
表2給出了組合得到的模型結果。BEiT 編碼器和 RoBERTa-large ****表現出了最好的結果。與此同時,結果表明預訓練模型確實提高了文本識別模型的性能,純 Transformer 模型的性能要優(yōu)于 CRNN 模型和 Tesseract。根據這個結果,研究員們選取了后續(xù)實驗的兩個模型設定:TrOCR-base,包含 334M 個參數,由 BEiT-base 編碼器和 RoBERTa-large ****組成;TrOCR-large,包含558M個參數,由 BEiT-large 編碼器和 RoBERTa-large ****組成。
表2:在 SROIE 數據集上進行的消融實驗結果
表3給出了 TrOCR 模型和 SROIE 數據集排行榜上當前最先進模型的結果??梢钥闯?,TrOCR 模型憑借純 Transformer 模型超過了當前最先進模型的性能,同時也證實了其不需要任何復雜的預/后處理步驟?;?Transformer 的文本識別模型在視覺特征提取上可以與基于 CNN 的模型有近似性能,在語言模型上可與 RNN 相媲美。
表3: 大規(guī)模預訓練的 TrOCR 模型在 SROIE 印刷體數據集的實驗結果
表4給出了 TrOCR 模型和 IAM 數據集上現有方法的結果。結果顯示現有方法中 CTC ****和額外的語言模型可以帶來顯著的效果提升。通過與(Bluche and Messina, 2017)比較,TrOCR-large 有著更好的結果,這說明 Transformer ****相比于 CTC ****在文本識別任務中更具競爭力,同時已經具有足夠的建模語言模型的能力,而不需要依賴于額外的語言模型。
表4: 大規(guī)模預訓練的 TrOCR 模型在 IAM 手寫體數據集的實驗結果
TrOCR 使用了來自于圖像切片的信息,獲得了與 CNN 網絡相似甚至更好的結果,說明經過預訓練的 Transformer 結構可以勝任提取視覺特征的任務。從結果來看TrOCR 模型使用純 Transformer 結構超過了所有僅使用合成+IAM 數據的方法,同時在沒有使用額外人工標注數據的情況下,取得了和使用人工標注數據的方法相近的結果。
總結
在本文中,研究員們提出了首個利用預訓練模型的端到端基于 Transformer 的文本識別 OCR 模型:TrOCR。不同于現有方法,TrOCR 不依賴于傳統(tǒng)的 CNN 模型進行圖像理解,而是利用了圖像 Transformer 作為視覺編碼器,利用文本 Transformer 作為文本編碼器。此外,與基于字符的方法不同,研究員們使用 wordpiece 作為識別輸出的基本單元,節(jié)省了在額外的語言模型中額外的計算開銷。實驗證明,在沒有任何后處理步驟,且僅使用一個簡單的編碼器-****模型的情況下,TrOCR 在打印文本和手寫文本識別中均取得了目前最先進的準確率。
*博客內容為網友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。