1. 程式人生 > >深度學習論文翻譯解析(三):Detecting Text in Natural Image with Connectionist Text Proposal Network

深度學習論文翻譯解析(三):Detecting Text in Natural Image with Connectionist Text Proposal Network

論文標題:Detecting Text in Natural Image with Connectionist Text Proposal Network

論文作者:Zhi Tian , Weilin Huang, Tong He , Pan He , and Yu Qiao

論文原始碼的下載地址:https://github.com/tianzhi0549/CTPN

論文程式碼的下載地址:https://github.com/eragonruan/text-detection-ctpn

論文地址:https://arxiv.org/pdf/1609.03605.pdf

宣告:小編翻譯論文僅為學習,如有侵權請聯絡小編刪除博文,謝謝!

            小編是一個機器學習初學者,打算認真研究論文,但是英文水平有限,所以論文翻譯中用到了Google,並自己逐句檢查過,但還是會有顯得晦澀的地方,如有語法/專業名詞翻譯錯誤,還請見諒,並歡迎及時指出。

摘要

  我們提出了一種新穎的連線文字提議網路(CTPN),它能夠準確定位自然影象中的文字行。CTPN直接在卷積特徵對映中的一系列細粒度文字提議中檢測文字行。我們開發了一個垂直錨點機制,聯合預測每個固定寬度提議的位置和文字/非文字分數,大大提高了定位精度。序列提議通過迴圈神經網路自然地連線起來,該網路無縫的結合到卷積網路中,從而形成端到端的可訓練模型。這使得CTPN可以探索豐富的影象上下文資訊,使其能夠檢測機器模糊的文字。CTPN在多尺度和多語言文字上可靠的工作,不需要進一步的後處理,脫離了以前的自底向上需要多步後過濾的方法。他在ICDAR 2013和2015的基準資料集上達到了0.88和0.61的F-measure,大大的超過了最近的結果[8,35]。通過使用非常深的VGG16模型[27]。CTPN的計算效率為0.14s每張影象。線上演示獲取地址:

http://textdet.com/

關鍵詞

  場景文字檢測;卷積網路;迴圈神經網路;錨點機制

1 引言

  在自然影象中閱讀文字最近在計算機視覺中引起越來越多的關注[8,14,15,10,35,11,9,1,28,32]。這是由於它的許多實際應用,如影象OCR,多語言翻譯,影象檢索等。它包括兩個子任務:文字檢測和識別。這項工作的重點是檢測任務[14,1,28,32],這是比在一個良好的裁剪字影象[15,9]進行的識別任務更具有挑戰性。文字模式的大變化和高度雜亂的背景構成了精確文字定位的主要挑戰。

 

  圖1:(a)連線文字提議網路(CTPN)的架構。我們通過VGG16模型[27]的最後一個卷積對映(conv5)密集地滑動3×3空間視窗。每行的序列視窗通過雙向LSTM(BLSTM)[7]迴圈連線,其中每個視窗的卷積特徵(3×3×C)被用作256維的BLSTM(包括兩個128維的LSTM)的輸入。RNN層連線到512維的全連線層,接著是輸出層,聯合預測

