CRNN—(端到端)的OCR文字識別 paper
文章目錄
一、前言
論文 Towards End-to-end Text Spotting with Convolutional Recurrent Neural Networks
在這篇文章中,解決了在基於CRNN自然場景下影象的文字檢測與識別的問題。我們提議同時本地化和統一的網路用單個向前通道識別文字,避免中間影象裁剪和特徵處理重新計算、單詞分離或字元分組。
① 與現有方法相比,考慮到文字檢測和識別作為兩個不同的任務,解決他們的方案是一個接一個,提議的框架(the proposed framework)解決了這些問題,它是併發兩個任務。
② 整個框架可以是訓練是的端到端,只要有影象,基礎邊界框和文字標籤(boxes and text labels)。通過端到端訓練(end-to-end training),學習的特徵可以更豐富,從而提高了整體效能。卷積特徵只計算一次並共享通過檢測和識別,節省了處理時間。我們提出的方法在幾個基準資料集的效能測試上取得了競爭優勢。
二、改進之處
(1)設計了一種端到端可訓練DNN來優化。整體精度和共享計算。網路整合文字檢測和文字識別。兩種任務都採用端到端訓練方式,學習的特徵可以更豐富,既可以提高檢測效能,又可以提高整體效能。卷積特徵由檢測和識別共享,這節省了加工時間。據我們所知,這是整合文字檢測與識別的首次嘗試進入一個單一的端到端可訓練網路。
(2)提出了一種新的區域特徵提取方法。在以前的作品〔4, 21〕中,感興趣區域(ROI)池化層將不同大小和寬高比的區域轉換成具有固定大小的特徵對映【特徵圖需要歸一化】。考慮文字邊界框中縱橫比的顯著差異,修復後的大小是次優的彙集。適應原始縱橫比並且避免失真,ROI池是專門生成的。具有不同長度的特徵圖。RNN編碼器然後被用來編碼不同的特徵對映長度相同大小。
(3)設計課程學習策略。逐步培養更為複雜的培訓體系資料。從簡單形象的合成影象開始一個大詞彙詞典,系統學習了字元級語言模型並找到良好的初始化外觀模型。採用真實世界用一個小的詞彙後來的影象,系統逐漸學習如何處理複雜的外觀模式。我們進行一系列實驗來探索能力不同的模型結構。最佳模型優於若干標準的最新結果文字識別基準,包括ICDAR2011 2015。
綜合來說就是:
(1) 提出端到端的OCR檢測+識別的框架
(2) 改進的ROI pooling。相比於fasterRCNN中ROI pooling 只能產生固定長寬的feature map,本文改進的ROI pooling可以產生固定長度,不同寬度的feature map,更適用於文字這樣一個有著不同長度的物件,然後經過LSTM產生固定長度的feature。
(3) 基於本文複雜的網路結構,提出了課程學習策略,一種由易到難的學習策略。先使用簡單的在彩色背景上寫字的合成圖片進行訓練,然後使用中等難度的在風景圖片上寫字的合成圖片進行訓練,最後使用真實的樣本圖片進行訓練。
三、網路整體結構
從網路結構可以看出和faster RCNN的結構很像。主要由TPN,RFE,TDN,TRN幾個部分組成。
其中,基礎CNN網路結構和faster RCNN一樣,都是修改的VGG16結構。
TPN接面構與faster RCNN中的RPN功能一樣。
RFE模組類似faster RCNN中的ROI pooling 。與TRN(文字識別)模組都用到了LSTM
TDN模組用於文字框的迴歸和文字框的分數。
TPN(Text Proposal Network )模組
RFE(Region Feature Encoder )(下圖左)
TDN (Text Detection Network)
文字檢測網路(TDN)的目的是根據提取的區域特徵
,判斷提出的RoI是否為文字,並再次細化邊界框的座標。將兩個具有 2048 個神經元的完全連線層應用於
,然後分別用兩個平行層進行分類和bounding boxes(邊界盒)迴歸。
TDN中使用的分類和迴歸層與TPN中使用的分類和迴歸層相似。請注意,整個系統細化文字邊界框的座標兩次:一次在TPN中,然後在TDN中。雖然兩次使用RFE來計算TPN產生的建議以及後來由TDN提供的檢測到的邊界框的特徵,但是卷積特徵僅需要計算一次。
TRN(Text Recognition Network )(上圖右)
該模組是一個基於 attention 機制的 seq2seq 模型。最終模型輸出38維向量(26個字母,10個數字,1個標點符號的代表,一個結束標誌EOS)
其中,
為特徵經過LSTM編碼後的輸出特徵。Hi為解碼層的輸出值,
為需要學習的嵌入矩陣,
為attention矩陣的權值,
為輸入特徵的加權求和。
At each time-stept(在每個時間步)
,decoder LSTMs compute their hidden state依據上面公式計算他們的隱藏狀態。其中,f()函式為RNN的函式,
為將特徵對映到輸出空間的對映矩陣。
損失函式
TPN和TDN都採用二分類Logistic損失
進行分類,smoothL1 loss
用於迴歸。因此training TPN的損失如下:
整個框架的分類為binary_crossentrop,迴歸為smooth L1
在TPN模組中,正anchor閾值為0.7,負anchor閾值為0.3,N為一個batch中隨機選擇的anchor個數,為256,N+為正anchor的個數,為128。
LDR模組中,
為TPN中輸出的ROI的個數,為128,
為正的ROI個數,小於等於64。其中,正anchor的閾值為0.6,負anchor的閾值為0.4
Data Augmentation
我們在訓練階段每迭代一個影象。訓練影象被調整到600畫素的短邊和最多1200畫素的長邊。資料增強也被實現為提高我們的模型的魯棒性。
- 在不改變影象高度的情況下,將影象的寬度按比例 1或 0.8 隨機重新標定,使得邊界框具有更多的可變長寬比;
- 隨機裁剪包括所有的子影象原始影象中的文字,填充有100個畫素每一邊,並在短邊上調整到600畫素。
為了提高課程學習的通用性和加速收斂速度,我們設計了一個課程學習正規化來從逐漸複雜的資料中訓練模型,詳情如下:
模型訓練對比