自然場景文本處理論文整理(2)STN-OCR

今天是進入公司實習的第三週了,在小組內負責的工作主要是和自然場景文本檢測相關的內容。這裏把看過的論文做一下翻譯和整理,也方便自己日後查看。
Paper:STN-OCR: A single Neural Network for Text Detection and Text Recognition
Github地址:https://github.com/Bartzi/stn-ocr

摘要

檢測和識別自然場景圖像中的文本是一項具有挑戰性但尚未完全解決的任務。近年來,已經提出了幾種試圖解決兩個子任務(文本檢測和文本識別)中的至少一個的新系統。在本文中,我們提出了STN-OCR,這是邁向場景文本識別的半監督神經網絡的一步,可以進行端到端的優化。與大多數由多個深度神經網絡和幾個預處理步驟組成的現有作品相比,我們建議使用單個深度神經網絡,該網絡學習以半監督方式從自然圖像中檢測和識別文本。 STN-OCR是一個集成並共同學習空間變換器網絡的網絡[16],可以學習檢測圖像中的文本區域,以及文本識別網絡,它採用識別的文本區域並識別其文本內容。我們研究了我們的模型在一系列不同任務(行爲的檢測和識別以及文本行)上的行爲方式。公共基準數據集的實驗結果顯示了我們的模型處理各種不同任務的能力,而整體網絡結構沒有實質性變化。

1、介紹

文本在我們的日常生活中無處不在。文本可以在文檔,道路標誌,廣告牌和其他對象(如汽車或電話)上找到。自動檢測和讀取自然場景圖像中的文本是系統的重要組成部分,可用於幾個具有挑戰性的任務,如基於圖像的機器翻譯,自動駕駛汽車或圖像/視頻索引。近年來,在自然場景中檢測文本和識別文本的任務已經引起了計算機視覺和文檔分析社區的極大興趣。此外,在計算機視覺的其他領域最近的突破[10,16,25,26]使得能夠創建比以前更好的場景文本檢測和識別系統[5,9,28]。

儘管可以看出光學字符識別(OCR)的問題已經解決了打印文檔文本,但是檢測和識別自然場景圖像中的文本仍然是具有挑戰性的。包含自然場景的圖像表現出大量的光照變化,透視扭曲,圖像質量,文本字體,不同的背景等。大多數現有的研究工作開發了端到端的場景文本識別系統,包括複雜的兩步,其中第一步是檢測圖像中的文本區域,第二步是識別該識別區域的文本內容。大多數現有作品只關注這兩個步驟中的一個。

在本文中,我們提出了一個解決方案,該解決方案由單個深度神經網絡(DNN)組成,可以學習以半監督的方式檢測和識別文本。這與現有作品相反,在現有作品中,文本檢測和文本識別系統以完全監督的方式單獨訓練。最近的工作[3]表明,卷積神經網絡(CNNs)能夠學習如何解決複雜的多任務問題,同時以端到端的方式進行訓練。

我們的動機是利用CNN的這些功能,創建一個端到端的場景文本識別系統,通過將任務劃分爲更加像人類一樣的行爲,分成較小的子任務並相互獨立地解決這些子任務。爲了實現這一行爲,我們學習了一個DNN,它能夠將輸入圖像劃分爲子任務(單個字符,單詞甚至文本行)並相互獨立地解決這些子任務。這是通過聯合學習使用循環空間變換器[16,31]作爲注意機制和文本識別網絡的定位網絡來實現的(參見圖1,系統的示意圖)。 在此設置中,網絡僅接收圖像和該圖像中包含的文本的標籤作爲輸入。 文本的本地化是由網絡本身學習的,使這種方法成爲半監督。

我們的貢獻如下:(1)我們提出了一個系統,該系統是通過集成空間變換器網絡來解決端到端場景文本識別的一個步驟。 (2)我們以半監督的方式訓練我們提出的端到端系統。(3)我們證明我們的方法能夠在一系列標準場景文本檢測和識別基準上達到最先進的有競爭力的水平。 (4)我們向研究界提供代碼1和訓練模型2。