k">kk個錨點的文字/非文字分數,y軸座標和邊緣調整偏移。(b)CTPN輸出連續的固定寬度細粒度文字提議。每個框的顏色表示文字/非文字分數。只顯示文字框正例的分數。

  目前的文字檢測大多采用自上而下的流程[28,1,14,32,33]。他們通常從低級別字元或者筆畫檢測開始,後面通常會跟隨一些後續步驟,非文字元件過濾,文字行構建和文字行驗證。這些自底向上的多步驟方法通常複雜,魯棒性和可靠性比較差。他們的效能很大程度上依賴於字元檢測的結果,並且已經提出了連線元件方法或者滑動視窗方法。這些方法通常探索低階特徵(例如:基於SWT[3,13],MSER[14,33,23]或HoG[28])來區分候選文字和背景。但是,如果沒有上下文資訊,他們不能魯棒的單獨識別各個筆劃或字元。例如,相比單個字元人們更信任一個字元序列,特別是當一個字元非常模糊時。這些限制在字元檢測中通常會導致大量非文字元件,在後續步驟中的主要困難是處理它們。此外,正如[28]所指出的,這些誤檢很容易在自下而上的過程中連續累積。為了解決這些問題,我們利用強大的深度特徵直接在卷積對映中檢測文字資訊。我們開發的文字錨點機制能在細粒度上精確預測文字位置。然後,我們提出了一種網內迴圈架構,用於按順序連線這些細粒度的文字提議,從而允許它們編碼豐富的上下文資訊。

  深度卷積神經網路(CNN)最近已經基本實現了一般物體檢測[25,5,6]。最先進的方法就是

 Faster Region-CNN(R-CNN)系統[25],其中提出了區域提議網路(RPN)直接從卷積特徵對映中生成高質量類別不可知的目標提議。然後將RPN提議輸入Faster R-CNN[5]模型進行進一步的分類和微調,從而實現通用目標檢測的最新效能。然而,很難將這些通用目標檢測系統直接應用於場景文字檢測,這通常需要更高的定位精度。在通用目標檢測中,每個目標都有一個明確的封閉邊界[2],而在文字中可能不存在這樣一個明確定義的邊界,因為文字行或單詞是由許多單獨的字元或筆劃組成的。對於目標檢測,典型的正確檢測是鬆散定義的,例如,檢測到的邊界框與其實際邊界框(例如,PASCAL標準[4])之間的重疊>0.5,因為人們可以容易地從目標的主要部分識別它。相比之下,綜合閱讀文字是一個細粒度的識別任務,需要正確的檢測,覆蓋文字行或字的整個區域。因此,文字檢測通常需要更準確的定義,導致不同的評估標準,例如文字基準中常用的Wolf標準[19,21]。

  在這項工作中,我們通過將RPN架構[25]擴充套件到準確的文字行定義來填補這個間隙。我們提出了幾種技術發展,針對我們的問題可以優雅的調整通用目標檢測模型。我們通過提出一種網路內迴圈機制爭取更進一步,使我們的模型能夠直接在卷積對映中檢測文字序列,避免通過額外昂貴的CNN檢測模型進行進一步的後處理。

1.1 貢獻

  我們提出了一種新穎的連線文字提議網路(CTPN),它可以直接定位卷積層中的文字序列。這克服了以前建立在字元檢測基礎上的自下而上方法帶來的一些主要限制。我們利用強深度卷積特性和共享計算機制的優點,提出瞭如圖1所示的CTPN框架,主要貢獻如下:

  首先,我們將文字檢測的問題轉化為一系列細粒度的文字提議。我們開發了一個錨點回歸機制,可以聯合預測每個文字提議的垂直位置和文字/非文字分數,從而獲得出色的定位精度。這背離了整個目標的RPN預測,RPN預測難以提供令人滿意的定位精度。

  其次,我們提出了一種在卷積特徵對映中優雅連線序列文字提議的網路內迴圈機制。通過這種連線,我們的檢測器可以探索文字行有意義的上下文資訊,使其能夠可靠地檢測極具挑戰性的文字。

  第三,兩種方法無縫整合,以符合文字序列的性質,從而形成統一的端到端可訓練模型。我們的方法能夠在單個過程中處理多尺度和多語言的文字,避免進一步的後過濾或細化。

  第四,我們的方法在許多基準資料集上達到了新的最先進成果,顯著改善了最近的結果(例如,0.88的F-measure超過了2013年ICDAR的[8]中的0.83,而0.64的F-measure超過了ICDAR2015上[35]中的0.54 )。此外,通過使用非常深的VGG16模型[27],這在計算上是高效的,導致了每張影象0.14s的執行時間(在ICDAR 2013上)。

