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