1. 程式人生 > 實用技巧 >OCR in the Wild:文字檢測和識別的SOTA

OCR in the Wild:文字檢測和識別的SOTA

點選上方“AI公園”,關注公眾號,選擇加“星標“或“置頂”


作者:Noé

編譯:ronghuaiyang

導讀

回顧了場景文字檢測和識別領域的3篇論文,分別是檢測,識別以及端到端的方法。

基於深度學習的方法可以在自然影象中檢測和識別複雜的文字例項。

介紹

光學字元識別(OCR)包括自動解碼影象中的文字例項。此任務的複雜性因應用而異。一方面,從掃描的報紙上閱讀單詞是比較容易的,因為文字是直的,一致的,和背景有很好的對比。另一方面,在自然影象中使用創造性字型的彎曲文字例項不僅讀起來更有挑戰性(文字識別):它還需要一個棘手的初步步驟來定點陣圖像中的文字(文字檢測)。傳統的計算機視覺技術可以很好地處理前者,而後者需要先進的(SOTA)深度學習方法結合CNNs和RNNs。

閱讀場景文字,即閱讀文字例項“in the wild”,需要兩個步驟:

  • 文字檢測:找到影象中的文字例項的位置。

  • 文字識別:解碼檢測到的文字例項的每個字元。

場景文字檢測的pipeline

由於字型的複雜性,上圖中的“Metropolitain”和“Rome”這兩個單詞很有挑戰性!

為了更好地理解場景文字檢測和識別,本文會討論:

  • Textsnake [Long et al., 2018],一種文字檢測演算法,能夠處理非常複雜的文字形狀。

  • MORAN [Luo et al., 2019],一種使用校正網路和注意力機制糾正和閱讀複雜文字框的文字識別演算法。

  • FOTS [Liu et al., 2018],一種共享檢測步驟和識別步驟卷積的端到端方法,提高了魯棒性和效率。

  • 一個有趣的實驗結果,將FOTS和Textsnake結合。

文字檢測

這些SOTA檢測演算法都使用了U-net結構。它們通常由於選擇輸出的通道和後處理方法而有所不同。事實上,分割通常不夠精確,後處理是重建文字框的必要條件。

U-net用在上下文檢測中

下圖顯示的編碼器每一步的分割圖是在那一層執行一次反捲積的結果(影象來自[Zhang et al., 2019])。這種視覺化強調了編碼器是如何以失去空間資訊的代價逐步提取深度特徵的。因此,逐步地將編碼的對映合併到解碼的對映(灰色箭頭)可以取回編碼期間丟失的空間資訊。

給出了U-net的總體結構,並在每個編碼步驟中給出了深層次特徵的視覺化描述。每一步的卷積和通道的數量取決於主幹架構。

Textsnake: A Flexible Representation for Detecting Text of Arbitrary Shapes [Long et al., 2018]

與大多數檢測演算法不同,Textsnake處理任意形狀的文字結構。為此,演算法計算一條1畫素的粗線,穿過文字例項的中心,如下圖中的綠色所示。與這條線的每個點相關的半徑r使繪製描繪文字區域的圓成為可能。此外,角度θ表示用於拉平文字時所必要的旋轉。

Textsnake的檢測引數

輸出通道如下:

  • TR (Text Region): 指示了文字和非文字區域的分割圖。

  • TCL (Text Center Line): 穿過文字例項中心的區域。

  • radius, cos θ, sin θ: 用來構建圓所需的引數。

對於TCL的訓練,只考慮TR中的畫素。因此,TCL不學習區分文字和非文字畫素,從而簡化了其任務。因此,TR圖可以用來掩碼TCL圖從而可以過濾誤報。然後使用迭代striding演算法為剩下的每個TCL區域獲取一串畫素。最後,重建文字框。

Textsnake的輸出以及文字框重建pipeline

Textsnake只需要文字框座標來訓練。事實上,訓練TCL圖不需要任何額外的標記,因為它的GT可以直接從邊界框計算出來(更多細節見論文)。

該演算法可以在in the wild場景準確檢測出複雜文字框的輪廓。下圖b和c展示了Textsnake的將文字拉平的能力。它在稍微彎曲的文字例項上執行得非常好。但是,隨著角度的增加,從“STARBUCKS”的首字母和尾字母可以看出,矯正的質量會下降。

Textsnake的結果,(a) 綠色: ground truth. 黃色: 檢測到的文字輪廓。(b) 文字確認和矯正。(c) 和 (b) 一樣,但是用的是我們自己的實現

文字識別

文字識別主要有兩種方法,都是使用CNN對影象進行預處理,然後使用RNN對文字進行解碼。

  • CRNN + CTC [Shi et al., 2016]:目前最常用的方法(例如Tesseract)。CRNN = 在CNN後面接一個RNN。

  • CNN + Attention RNN:目前文字識別的主要研究領域,本節詳細介紹的論文就是採用這種方法。

文字識別中的注意力RNNs

如上所述,CNN首先對輸入的文字影象進行預處理。這包括(大多數時候)通過將影象高度降低到1畫素和增加通道數量來使影象變平。然後,得到的陣列在寬度軸上被分割成w個向量,w是寬度,構成注意力神經網路的輸入。

