大話文本識別經典模型:CRNN

在前一篇文章中(詳見本博客文章:大話文本檢測經典模型 CTPN),介紹了文字識別在現實生活中的普遍應用,以及文字識別的簡單流程:算法

其中「文本檢測」、「文本識別」是其中兩個關鍵環節,「文本檢測」已經在前一篇文章中介紹了詳細的介紹,本文主要介紹「文本識別」的經典模型CRNN及其原理。網絡

 

在介紹CRNN以前,先來梳理一下要實現「文本識別」的模型,須要具有哪些要素:分佈式

(1)首先是要讀取輸入的圖像,提取圖像特徵,所以,須要有個卷積層用於讀取圖像和提取特徵。具體原理可詳見本公衆號的文章:白話卷積神經網絡(CNN);函數

(2)因爲文本序列是不定長的,所以在模型中須要引入RNN(循環神經網絡),通常是使用雙向LSTM來處理不定長序列預測的問題。具體原理可詳見本公衆號的文章:白話循環神經網絡(RNN);oop

(3)爲了提高模型的適用性,最好不要要求對輸入字符進行分割,直接可進行端到端的訓練,這樣可減小大量的分割標註工做,這時就要引入CTC模型(Connectionist temporal classification, 聯接時間分類),來解決樣本的分割對齊的問題。性能

(4)最後根據必定的規則,對模型輸出結果進行糾正處理,輸出正確結果。學習

以上就是「文本識別」模型的幾個必須具有的要素。大數據

接下來要介紹的CRNN模型,也是基本由這幾部分組成的。人工智能

 

一、什麼是CRNNspa

CRNN(Convolutional Recurrent Neural Network,卷積循環神經網絡),是華中科技大學在發表的論文《An End-to-End Trainable Neural Network for Image-based Sequence Recognition and ItsApplication to Scene Text Recognition》提出的一個識別文本的方法,該模型主要用於解決基於圖像的序列識別問題,特別是場景文字識別問題。

CRNN的主要特色是:

(1)能夠進行端到端的訓練;

(2)不須要對樣本數據進行字符分割,可識別任意長度的文本序列

(3)模型速度快、性能好,而且模型很小(參數少)

 

二、CRNN模型結構

CRNN模型的結構以下:

正如前面梳理的「文本識別」模型必須具有的要素,CRNN模型主要由如下三部分組成:

(1)卷積層:從輸入圖像中提取出特徵序列;

(2)循環層:預測從卷積層獲取的特徵序列的標籤分佈;

(3)轉錄層:把從循環層獲取的標籤分佈經過去重、整合等操做轉換成最終的識別結果。

 

下面將展開對這三個層進行介紹:

(1)卷積層

① 預處理

CRNN對輸入圖像先作了縮放處理,把全部輸入圖像縮放到相同高度,默認是32,寬度可任意長。

② 卷積運算

由標準的CNN模型中的卷積層和最大池化層組成,結構相似於VGG,以下圖:

從上圖能夠看出,卷積層是由一系列的卷積、最大池化、批量歸一化等操做組成。

③ 提取序列特徵

提取的特徵序列中的向量是在特徵圖上從左到右按照順序生成的,用於做爲循環層的輸入,每一個特徵向量表示了圖像上必定寬度上的特徵,默認的寬度是1,也就是單個像素。因爲CRNN已將輸入圖像縮放到一樣高度了,所以只需按照必定的寬度提取特徵便可。以下圖所示:

(2)循環層

循環層由一個雙向LSTM循環神經網絡構成,預測特徵序列中的每個特徵向量的標籤分佈。

因爲LSTM須要有個時間維度,在本模型中把序列的 width 看成LSTM 的時間 time steps。

其中,「Map-to-Sequence」自定義網絡層主要是作循環層偏差反饋,與特徵序列的轉換,做爲卷積層和循環層之間鏈接的橋樑,從而將偏差從循環層反饋到卷積層。

 

(3)轉錄層

轉錄層是將LSTM網絡預測的特徵序列的結果進行整合,轉換爲最終輸出的結果。

在CRNN模型中雙向LSTM網絡層的最後鏈接上一個CTC模型,從而作到了端對端的識別。所謂CTC模型(Connectionist Temporal Classification,聯接時間分類),主要用於解決輸入數據與給定標籤的對齊問題,可用於執行端到端的訓練,輸出不定長的序列結果。

因爲輸入的天然場景的文字圖像,因爲字符間隔、圖像變形等問題,致使同個文字有不一樣的表現形式,但實際上都是同一個詞,以下圖:

而引入CTC就是主要解決這個問題,經過CTC模型訓練後,對結果中去掉間隔字符、去掉重複字符(若是同個字符連續出現,則表示只有1個字符,若是中間有間隔字符,則表示該字符出現屢次),以下圖所示:

 

以上就是文本識別模型CRNN的介紹,該模型既可用於識別英文、數字,也可用於識別中文。通常是跟CTPN結合一塊兒使用,使用CTPN進行文字的檢測,使用CRNN進行文字的識別。

本人使用CTPN+CRNN對中文識別出來的效果以下(隱去私密信息):

 

牆裂建議

2015年,Baoguang Shi 等人發表了關於CRNN的經典論文《 An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition 》,在論文中詳細介紹了CRNN的思想和技術原理,建議閱讀該論文以進一步瞭解該模型。

關注本人公衆號「大數據與人工智能Lab」(BigdataAILab),而後回覆「論文」關鍵字可在線閱讀經典論文的內容

 

推薦相關閱讀

相關文章
相關標籤/搜索