因爲神經網絡的強大復興,特別是深度卷積神經網絡(DCNN)模型在各類視覺任務中的巨大成功的推進,最近大多數與深度神經網絡相關的工做主要致力於檢測或分類對象類別。基於圖像的序列識別問題一直是計算機視覺中長期存在的研究課題。本文將介紹由 Baoguang Shi 等人發表的一篇論文 An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition。在該論文中,做者研究了場景文本識別的問題,這是基於圖像的序列識別中最重要和最具備挑戰性的任務之一。相較於通常的對象識別任務,基於圖像序列識別任務中的識別對象每每是以序列的形式出現,而不是孤立地出現。所以,識別這樣的對象一般須要系統預測一系列標籤而不是單個標籤。序列對象另外一個獨特之處在於它們的長度可能發生較大的變化。 php
對於特定的序列對象(例如場景文本),人們已經作過一些嘗試來解決此類對象的識別問題。例如,利用某種算法檢測出單個字符,而後利用訓練好的 DCNN 模型來識別檢測到的單個字符。此類方法一般須要訓練強大的字符檢測器,以便從原始單詞圖像中精確地檢測和裁剪每一個字符。另外,一些其餘方法將場景文本識別視爲圖像分類問題,爲每一個英文單詞(總共 9 萬個單詞)分配一個類標籤。運用此類方法產生的模型將有衆多的類標籤,所以很難泛化到其餘類型的序列對象。例如,中文文本、音樂配樂等序列對象擁有上百萬種類標籤,該模型很難泛化到此類序列對象。所以,基於 DCNN 的系統不能直接用於基於圖像的序列識別。循環神經網絡(RNN)模型是深度神經網絡家族中另外一個重要分支,用於處理序列問題。RNN 的一大優點是在訓練和測試的時候,不須要序列對象圖像中每個元素的位置信息。然而,將輸入圖像轉換成圖像特徵序列的預處理步驟是必須的。預處理步驟獨立於 RNN 模型的流程步驟,所以基於RNN的現有系統不能以端到端的方式進行訓練和優化。
除了深度神經網絡以外,一些傳統的場景文本識別方法也爲這一領域帶來了一些新穎的想法,而且取得了優異的表現。例如,將單詞圖像和文本字符串嵌入到公共向量子空間並將詞識別轉化爲檢索問題、利用中層特徵進行場景文本識別等方法在標準數據集上取得了有效的性能。可是此類方法與基於神經網絡的算法相比較而言,模型的表現仍是較差。
在這篇文章中,做者提出了一種將特徵提取、序列建模和轉錄整合到統一框架中的新型神經網絡模型——專門用於基於圖像的圖像序列的識別。這種神經網絡模型被稱爲卷積循環神經網絡(CRNN)模型,由於它是 DCNN 模型和 RNN 模型的組合。 html
如圖 1 所示,CRNN模型 的網絡架構由三部分組成,包括卷積層、循環層和轉錄層(由下到上)。在 CRNN 的底部,卷積層自動從每一個輸入圖像中提取特徵序列。在卷積網絡層之上,構建一個對卷積層特徵序列的每一幀進行預測的循環網絡層。在 CRNN 頂部的轉錄層將循環層輸出的幀預測轉化爲標籤序列。CRNN 模型雖然由不一樣類型的網絡架構組成,但能夠經過一個損失函數進行聯合訓練。
前端
在 CRNN 模型中,卷積層部分由標準 CNN 模型中的卷積層和最大池化層組成。這一部分用來提取表示輸入圖片的序列特徵。在輸入到網絡以前,全部的的圖片須要被縮放到同一高度。而後,一些列的特徵向量從特徵圖譜中被提取出來。這些特徵圖譜由卷積層產生,做爲循環層的輸入。值得注意的是,每一個特徵序列的特徵向量在特徵圖譜中從左到右一列一列地產生。這意味着第 i 個特徵向量是全部特徵圖譜第 i 列向量的聯合體。在該論文中,每列的寬度被固定設置爲單個像素。
卷積、最大池化和激活函數做用在局部區域,具備平移不變性。所以,特徵圖譜的每一列與原始圖片中的一塊矩形區域對應,咱們稱之爲感覺野。這些矩形區域從左到右和特徵圖譜中的列向量一一對應。如圖 2 所示,特徵序列中的每個向量與對應的感覺野相關聯,被看作是相應區域的圖像描述符。
git
在卷積層之上是一個深度雙向循環神經網絡來做爲循環層。循環層爲特徵序列的每一幀預測一個標籤分佈。循環層的優勢有三重。首先,RNN 具備很強的捕獲序列上下文信息的能力。因爲使用了上下文信息,基於圖像的序列識別變得更加穩定有效,相比於僅僅單獨使用每一個標誌而言。以場景文本識別爲例,較寬的字符可能須要一些連續的幀來描述。此外,在觀察完上下文信息以後,一些模糊的字符會更容易區分。例如,咱們在識別 "il" 的時候,經過對比兩個字母的高度,咱們能夠更加容易地識別出它們。其次,RNN 能夠將偏差值反向傳播到其輸入層,即卷積層。從而容許咱們在統一的網絡中共同訓練循環層和卷積層。最後,RNN 可以從頭至尾對任意長度的序列進行操做。
github
轉錄是將 RNN 所作的每幀預測轉換成標籤序列的過程。數學上,轉錄是根據每幀預測找到具備最高几率的標籤序列。在實踐中,存在兩種轉錄模式,即無詞典轉錄和基於詞典的轉錄。詞典是一組標籤序列,預測時會受到拼寫檢查字典約束。在無詞典模式中,預測時沒有任何詞典。在基於詞典的模式中,經過選擇具備最高几率的標籤序列進行預測。 算法
咱們採用 Graves 等人提出的聯接時間分類(CTC**)**層中的條件機率。標籤序列 網絡
在無詞典轉錄的模式下,序列 數據結構
在基於詞典的模式中,每一個測試採樣與詞典相關聯。基本上,標籤序列被識別爲由等式(1)所定義的機率最大的標籤序列。機率最大時,對應的標籤序列爲 架構
數據集 app
爲了評估 CRNN 模型的有效性,做者在場景文本識別和曲譜識別的標準基數據集上進行了實驗。數據集和訓練測試的設置見 3.1 小節,場景文本圖像中 CRNN 的詳細設置見 3.2 小節,綜合比較的結果在 3.3 小節報告。爲了進一步驗證該模型的泛化性,在 3.4 小節中做者用曲譜識別任務做出了驗證。
在本論文中,做者使用 Jaderberg 等人發佈的合成數據集做爲訓練數據。數據集包含八百萬訓練圖像及其對應的實際單詞。使用四個流行的基準數據集做爲模型的性能評估,即 ICDAR 2003(IC03)、ICDAR 2013(IC13)、IIIT 5k-word (IIIT5k)和 Street View Text(SVT)。CRNN 模型雖然是在純合成文本數據上進行訓練的,可是它在標準文本識別數據集上的表現良好。
在實驗中,做者使用的網絡配置總結在表 1 中,卷積層的架構是基於 VGG 的架構。爲了使其適用於識別英文文本,對相應網絡層進行了調整:在第 3 和第 4 個最大池化層中,採用的是 1*2 的矩形池化窗口。這種調整產生寬度較大的特徵圖,所以具備更長的特徵序列。最重要的是,矩形池窗口產生矩形感覺野(如圖 2 所示),這有助於識別一些具備窄形狀的字符。
網絡不只有深度卷積層,並且還有循環層。兩種網絡結構都難以訓練,做者在第 5 和 第 6 個卷積層以後插入兩個批歸一化層,能夠大大加快網絡的訓練速度。
提出的 CRNN 模型及其餘一些算法在上述四個公共數據集上得到的全部識別精度如表 2 所示。在有約束詞典的狀況中,該模型的方法始終優於大多數最新的方法。而且 CRNN 不限於識別已知詞典中的單詞,而且可以處理隨機字符串、句子或其餘諸如中文單詞的腳本。所以,CRNN 的結果在全部的測試集上都具備競爭力。在無約束詞典的狀況下,該模型在 SVT 上取得了最佳性能,但在 IC03 和 IC13 上仍落後於一些方法。表 2 中,"None" 列空白表示該方法不能用於無約束詞典的狀況。
曲譜一般由排列在五線譜的音符序列組成。識別圖像中的曲譜被稱爲光學音樂識別(OMR)問題。之前的方法一般須要圖像預處理(主要是二值化),五線譜檢測和單個音符識別。做者將 OMR 做爲序列識別問題,直接用CRNN 從圖像中預測音符的序列。
爲了準備 CRNN 所需的訓練數據,做者收集了 2650 張圖像。每一個圖像中有一個包含 3 到 20 個音符的曲譜片斷。而且手動標記全部圖像的真實標籤序列。收集到的圖像經過旋轉,縮放和用噪聲損壞加強到了265k個訓練樣本,並用天然圖像替換它們的背景。對於測試,做者建立了圖4 所示的三個數據集。
在本文中,咱們提出了一種新穎的神經網絡架構,稱爲卷積循環神經網絡(CRNN),其集成了卷積神經網絡(CNN)和循環神經網絡(RNN)的優勢。CRNN 可以獲取不一樣尺寸的輸入圖像,併產生不一樣長度的預測。它直接在粗粒度的標籤(例如單詞)上運行,在訓練階段不須要詳細標註每個單獨的元素(例如字符)。此外,因爲CRNN放棄了傳統神經網絡中使用的全鏈接層,所以獲得了更加緊湊和高效的模型。此外,CRNN 在光學音樂識別(OMR)的基準數據集上顯著優於其它的競爭者,這驗證了 CRNN 的泛化性。
實際上,CRNN 是一個通用框架,所以能夠應用於其它的涉及圖像序列預測的領域和問題(如漢字識別)。進一步加快CRNN,使其在現實應用中更加實用,是將來值得探索的另外一個方向。該模型在 Mo 平臺上有實現,你們能夠搜索場景文本識別找到。
項目源碼地址:momodel.cn/workspace/5…
Mo(網址:momodel.cn)是一個支持 Python 的人工智能在線建模平臺,能幫助你快速開發、訓練並部署模型。
Mo 人工智能俱樂部 是由網站的研發與產品設計團隊發起、致力於下降人工智能開發與使用門檻的俱樂部。團隊具有大數據處理分析、可視化與數據建模經驗,已承擔多領域智能項目,具有從底層到前端的全線設計開發能力。主要研究方向爲大數據管理分析與人工智能技術,並以此來促進數據驅動的科學研究。
目前俱樂部每週六在杭州舉辦以機器學習爲主題的線下技術沙龍活動,不按期進行論文分享與學術交流。但願能匯聚來自各行各業對人工智能感興趣的朋友,不斷交流共同成長,推進人工智能民主化、應用普及化。