前 言
本文主要解讀文字識(shí)別論文CRNN.
論文地址:chrome-extension://ikhdkkncnoglghljlkmcimlnlhkeamad/pdf-viewer/web/viewer.html?file=https%3A%2F%2Farxiv.org%2Fpdf%2F1507.05717v1.pdf
01
網(wǎng)絡(luò)結(jié)構(gòu)
CRNN是一種卷積循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),用于解決基于圖像的序列識(shí)別問題,特別是場(chǎng)景文字識(shí)別問題。CRNN網(wǎng)絡(luò)結(jié)構(gòu)如下圖:
網(wǎng)絡(luò)結(jié)構(gòu)包含三部分,從下到上依次為:
卷積層,作用是從輸入圖像中提取特征序列;
循環(huán)層,作用是預(yù)測(cè)從卷積層獲取的特征序列的標(biāo)簽(真實(shí)值)分布;
轉(zhuǎn)錄層,作用是把從循環(huán)層獲取的標(biāo)簽分布通過去重整合等操作轉(zhuǎn)換成最終的識(shí)別結(jié)果;
02
卷積層
CRNN卷積層由標(biāo)準(zhǔn)的CNN模型中的卷積層和最大池化層組成,自動(dòng)提取出輸入圖像的特征序列。
與普通CNN網(wǎng)絡(luò)不同的是,CRNN在訓(xùn)練之前,先把輸入圖像縮放到相同高度(圖像寬度維持原樣),論文中使用的高度值是32。
提取的特征序列中的向量是從特征圖上從左到右按照順序生成的,每個(gè)特征向量表示了圖像上一定寬度上的特征,論文中使用的這個(gè)寬度是1,就是單個(gè)像素。
特別強(qiáng)調(diào)序列的順序是因?yàn)樵谥蟮难h(huán)層中,先后順序是LSTM訓(xùn)練中的一個(gè)重要參考量。
03
循環(huán)層
循環(huán)層由一個(gè)雙向LSTM循環(huán)神經(jīng)網(wǎng)絡(luò)構(gòu)成,預(yù)測(cè)特征序列中的每一個(gè)特征向量的標(biāo)簽分布(真實(shí)結(jié)果的概率列表),循環(huán)層的誤差被反向傳播,最后會(huì)轉(zhuǎn)換成特征序列,再把特征序列反饋到卷積層,這個(gè)轉(zhuǎn)換操作由論文中定義的“Map-to-Sequence”自定義網(wǎng)絡(luò)層完成,作為卷積層和循環(huán)層之間連接的橋梁。
在卷積層的上部建立一個(gè)深度雙向遞歸神經(jīng)網(wǎng)絡(luò),稱為遞歸層。遞歸層對(duì)特征序列x = x1......xT中每幀的標(biāo)簽分布進(jìn)行預(yù)測(cè)。遞歸層的優(yōu)點(diǎn)有三方面。首先,RNN具有很強(qiáng)的序列上下文信息捕獲能力。使用上下文線索進(jìn)行基于圖像的序列識(shí)別比單獨(dú)處理每個(gè)符號(hào)更加穩(wěn)定和有用。以場(chǎng)景文本識(shí)別為例,寬字符可能需要幾個(gè)連續(xù)幀來充分描述。此外,有些歧義字在觀察其上下文時(shí)更容易區(qū)分,例如“il”通過字高對(duì)比比單獨(dú)識(shí)別更容易識(shí)別。
其次,RNN可以將誤差微分反向傳播到它的輸入,即卷積層,讓我們?cè)谝粋€(gè)統(tǒng)一的網(wǎng)絡(luò)中共同訓(xùn)練遞歸層和卷積層。第三,RNN能夠?qū)θ我忾L(zhǎng)度的序列進(jìn)行操作,從開始到結(jié)束進(jìn)行遍歷。
傳統(tǒng)的RNN單元在輸入層和輸出層之間有一個(gè)自連接的隱含層。每當(dāng)它在序列中接收到一個(gè)幀 xt 時(shí),它就用一個(gè)非線性函數(shù)更新它的內(nèi)部狀態(tài)(或稱隱藏狀態(tài))ht,這個(gè)函數(shù)接受當(dāng)前輸入xt和上一個(gè)內(nèi)部狀態(tài)ht-1: ht=g(xt,ht-1)。然后,基于ht進(jìn)行預(yù)測(cè)yt。這樣就捕獲了過去的上下文{xt'}t'
LSTM是方向性的,它只使用過去的上下文。然而,在基于圖像的序列中,來自兩個(gè)方向的上下文是有用的,并且相互補(bǔ)充。因此,將兩個(gè)向前和向后的LSTM合并為一個(gè)雙向LSTM。此外,可以對(duì)多個(gè)雙向LSTM進(jìn)行疊加,得到如上圖b所示的深雙向LSTM。與淺層結(jié)構(gòu)相比,深層結(jié)構(gòu)允許更高層次的抽象,并在語音識(shí)別任務(wù)中取得了顯著的性能改進(jìn)。
在遞歸層中,誤差差沿上圖b所示箭頭的相反方向傳播,例如,通過時(shí)間反向傳播(BPTT)。在遞歸層的底部,傳播的微分序列被連接到映射中,反轉(zhuǎn)了將特征映射轉(zhuǎn)換為特征序列的操作,然后反饋到卷積層。在實(shí)踐中,我們創(chuàng)建了一個(gè)稱為“映射-序列”的自定義網(wǎng)絡(luò)層,作為卷積層和循環(huán)層之間的橋梁。
04
轉(zhuǎn)錄層
網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)圖:
Transcription層是將lstm層的輸出與label對(duì)應(yīng),采用的技術(shù)是CTC,可以執(zhí)行端到端的訓(xùn)練,用來解決輸入序列和輸出序列難以一一對(duì)應(yīng)的問題,不要求訓(xùn)練數(shù)據(jù)對(duì)齊和一一標(biāo)注,直接輸出不定長(zhǎng)的序列結(jié)果。對(duì)于一段長(zhǎng)度為T的序列來說,每個(gè)樣本點(diǎn)t(t遠(yuǎn)大于T)在RNN網(wǎng)絡(luò)的最后一層都會(huì)輸出一個(gè)softmax向量,表示該樣本點(diǎn)的預(yù)測(cè)概率,所有樣本點(diǎn)的這些概率傳輸給CTC模型后,輸出最可能的標(biāo)簽,再經(jīng)過去除空格(blank)和去重操作,就可以得到最終的序列標(biāo)簽,CTC對(duì)齊輸入輸出是多對(duì)一的,例如he-l-lo-與hee-l-lo對(duì)應(yīng)的都是“hello”。
基于詞典的轉(zhuǎn)錄
基于字典的模式,其實(shí)是就是上面CTC的基礎(chǔ)上,在獲得結(jié)果時(shí),又從字典查了一遍,來更加提高準(zhǔn)確率,而沒有字典的就只能取高概率的結(jié)果,少了從字典查這一步。
采用了由Graves等人提出的連接時(shí)序分類(Connectionist TemporalClassifification CTC) 層中定義的條件概率。該概率定義為:基于每幀的預(yù)測(cè)y=y1,y2......yT的標(biāo)簽序列 l,它忽略了 l 中每個(gè)標(biāo)簽的位置。因此,當(dāng)我們以該概率的負(fù)對(duì)數(shù)作為訓(xùn)練網(wǎng)絡(luò)的目標(biāo)時(shí),我們只需要圖像及其對(duì)應(yīng)的標(biāo)簽序列,避免了為個(gè)別字符標(biāo)注位置的勞動(dòng)。
條件概率的公式簡(jiǎn)述如下:輸入是一個(gè)序列y=y1,y2......yT,其中T為序列長(zhǎng)度。其中,每一個(gè)
是集合 L’ =LU 上的概率分布,而 L 包含任務(wù)中的所有標(biāo)簽(例如所有英文字符),以及表示為的“空白”標(biāo)簽。一個(gè)序列到序列的映射函數(shù)定義在如下序列上:
其中,T是長(zhǎng)度,是預(yù)測(cè)概率。???映射??到標(biāo)簽序列 I 上,通過先去除重復(fù)的標(biāo)簽,再去除空白的標(biāo)簽。例如:?? 映射 “--hh-e-l-ll-oo--”到“hello”( “-”代表空格) 。之后,定義條件概率為所有預(yù)測(cè)概率?到標(biāo)簽序列 l 上的映射?的概率和:
其中,?的概率定義為p(??|y)=
其中,是標(biāo)簽?在時(shí)間戳t的概率。
在基于詞典的模式中,每個(gè)測(cè)試示例都與一個(gè)詞典 D 相關(guān)聯(lián)。主要的,序列標(biāo)簽通過選擇詞典中定義的擁有最高的條件概率來被選擇,例如,l?=
然而,對(duì)于較大的詞典,對(duì)詞典進(jìn)行窮舉搜索,即對(duì)詞典中的所有序列計(jì)算條件概率,并選擇概率最大的一個(gè),將非常耗時(shí)。為了解決這個(gè)問題,通過無詞典轉(zhuǎn)錄預(yù)測(cè)的標(biāo)簽序列,在編輯距離度量下往往接近于ground-truth。這表明可以將搜索限制為最近鄰的候選對(duì)象? ,其中??是最大編輯距離,I'是為y在無詞序模式下轉(zhuǎn)錄的序列:
候選對(duì)象可以以bk樹數(shù)據(jù)結(jié)構(gòu)被有效找尋,bk樹數(shù)據(jù)結(jié)是一種專門適用于離散度量空間的度量樹。bk樹的搜索時(shí)間復(fù)雜度為
因此,這個(gè)方案很容易擴(kuò)展到非常大的詞典。在本方法中,離線地為詞典構(gòu)造一個(gè)bk樹。然后,通過查找小于或等于編輯距離的查詢序列,用bk樹執(zhí)行快速在線搜索。
無詞典的轉(zhuǎn)錄
以定義的條件概率最高的序列l(wèi)?作為預(yù)測(cè),
即在每個(gè)時(shí)間戳 t上獲取最可能的標(biāo)簽,并將結(jié)果序列映射到l?。
審核編輯 :李倩
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4776瀏覽量
100952 -
圖像
+關(guān)注
關(guān)注
2文章
1088瀏覽量
40515 -
OCR
+關(guān)注
關(guān)注
0文章
145瀏覽量
16394
原文標(biāo)題:OCR之CRNN論文解讀
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論