本文的結構如下:在第2節中,我們概述了與我們相關的其他研究人員的工作。第3節詳細描述了我們提出的系統,並提供瞭如何訓練這樣一個系統的最佳實踐。 我們在第4節中展示和討論我們在標準基準數據集上的結果,並在第5節中總結我們的發現。

2、相關工作

多年來,已經開發併發布了用於場景文本檢測和識別的不同方法的豐富環境。 幾乎所有系統都使用兩步過程來執行場景文本的端到端識別。 第一步是檢測文本區域並從輸入圖像中提取這些區域。 第二步是識別文本內容並返回這些提取的文本區域的文本字符串。

還可以將這些方法分爲三大類:(1)依賴手工製作和人類先驗知識所提取出特徵的系統用於文本檢測和文本識別。 (2)系統使用深度學習方法和手工製作的功能,或兩個不同的深度網絡用於這兩個步驟中的每一步。 (3)系統不包括兩步法,而是使用單個深度神經網絡進行文本檢測和識別。 我們將在下面討論每個類別的一些系統。

手工製作的特徵
在開始時,基於手工製作的特徵和人類知識的方法已被用於執行文本檢測。這些系統使用MSER [24],Stroke Width Transforms [4]或HOG-Features [32]等功能來識別文本區域並將它們提供給系統的文本識別階段。 在文本識別階段,使用滑動窗口分類器[21]和使用HOG特徵[33]的SVM [34]或k-最近鄰分類器的集合。 所有這些方法都使用手工製作的功能,這些功能具有多種超級參數,需要專業知識才能正確調整它們以獲得最佳效果。

深度學習方法
最近的系統通過使用DNN的方法在端到端識別系統的一個或兩個步驟中基於手工製作的特徵交換方法。 Gómez和Karatzas [5]提出了一種特定於文本的選擇性搜索算法,該算法與DNN一起可用於檢測自然場景圖像中的(扭曲的)文本區域。 古普塔等人。 [9]提出了一種基於YOLO-Architecture [25]的文本檢測模型,該模型使用完全卷積深度神經網絡來識別文本區域。 然後,通過這些方法識別的文本區域可以用作基於執行文本識別的DNN的其他系統的輸入。
Bissacco等人提出了一個完整的端到端架構,使用手工製作的功能執行文本檢測。識別的文本區域被二值化,然後用作深度完全連接的神經網絡的輸入,該神經網絡獨立地對每個找到的字符進行分類。 Jaderberg等人[15,17]提出了幾種使用深度神經網絡進行文本檢測和文本識別的系統。[17] Jader-berg等人提出了一種滑動窗口文本檢測方法,該方法以多種分辨率在圖像上滑動卷積文本檢測模型。文本識別階段使用單個字符CNN,它跨越確定的文本區域。該CNN與用於文本檢測的CNN共享其權重。在[15] Jaderberg等人。建議使用具有用於文本檢測的額外邊界框迴歸CNN的區域提議網絡和將整個文本區域作爲輸入並且在預定義的單詞詞典上執行分類的CNN,使得該方法僅適用於一種給定語言。
Goodfellow等人。 [6]提出了一個房屋號碼的文本識別系統,由Jaderberg等人提煉。 [18]用於無約束的文本識別。該系統使用單個CNN,它將完整提取的文本區域作爲輸入,並提供該文本區域中包含的文本。這是通過爲給定單詞中的每個可能字符設置一個獨立分類器來實現的。基於這個想法,他等人。 [11]和Shi等人。 [27,28]提出了將從提取的文本區域中識別字符作爲序列識別問題的文本識別系統。他等人。 [11]使用一種樸素的滑動窗口方法,創建文本區域的切片,用作其文本識別CNN的輸入。由文本識別CNN產生的特徵用作預測字符序列的遞歸神經網絡(RNN)的輸入。在我們關於純場景文本識別的實驗中(參見4.3節瞭解更多信息)我們使用了類似的方法,但是我們的系統使用了更復雜的滑動窗口方法,其中滑動窗口的選擇由網絡自動學習而不是由手。施等人。 [27]利用CNN,該CNN使用完整文本區域作爲輸入併產生一系列特徵向量,這些特徵向量被饋送到RNN,RNN預測提取的文本區域中的字符序列。該方法基於文本區域的寬度生成固定數量的特徵向量。這意味着對於僅包含幾個字符但與文本區域具有足夠多字符的寬度相同的文本區域,此方法將生成用作RNN輸入的相同數量的特徵向量。在我們的純文本識別實驗中,我們利用我們的方法的力量來學習在提取的文本區域中處理最重要的信息,因此只產生儘可能多的特徵向量。施等人。 [28]通過首先添加額外的步驟來改進他們的方法,該步驟利用空間變壓器網絡[16]的整流能力來糾正提取的文本行。 其次,他們在網絡中添加了一種軟關注機制,有助於在輸入圖像中生成字符序列。 在他們的工作中,Shi等人。 利用空間變換器作爲額外的預處理步驟,使識別網絡更容易識別圖像中的文本。 在我們的系統中,我們使用空間變換器作爲核心構建塊,以半監督的方式檢測文本。

