一種光學(xué)文字序列識別方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及圖像文字識別領(lǐng)域,特別涉及一種光學(xué)文字序列識別方法。
【背景技術(shù)】
[0002] 隨著社會的發(fā)展,產(chǎn)生了大量對古籍、文檔、票據(jù)、名片等紙質(zhì)媒體數(shù)字化的需求, 這里的數(shù)字化不僅僅限于使用掃描儀或者相機(jī)進(jìn)行"照片化",更重要的是將這些紙質(zhì)文件 轉(zhuǎn)化成以可讀、可編輯的文檔來進(jìn)行存儲,實(shí)現(xiàn)這一過程需要對掃描出的圖片進(jìn)行圖像文 字識別,而傳統(tǒng)的圖像文字識別為光學(xué)文字識別(0CR),光學(xué)文字識別在將待識別紙質(zhì)文件 掃描成電子圖像的基礎(chǔ)上進(jìn)行識別。但是考慮到掃描效果的好壞、紙質(zhì)文件本身的品質(zhì)(別 如印刷質(zhì)量、字體清晰度,字體規(guī)范度等)、內(nèi)容布局(文字的排列情況,比普通文本與表格 文本和票據(jù))的差異,OCR的實(shí)際效果不總是讓人滿意。而針對不同的紙質(zhì)文檔的識別準(zhǔn)確 率的要求有差異,比如票據(jù)的識別,對準(zhǔn)確率的要求是非常高的,因?yàn)槿绻粋€數(shù)字識別錯 誤就可能導(dǎo)致致命的后果,傳統(tǒng)的OCR識別不能滿足這樣高精度的識別要求。
[0003] 常規(guī)的OCR方法包括了圖片的切分,特征提取,單字符識別等處理過程,其中圖片 的切分包含了大量的圖像預(yù)處理過程,比如傾斜矯正,背景去噪,單字符的提取;這些處理 過程不僅繁瑣耗時,而且可能使得圖片損失很多可用信息;而且當(dāng)待識別圖片中包含多個 文字的字符串時,傳統(tǒng)的OCR方法需要將原字符串切分成若干包含單個文字的小圖片進(jìn)行 分別識別,該方法主要存在兩大問題:一、單字符圖片的切分困難,特別是混合了左右偏旁 的漢子、字母、數(shù)字、符號,或者背景噪音、字符扭曲、粘合等情況下,切分更加困難。而一旦 切分出現(xiàn)了問題,就很難得到準(zhǔn)確的識別結(jié)果。二、將字符串切分成包含單個字符的子圖片 進(jìn)行識別的分別識別方法,沒有充分利用自然語言中字、詞之間的依賴關(guān)系,雖然可以使用 額外的語言模型對識別結(jié)果進(jìn)行優(yōu)化補(bǔ)充,但是考慮到語言模型和識別器的構(gòu)建過程是相 互獨(dú)立的,這種方式的優(yōu)化補(bǔ)充是局部有限的。
[0004] 面對巨大的識別需要急需一種能夠快速高效的圖像文字識別方法。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)中所存在的上述不足,提供一種光學(xué)文字序列識 別方法。本發(fā)明應(yīng)用了卷積神經(jīng)網(wǎng)絡(luò)(CNN)和遞歸神經(jīng)網(wǎng)絡(luò)(RNN)的技術(shù),通過CNN對包含多 個字符的整個圖片進(jìn)行特征提取,然后將同樣的特征送入RNN進(jìn)行遞歸重復(fù)使用,以實(shí)現(xiàn)連 續(xù)預(yù)測多個字符的目的。本發(fā)明方法實(shí)現(xiàn)的光學(xué)文字序列識別,系統(tǒng)的克服了 OCR識別前先 要進(jìn)行圖片切分的弊端,極大的提高了圖像文字的識別效率,又由于在模型訓(xùn)練和應(yīng)用的 過程中RNN遞歸使用了上一輪的識別結(jié)果和輸出數(shù)據(jù),這樣將字、詞之間依賴關(guān)系的語言模 型也一并學(xué)習(xí)得到了,在提升字、詞序列的識別準(zhǔn)確率的同時進(jìn)一步提高了圖像文字的識 別效率。
[0006] 為了實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明提供了以下技術(shù)方案:
[0007] -種光學(xué)文字序列識別方法,包含以下實(shí)現(xiàn)步驟:
[0008] (1)構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)模型,其中所述遞歸神經(jīng)網(wǎng)絡(luò)各個時刻輸 入信號包括:所述卷積神經(jīng)網(wǎng)絡(luò)提取的樣本特征數(shù)據(jù),上一時刻遞歸神經(jīng)網(wǎng)絡(luò)的輸出數(shù)據(jù) 以及上一時刻遞歸神經(jīng)網(wǎng)絡(luò)識別出的字詞轉(zhuǎn)化成的向量數(shù)據(jù);
[0009] (2)使用訓(xùn)練樣本集來訓(xùn)練所述卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)模型;
[0010] (3)將待識別圖像文字序列輸入訓(xùn)練好的所述卷積神經(jīng)網(wǎng)絡(luò)及遞歸神經(jīng)網(wǎng)絡(luò)中, 由所述卷積神經(jīng)網(wǎng)絡(luò)提取待識別圖片的特征數(shù)據(jù),輸入到所述遞歸神經(jīng)網(wǎng)絡(luò)中,經(jīng)過所述 遞歸神經(jīng)網(wǎng)絡(luò)的依次迭代,輸出待識別圖像文字序列的完整識別結(jié)果。
[0011] 具體的,本發(fā)明方法中所使用的遞歸神經(jīng)網(wǎng)絡(luò)向前算法的計算公式如下:
[0012]
[0013]
[0014]
[0015]
[0016] 其中I是輸入向量的維度,V是向量化的字或者詞的維度,Η是隱層的神經(jīng)元個數(shù),K 是輸出層的神經(jīng)元個數(shù),X為卷積神經(jīng)網(wǎng)絡(luò)提取出來的特征數(shù)據(jù),ν為RNN識別出的字或者詞 經(jīng)過詞典映射表轉(zhuǎn)化成的向量數(shù)據(jù),《丨.為當(dāng)前時刻遞歸神經(jīng)網(wǎng)絡(luò)中隱含層神經(jīng)元的輸入, 迖為當(dāng)前時刻遞歸神經(jīng)網(wǎng)絡(luò)隱含層神經(jīng)元的輸出;《&,《111,《1^,為4,<\|^對應(yīng)的權(quán)重 參數(shù)。為當(dāng)前時刻遞歸神經(jīng)網(wǎng)絡(luò)輸出層神經(jīng)元的輸入;Whk為輸出層各神經(jīng)元對應(yīng)的權(quán) 重;Λ為當(dāng)前時刻遞歸神經(jīng)網(wǎng)絡(luò)輸出層神經(jīng)元的輸出,父為一個概率值,表示當(dāng)前時刻對應(yīng) 神經(jīng)元輸出值相對于輸出層所有神經(jīng)元輸出值的加和的比例。
[0017] 從上述公式可以看出本發(fā)明方法中所使用的遞歸神經(jīng)網(wǎng)絡(luò)中隱含層神經(jīng)元的輸 入數(shù)據(jù)包括3個方面,CNN提取出來的訓(xùn)練樣本特征,上一時刻遞歸神經(jīng)網(wǎng)絡(luò)隱含層的輸出 數(shù)據(jù),以及上一時刻遞歸神經(jīng)網(wǎng)絡(luò)預(yù)測結(jié)果(識別出來的字詞)經(jīng)過詞典映射表進(jìn)行向量化 的數(shù)據(jù)。因此本發(fā)明使用的遞歸神經(jīng)網(wǎng)絡(luò)在預(yù)測當(dāng)前時刻的字(詞)的時候,既依賴了圖像 的特征,也依賴了上一時刻輸出的特征(語言模型)。
[0018] 進(jìn)一步的,本發(fā)明方法中,信號正向傳遞時用到的參數(shù)^認(rèn)^^^^^都是跨時序共 享的,這樣避免了模型復(fù)雜度的線性增長,導(dǎo)致可能的過擬合。
[0019] 進(jìn)一步的,本發(fā)明采用上述向前算法在卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)中來逐級傳 輸運(yùn)算數(shù)據(jù),在輸出層獲取到識別(預(yù)測)數(shù)據(jù),當(dāng)預(yù)測結(jié)果與訓(xùn)練樣本的標(biāo)注結(jié)果具有偏 差時,通過神經(jīng)網(wǎng)絡(luò)中經(jīng)典的誤差反向傳播算法來調(diào)整神經(jīng)網(wǎng)絡(luò)中的各個權(quán)重。
[0020] 進(jìn)一步的,在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,通過開發(fā)集來檢驗(yàn)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練結(jié)果,及時 調(diào)整神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方向,防止過擬合情況的發(fā)生,在模型訓(xùn)練過程中,僅僅保留在開發(fā)集 上識別準(zhǔn)確率最高的訓(xùn)練模型。
[0021] 進(jìn)一步的,本光學(xué)文字序列識別方法的神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程包含以下實(shí)現(xiàn)步驟:
[0022] (2-1)將人工標(biāo)注的訓(xùn)練樣本輸入到卷積神經(jīng)網(wǎng)絡(luò)中;
[0023] (2-2)通過所述卷積網(wǎng)絡(luò)對輸入訓(xùn)練樣本進(jìn)行特征提??;
[0024] (2-3)將所述卷積神經(jīng)網(wǎng)絡(luò)提取出來的特征數(shù)據(jù)作為第一數(shù)據(jù)輸入第一時刻遞歸 神經(jīng)網(wǎng)絡(luò)中;
[0025] (2-4)經(jīng)過第一時刻遞歸神經(jīng)網(wǎng)絡(luò)的計算輸出第一預(yù)測數(shù)據(jù);根據(jù)第一預(yù)測數(shù)據(jù) 得到該時刻遞歸神經(jīng)網(wǎng)絡(luò)的字詞識別結(jié)果,將該結(jié)果定義為:第一識別結(jié)果;
[0026] (2-5)并將第一識別結(jié)果轉(zhuǎn)化成對應(yīng)的向量數(shù)據(jù);
[0027] (2-6)將第一數(shù)據(jù),第一預(yù)測數(shù)據(jù)以及向量化的第一識別結(jié)果作為第二時刻遞歸 神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù),經(jīng)過遞歸神經(jīng)網(wǎng)絡(luò)的計算輸出第二預(yù)測數(shù)據(jù),并得到由第二預(yù)測數(shù) 據(jù)對應(yīng)的第二識別結(jié)果;
[0028] (2-7)并將第二識別結(jié)果轉(zhuǎn)化為對應(yīng)的向量數(shù)據(jù);
[0029] (2-8)將第一數(shù)據(jù),第二預(yù)測數(shù)據(jù)以及向量化的第二識別結(jié)果作為第三時刻遞歸 神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù);
[0030] 依次遞歸,直到達(dá)到設(shè)定的遞歸次數(shù)或者輸出空值時,終止識別;將每個時刻RNN 預(yù)測出得字(或者詞)依次記錄下來就最終獲得完整的字符串內(nèi)容。
[0031] 具體的,所述步驟(2-5)和(2-7)中,通過詞典映射表進(jìn)行向量化,所述詞典映射表 為一個二維矩陣,行數(shù)為詞典的大小,列數(shù)(行向量的維度)根據(jù)詞典的大小和數(shù)據(jù)的規(guī)模 來設(shè)定,詞典映射表的目的為將字(或詞)特征化,向量化,簡單說來,詞典映射表就是一個 二維矩陣,其中每一個行向量對應(yīng)一個字或者一個詞,而這種行向量與字詞的對應(yīng)關(guān)系是 在構(gòu)建這個詞典映射表時設(shè)置的。
[0032] 進(jìn)一步的,在構(gòu)建詞典映射表的過程中,如果識別的單位是詞,則可以先對自然語 言進(jìn)行分詞處理,比如將"這個東西真好"變成"這個東西真好"。
[0033]進(jìn)一步的,在進(jìn)行模型訓(xùn)練時,包含將訓(xùn)練樣本圖標(biāo)進(jìn)行歸一化處理和人工標(biāo)注