華勝天杰深度學(xué)習(xí)OCR識別技術(shù)簡介

傳統(tǒng)的OCR(Optical Character Recognition,光學(xué)字符識別)識別技術(shù),采用多級策略,對輸入圖像進(jìn)行版面分析,然后對文本區(qū)域進(jìn)行文本行分割,將分割出的文本行再送切分引擎進(jìn)行字符切分,最終送單字符識別引擎進(jìn)行識別。這種方案涉及的模塊較多,而且每個(gè)模塊都可能成為識別率的瓶頸。相對來說傳統(tǒng)技術(shù)的門檻較高,需要有長時(shí)間積累才能研發(fā)出較優(yōu)的識別系統(tǒng)。


隨著深度學(xué)習(xí)技術(shù)的發(fā)展,出現(xiàn)了基于CNN(Convolutional Neural Networks,卷積神經(jīng)網(wǎng)絡(luò))的文本行定位和端到端的整行識別算法,且超過了傳統(tǒng)方法識別率。這類技術(shù)對計(jì)算機(jī)硬件要求較高,需要有GPU(Graphics Processing Unit,)顯卡加速才能完成模型的訓(xùn)練和預(yù)測。一般采用云端布署方式,云端配置高端服務(wù)器和GPU顯卡進(jìn)行加速。但這種方式不太適合普通PC端的識別,PC端的配置較低,另外也不能為每臺PC均配置GPU。在沒有GPU機(jī)器上完成用CNN定位和識別,一張A4圖像文件,識別速度大約在10秒左右,速度無法容忍。


為此我們在設(shè)計(jì)OCR引擎時(shí),兼顧速度和性能,采用一種折衷技術(shù)方案。版面分析,仍然采用傳統(tǒng)的自底向上的分析策略,這種算法速度快。掃描儀生成圖像質(zhì)量一般較好,可以達(dá)到較高的精度。單行識別技術(shù),采用了CNN+LSTM+CTC的技術(shù)方案。這種技術(shù)方案,不需要進(jìn)行字符切分和單字符識別,而是對一行文本圖像進(jìn)行整體識別,且速度和精確都非常好。此折衷技術(shù)方案,在識別A4圖像文件,普通PC速度可控制在1秒左右,即保證了速度,精度也有很大提高。


1.版面分析


在文本圖像OCR技術(shù)領(lǐng)域,版面分析是非常重要的一個(gè)環(huán)節(jié)。將文本圖像上內(nèi)容進(jìn)行定位和分類,區(qū)分出文本區(qū)域、表格區(qū)域、圖片區(qū)域等。后續(xù)針對不同區(qū)域類型進(jìn)行處理,文本區(qū)進(jìn)行行分析和識別,表格區(qū)域進(jìn)行表格分析識別,圖像區(qū)域不做處理。


我們采用了一種基于多層次基元的版面分析模型,并根據(jù)不同層次的可信度指導(dǎo)自底向上的合并算法。這種方法可以有效的處理復(fù)雜的版面,并減少對特殊規(guī)則的依賴。


商場超市節(jié)能方案

圖1 版面分析流程


算法首先對圖像進(jìn)行灰度化、二值化,然后進(jìn)行連通區(qū)域標(biāo)定(連通域?qū)哟危?,面積較大的連通區(qū)域進(jìn)行表格、圖片類型判定。剩余連通部件,可能為筆劃、部首,也可能是文字。通過分析最近鄰居的位置和大小信息計(jì)算連接強(qiáng)度,根據(jù)連接強(qiáng)度進(jìn)行合并,將相近的連通區(qū)域進(jìn)行合并成文本行(行層次)。進(jìn)一步計(jì)算行間的連接強(qiáng)度,合并相鄰文本行,生成段落(區(qū)域?qū)哟危W詈筮M(jìn)行區(qū)域?qū)傩耘袛嗪驼{(diào)整區(qū)域順序。這種算法的優(yōu)點(diǎn)是漏檢率低,大部分文本區(qū)域均能成功檢出,特別是在層級連通強(qiáng)度指導(dǎo)下合并,能避免不必要的處理。


2.識別引擎


傳統(tǒng)識別算法對中英數(shù)字混排的識別率較差,因?yàn)榛炫抛址坏葘?,無法進(jìn)行準(zhǔn)確字符切分造成識別率低。CNN+LSTM+CTC技術(shù)方案是一種端到端的識別技術(shù),可以達(dá)到較高識別率。這種方案不需要人工設(shè)計(jì)切分算法,也不需要人工設(shè)計(jì)單字符識別引擎,將整行文本圖像和標(biāo)注真值送網(wǎng)絡(luò)模型迭代即可完成訓(xùn)練。是一種端到端的識別方案,大大減少了識別引擎研發(fā)的復(fù)雜度并提高了精度。



商場超市節(jié)能方案

圖2 CNN+LSTM+CTC架構(gòu)


將單行文本圖像,高度規(guī)一化到32像素,然后對圖像進(jìn)行CNN特征提取,經(jīng)過訓(xùn)練后的CNN網(wǎng)絡(luò)能很好的提取文本信息的特征,CNN特征后接雙層雙向LSTM,可以有效的學(xué)習(xí)到文本中的上下文信息,特別對一些相似字的區(qū)分,可以根據(jù)上下文進(jìn)行推測。最后加一層CTC解碼層,可以將預(yù)測的結(jié)果進(jìn)行融合,輸出最終的識別文本串。對于中文字符的識別,LSTM不是必須的,因?yàn)橹形姆綁K字的特征很明顯,直接采用CNN+CTC的方式,也能達(dá)到非常好的識別率。


在模型訓(xùn)練階段,采用人工合成樣本和實(shí)際樣本相結(jié)合的方式完成訓(xùn)練樣本和測試樣本集的生成。網(wǎng)絡(luò)結(jié)構(gòu)在保證識別率的情況下,盡量減少參數(shù)數(shù)量以縮減模型的體積。字符集支持中文、英文、數(shù)字、常見標(biāo)點(diǎn)和符號共6300類字符的識別。訓(xùn)練過程采用GPU加速度,預(yù)測識別階段,可采用GPU也可采用CPU模式。在普通PC環(huán)境下,采用CPU模式。