端到端的可訓練方法
所提出的系統總是使用兩步法來檢測和識別場景文本圖像中的文本。 雖然最近的方法利用深度神經網絡,但他們仍然在任一步驟中或在兩個步驟的結果融合在一起的時刻使用大量手工製作的知識。 史密斯等人。 [30]提出了一種端到端的可訓練系統,能夠使用單個DNN檢測和識別法國街道名稱標誌上的文本。 與我們的系統相比,系統不可能提供圖像中文本的位置,只能提取文本內容。 此外,我們的方法中使用的注意機制顯示出更像人類的行爲,因爲它依次本地化並識別來自給定圖像的文本。

3、制定系統

試圖查找和閱讀文本的人將以順序方式這樣做。 第一個動作是將注意力放在一行文本上,按順序讀取每個字符,然後處理下一行文本。 大多數用於場景文本識別的當前端到端系統不以這種方式運行。 這些系統試圖通過一次從圖像中提取所有信息來解決問題。 我們的系統首先嚐試按順序參加圖像中的不同文本區域,然後識別每個文本區域的文本內容。爲此,我們創建了一個簡單的DNN,包括兩個階段:(1)文本檢測(2)文本識別。 在本節中,我們將介紹文本檢測階段使用的注意概念和所提出系統的整體結構。 我們還報告了成功培訓此類系統的最佳實踐。

3.1 用空間變換器檢測文本

Jaderberg等人提出的空間變換器[16]是DNN的可微分模塊,它採用輸入特徵映射I並對該特徵映射應用空間變換,產生輸出特徵映射O.這種空間變換器模塊是三個部分的組合。 第一部分是計算函數f( loc)的定位網絡,其預測要應用的空間變換的參數θ。 在第二部分中使用這些預測參數來創建採樣網格,該採樣網格定義輸入要素圖的哪些要素應映射到輸出要素圖。 第三部分是可微分插值方法,它採用生成的採樣網格並生成空間變換的輸出特徵映射O.我們將在以下段落中簡要描述每個組件。
關於STN網絡結構的構成以及原理如下:

1、Localisation Network

Localisation Network的輸入是特徵圖U,輸出是變換參數θ,即θ=floc(U),該層的結構通常是一個全連接網絡或者卷積網絡後接一個迴歸層來訓練參數θ。θ的規模取決於具體的變換,當變換取二維仿射變換時,θ是一個6維(2*3)的向量。

