【導(dǎo)讀】OCR(Optical Character Recognition),也稱光學(xué)字符識別,是通過掃描等光學(xué)輸入方式將各種票據(jù)、報刊、書籍、文稿及其它印刷品的文字轉(zhuǎn)化為圖像信息,再利用文字識別技術(shù)將圖像信息轉(zhuǎn)化為可以使用的計算機輸入的一種技術(shù)。其實大家都在應(yīng)用這項技術(shù)——快遞單號的掃描識別、火車票的驗證等等。最近,F(xiàn)acebook 研究人員提出了一個大規(guī)模圖像文本提取和識別系統(tǒng)——Rosetta。接下來 AI科技大本營就為大家解讀一下這個 OCR 界的最新神器。
摘要
在本文中,我們提出了一個可部署、可擴展的光學(xué)字符識別 (OCR) 系統(tǒng),稱之為 Rosetta,用于處理 Facebook 上每天上傳的圖片。對于 Facebook 這樣社交網(wǎng)絡(luò)中的互聯(lián)網(wǎng)用戶而言,通過圖像內(nèi)容共享實現(xiàn)對圖像及其包含文字的理解,已經(jīng)成為信息溝通的一種主要方式,這對促進搜索和推薦應(yīng)用來說也是至關(guān)重要的。這里, 我們提出 Rosetta 系統(tǒng)結(jié)構(gòu),這是一種有效的建模技術(shù)用于檢測和識別圖像中的文本。通過進行大量的評估實驗,我們解釋了這種實用系統(tǒng)是如何用于構(gòu)建 OCR 系統(tǒng),以及如何在系統(tǒng)的開發(fā)期間部署特定的組分。
簡介
人們在 Facebook 等社交網(wǎng)絡(luò)中的信息共享主要是通過一些視覺媒體,如圖片和視頻等。在過去的幾年里,每天上傳到社交媒體平臺上的照片數(shù)量成倍增長,這對大量視覺信息的處理技術(shù)提出了挑戰(zhàn)。圖像理解的主要挑戰(zhàn)之一是將有關(guān)圖像中的文本信息檢索出來,這也稱為光學(xué)字符識別 (OCR),這是一個將電子圖像中的字體,繪圖或場景文本轉(zhuǎn)化為機器編碼文本的過程。從圖像中獲取這樣的文本信息是非常重要的,這也能促進許多不同的現(xiàn)實應(yīng)用,如圖像搜索和推薦等。
在光學(xué)字符識別任務(wù)中,給定一張圖像,我們的 OCR 系統(tǒng)能夠正確地提取所覆蓋或嵌入的文本圖片。這種任務(wù)所面臨的挑戰(zhàn)主要是來自一些潛在的字體、語言、詞典和其他語言變體,包括特殊的符號,非字典單詞或圖像中的 URL,email ID 等特定信息。此外,圖像的質(zhì)量往往也會隨著自然場景圖像中文字的出現(xiàn)而變化不同的背景。另一方面,社交網(wǎng)絡(luò)上每天上傳的圖像數(shù)量都是龐大的,對于如此大量的圖片進行處理也是目前這項任務(wù)所要面臨的一大挑戰(zhàn)。我們想要在圖像上傳的同時,實時地進行 OCR 處理,這需要我們花費大量的時間對系統(tǒng)的組件進行優(yōu)化。
總的說來,我們希望建立一個強大而準確的 OCR 系統(tǒng),來實時處理每天上傳的數(shù)億張圖像。本文,我們提出一種可擴展的 OCR 系統(tǒng) Rosetta,為 Facebook 日常網(wǎng)絡(luò)社交提供支持。我們的 OCR 系統(tǒng)分為文本檢測和文本識別兩個階段:基于 Faster-RCNN 模型,在文本檢測階段我們的系統(tǒng)能夠檢測出圖像內(nèi)包含文本的區(qū)域;采用基于全卷積網(wǎng)絡(luò)的字符識別模型,在文本識別階段我們的系統(tǒng)能夠處理檢測到的位置并識別出文本的內(nèi)容。下圖1展示了 Rosetta 系統(tǒng)的檢測識別效果。
圖1 使用 Rosetta 系統(tǒng)進行 OCR 文本識別。首先,基于 Faster-RCNN 模型檢測出單詞的位置,并采用全卷積模型生成每個單詞的轉(zhuǎn)路信息。
方法
我們的 OCR 系統(tǒng) Rosetta 主要包含兩個階段:檢測和識別階段。在檢測階段,我們的系統(tǒng)能夠檢測出圖像中可能包含文字的矩形區(qū)域。在識別階段,我們對每個檢測到的區(qū)域,使用全卷積神經(jīng)網(wǎng)絡(luò)模型,識別并轉(zhuǎn)錄該區(qū)域的單詞,實現(xiàn)文本識別。兩階段的處理過程有幾大好處,包括解耦訓(xùn)練處理、部署并更新檢測和識別模型的能力,并行地運行文本識別,獨立地支持不同語言的文本識別等。下圖2詳細說明我們系統(tǒng)的流程。
圖2 兩階段模型的結(jié)構(gòu)。第一階段是基于 Faster-RCNN 模型進行單詞檢測。第二階段使用具有 CTC 損失的全卷積模型進行單詞識別。這兩個模型是獨立訓(xùn)練的。
▌文本檢測模型
文本檢測階段,我們采用最先進的 Faster-RCNN 目標檢測網(wǎng)絡(luò)。簡而言之,F(xiàn)aster-RCNN 通過一個全卷積神經(jīng)網(wǎng)絡(luò)和區(qū)域建議網(wǎng)絡(luò) (RPN) 同時實現(xiàn)目標的檢測和識別:學(xué)習(xí)表征一張圖像的卷積特征映射并生成 k 個高可能性的文本建議區(qū)域候選框及其置信度得分,隨后按置信度分數(shù)排序這些候選框并利用非極大值抑制 (NMS) 算法得到最有希望的檢測區(qū)域,再從候選框中提取相關(guān)的特征映射并學(xué)習(xí)一個分類器來識別它們。此外,邊界框回歸 (bounding-box regression) 通常用于提高邊界框生成的準確性。
考慮到模型效率的問題,我們的文本檢測模型采用基于 ShuffleNet 結(jié)構(gòu)的 Faster-RCNN 模型,而 ShuffleNet 卷積結(jié)構(gòu)是在 ImageNet 數(shù)據(jù)集上經(jīng)過預(yù)訓(xùn)練得到的。整個文本檢測系統(tǒng)是以監(jiān)督式的,端到端的方式進行訓(xùn)練的。訓(xùn)練過程中,該檢測系統(tǒng)采用內(nèi)部合成的數(shù)據(jù)進行訓(xùn)練,并在 COCO-Text 數(shù)據(jù)集上進行微調(diào)后應(yīng)用于學(xué)習(xí)真實世界數(shù)據(jù)集特征。了,
▌文本識別模型
文本識別階段,我們嘗試了以下兩種不同的模型結(jié)構(gòu),并采用了不同的文本損失函數(shù)。
基于字符序列的編碼模型 (CHAR)。該模型假設(shè)所有圖像都具有相同的大小并且存在最大可識別字符數(shù)量 k。對于較長的單詞,單詞中只有 k 個字符能夠被識別出。該 CHAR 模型的主體由一系列卷積結(jié)構(gòu)組成,后接上 k 個獨立的多類分類器,用于預(yù)測在每個位置上出現(xiàn)的字符。在訓(xùn)練期間,共同學(xué)習(xí)卷積體和 k 個不同的分類器。使用 k 個并行損失 (softmax + negative cross-entropy) 并提供合理的基線就能很容易地訓(xùn)練 CHAR 模型,但這有兩個重大缺點:它無法正確識別長的單詞串 (如 URL 地址),分類器中大量的參數(shù)容易導(dǎo)致模型出現(xiàn)過擬合現(xiàn)象。
基于全卷積模型。我們將此模型稱為 CTC,因為它使用 seq2seq 的CTC損失函數(shù)用于模型的訓(xùn)練,并輸出一系列字符。CTC 模型的結(jié)構(gòu)示意圖如下圖3所示,基于 ResNet-18 結(jié)構(gòu),在最后一層的卷積中預(yù)測輸入字符在每個圖像中最可能的位置。與其他工作不同的是,我們在此不使用顯式循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu) (如 LSTM 或 GRU) 或任何的注意力機制,而直接生成每個字符的概率。訓(xùn)練時,我們采用 CTC 損失函數(shù),通過邊緣化所有可能對齊的路徑集合來計算給定標簽的條件概率,這就能夠使用動態(tài)編程進行有效地計算。 如圖3所示,特征映射的每一列對應(yīng)于圖像每個位置所有字符的概率分布,CTC 能夠找到它們之間的對齊預(yù)測,即可能包含重復(fù)的字符或空白字符 (-)和真實標簽。
圖3 文本識別模型的結(jié)構(gòu)
▌Rosetta 系統(tǒng)
下圖4展示了 Rosetta 的系統(tǒng)結(jié)構(gòu),其在線圖片處理的流程主要包含以下幾個步驟:
Rosetta 將客戶端的圖片下載到本地計算機集群,并通過預(yù)處理步驟,如調(diào)整大小和規(guī)范化來進一步處理。
執(zhí)行文本檢測模型 (圖4中的步驟4) 獲取圖像中所有單詞的位置信息 (邊界框坐標和置信度分數(shù))。
將單詞的位置信息傳遞給文本識別模型 (圖4中的步驟5),用于提取圖像給定裁剪區(qū)域的單詞字符。
所提取的文本信息及圖像中文本的位置信息都被存儲在 TAO 中,這是 Facebook 的一個分布式圖形數(shù)據(jù)庫 (圖4中的步驟6)。
諸如圖片搜索等下游應(yīng)用程序可以從 TAO 中訪問所提取的圖像文本信息 (圖4中的步驟7)。
圖4 Rosetta 系統(tǒng)結(jié)構(gòu),這是 Facebook 的可擴展的文本識別系統(tǒng)。
實驗
我們對 Rosetta OCR 系統(tǒng)進行了大量的評估實驗。首先,我們定義用于評估準確性和系統(tǒng)處理時間的度量,并描述用于訓(xùn)練和評估的數(shù)據(jù)集。我們在單獨的數(shù)據(jù)集上進行保準的模型訓(xùn)練和評估過程。進一步,我們評估文本檢測和文本識別模型,以及系統(tǒng)準確性和運行時間之間的權(quán)衡。
▌評估度量
對于文本檢測模型,我們采用 mAP 和 IoU 作為評估度量。而對于文本識別模型,我們使用 accuracy 和 Levenshtein’s edit distance 作為我們的評估指標。
▌數(shù)據(jù)庫
我們采用 COCO-Text 數(shù)據(jù)集對我們的模型進行訓(xùn)練和測試。COCO-Text 數(shù)據(jù)集包含大量自然場景下注釋的文字,由超過63000張圖片和145000文本實例組成。為了解決 COCO-Text 數(shù)據(jù)與 Facebook 上圖片數(shù)據(jù)分布不匹配的問題,我們還通過隨機重疊 Facebook 中圖像的文本來生成了一個大規(guī)模的合成數(shù)據(jù)集。
▌模型檢測性能
下表1,表2,表3分別展示了 Faster-RCNN 檢測模型在不同數(shù)據(jù)測試集上的的檢測性能,不同卷積主體結(jié)構(gòu)的推理時間,以及 ResNet-18 和 ShuffleNet 為卷積主體的檢測性能。
表1 在不同數(shù)據(jù)測試集上 Faster-RCNN 檢測模型的mAP。準確性是 mAP 在合成訓(xùn)練數(shù)據(jù)集上的相對改進?!硎疚⒄{(diào),即 A→B 表示在 A 上訓(xùn)練并在 B 上微調(diào)。
表2 以各種卷積結(jié)構(gòu)為主體的 Faster-RCNN 模型的推理時間。表中的數(shù)字為相對于 ResNet-50 的改進。
表3 使用 ResNet-18 和 Shuffle 結(jié)構(gòu)的 Faster R-CNN 在 COCO-Text 數(shù)據(jù)集上評估結(jié)果。表格中的 mAP 是對 ResNet-18 的 3個RPN 寬高比的相對改進。
▌模型識別性能
下表4,表5分別展示了在不同數(shù)據(jù)集上模型的識別性能以及結(jié)合檢測和識別系統(tǒng)檢測到的詞召回率下降的歸一化幅度。
表4不同數(shù)據(jù)集上模型的識別性能。越高的 accuracy 和越低的 edit distance 代表越好的結(jié)果。表中的數(shù)字是相對于在合成數(shù)據(jù)集上訓(xùn)練的 CHAR 模型的改進。
表5 檢測和識別組合系統(tǒng)檢測到詞召回率下降的歸一化幅度
結(jié)論
本文,我們提出了魯棒而有效的文本檢測和識別模型,并用于構(gòu)建可擴展的 OCR 系統(tǒng) Rosetta。我們對 Rosetta 系統(tǒng)進行了大量的評估,結(jié)果展示系統(tǒng)在權(quán)衡模型精度和處理時間方面都能實現(xiàn)高效率的性能。進一步地,我們的系統(tǒng)將部署到實際生產(chǎn)中并用于處理 Facebook 用戶每天上傳的圖片。
-
圖像
+關(guān)注
關(guān)注
2文章
1083瀏覽量
40449 -
Facebook
+關(guān)注
關(guān)注
3文章
1429瀏覽量
54720 -
識別系統(tǒng)
+關(guān)注
關(guān)注
1文章
138瀏覽量
18810
原文標題:OCR大突破:Facebook推出大規(guī)模圖像文字檢測識別系統(tǒng)——Rosetta
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論