2 相關工作

  文字檢測。過去在場景文字檢測中的工作一直以自下而上的方法為主,一般建立在筆畫或字元檢測上。它們可以粗略地分為兩類,基於連線元件(CC)的方法和基於滑動視窗的方法。基於CC的方法通過使用快速濾波器來區分文字和非文字畫素,然後通過使用低階屬性(例如強度,顏色,梯度等[33,14,32,13,3])將文字畫素貪婪地分為筆劃或候選字元。基於滑動視窗的方法通過在影象中密集地滑動多尺度視窗來檢測候選字元。字元或非字元視窗通過預先訓練的分類器,使用手動設計的特徵[28,29]或最近的CNN特徵[16]進行區分。然而,這兩種方法通常都會受到較差的字元檢測效能的影響,導致在接下來的元件過濾和文字行構建步驟中出現累積的錯誤。此外,強大地過濾非字元元件或者自信地驗證檢測到的文字行本身就更加困難[1,33,14]。另一個限制是通過在大量的滑動視窗上執行分類器,滑動視窗方法在計算上是昂貴的。

  目標檢測。卷積神經網路(CNN)近來在通用目標檢測[25,5,6]上已經取得了實質的進步。一個常見的策略是通過使用廉價的低階特徵來生成許多目標提議,然後使用強CNN分類器來進一步對生成的提議進行分類和細化。生成類別不可知目標提議的選擇性搜尋(SS)[4]是目前領先的目標檢測系統中應用最廣泛的方法之一,如CNN(R-CNN)[6]及其擴充套件[5]。最近,Ren等人[25]提出了Faster R-CNN目標檢測系統。他們提出了一個區域提議網路(RPN),可以直接從卷積特徵對映中生成高質量的類別不可知的目標提議。通過共享卷積計算RPN是快速的。然而,RPN提議不具有判別性,需要通過額外的成本高昂的CNN模型(如Fast R-CNN模型[5])進一步細化和分類。更重要的是,文字與一般目標有很大的不同,因此很難直接將通用目標檢測系統應用到這個高度領域化的任務中。

3 連線文字提議網路

  本節介紹連線文字提議網路(CTPN)的細節,它包括三個關鍵的貢獻,使文字定位可靠和準確:檢測細粒度提議中的文字,迴圈連線文字提議和邊緣細化。

 

 3.1 在細粒度提議中檢測文字

  類似於區域提議網路(RPN)[25],CTPN本質上是一個全卷積網路,允許任意大小的輸入影象。它通過在卷積特徵對映中密集地滑動小視窗來檢測文字行,並且輸出一系列細粒度的(例如,寬度為固定的16個畫素)文字提議,如圖1(b)所示。

  我們以非常深的16層vggNet(VGG16)[27]為例來描述我們的方法,該方法很容易應用於其他深度模型。CTPN的架構如圖1(a)所示。我們使用一個小的空間視窗3×3來滑動最後的卷積層特徵對映(例如,VGG16的conv5)。conv5特徵對映的大小由輸入影象的大小決定,而總步長和感受野分別固定為16個和228個畫素。網路架構決定總步長和感受野。在卷積層中使用滑動視窗允許它共享卷積計算,這是減少昂貴的基於滑動視窗的方法的計算量的關鍵。

   通常,滑動視窗方法採用多尺度視窗來檢測不同尺寸的目標,其中一個視窗尺度被固定到與目標的尺度相似,在[25]中,Ren等人提出了一種有效的錨點回歸機制,允許RPN使用單尺度視窗檢測多尺度目標。關鍵的洞察力是單個視窗能夠通過使用多個靈活的錨點來預測各種尺度和長寬比的目標。我們希望將這種有效的錨點機制擴充套件到我們的文字任務。然而,實質上文字與普通目標不同,它們通常具有明確的封閉邊界和中心,可以從它的一部分推斷整個目標[2]。文字是一個沒有明顯封閉邊界的序列。它可能包含多層次的元件,如筆劃,字元,單詞,文字行和文字區域等,這些元件之間沒有明確區分。文字檢測是在單詞或文字行級別中定義的,因此通過將其定義為單個目標(例如檢測單詞的一部分)可能很容易進行錯誤的檢測。因此,直接預測文字行或單詞的位置可能很難或不可靠,因此很難獲得令人滿意的準確性。一個例子如圖2所示,其中RPN直接被訓練用於定點陣圖像中的文字行。

  我們尋找文字的獨特屬性,能夠很好地概括各個層次的文字元件。我們觀察到由RPN進行的單詞檢測很難準確預測單詞的水平邊,因為單詞中的每個字元都是孤立的或分離的,這使得查詢單詞的開始和結束位置很混亂。顯然,文字行是一個序列,它是文字和通用目標之間的主要區別。將文字行視為一系列細粒度的文字提議是很自然的,其中每個提議通常代表文字行的一小部分,例如寬度為16個畫素的文字塊。每個提議可能包含單個或多個筆劃,字元的一部分,單個或多個字元等。我們認為,通過固定每個提議的水平位置來預測其垂直位置會更準確,水平位置更難預測。與預測目標4個座標的RPN相比,這減少了搜尋空間。我們開發了垂直錨點機制,可以同時預測每個細粒度提議的文字/非文字分數和y軸的位置。檢測一般固定寬度的文字提議比識別分隔的字元更可靠,分隔字元容易與字元或多個字元的一部分混淆。此外,檢測一系列固定寬度文字提議中的文字行也可以在多個尺度和多個長寬比的文字上可靠地工作。

  為此,我們設計如下的細粒度文字提議。我們的檢測器密集地調查了conv5中的每個空間位置。文字提議被定義為具有16個畫素的固定寬度(在輸入影象中)。這相當於在conv5的對映上密集地移動檢測器,其中總步長恰好為16個畫素。然後,我們設計k個垂直錨點來預測每個提議的y座標。kk個錨點具有相同的水平位置,固定寬度為16個畫素,但其垂直位置在k個不同的高度變化。在我們的實驗中,我們對每個提議使用十個錨點,k=10,其高度在輸入影象中從11個畫素變化到273個畫素(每次÷0.7)。明確的垂直座標是通過提議邊界框的高度和y軸中心來度量的。我們計算相對於錨點的邊界框位置的相對預測的垂直座標(v),如下所示:

 