注意力機制允許RNN在產生每個輸出時,即文字中的每個字母,聚焦於正確的輸入。因此,它指定了應該對每個輸入(即影象的每個區域)給予多少關注,而不管它們在序列中的哪個位置。下圖是注意力機制的示意圖。

注意力機制

Moran: A multi-object rectified attention network for scene text recognition [Luo et al., 2019]

Moran的結構結合了兩個網路。第一個檢測網路MORN在第二個檢測網路ASRN讀取文字之前對文字框進行了修正(與Textsnake一樣,但並非所有的檢測網路都是這樣做的)。

  • MORN首先處理輸入影象(即文字框),用CNN對影象進行校正。為此,它的輸出圖為影象的每個對應區域指定在x和y方向(即2個輸出對映)上應該移動的畫素數,以拉直文字。

  • ASRN使用注意力RNN來解碼文字。自然影象中大量的噪聲經常誤導網路聚焦在影象的錯誤部分。ASRN通過一種稱為分部拾取的正則化方法克服了這個問題。它由隨機混合鄰近輸入的注意力權重的分陣列成。

MORAN結構

MORAN的一個顯著特點是它只需要弱標籤,即輸出文字。事實上,網路是用單一的損失函式端到端訓練的。通過向後傳播解碼錯誤,MORN可以學會矯正影象!

MORN在彎曲文字中的表現不如在傾斜文字中的好,下圖a。然而,它仍然設法刪除了可能混淆注意力層的無用特徵(紅色圓圈)。為了解碼文字,ASRN將其注意力一個一個地吸引到每個字母上(下圖b)。此外,由於分部拾取,它不會被陰影等特徵混淆。雖然MORN矯正還遠遠不夠完美,但它足夠有效地允許ASRN正確解碼文字(下圖c)。

Moran的結果 (a) MORN的結果。(b) 使用/不使用分部拾取的解碼。(c) MORAN和其他網路的比較。

端到端的方法

Fots: Fast oriented text spotting with a unified network [Liu et al., 2018]

用於文字檢測和識別的神經網路都是為了從輸入影象中提取文字特徵。因此,它們是高度相關的。因此,對這兩個步驟使用不同演算法的主要缺點是計算兩次相同的資訊。FOTS通過在CRNN+CTC解碼器(上述)中重用檢測演算法EAST (Efficient and Accurate Scene Text Detector) [Zhou et al., 2017]的卷積計算解決了這個問題。

在FOTS中,文字框直接從共享特徵中提取,而不是從原始影象中提取。在共享特徵表示檢測步驟的倒數第二層生成的特徵對映,即計算檢測輸出的對映。因此,識別部分可以使用較小的CNN,因為它的輸入已經被處理過了。

FOTS非常高效。事實上,它利用EAST來避免無用的計算,EAST以其高速和共享特徵而聞名。該演算法還可以處理傾斜的文字例項,方法是將從共享特徵中裁剪出來的相應文字框進行調整。此外,端到端方法提高了檢測步驟的魯棒性。

FOTS和傳統方法的比較

實驗:Textsnake 和 FOTS 結合

在之前的實驗中,我實現了一個基於FOTS的自定義演算法,但是檢測部分使用的是Textsnake而不是EAST。彎曲的文字可以被矯正,但是在共享特徵內的矯正而不是對原始影象的矯正。該演算法在檢測和識別方面都有很好的表現。然而,對文字的糾正有時是非常糟糕的,甚至對人來說識別都是一個挑戰。但在下圖的情況下,解碼器的輸出效果很好:只有“MEDECINS”中的“M”缺失了!實際上,共享特徵的每個元素都有一個很大的感受野,因此,框中的元素包含關於字母缺失部分的資訊。例如,關於“MONDE”中字母“E”缺失部分的資訊包含在共享特徵中。

結合FOTS和Textsnake得到的結果,文字校正效果較差,但識別效果更好。請注意,從原始影象校正的文字只是為了視覺化。

參考文獻

Liu, Xuebo, et al. "Fots: Fast oriented text spotting with a unified network." Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.

Long, Shangbang, et al. "Textsnake: A flexible representation for detecting text of arbitrary shapes." Proceedings of the European conference on computer vision (ECCV). 2018.

Luo, Canjie, Lianwen Jin, and Zenghui Sun. "Moran: A multi-object rectified attention network for scene text recognition." Pattern Recognition 90 (2019): 109-118.

Shi, Baoguang, Xiang Bai, and Cong Yao. "An end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition." IEEE transactions on pattern analysis and machine intelligence 39.11 (2016): 2298-2304.

Zhou, Xinyu, et al. "East: an efficient and accurate scene text detector." Proceedings of the IEEE conference on Computer Vision and Pattern Recognition. 2017.

Zhang, Zheng, et al. "Multi-oriented text detection with fully convolutional networks." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016.

—END—

英文原文:https://www.sicara.ai/blog/ocr-text-detection-recognition

請長按或掃描二維碼關注本公眾號

喜歡的話,請給我個在看吧