【附論文】白話文本識別經典模型:CRNN

2021-02-13 大數據與人工智慧Lab

在前一篇文章中(詳見本公眾號文章:白話文本檢測經典模型 CTPN),介紹了文字識別在現實生活中的廣泛應用,以及文字識別的簡單流程: 

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

在介紹CRNN之前,先來梳理一下要實現「文本識別」的模型,需要具備哪些要素:

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

(2)由於文本序列是不定長的,因此在模型中需要引入RNN(循環神經網絡),一般是使用雙向LSTM來處理不定長序列預測的問題。具體原理可詳見本公眾號的文章:白話循環神經網絡(RNN);

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

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

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

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

1、什麼是CRNN

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)模型速度快、性能好,並且模型很小(參數少)

2、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的思想和技術原理,建議閱讀該論文以進一步了解該模型。

想要閱讀 完整版本 CRNN 論文內容,請關注本公眾號,然後回復「論文」關鍵字可在線閱讀經典論文的內容。

1、長按識別二維碼關注本公眾號「大數據與人工智慧Lab」(BigdataAILab)

2、在公眾號的消息框裡面回復「論文」關鍵字,即可在線閱讀 CRNN 的論文內容

推薦相關閱讀

搜索」大數據與人工智慧Lab「微信號(BigdataAILab),或掃描二維碼關注我們