3.2 迴圈連線文字提議

  為了提高定位精度,我們將文字行分成一系列細粒度的文字提議,並分別預測每個文字提議。顯然,將每個孤立的提議獨立考慮並不魯棒。這可能會導致對與文字模式類似的非文字目標的誤檢,如視窗,磚塊,樹葉等(在文獻[13]中稱為類文字異常值)。還可以丟棄一些含有弱文字資訊的模糊模式。圖3給出了幾個例子(上)。文字具有強大的序列特徵,序列上下文資訊對做出可靠決策至關重要。最近的工作已經證實了這一點[9],其中應用遞迴神經網路(RNN)來編碼用於文字識別的上下文資訊。他們的結果表明,序列上下文資訊極大地促進了對裁剪的單詞影象的識別任務。

  Ht中的內部狀態被對映到後面的FC層,並且輸出層用於計算第t個提議的預測。因此,我們與RNN層的整合非常優雅,從而形成了一種高效的模型,可以在無需額外成本的情況下進行端到端的訓練。RNN連線的功效如圖3所示,顯然,它大大的減少了錯誤檢測,同時還能夠恢復很多包含非常弱的文字資訊的遺漏文字提議。

3.3 邊緣細化

  細粒度的檢測和RNN連線可以預測垂直方向的精確位置。在水平方向上,影象被分成一系列相等的寬度為16個畫素的提議。如圖4所示,當兩個水平邊的文字提議沒有完全被實際文字行區域覆蓋,或者某些邊的提議被丟棄(例如文字得分較低)時,這可能會導致不準確的定位。這種不準確性在通用目標檢測中可能並不重要,但在文字檢測中不應忽視,特別是對於那些小型文字行或文字。為了解決這個問題,我們提出了一種邊緣細化的方法,可以精確地估計左右兩側水平方向上的每個錨點/提議的偏移量(稱為邊緣錨點或邊緣提議)。與y座標預測類似,我們計算相對偏移為:

 

3.4 模型輸出與損失函式

