一種基于cnn-rnn的復(fù)雜圖像字序列識(shí)別方法
【技術(shù)領(lǐng)域】
[00011本發(fā)明涉及圖像文字識(shí)別領(lǐng)域,特別涉及一種基于CNN-RNN的復(fù)雜圖像字序列識(shí) 別方法。
【背景技術(shù)】
[0002] 隨著社會(huì)的發(fā)展,產(chǎn)生了大量對(duì)古籍、文檔、票據(jù)、名片等紙質(zhì)媒體數(shù)字化的需求, 這里的數(shù)字化不僅僅限于使用掃描儀或者相機(jī)進(jìn)行"照片化",更重要的是將這些紙質(zhì)文件 轉(zhuǎn)化成以可讀、可編輯的文檔來(lái)進(jìn)行存儲(chǔ),實(shí)現(xiàn)這一過(guò)程需要對(duì)掃描出的圖片進(jìn)行圖像文 字識(shí)別,而傳統(tǒng)的圖像文字識(shí)別為光學(xué)文字識(shí)別(OCR)。
[0003] 常規(guī)的OCR方法包括了圖片的切分,特征提取,單字符識(shí)別等處理過(guò)程,其中圖片 的切分包含了大量的圖像預(yù)處理過(guò)程,比如傾斜矯正,背景去噪,單字符的提取;這些處理 過(guò)程不僅繁瑣耗時(shí),而且可能使得圖片損失很多可用信息;而且當(dāng)待識(shí)別圖片中包含多個(gè) 文字的字符串時(shí),傳統(tǒng)的OCR方法需要將原字符串切分成若干包含單個(gè)文字的小圖片進(jìn)行 分別識(shí)別,而進(jìn)行文字切分最常用的方法為投影法,即是將圖像文字二值化處理后,通過(guò)垂 直投影找到兩個(gè)文字之間的分界線,根據(jù)分界線將文字切分開來(lái),該方法主要存在兩大問(wèn) 題:一、當(dāng)待識(shí)別圖像文字中包含背景噪音、字符扭曲、字符粘合等情況下,造成文字的切分 困難。特別是當(dāng)待識(shí)別圖像文字中混合了左右偏旁的漢子、字母、數(shù)字、符號(hào)時(shí),或者在待識(shí) 別圖像文字中混合有半角和全角格式的字符,由于格式的差異造成字符大小和間隙存在區(qū) 另IJ,通過(guò)簡(jiǎn)單的投影法不能準(zhǔn)確的將待識(shí)別圖像文字中的單字符切分出來(lái)。而一旦切分出 現(xiàn)了問(wèn)題,就很難得到準(zhǔn)確的識(shí)別結(jié)果。二、將字符串切分成包含單個(gè)字符的子圖片進(jìn)行分 別識(shí)別的方法,沒(méi)有充分利用自然語(yǔ)言中字、詞之間的依賴關(guān)系,雖然可以使用額外的語(yǔ)言 模型對(duì)識(shí)別結(jié)果進(jìn)行優(yōu)化補(bǔ)充,但是考慮到語(yǔ)言模型和識(shí)別器的構(gòu)建過(guò)程是相互獨(dú)立的, 這種方式的優(yōu)化補(bǔ)充是局部有限的。
[0004] 面對(duì)巨大的識(shí)別需要急需一種能夠快速高效的圖像文字識(shí)別方法。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)中所存在的上述不足,提供一種基于CNN-RNN的 復(fù)雜圖像字序列識(shí)別方法。本發(fā)明方法通過(guò)一個(gè)滑動(dòng)采樣框,通過(guò)滑動(dòng)采樣的方式提取待 識(shí)別圖像文字序列中的字符信息,并將滑動(dòng)采樣框每次采樣獲取到的信息輸入到卷積神經(jīng) 網(wǎng)絡(luò)(CNN)中,通過(guò)卷積神經(jīng)網(wǎng)絡(luò)提取對(duì)應(yīng)采樣框的特征數(shù)據(jù)輸入到遞歸神經(jīng)網(wǎng)絡(luò)(RNN) 中,通過(guò)遞歸神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)連續(xù)預(yù)測(cè)多個(gè)字符的目的。
[0006] 為了實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明提供了以下技術(shù)方案:一種基于CNN-RNN的復(fù)雜圖 像字序列識(shí)別方法通過(guò)一個(gè)滑動(dòng)采樣框?qū)Υ幚韴D像文字序列進(jìn)行滑動(dòng)采樣,并將采樣獲 得的子圖片輸入到卷積神經(jīng)網(wǎng)絡(luò)中;
[0007] 由所述卷積神經(jīng)網(wǎng)絡(luò)對(duì)輸入的子圖片提取特征,并將提取的特征數(shù)據(jù)輸入到遞歸 神經(jīng)網(wǎng)絡(luò)中;由所述遞歸神經(jīng)輸出識(shí)別結(jié)果;所述遞歸神經(jīng)網(wǎng)絡(luò)的輸入信號(hào)還包括:上一時(shí) 刻遞歸神經(jīng)網(wǎng)絡(luò)的輸出數(shù)據(jù)以及上一時(shí)刻遞歸神經(jīng)網(wǎng)絡(luò)識(shí)別結(jié)果轉(zhuǎn)化成的向量數(shù)據(jù);
[0008] 依次迭代;將每個(gè)時(shí)刻所述遞歸神經(jīng)網(wǎng)絡(luò)的識(shí)別結(jié)果記錄合并,得到待識(shí)別圖像 文字序列的完整識(shí)別結(jié)果。
[0009] 具體的,本發(fā)明方法包含以下實(shí)現(xiàn)步驟:
[0010] (1)構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)模型,所述遞歸神經(jīng)網(wǎng)絡(luò)各個(gè)時(shí)刻輸入信 號(hào)包括:所述卷積神經(jīng)網(wǎng)絡(luò)提取的樣本特征數(shù)據(jù),上一時(shí)刻遞歸神經(jīng)網(wǎng)絡(luò)的輸出數(shù)據(jù)以及 上一時(shí)刻遞歸神經(jīng)網(wǎng)絡(luò)識(shí)別結(jié)果轉(zhuǎn)化成的向量數(shù)據(jù);
[0011] (2)使用訓(xùn)練樣本集來(lái)訓(xùn)練所述卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)模型;
[0012] (3)由滑動(dòng)采樣框?qū)ΥR(shí)別圖像文字序列進(jìn)行滑動(dòng)采樣,并將采樣結(jié)果輸入訓(xùn)練 好的所述卷積神經(jīng)網(wǎng)絡(luò)中,由所述卷積神經(jīng)網(wǎng)絡(luò)提取待識(shí)別圖片的特征數(shù)據(jù),輸入到所述 遞歸神經(jīng)網(wǎng)絡(luò)中,經(jīng)過(guò)所述遞歸神經(jīng)網(wǎng)絡(luò)的依次迭代,輸出待識(shí)別圖像文字序列的完整識(shí) 別結(jié)果。
[0013] 具體的,本發(fā)明方法中所使用的遞歸神經(jīng)網(wǎng)絡(luò)向前算法的計(jì)算公式如下:
[0014]
[0015]
[0016]
[0017]
[0018] 其中I是輸入向量的維度,V是向量化的字或者詞的維度,Η是隱層的神經(jīng)元個(gè)數(shù),K 是輸出層的神經(jīng)元個(gè)數(shù),X為卷積神經(jīng)網(wǎng)絡(luò)提取出來(lái)的特征數(shù)據(jù),ν為RNN識(shí)別出的字或者詞 經(jīng)過(guò)詞典映射表轉(zhuǎn)化成的向量數(shù)據(jù),4為當(dāng)前時(shí)刻遞歸神經(jīng)網(wǎng)絡(luò)中隱含層神經(jīng)元的輸入, 私為當(dāng)前時(shí)刻遞歸神經(jīng)網(wǎng)絡(luò)隱含層神經(jīng)元的輸出,θ()為4到_^的函數(shù) ;Wih,Wlh,Wh7h,^ X;, if1, 對(duì)應(yīng)的權(quán)重參數(shù)。α?為當(dāng)前時(shí)刻遞歸神經(jīng)網(wǎng)絡(luò)輸出層神經(jīng)元的輸入;w hk 為輸出層各神經(jīng)元對(duì)應(yīng)的權(quán)重;為當(dāng)前時(shí)刻遞歸神經(jīng)網(wǎng)絡(luò)輸出層神經(jīng)元的輸出,為 一個(gè)概率值,表示當(dāng)前時(shí)刻對(duì)應(yīng)神經(jīng)元輸出值相對(duì)于輸出層所有神經(jīng)元輸出值的加和的比 例。
[0019] 從上述公式可以看出本發(fā)明方法中所使用的遞歸神經(jīng)網(wǎng)絡(luò)中隱含層神經(jīng)元的輸 入數(shù)據(jù)包括3個(gè)方面,CNN提取出來(lái)的訓(xùn)練樣本特征,上一時(shí)刻遞歸神經(jīng)網(wǎng)絡(luò)隱含層的輸出 數(shù)據(jù),以及上一時(shí)刻遞歸神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果(識(shí)別出來(lái)的"漢字前部分"、"漢字后部分"、數(shù) 字、字母、標(biāo)點(diǎn)符號(hào)或者"空白")經(jīng)過(guò)詞典映射表進(jìn)行向量化的數(shù)據(jù)。因此本發(fā)明使用的遞 歸神經(jīng)網(wǎng)絡(luò)在預(yù)測(cè)當(dāng)前時(shí)刻的"漢字前部分"、"漢字后部分"、數(shù)字、字母、標(biāo)點(diǎn)符號(hào)或者"空 白"的時(shí)候,既依賴了采樣框提取的圖像特征,也依賴了上一時(shí)刻輸出的特征(語(yǔ)言模型)。
[0020] 進(jìn)一步的,本發(fā)明方法中,信號(hào)正向傳遞時(shí)用到的參數(shù)^^們^^^都是跨時(shí)序共 享的,這樣避免了模型復(fù)雜度的線性增長(zhǎng),導(dǎo)致可能的過(guò)擬合。
[0021] 進(jìn)一步的,本發(fā)明采用上述向前算法在卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)中來(lái)逐級(jí)傳 輸運(yùn)算數(shù)據(jù),在輸出層獲取到識(shí)別(預(yù)測(cè))數(shù)據(jù),當(dāng)預(yù)測(cè)結(jié)果與訓(xùn)練樣本的標(biāo)注結(jié)果具有偏 差時(shí),通過(guò)神經(jīng)網(wǎng)絡(luò)中經(jīng)典的誤差反向傳播算法來(lái)調(diào)整神經(jīng)網(wǎng)絡(luò)中的各個(gè)權(quán)重。
[0022] 進(jìn)一步的,在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程中,通過(guò)開發(fā)集來(lái)檢驗(yàn)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練結(jié)果,及時(shí) 調(diào)整神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方向,防止過(guò)擬合情況的發(fā)生,在模型訓(xùn)練過(guò)程中,僅僅保留在開發(fā)集 上識(shí)別準(zhǔn)確率最高的訓(xùn)練模型。
[0023]作為一種優(yōu)選,所述滑動(dòng)采樣框滿足以下條件:a^LSl. 2a,0.5b <W<0.7b,其中 L為矩形滑動(dòng)采樣框的長(zhǎng),W為矩形滑動(dòng)采樣框的寬,a為待識(shí)別字符圖片的長(zhǎng),b為待識(shí)別字 符圖片的寬。
[0024]作為一種優(yōu)選,所述滑動(dòng)采樣框每次滑動(dòng)的距離Η滿足以下條件:H=0.5b。
[0025] 進(jìn)一步的,在進(jìn)行模型訓(xùn)練時(shí),需要對(duì)訓(xùn)練樣本進(jìn)行人工標(biāo)注,根據(jù)識(shí)別情況將樣 本圖像文字中的漢字、數(shù)字、字母、標(biāo)點(diǎn)符號(hào)以及"空白"分別進(jìn)行相應(yīng)的標(biāo)注,其中將漢字 字符的前部分和后部分分別標(biāo)注,比如說(shuō)將漢字中的"字"分別標(biāo)注為"字Γ和"字2","字Γ 是指"字"的前部分,"字2"是指"字"的后部分。相應(yīng)的,本發(fā)明中所述遞歸神經(jīng)網(wǎng)絡(luò)的識(shí)別 結(jié)果包含"漢字的前部分"、"漢字的后部分"、數(shù)字、字母、標(biāo)點(diǎn)符號(hào)以及"空白"。
[0026] 特別的,很多左右結(jié)構(gòu)的漢字具有相同的部首,而本發(fā)明的識(shí)別方法會(huì)將左右結(jié) 構(gòu)的漢字的左右部分分別識(shí)別出來(lái),這樣的情況下,為了簡(jiǎn)化識(shí)別結(jié)果可以將這樣左右結(jié) 構(gòu)的漢字的左右兩部分分別標(biāo)注,將相同部首標(biāo)注統(tǒng)一標(biāo)注,將對(duì)應(yīng)偏旁分別標(biāo)注,在識(shí)別 的后期再對(duì)識(shí)別結(jié)果進(jìn)行合并,輸出完整的漢字。
[0027] 進(jìn)一步的,本發(fā)明中使用詞典映射表對(duì)識(shí)別結(jié)果進(jìn)行向量化,所述詞典映射表為 一個(gè)二維矩陣,行數(shù)為詞典的大小,列數(shù)(行向量的維度)根據(jù)詞典的大小和數(shù)據(jù)的規(guī)模來(lái) 設(shè)定,詞典映射表的目的為將字符特征化,向量化。
[0028] 具體的,為了和本發(fā)明方法的每個(gè)時(shí)刻遞歸神經(jīng)網(wǎng)絡(luò)的輸出結(jié)果相對(duì)應(yīng),本發(fā)明 中所采用的詞典映射表的每個(gè)行向量分別對(duì)應(yīng):漢字的前部分、漢字的后部分、數(shù)字、字母、 標(biāo)點(diǎn)符號(hào)以及空白。
[0029]進(jìn)一步的,在對(duì)待處理圖像文字進(jìn)行滑動(dòng)采樣處理前,包含進(jìn)行歸一化處理的過(guò) 程,所述待處理圖像文字包含:訓(xùn)練樣本、開發(fā)樣本、待識(shí)別圖像文字;所述歸一化處理包 括:統(tǒng)一待處理圖像文字的大小,設(shè)置待識(shí)別圖片允許的最長(zhǎng)字?jǐn)?shù)(比如設(shè)定句子的長(zhǎng)度為 20)設(shè)置最大的對(duì)應(yīng)遞歸次數(shù)為40次。
[0030] 進(jìn)一步的,在進(jìn)行歸一化處理過(guò)程中,為了避免數(shù)據(jù)變形,尺寸的放大縮小使用等 比例的方式,與目標(biāo)尺寸缺失的區(qū)域用背景色補(bǔ)齊。
[0031] 進(jìn)一步的,在進(jìn)行所述卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練時(shí),包含對(duì)訓(xùn)練樣 本和開發(fā)樣本進(jìn)行人工標(biāo)注的過(guò)程;對(duì)訓(xùn)練樣本和開發(fā)樣本進(jìn)行人工標(biāo)注時(shí),將漢字字符 的前部分和