相關焦點

  • CRNN:端到端不定長文字識別算法
    ❝論文:《An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition》Git code:https://github.com/bgshih/crnn  官方lua實現
  • 【附經典論文】白話CNN經典模型:LeNet
    CNN發展至今,已經有很多變種,其中有幾個經典模型在CNN發展歷程中有著裡程碑的意義,它們分別是:LeNet、Alexnet、Googlenet、VGG、DRL等,接下來將分期進行逐一介紹。在之前的文章中,已經介紹了卷積神經網絡(CNN)的技術原理,細節部分就不再重複了,有興趣的同學再打開連結看看,在此簡單回顧一下CNN的幾個特點:局部感知、參數共享、池化。
  • 【附論文】白話CNN經典模型:AlexNet
    AlexNet可以說是具有歷史意義的一個網絡結構,在此之前,深度學習已經沉寂了很長時間,自2012年AlexNet誕生之後,後面的ImageNet冠軍都是用卷積神經網絡(CNN)來做的,並且層次越來越深,使得CNN成為在圖像識別分類的核心算法模型,帶來了深度學習的大爆發。
  • 超輕量級中文OCR,支持豎排文字識別、ncnn推理,總模型僅17M
    近期,這個叫做chineseocr_lite的OCR項目開源了,這是一個超輕量級中文ocr,支持豎排文字識別,支持 ncnn 推理,psenet (8.5M) + crnn (6.3M) + anglenet (1.5M) 總模型僅17M。目前,這個開源項目已在GitHub上標星2400+。
  • CVPR 2020文本圖像檢測與識別論文/代碼
    Auto-Encoding Twin-Bottleneck Hashing論文:Auto-Encoding Twin-Bottleneck HashingCVPR 2020 所有文本圖像(text)相關論文,主要分為手寫文本和場景文本兩大方向,總計16篇,對文獻進行了細緻的分類,大部分論文是圍繞識別問題的研究
  • GitHub 熱榜:文字識別神器,超輕量級中文 OCR!一個超級厲害的開源庫
    光學字符識別(OCR)技術已經得到了廣泛應用。比如發票上用來識別關鍵字樣,搜題 App 用來識別書本上的試題。
  • 文本分類經典論文:fasttext,textcnn解讀
    文本分類是自然語言處理領域一個非常經典的任務,一般文本分類分為三種,基於規則的文本分類,基於機器學習的文本分類和基於深度學習的文本分類。本文我們重點關注基於深度學習的文本分類,並為大家介紹文本分類中非常經典的fasttext和textcnn。
  • 總模型僅17M!這個超輕量中文OCR開源項目在Github火了
    光學字符識別(OCR)相信大家都不陌生,就是指電子設備(例如掃描儀或數位相機)檢查紙上列印的字符,通過檢測暗、亮的模式確定其形狀,然後用字符識別方法將形狀翻譯成計算機文字的過程
  • 帶你讀論文 | 端到端語音識別模型
    隨著端到端神經網絡在機器翻譯、語音生成等方面的進展,端到端的語音識別也達到了和傳統方法可比的性能。不同於傳統方法將語音識別任務分解為多個子任務(詞彙模型,聲學模型和語言模型),端到端的語音識別模型基於梅爾語譜作為輸入,能夠直接產生對應的自然語言文本,大大簡化了模型的訓練過程,從而越來越受到學術界和產業界的關注。
  • OCR光學字符識別方法匯總(含原理與開源項目)
    3.2.4 特定的彎曲文本行識別對於特定的彎曲文本行識別,早在CVPR2016就已經有了相關paper:論文地址:arxiv.org/abs/1603.03915對於彎曲不規則文本,如果按照之前的識別方法,直接將整個文本區域圖像強行送入CNN+
  • 關於AI文本生成動畫模型的論文
    近日,迪士尼研究所和羅格斯大學的科學家共同發表了關於AI文本生成動畫模型的論文。 研究人員表示,這種算法只要在輸入的文本中描述某些活動即可,不需要注釋數據和進行大量訓練就能產生動畫。 這篇論文中,研究人員進一步提出了端到端模型,這種模型可以創建一個粗略的故事版和電影劇本的視頻,用來描繪電影劇本中的文字。
  • OCR之四:預處理工具與crnn文字識別
    今天來說說文字識別說到文字識別先給大家介紹一個工具吧。圖像預處理,或者生成訓練數據集的工具。
  • 手把手教你用PaddleOCR與PyQT實現多語言文字識別的程序
    通過閱讀作者推薦的幾篇論文,小張發現,文字檢測算法可以分為:基於分割的方式(如DBNet、PSENet)和基於回歸的方式(如SegLink、RRPN)。不過文字檢測也屬於目標檢測中的一個分支,也可以直接拿目前的目標檢測模型用來做文字檢測,只是效果可能不太好。
  • 【論文筆記】命名實體識別論文
    寫在前面其實實體識別這塊看了挺久了的,今天就來好好聊一聊它。實體識別(Name Entity Recognition)是屬於NLP任務中的序列標註問題:給定一個輸入句子,要求為句子中的每一個token做實體標註(如人名、組織/機構、地名、日期等等)。NER算法回顧明白了NER任務的目的,那我們就來看看具體是怎麼實現的。
  • NLP詳細教程:手把手教你用ELMo模型提取文本特徵(附代碼&論文)
    在python中應用ELMo模型進行文本分類:理解問題陳述數據集介紹導入庫導入和檢查數據文本清洗和預處理簡要介紹TensorFlow Hub準備ELMo模型向量構建模型並評估5. 我們還能用ELMo做什麼?6.
  • 論文推薦|[AAAI 2020] TextScanner:依序閱讀分類的魯棒場景文本識別
    該論文分析了現有的場景文本方法,包括基於RNN注意力的方法以及基於語義分割的方法的局限性,針對上述方法存在的不足之處提出改進。圖1 本文方法的對比結果場景文本識別任務在近幾年得到很大的關注,現有的場景文本識別的方法主要分為兩種,一種是基於RNN Attention的方法[1][2],通過對編碼後的圖片特徵序列使用注意力機制來對準字符同時進行解碼
  • 獨家 | NLP詳細教程:手把手教你用ELMo模型提取文本特徵(附代碼&論文)
    在python中應用ELMo模型進行文本分類:理解問題陳述數據集介紹導入庫導入和檢查數據文本清洗和預處理簡要介紹TensorFlow Hub準備ELMo模型向量構建模型並評估5. 我們還能用ELMo做什麼?6. 結語1.
  • ESIR:通過迭代矯正圖像的端到端場景文本識別系統
    CVPR即國際計算機視覺與模式識別會議,是IEEE一年一度的學術性會議,會議的主要內容是計算機視覺與模式識別技術。CVPR是世界頂級的計算機視覺會議,與ICCV和ECCV合稱三大頂會。這篇論文講述的是一種識別彎曲文本的方法。    今天我們要介紹這篇論文的4個部分,分別是簡介、方法、實驗和結論。
  • 白話Word2Vec
    t=https://arxiv.org/pdf/1309.4168.pdf這個論文裡的模型後來被人們稱為「Word2Vec」,其實是因為Google論文開源的Git代碼倉庫名字就叫叫「Word2Vec」。