3.5 訓練和實現細節

  通過使用標準的反向傳播和隨機梯度下降(SGD),可以對CTPN進行端對端訓練。與RPN[25]類似,訓練樣本是錨點,其位置可以在輸入影象中預先計算,以便可以從相應的實際邊界框中計算每個錨點的訓練標籤。

  訓練標籤。對於文字/非文字分類,二值標籤分配給每個正(文字)錨點或負(非文字)錨點。它通過計算與實際邊界框的IoU重疊(除以錨點位置)來定義。正錨點被定義為:(i)與任何實際邊界框具有>0.7的IoU重疊;或者(ii)與實際邊界框具有最高IoU重疊。通過條件(ii),即使是非常小的文字模式也可以分為正錨點。這對於檢測小規模文字模式至關重要,這是CTPN的主要優勢之一。這不同於通用目標檢測,通用目標檢測中條件(ii)的影響可能不顯著。負錨點定義為與所有實際邊界框具有<0.5的IoU重疊。yy座標迴歸(v)和偏移回歸(o)的訓練標籤分別按公式(2)和(4)計算。

 

   訓練資料。在訓練過程中,每個小批量樣本從單張影象中隨機收集。每個小批量資料的錨點數量固定為Ns=128,正負樣本的比例為1:1。如果正樣本的數量少於64,則會用小影象塊填充負樣本。我們的模型在3000張自然影象上訓練,其中包括來自ICDAR 2013訓練集的229張影象。我們自己收集了其他影象,並用文字行邊界框進行了手工標註。在所有基準測試集中,所有自我收集的訓練影象都不與任何測試影象重疊。為了訓練,將輸入影象的短邊設定為600來調整輸入影象的大小,同時保持其原始長寬比。

  實現細節。我們遵循標準實踐,並在ImageNet資料[26]上探索預先訓練的非常深的VGG16模型[27]。我們通過使用具有0均值和0.01標準差的高斯分佈的隨機權重來初始化新層(例如,RNN和輸出層)。該模型通過固定前兩個卷積層中的引數進行端對端的訓練。我們使用0.9的動量和0.0005的重量衰減。在前16K次迭代中,學習率被設定為0.001,隨後以0.0001的學習率再進行4K次迭代。我們的模型在Caffe框架[17]中實現。

4 實驗結果和討論

  我們在五個文字檢測基準資料集上評估CTPN,即ICDAR 2011[21],ICDAR 2013[19],ICDAR 2015[18],SWT[3]和Multilingual[24]資料集。在我們的實驗中,我們首先單獨驗證每個提議元件的效率,例如細粒度文字提議檢測或網內迴圈連線。ICDAR 2013用於該元件的評估。

4.1 基準資料集和評估標準

  CDAR 2011資料集[21]由229張訓練影象和255張測試影象組成,影象以字級別標記。ICDAR 2013[19]與ICDAR 2011類似,共有462張影象,其中包括229張訓練影象和233張測試影象。ICDAR 2015年(Incidental Scene Text —— Challenge 4)[18]包括使用Google Glass收集的1500張影象。訓練集有1000張影象,剩餘的500張影象用於測試。這個資料集比以前的資料集更具挑戰性,包括任意方向,非常小的尺度和低解析度的文字。Multilingual場景文字資料集由[24]收集。它包含248張訓練影象和239張測試影象。影象包含多種語言的文字,並且真實值以文字行級別標註。Epshtein等[3]引入了包含307張影象的SWT資料集,其中包含許多極小尺度的文字。

  我們遵循以前的工作,使用由資料集建立者或競賽組織者提供的標準評估協議。對於ICDAR 2011,我們使用[30]提出的標準協議,對ICDAR 2013的評估遵循[19]中的標準。對於ICDAR 2015,我們使用了由組織者提供的線上評估系統[18]。SWT和Multilingual資料集的評估分別遵循[3]和[24]中定義的協議。

4.2 具有Faster R-CNN的細粒度文字提議網路

   我們首先討論我們關於RPN和Faster R-CNN系統[25]的細粒度檢測策略。如表1(左)所示,通過產生大量的錯誤檢測(低精度),單獨的RPN難以執行準確的文字定位。通過使用Fast R-CNN檢測模型[5]完善RPN提議,Faster R-CNN系統顯著提高了定位精度,其F-measure為0.75。一個觀察結果是Faster R-CNN也增加了原始RPN的召回率。這可能受益於Fast R-CNN的聯合邊界框迴歸機制,其提高了預測邊界框的準確性。RPN提議可以粗略定位文字行或文字的主要部分,但根據ICDAR 2013的標準這不夠準確。顯然,所提出的細粒度文字提議網路(FTPN)在精確度和召回率方面都顯著改進了Faster R-CNN,表明通過預測一系列細粒度文字提議而不是整體文字行,FTPN更精確可靠。

 

