【翻譯】Rosetta Large Scale System for Text Detection and Recognition in Images

Rosetta: Large Scale System for Text Detection and Recognition in Images(大規模圖像文本提取和識別系統)

摘要

​ 在本文中,我們提出了一個可部署、可擴展的光學字符識別 (OCR) 系統,稱之爲 Rosetta,用於處理 Facebook 上每天上傳的圖片。對於 Facebook 這樣社交網絡中的互聯網用戶而言,通過圖像內容共享實現對圖像及其包含文字的理解,已經成爲信息溝通的一種主要方式,這對促進搜索和推薦應用來說也是至關重要的。這裏, 我們提出 Rosetta 系統結構,這是一種有效的建模技術用於檢測和識別圖像中的文本。通過進行大量的評估實驗,我們解釋了這種實用系統是如何用於構建 OCR 系統,以及如何在系統的開發期間部署特定的組分。

簡介

​ OCR 系統分爲文本檢測和文本識別兩個階段:基於 Faster-RCNN 模型,在文本檢測階段我們的系統能夠檢測出圖像內包含文本的區域;採用基於全卷積網絡的字符識別模型,在文本識別階段我們的系統能夠處理檢測到的位置並識別出文本的內容。

在這裏插入圖片描述

文本檢測模型

​ 文本檢測階段,我們採用最先進的 Faster-RCNN 目標檢測網絡。簡而言之,Faster-RCNN 通過一個全卷積神經網絡和區域建議網絡 (RPN) 同時實現目標的檢測和識別:學習表徵一張圖像的卷積特徵映射並生成 k 個高可能性的文本建議區域候選框及其置信度得分,隨後按置信度分數排序這些候選框並利用非極大值抑制 (NMS) 算法得到最有希望的檢測區域,再從候選框中提取相關的特徵映射並學習一個分類器來識別它們。此外,邊界框迴歸 (bounding-box regression) 通常用於提高邊界框生成的準確性。

​ 考慮到模型效率的問題,我們的文本檢測模型採用基於 ShuffleNet 結構的 Faster-RCNN 模型,而 ShuffleNet 卷積結構是在 ImageNet 數據集上經過預訓練得到的。整個文本檢測系統是以監督式的,端到端的方式進行訓練的。訓練過程中,該檢測系統採用內部合成的數據進行訓練,並在 COCO-Text 數據集上進行微調後應用於學習真實世界數據集特徵。

文本識別模型

​ 文本識別階段,我們嘗試了以下兩種不同的模型結構,並採用了不同的文本損失函數。

​ 基於字符序列的編碼模型 (CHAR)。該模型假設所有圖像都具有相同的大小並且存在最大可識別字符數量 k。對於較長的單詞,單詞中只有 k 個字符能夠被識別出。該 CHAR 模型的主體由一系列卷積結構組成,後接上 k 個獨立的多類分類器,用於預測在每個位置上出現的字符。在訓練期間,共同學習卷積體和 k 個不同的分類器。使用 k 個並行損失 (softmax + negative cross-entropy) 並提供合理的基線就能很容易地訓練 CHAR 模型,但這有兩個重大缺點:它無法正確識別長的單詞串 (如 URL 地址),分類器中大量的參數容易導致模型出現過擬合現象。
​ 基於全卷積模型。我們將此模型稱爲 CTC,因爲它使用 seq2seq 的CTC損失函數用於模型的訓練,並輸出一系列字符。CTC 模型的結構示意圖如下圖3所示,基於 ResNet-18 結構,在最後一層的卷積中預測輸入字符在每個圖像中最可能的位置。與其他工作不同的是,我們在此不使用顯式循環神經網絡結構 (如 LSTM 或 GRU) 或任何的注意力機制,而直接生成每個字符的概率。訓練時,我們採用 CTC 損失函數,通過邊緣化所有可能對齊的路徑集合來計算給定標籤的條件概率,這就能夠使用動態編程進行有效地計算。 如圖3所示,特徵映射的每一列對應於圖像每個位置所有字符的概率分佈,CTC 能夠找到它們之間的對齊預測,即可能包含重複的字符或空白字符和真實標籤。