2、Grid Generator
該層利用Localisation 層輸出的變換參數θ,將輸入的特徵圖進行變換,以仿射變換爲例,這裏就需要上一篇博客裏介紹的雙線性插值了,即輸出特徵圖上某一位置(xti,yti)根據變換參數θ映射到輸入特徵圖上某一位置(xsi,ysi),具體如下:
這裏寫圖片描述
但此時往往(xsi,ysi)會落在原始輸入特徵圖的幾個像素點中間部分,所以需要利用雙線性插值來計算出對應該點的灰度值。需要補充的是,文中在變幻時用都都是標準化座標,即xi,yi∈[−1,1]。(如果不太理解仿射變換和雙線性插值,可以參考我的上一篇博客 Spatial Transformer Networks論文筆記(一)——仿射變換和雙線性插值),文中給出了該層兩個例子,如下圖:
這裏寫圖片描述## 標題 ##
3、Sampler
在講過上面兩個部分後,我們可以知道,對於輸出特徵圖上的每一個點,都可以和輸入特徵圖上的某些像素點灰度值建立具體的聯繫,具體表示成如下公式:
這裏寫圖片描述
上式中,Vci爲輸出特徵圖上第c個通道某一點的灰度值,Ucnm爲輸入特徵圖上第c個通道點(n,m)的灰度值,該點的灰度是由某種插值方法確定,k()爲具體的採樣核,它定義了輸入和輸出特徵圖的重要關係。可以這樣理解:(1)輸出特徵圖上某一點Vci的灰度對應於輸入特徵圖上某一點(xsi,ysi)的灰度值,而這點的灰度值由周圍的若干點的灰度值Ucnm共同確定並且距離(xsi,ysi)越近(距離關係由xsi−m和ysi−m確定),影響越大(權重越大);(2)具體的灰度插值方法由k()中Φx和Phiy確定。當採用雙線性插值方法時,公式如下:

這裏寫圖片描述

與公式(3)不同的是,(5)中定義的雙線性插值使得目標灰度值只與(xsi,ysi)
周圍4個點的灰度有關。具體來說,當|xsi−m|或者|ysi−m|大於1時,對應的max()項將取0,也就是說,只有(xsi,ysi)周圍4個點的灰度值決定目標像素點的灰度並且當1−|xsi−m|和1−|ysi−m|越小,影響越大(即離點(xsi,ysi))越近,權重越大。

3.2網絡整體結構:

這裏寫圖片描述
我們工作中使用的網絡包括兩個主要部分。 第一個是定位網絡,它採用輸入圖像並預測N個變換矩陣,它們應用於N個相同的網格,形成N個不同的採樣網格。 生成的採樣網格以兩種方式使用:
(1)用於計算所識別的文本區域的邊界框
(2)用N個採樣網格對輸入圖像進行採樣,提取N個文本區域。 然後,在識別網絡中使用N個提取的文本圖像來執行文本識別。 通過僅提供關於每個文本區域的文本標籤的信息來對端到端的整個系統進行訓練。

4.網絡訓練技巧

用於訓練模型的訓練集X由一組輸入圖像I和一組用於每個輸入圖像的文本標籤L I組成。我們不使用任何標籤來訓練文本檢測階段。這個階段只是通過使用通過計算交叉熵損失或CTC損失獲得的誤差梯度來學習檢測文本區域。在我們的實驗中,我們發現,當從頭開始訓練時,一個檢測和識別兩個以上文本行的網絡不會收斂。該問題的解決方案是執行一系列預訓練步驟,其中難度逐漸增加。此外,我們發現選擇用於訓練網絡的優化算法對網絡的收斂有很大影響。我們發現使用隨機梯度下降(SGD)在較簡單的任務上預訓練網絡是有益的,而Adam [20]則用於在具有更多文本行的圖像上微調已經預先訓練好的網絡。我們認爲SGD在預訓練期間表現更好,因爲學習率η在較長時間內保持不變,這使得文本檢測階段能夠探索輸入圖像並更好地找到文本區域。隨着學習速率的降低,檢測階段的更新變得更小,並且文本檢測階段(理想地)落在已經找到的文本區域上。同時,文本識別網絡可以開始使用提取的文本區域並學習識別該區域中的文本。在使用SGD訓練網絡時,重要的是要注意選擇過高的學習率會導致模型早期出現分歧。我們發現,使用1-5和5-7之間的初始學習率幾乎適用於所有情況,除非網絡只能進行微調。在這裏,我們發現使用Adam是更可靠的選擇,因爲Adam以自適應方式選擇每個參數的學習率,因此不允許檢測網絡像使用SGD時那樣徹底地進行探索。

後面的內容由於篇幅原因這裏就不提及了。主要就是針對不同的數據集,實驗的效果比對。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章