4.3 迴圈連線文字提議

   我們討論迴圈連線對CTPN的影響。如圖3所示,上下文資訊對於減少誤檢非常有用,例如類似文字的異常值。對於恢復高度模糊的文字(例如極小的文字)來說,這非常重要,這是我們CTPN的主要優勢之一,如圖6所示。這些吸引人的屬性可顯著提升效能。如表1(左)所示,使用我們的迴圈連線,CTPN大幅度改善了FTPN,將F-measure從0.80的提高到0.88。

  執行時間。通過使用單個GPU,我們的CTPN(用於整個檢測處理)的執行時間為每張影象大約0.14s,固定短邊為600。沒有RNN連線的CTPN每張影象GPU時間大約需要0.13s。因此,所提出的網內迴圈機制稍微增加了模型計算,並獲得了相當大的效能增益。

 

  我們在幾個具有挑戰性的影象上的檢測結果如圖5所示。可以發現,CTPN在這些具有挑戰性的情況上可以完美的工作,其中一些對於許多以前的方法來說是困難的。它能夠有效地處理多尺度和多語言(例如中文和韓文)。

 

  全面評估是在五個基準資料集上進行的。影象解析度在不同的資料集中顯著不同。我們為SWT和ICDAR 2015設定影象短邊為2000,其他三個的短邊為600。我們將我們的效能與最近公佈的結果[1,28,34]進行了比較。如表1和表2所示,我們的CTPN在所有的五個資料集上都實現了最佳效能。在SWT上,我們的改進對於召回和F-measure都非常重要,並在精確度上取得了很小的收益。我們的檢測器在Multilingual上比TextFlow表現更好,表明我們的方法能很好地泛化到各種語言。在ICDAR 2013上,它的效能優於最近的TextFlow[28]和FASText[1],將F-measure從0.80提高到了0.88。精確度和召回率都有顯著提高,改進分別超過+5%+5%和+7%+7%。此外,我們進一步與[8,11,35]比較了我們的方法,它們是在我們的首次提交後釋出的。它始終在F-measure和召回率方面取得重大進展。這可能是由於CTPN在非常具有挑戰性的文字上具有很強的檢測能力,例如非常小的文字,其中一些甚至對人來說都很難。如圖6所示,我們的檢測器可以正確地檢測到那些具有挑戰性的影象,但有些甚至會被真實標籤遺漏,這可能會降低我們的評估精度。

   我們進一步調查了各種方法的執行時間,在表2中進行了比較。FASText[1]達到0.15s每張影象的CPU時間。我們的方法比它快一點,取得了0.14s每張影象,但是在GPU時間上。儘管直接比較它們是不公平的,但GPU計算已經成為主流,最近在目標檢測方面的深度學習方法[25,5,6]上取得了很大成功。無論執行時間如何,我們的方法都大大優於FASText,F-measure的效能提高了1111。我們的時間可以通過使用較小的影象尺度來縮短。在ICDAR 2013中,使用450的縮放比例時間降低到0.09s每張影象,同時獲得0.92/0.77/0.84的P/R/F,與Gupta等人的方法[8]相比,GPU時間為0.07s每張影象,我們的方法是具有競爭力的。

5 結論

  我們提出了連線文字提議網路(CTPN)—— 一種可端到端訓練的高效文字檢測器。CTPN直接在卷積對映的一系列細粒度文字提議中檢測文字行。我們開發了垂直錨點機制,聯合預測每個提議的精確位置和文字/非文字分數,這是實現文字準確定位的關鍵。我們提出了一個網內RNN層,可以優雅地連線順序文字提議,使其能夠探索有意義的上下文資訊。這些關鍵技術的發展帶來了檢測極具挑戰性的文字的強大能力,同時減少了誤檢。通過在五個基準資料集測試中實現了最佳效能,每張影象執行時間為0.14s,CTPN是有效的。

參考文獻:http://noahsnail.com/2018/02/02/2018-02-02-Detecting%20Text%20in%20Natural%20Image%20with%20Connectionist%20Text%20Proposal%20Network%E8%AE%BA%E6%96%87%E7%BF%BB%E8%AF%91%E2%80%94%E2%80%94%E4%B8%AD%E6%96%87%E7%89%88/