OCR技術(shù)簡介
光學(xué)字符識別(Optical Character Recognition, OCR)是指對文本資料的圖像文件進(jìn)行分析識別處理,獲取文字及版面信息的過程。亦即將圖像中的文字進(jìn)行識別,并以文本的形式返回。
OCR的應(yīng)用場景
卡片證件識別類:身份證識別、銀行卡識別、駕駛證識別、行駛證識別、港澳通行證識別、護(hù)照識別、戶口簿識別、營業(yè)執(zhí)照識別;
票據(jù)類識別:增值稅發(fā)票識別、支票識別、承兌匯票識別、銀行票據(jù)識別、營業(yè)執(zhí)照識別、物流快遞識別;
文字信息結(jié)構(gòu)化視頻類識別:主要有字幕識別和文字跟蹤;
其他識別:二維碼識別、一維碼識別、車牌識別、數(shù)學(xué)公式識別、物理化學(xué)符號識別、音樂符號識別、工程圖識別、流程圖識別、古跡文獻(xiàn)識別、手寫輸入識別;
除了以上列舉的之外,還有自然場景下的文字識別、菜單識別、橫幅檢測識別、圖章檢測識別、廣告類圖文識別等圍繞審核相關(guān)的業(yè)務(wù)應(yīng)用。
現(xiàn)存OCR應(yīng)用有以下特點(diǎn):1)提供通用的識別服務(wù);2)部分能提供結(jié)構(gòu)化文本的特定場景識別服務(wù)如身份證識別等,能保留識別文字結(jié)構(gòu)。但這些應(yīng)用還存在一些明顯缺點(diǎn):1)通用識別服務(wù)對圖像要求高,通常針對掃描文檔,要求輸入圖像背景干凈、字體簡單且文字排布整齊,對自然場景圖像中的文字識別效果差;2)大多缺少常見特定場景文字識別如營業(yè)執(zhí)照、銀行卡、駕駛證
等卡證類圖像的識別,只注重識別文字內(nèi)容本身,沒有特定場景的版面分析;3)特定場景文字識別,識別場景較為單一,如漢王OCR的特定場景只提供身份證識別等,無常見場景識別的功能整合;4)無法進(jìn)行定制化的功能擴(kuò)展;5)數(shù)據(jù)安全由廠商保證
OCR研究發(fā)展概述
OCR的最早構(gòu)想被認(rèn)為是由奧地利工程師Gustav Tauschek(1899-1945)在1920年代后期最先提出的,他于1929年在德國獲得了OCR技術(shù)專利。五十年代,美國發(fā)明家David H.Shepard首次發(fā)明并落地了商業(yè)用途的OCR設(shè)備,為了將與日倶增的報(bào)刊雜志、單據(jù)等紙質(zhì)文檔高速地錄入計(jì)算機(jī),歐美國家研究學(xué)者開啟了英文字符識別技術(shù)的研究。70年代起,美國各研究機(jī)構(gòu)和企業(yè)開始攻堅(jiān)手寫字體識別,經(jīng)過50年的發(fā)展,英文OCR技術(shù)已經(jīng)非常高超了,實(shí)現(xiàn)了海量信息處理的“電子化”。漢字識別由于種類繁多,結(jié)構(gòu)復(fù)雜,字符之間的相似性以及字體或書寫樣式的變化等現(xiàn)實(shí)難點(diǎn)使得其發(fā)展是曲折的,最早1966年開始研究,自IBN的學(xué)者在其論文中使用模版匹配的方式實(shí)現(xiàn)了一千個漢字印刷字符的識別,70年代日本企業(yè)和學(xué)者也開始了漢字印刷識別的研究,到上個世紀(jì)九十年代時,日本企業(yè)以東芝、松下、富士得大企業(yè)相繼研宄出工業(yè)使用的漢字OCR系統(tǒng),同時期也著手開始對手寫字體識別進(jìn)行研究。我國的字符識別研究從70年代末開始,79年到85年為起步探索階段,從89年開始,清華大學(xué)電子工程系、中科院計(jì)算中心等高??蒲袡C(jī)構(gòu)響應(yīng)國家重點(diǎn)科技攻關(guān)計(jì)劃、國家自然科學(xué)基金的號召,各自開發(fā)出了可工業(yè)應(yīng)用的漢字識別系統(tǒng)和設(shè)備。我國目前漢字識別的精度達(dá)到頂尖水平了,落地應(yīng)用也非常多。
卡證識別的發(fā)展
完善卡證識別的技術(shù)研究還并不很完善,目前這項(xiàng)技術(shù)實(shí)現(xiàn)主要停留在身份證、銀行卡和特定類型的卡類,而且該技術(shù)對特定類型的卡類還有諸多限制,因?yàn)橛行┳C件的內(nèi)容復(fù)雜性(如營業(yè)執(zhí)照,證書,這種類型的文件擁有差別較大的布局以及數(shù)量大小不一的圖片。),目前還沒有高度精準(zhǔn)商業(yè)化產(chǎn)品進(jìn)行識別和數(shù)據(jù)化,技術(shù)還沒有很完善。主要技術(shù)瓶頸如下:
1)背景圖片和認(rèn)證標(biāo)志的千差萬別導(dǎo)致識別障礙變大,大部分證件上都帶有水印以及紋章,在不同環(huán)境下,不如不同顏色的光源下會導(dǎo)致識別出現(xiàn)較大誤差,有用信息與其他信息雜糅,識別不準(zhǔn)確。2)不同的布局會使識別變得困難。在一張畢業(yè)證件上往往會有不同的字體,花紋,紋章,甚至不同語言,此時的識別則會使對一種語言有效的OCR出現(xiàn)問題,如語言識別錯誤,紋章識別
錯誤等。3)證書多是彩色,其顏色也會帶來不同的后果。不僅是上文提到的光源,采集設(shè)備,角度等要素在彩色文本識別的要求下,影響力就變得更大了。
市面上主流卡證類識別系統(tǒng)