在這裏插入圖片描述

Rosetta 系統

​ 下圖展示了 Rosetta 的系統結構,其在線圖片處理的流程主要包含以下幾個步驟:

​ Rosetta 將客戶端的圖片下載到本地計算機集羣,並通過預處理步驟,如調整大小和規範化來進一步處理。
​ 執行文本檢測模型 (圖中的步驟4) 獲取圖像中所有單詞的位置信息 (邊界框座標和置信度分數)。
​ 將單詞的位置信息傳遞給文本識別模型 (圖中的步驟5),用於提取圖像給定裁剪區域的單詞字符。
​ 所提取的文本信息及圖像中文本的位置信息都被存儲在 TAO 中,這是 Facebook 的一個分佈式圖形數據庫 (圖中的步驟6)。
​ 諸如圖片搜索等下游應用程序可以從 TAO 中訪問所提取的圖像文本信息 (圖中的步驟7)。

在這裏插入圖片描述

實驗

​ 我們對 Rosetta OCR 系統進行了大量的評估實驗。首先,我們定義用於評估準確性和系統處理時間的度量,並描述用於訓練和評估的數據集。我們在單獨的數據集上進行保準的模型訓練和評估過程。進一步,我們評估文本檢測和文本識別模型,以及系統準確性和運行時間之間的權衡。

評估度量

​ 對於文本檢測模型,我們採用 mAP 和 IoU 作爲評估度量。而對於文本識別模型,我們使用 accuracy 和 Levenshtein’s edit distance 作爲我們的評估指標。

數據庫

​ 我們採用 COCO-Text 數據集對我們的模型進行訓練和測試。COCO-Text 數據集包含大量自然場景下注釋的文字,由超過63000張圖片和145000文本實例組成。爲了解決 COCO-Text 數據與 Facebook 上圖片數據分佈不匹配的問題,我們還通過隨機重疊 Facebook 中圖像的文本來生成了一個大規模的合成數據集。

模型檢測性能

​ 下表1,表2,表3分別展示了 Faster-RCNN 檢測模型在不同數據測試集上的的檢測性能,不同卷積主體結構的推理時間,以及 ResNet-18 和 ShuffleNet 爲卷積主體的檢測性能。

在這裏插入圖片描述

表1 在不同數據測試集上 Faster-RCNN 檢測模型的mAP。準確性是 mAP 在合成訓練數據集上的相對改進。→表示微調,即 A→B 表示在 A 上訓練並在 B 上微調。

在這裏插入圖片描述

表2 以各種卷積結構爲主體的 Faster-RCNN 模型的推理時間。表中的數字爲相對於 ResNet-50 的改進。

在這裏插入圖片描述

表3 使用 ResNet-18 和 Shuffle 結構的 Faster R-CNN 在 COCO-Text 數據集上評估結果。表格中的 mAP 是對 ResNet-18 的 3個RPN 寬高比的相對改進。

模型識別性能

​ 下表4,表5分別展示了在不同數據集上模型的識別性能以及結合檢測和識別系統檢測到的詞召回率下降的歸一化幅度。

在這裏插入圖片描述

表4不同數據集上模型的識別性能。越高的 accuracy 和越低的 edit distance 代表越好的結果。表中的數字是相對於在合成數據集上訓練的 CHAR 模型的改進。

在這裏插入圖片描述

表5 檢測和識別組合系統檢測到詞召回率下降的歸一化幅度

結論

​ **本文,我們提出了魯棒而有效的文本檢測和識別模型,並用於構建可擴展的 OCR 系統 Rosetta。**我們對 Rosetta 系統進行了大量的評估,結果展示系統在權衡模型精度和處理時間方面都能實現高效率的性能。進一步地,我們的系統將部署到實際生產中並用於處理 Facebook 用戶每天上傳的圖片。

發佈了87 篇原創文章 · 獲贊 27 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章