當(dāng)前OCR技術(shù)面臨的問題

傳統(tǒng)的OCR技術(shù)基于模版匹配的特征提取框架步驟繁多且復(fù)雜,需要對圖像進(jìn)行預(yù)處理、字符分割、特征提取、分類器結(jié)構(gòu)設(shè)計(jì)、后處理等一系列步驟,在這些步驟中出現(xiàn)偏差比如字切分錯誤,都會導(dǎo)致后續(xù)整個流程上的錯誤累積從而大大影響準(zhǔn)確率;再者針對復(fù)雜場景如有干擾背景的文字
識別實(shí)際效果不佳,常出現(xiàn)的問題就是將干擾背景的所有干擾信息全部誤認(rèn)為字符和文本信息,無法解決圖像光照不均、扭曲等背景問題。
傳統(tǒng)OCR技術(shù)流程框架


基于深度學(xué)習(xí)的OCR技術(shù)
目前存在兩種方法:1.文本檢測結(jié)合文本識別。2.在一個模型中完成文本檢測和文本識別工作的端到端方法。

典型OCR技術(shù)路線
圖像預(yù)處理
圖像預(yù)處理,是將每一個文字圖像分檢出來交給識別模塊識別,這一過程稱為圖像預(yù)處理。在圖像分析中,對輸入圖像進(jìn)行特征抽取、分割和匹配前所進(jìn)行的處理。
圖像預(yù)處理的主要目的是消除圖像中無關(guān)的信息,恢復(fù)有用的真實(shí)信息,增強(qiáng)有關(guān)信息的可檢測性和最大限度地簡化數(shù)據(jù),從而改進(jìn)特征抽取、圖像分割、匹配和識別的可靠性。
文字檢測
文本檢測即檢測文本的所在位置和范圍及其布局。通常也包括版面分析和文字行檢測等。文字檢測主要解決的問題是哪里有文字,文字的范圍有多大。文字檢測理念上和目標(biāo)檢測類似,但因?yàn)槲淖终宫F(xiàn)的復(fù)雜多樣性,存在長寬不定、形狀扭曲旋轉(zhuǎn)等特點(diǎn),所以現(xiàn)成的目標(biāo)檢測方法并不能直接用于文字檢測。
目前主流文本檢測方法
CTPN(基于Faster-RCNN):基于Faster-RCNN的網(wǎng)絡(luò)架構(gòu)結(jié)合了卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò),它的骨干網(wǎng)絡(luò)采用的VGG-Net,所以訓(xùn)練時長較長有一定提升空間,缺點(diǎn)是只能檢測水平文本;
TextBoxes、TextBoxes++網(wǎng)(基于SSD):將目標(biāo)檢測SSD網(wǎng)絡(luò)的思想用于文本檢測上,針對目標(biāo)分割設(shè)計(jì)的網(wǎng)絡(luò)對英文的檢測效果更好
SegLink(CTPN+SSD):在CTPN的基礎(chǔ)上引入了Segment即帶方向的預(yù)選框,解決了CTPN只能檢測水平文本的問題,“Link”關(guān)聯(lián)多個Segment構(gòu)成最后的預(yù)選框,缺點(diǎn)是不能識別間隔大的文本
DMPNet:與卷積神經(jīng)網(wǎng)絡(luò)矩形的滑動窗口不同,DMPNet采用各種角度和寬高不同的四邊形進(jìn)行重疊滑動來定位出文字區(qū)域邊界
YOLO:利用單個網(wǎng)絡(luò)做訓(xùn)練和檢測,對每個bounding box(包含檢測對象的區(qū)塊)進(jìn)行包含檢測對象的概率計(jì)算,也可以用在物體檢測上,缺點(diǎn)是對非常規(guī)態(tài)物體效果較差,而扭曲文字便是這種類型。
Pixel-Link:該方法采用先分割再連接直接生成侯選框,有速度快且對感受野要求低的特點(diǎn),缺點(diǎn)同SegLink—樣,基于連接關(guān)聯(lián)所以對長文本效果不好
文字區(qū)域檢測的方法
現(xiàn)有的文字區(qū)域檢測的方法主要有基于連通域的方法,基于邊緣特征的方法,基于筆畫特征的方法,基于紋理的方法,基于機(jī)器學(xué)習(xí)的方法以及神經(jīng)網(wǎng)絡(luò)的方法。
(一)基于連通域的方法
基于連通域的檢測方法是通過設(shè)計(jì)一個特征檢測器,利用顏色聚類和最大穩(wěn)定極值等方法,提取出圖像中的連通區(qū)域,再利用分類器來區(qū)分出文字的連通區(qū)域。此類方法的核心在于文字內(nèi)部具有色彩或灰度值的一致性,通過這些特點(diǎn)來尋找連通區(qū)域。基于連通域的方法對文字檢測有很大的局限性,對文字顏色單一且文字背景簡單的圖像,該算法的文字檢測準(zhǔn)確度較高。但是,對于文字顏色多樣的圖像,或者文字顏色與背景對比度低的圖像,該類算法的檢測準(zhǔn)確度將大幅下降。另外,在壓縮視頻及自然場景圖像中,很難滿足該類算法基于圖像文字顏色一致、亮度相似的條件。
(二)基于邊緣特征
邊緣是圖像最基本的特征之一,是人們識別圖像中物體的重要依據(jù),是信息最集中的地方。文字具有非常豐富的邊緣信息,因此在圖像文字檢測的研究中,最早使用基于邊緣特征的方法?;谶吘壧卣鞯臋z測方法首先利用邊緣檢測算子來獲取邊緣檢測圖像,然后分析邊緣密度和強(qiáng)度,利用幾何約束規(guī)則來判斷邊緣點(diǎn)是否屬于文字區(qū)域,最后提取這些文字區(qū)域。
基于邊緣特征的算法,優(yōu)點(diǎn)是不受文字顏色的影響,時間復(fù)雜度低,計(jì)算量小,能夠滿足實(shí)時性的需求。但對于背景較復(fù)雜的圖像,由于背景中存在其他邊緣豐富的物體,容易將這些物體誤認(rèn)為是文字區(qū)域,所以造成誤判。
(三)基于筆畫特征
文字都是由筆畫組成的,所以研究者提出了基于筆畫特征來檢測圖像中的文字。
文本識別
文本識別是在文本檢測的基礎(chǔ)上,對文本內(nèi)容進(jìn)行識別,將圖像中的文本信息轉(zhuǎn)化為文本信息。文字識別主要解決的問題是每個文字是什么。識別出的文本通常需要再次核對以保證其正確性。文本校正也被認(rèn)為屬于這一環(huán)節(jié)。而其中當(dāng)識別的內(nèi)容是由詞庫中的詞匯組成時,我們稱作有詞典識別(Lexicon-based),反之稱作無詞典識別(Lexicon-free)
對于文本識別目前主要有4種架構(gòu),大致可分為2種方法,基于CTC-based方法和Attention-based方法。四種架構(gòu)方法具體如下。
CNN+softmax:這種網(wǎng)絡(luò)架構(gòu)雖然可以處理不定長的序列,但結(jié)構(gòu)簡單只適合簡單的文字識別如字符和字母識別,而且存在序列長度過長,效果差的缺點(diǎn)
CNN+RNN+CTC:該架構(gòu)是以CRNN為典型代表的端到端識別架構(gòu),CRNN是可以直接從不定長序列標(biāo)簽中學(xué)習(xí)并且支持無字典的學(xué)習(xí)
CNN+RNN+attention:該架構(gòu)引入注意力使得word-level和sentence-level的attention得以保留在上下文中。
CNN+stacked CNN+CTC:景文字識別通常包含檢測和識別兩個任務(wù)并且分別對應(yīng)使用不同的算法,這樣就會増加計(jì)算消耗和計(jì)算時間,有研宄提出能夠同時完成檢測和識別任務(wù)的端到端模型,通常這種模型結(jié)構(gòu)使得兩個子任務(wù)共享卷積層所學(xué)習(xí)到的特征進(jìn)而節(jié)省算力和時間。
端到端方法
場景文字識別通常包含檢測和識別兩個任務(wù)并且分別對應(yīng)使用不同的算法,這樣就會増加計(jì)算消耗和計(jì)算時間,有研究提出能夠同時完成檢測和識別任務(wù)的端到端模型,通常這種模型結(jié)構(gòu)使得兩個子任務(wù)共享卷積層所學(xué)習(xí)到的特征進(jìn)而節(jié)省算力和時間。
主流端到端文本識別方法
FOTS(Fast Oriented Text Spotting)提出新穎的ROIRotate操作,用于提取定向的文本感興趣區(qū)域,使得檢測與識別任務(wù)可以統(tǒng)一到一個端到端的系統(tǒng)當(dāng)中。通過共享卷積特征,文字識別步驟的計(jì)算開銷可以忽略不計(jì),這簡潔高效的工作流使得FOTS可以以實(shí)時的速度運(yùn)行。
STN-OCR模型在檢測部分加入了一個空間變換網(wǎng)絡(luò)(STN)用來對輸入圖像和預(yù)選框進(jìn)行仿射(Affine)和空間變換,達(dá)到對樣本的旋轉(zhuǎn)不變性和平移不變性,使得識別部分對特征圖的特征魯棒識別。
公開數(shù)據(jù)集
Chinese Text in the Wild(CTW):該數(shù)據(jù)集包含由3850個字符組成的大約100萬個漢字實(shí)例,由專家在共計(jì)約3萬多幅街景圖像中進(jìn)行了標(biāo)注。數(shù)據(jù)集中包含平面文字、凸起文字、照明不佳的文字、遠(yuǎn)處文字合部分遮擋的文字等。
Reading Chinese Text in the Wild (RCTW-l7):該數(shù)據(jù)集包含約12,000張圖像。大部分圖像是通過手機(jī)攝像頭野外采集的,少部分是是截圖。這些圖像包含街景、海報(bào)、菜單、室內(nèi)場景以及手機(jī)應(yīng)用截屏。
ICPR MWI2018 挑戰(zhàn)賽數(shù)據(jù)集:該數(shù)據(jù)集包含約20,000張圖像。數(shù)據(jù)集全部由網(wǎng)絡(luò)圖像構(gòu)成。這些圖像包含合成圖像、產(chǎn)品描述、產(chǎn)品廣告。
Total-Text:該數(shù)據(jù)集包含約1,500張圖像。數(shù)據(jù)集主要提供三種傾斜或彎曲文本圖像。這些圖像主要來源為街景、廣告牌和室內(nèi)圖像
COCO-Text:該數(shù)據(jù)集包括約60,000張圖像,17萬個文本實(shí)例,主要由廣告牌和交通指示圖像構(gòu)成。額外對清晰度和是否印刷體進(jìn)行了標(biāo)注
Synthetic ?Data for ?Text ?Localisation:該數(shù)據(jù)集包括約850,000張圖像,700萬個文本實(shí)例,數(shù)據(jù)集全部由合成圖像構(gòu)成。這些圖像包含各種自然場景,文本由合成算法添加
Caffe-ocr中文合成數(shù)據(jù):數(shù)據(jù)集共360萬張圖片,涵蓋了漢字、標(biāo)點(diǎn)、英文、數(shù)字共5990個字符。圖像全部為合成圖像。數(shù)據(jù)來源為中文語料庫
場景文字?jǐn)?shù)據(jù)集生成
生成數(shù)據(jù)集的步驟
1.基礎(chǔ)數(shù)據(jù)確認(rèn):確定最終生成字符個數(shù),從而生成字符與標(biāo)簽的字典
2.確定和收集需要用到的字體文件
3.生成字體文件,存儲在規(guī)定的目錄下
4.適當(dāng)?shù)臄?shù)據(jù)增強(qiáng)如模擬真實(shí)場景中的文字背景等,增強(qiáng)模型的泛化能力,常見的數(shù)據(jù)增強(qiáng)方式如下
文字扭曲
背景噪聲(椒鹽效果)
文字位置(設(shè)置文字的中心點(diǎn))
筆畫粘連(使用膨脹效果來模擬)
筆畫斷裂(使用腐蝕效果來模擬)
文字傾斜(文字旋轉(zhuǎn))