一.背景介紹
OCR技術(shù)從上世紀(jì)60年代就開始得到重視和研究誊抛,開源OCR框架Tesseract[14]始于1985年,至今仍在不斷迭代和優(yōu)化整陌。從早期的通用掃描文檔識(shí)別(谷歌數(shù)字圖書館拗窃,ABBYY,漢王泌辫,文通等)随夸,到銀行卡/身份證/金融票據(jù)等證件識(shí)別(百度,微信震放,支付寶)以及車牌識(shí)別逃魄,OCR在業(yè)界也積累了非常多的寶貴經(jīng)驗(yàn)。針對(duì)不同的應(yīng)用場(chǎng)景澜搅,OCR所用到的方法也會(huì)有所不同。
我們這里將主要分享在通用圖片下的文字檢測(cè)與識(shí)別邪锌。
我們把通用圖片分為兩類勉躺,字跡清晰背景單一的簡單圖文和字跡模糊背景多變的復(fù)雜圖文。
上圖分別對(duì)應(yīng)簡單圖文和復(fù)雜圖文
復(fù)雜圖文的文字檢測(cè)和識(shí)別壓力很大拌蜘,非常具有挑戰(zhàn)性
這是一般的OCR框架流程圖膝藕,基于一般的ceiling analysis并巍,文字檢測(cè)和文字識(shí)別是最具挑戰(zhàn)也是能夠最大程度提升整體框架表現(xiàn)的兩個(gè)主要模塊。
傳統(tǒng)方法大都需要依靠手動(dòng)提取特征來訓(xùn)練檢測(cè)模型和識(shí)別模型蜕企,由于底層特征與高層語義之間特有的語義鴻溝,當(dāng)應(yīng)對(duì)多類字體變化以及復(fù)雜背景干擾的時(shí)候冠句,單一的特征選擇或分類器的調(diào)優(yōu)就顯得相形見絀了轻掩。
卷積神經(jīng)網(wǎng)絡(luò)LeNet-5第一次在mnist手寫數(shù)字識(shí)別上得到成功的應(yīng)用,而近些年隨著計(jì)算硬件成本的降低以及幾項(xiàng)深度學(xué)習(xí)關(guān)鍵技術(shù)的突破懦底,AlexNet唇牧、VGG、GoogleNet、ResNet等在imageNet丐重、LFW上取得了令人傲嬌的表現(xiàn)腔召,開啟了深度學(xué)習(xí)在大規(guī)模數(shù)據(jù)訓(xùn)練和學(xué)習(xí)的浪潮
針對(duì)OCR傳統(tǒng)手法在應(yīng)對(duì)復(fù)雜圖文場(chǎng)景的不足,我們對(duì)文字檢測(cè)和文字識(shí)別這兩個(gè)關(guān)鍵步驟結(jié)合深度學(xué)習(xí)進(jìn)行研究與開發(fā)扮惦。
二臀蛛、文字檢測(cè)
上圖是2000張人臉、行人崖蜜、文字的average image
從上圖可以看到浊仆,不同于人臉和行人,文字的均值圖更像是一種噪聲纳猪,其組成部位即無固定位置氧卧,數(shù)量也不固定。這表明文字檢測(cè)并不能簡單的借用人臉/行人檢測(cè)等常用目標(biāo)檢測(cè)框架氏堤,一步到位的由圖像得到文字區(qū)域標(biāo)定的端到端方法很有壓力沙绝。
通常,一般的文字檢測(cè)方法可以分為兩類:
a. 基于滑動(dòng)窗口全圖掃描的自上而下的方式鼠锈。對(duì)每個(gè)滑動(dòng)窗口基于HOG闪檬、Gabor、LBP购笆、Haar等紋理特征訓(xùn)練Adaboost粗悯,SVM,MLP等二類分類器得到文字區(qū)域的概率響應(yīng)值同欠,然后再利用camshift或連通域分析結(jié)合形態(tài)學(xué)等操作定位最終的文字框样傍。該方法對(duì)分類器的要求很高,要求能應(yīng)對(duì)各種字體和背景的形式铺遂,即便是基于CNN來訓(xùn)練檢測(cè)模型衫哥,大量的掃描滑動(dòng)窗口對(duì)性能耗損十分嚴(yán)重,不適合對(duì)性能要求較高的大數(shù)據(jù)應(yīng)用場(chǎng)景襟锐。
b. 基于底層規(guī)則先分割得到小區(qū)域再組合成文字區(qū)域的自底而上的方式撤逢。通常這類方法利用文字顏色、亮度粮坞、邊緣信息進(jìn)行聚類的方式來快速分離文字區(qū)域與非文字區(qū)域蚊荣,而以MSER和SWT為代表的連通域分析方法在自然場(chǎng)景文字檢測(cè)中表現(xiàn)優(yōu)異,在獲得高魯棒性的同時(shí)性能也比滑動(dòng)窗口的形式提高不少莫杈。
我們首先基于MSER(最大穩(wěn)定極值區(qū)域)的方法來設(shè)計(jì)我們的檢測(cè)方案互例,如下圖。
由于MSER基于分水嶺迭代的方式來尋找候選框筝闹,能有效提取候選文字區(qū)域的同時(shí)也容易產(chǎn)生非常多的非文字區(qū)域敲霍。MSER產(chǎn)生的干擾區(qū)域往往跟文字享有類似的紋理特征(如窗戶俊马,草地,頭發(fā)等)肩杈,我們需要強(qiáng)有力的分類器來濾除干擾柴我。SVM/adaboost等傳統(tǒng)手法往往基于人工設(shè)計(jì)特征訓(xùn)練分類器,很難適應(yīng)復(fù)雜多變場(chǎng)景扩然。
由于過檢測(cè)模型是候選框數(shù)量很大艘儒,為了降低性能損耗需要把網(wǎng)絡(luò)設(shè)計(jì)得盡可能簡單,我們借鑒MNIST的LeNet-5網(wǎng)絡(luò)來構(gòu)建一個(gè)精簡的CNN二分類檢測(cè)模型夫偶。
這是我們的檢測(cè)結(jié)果示例
三界睁、文字識(shí)別
早先的傳統(tǒng)文字識(shí)別手法基本都采用基于模板匹配的方式,對(duì)特征描述要求非潮#苛刻翻斟,很難滿足復(fù)雜場(chǎng)景下的識(shí)別任務(wù)。深度學(xué)習(xí)拋棄了傳統(tǒng)人工設(shè)計(jì)特征的方式说铃,利用海量標(biāo)定樣本數(shù)據(jù)以及大規(guī)模GPU集群的優(yōu)勢(shì)讓機(jī)器自動(dòng)學(xué)習(xí)特征和模型參數(shù)访惜,能一定程度上彌補(bǔ)底層特征與高層語義之間的不足。近些年深度學(xué)習(xí)在人臉識(shí)別腻扇、目標(biāo)檢測(cè)與分類中達(dá)到了前所未有的高度债热,也開啟了深度學(xué)習(xí)在文字分類的新浪潮。
Google在photoOCR中設(shè)計(jì)了一套基于HOG特征作為輸入的5層CNN網(wǎng)絡(luò)作為OCR識(shí)別模型幼苛,該套系統(tǒng)在Google多項(xiàng)產(chǎn)品中得到成功的應(yīng)用窒篱。Goodfellow等人第一次提出用Maxout作為非線性激活單元來構(gòu)建CNN模型學(xué)習(xí)通用特征,并隨后在文字分類上取得了state-of-the-art的結(jié)果舶沿。
我們參考Maxout網(wǎng)絡(luò)模型基于caffe來構(gòu)建我們的OCR識(shí)別模型
在識(shí)別網(wǎng)絡(luò)訓(xùn)練環(huán)節(jié)墙杯,卷積神經(jīng)網(wǎng)絡(luò)要識(shí)別這類復(fù)雜多變的文字,首先面臨的挑戰(zhàn)就是如何獲取足夠多的符合多樣性的訓(xùn)練樣本括荡。只有讓訓(xùn)練樣本滿足字體霍转、顏色、背景等的多樣性才能保證訓(xùn)練出符合業(yè)務(wù)需求的ocr識(shí)別網(wǎng)絡(luò)一汽。
以下我們的OCR方法識(shí)別結(jié)果示例
四,業(yè)界
而通用場(chǎng)景文字識(shí)別低滩,OCR作為圖像識(shí)別領(lǐng)域非常經(jīng)典也非常有挑戰(zhàn)的研究課題召夹,百度、微軟恕沫、Google都有強(qiáng)大的研究團(tuán)隊(duì)進(jìn)行研發(fā)监憎,也都取得了非常不錯(cuò)的進(jìn)展。
五.互動(dòng)答題
1.想問一下ocr有沒有針對(duì)中文繁體字異體字方面的識(shí)別技術(shù)婶溯?在古籍整理方面應(yīng)該會(huì)有比較大的應(yīng)用
答:我們目前是支持繁體的鲸阔,如果要支持其他異體字偷霉,只要準(zhǔn)備相應(yīng)的訓(xùn)練集即可。
2.就識(shí)別銀行卡這個(gè)功能 要怎么去做褐筛?
答:這知識(shí)點(diǎn)是哪方面的銀行卡和身份證這種屬于特定也許場(chǎng)景下的識(shí)別类少,相對(duì)本文介紹的通用圖片識(shí)別壓力要小很多。
3.想問一下ocr有沒有針對(duì)中文繁體字異體字方面的識(shí)別技術(shù)渔扎?在古籍整理方面應(yīng)該會(huì)有比較大的應(yīng)用
答:我們目前是支持繁體的硫狞,如果要支持其他異體字,只要準(zhǔn)備相應(yīng)的訓(xùn)練集即可晃痴。
4.識(shí)別網(wǎng)絡(luò)的訓(xùn)練樣本大概是多少量級(jí)残吩?準(zhǔn)確率如何?
答:訓(xùn)練樣本在千萬級(jí)別倘核,業(yè)務(wù)場(chǎng)景的識(shí)別率在95以上
5.看上面的那個(gè)圖,對(duì)有地圖,或者有背景水印的圖片. ocr 還是很吃力.主要是文字檢測(cè)階段是不是?微信里面的街景掃描原理是怎樣的?謝謝!
答:對(duì)泣侮,場(chǎng)景文字識(shí)別最難的還是文字檢測(cè),背景干擾紧唱,文字對(duì)比度弱等情況下很容易漏檢活尊。前面提過,只要訓(xùn)練樣本足夠琼蚯,識(shí)別基本不會(huì)有什么問題的酬凳。微信的街景掃描沒有體驗(yàn)過。自然場(chǎng)景的文字識(shí)別一直是業(yè)內(nèi)挑戰(zhàn)最高的一個(gè)課題遭庶,目前基于深度學(xué)習(xí)在這方面的研究很多宁仔,到工業(yè)界還沒有非常成熟的算法,百度和google是業(yè)界最好的
6.當(dāng)面對(duì)不同背景和圖像畸變時(shí)峦睡,你們一般會(huì)如何應(yīng)對(duì)翎苫,更傾向于在預(yù)處理緩解規(guī)范化,還是在訓(xùn)練樣本中加入多樣化的樣本榨了?
答:后者煎谍。不過檢測(cè)到整行文字傾斜是可以考慮先做方向矯正再送識(shí)別
7.能用來識(shí)別車牌嗎,考慮對(duì)車牌拍攝時(shí)的光照,角度等因素
答:可以龙屉。不過車牌的檢測(cè)算法很成熟了呐粘,可以先檢測(cè)到車牌,做方向矯正后再送識(shí)別转捕。車牌銀行卡這種文字類別相對(duì)很少作岖,不到100個(gè),一般傳統(tǒng)的模板匹配的方法也可以達(dá)到比較好的效果五芝。而本文介紹的通用圖片的文字識(shí)別需要應(yīng)對(duì)6000多個(gè)漢字還有英文數(shù)字等痘儡,對(duì)網(wǎng)絡(luò)的要求更高
- 7.17號(hào)錘子發(fā)布的 big bang,他的檢測(cè)很精確,尤其對(duì)文字語句,段句這塊.現(xiàn)場(chǎng)展示將一段化學(xué)元素和語句成功段開,對(duì)于這個(gè)的原理,能解釋下嗎?這個(gè)您讀它怎么看?謝謝!
答:錘子的big bang個(gè)人理解跟ocr不大相關(guān)。手機(jī)應(yīng)該是可以直接從聊天記錄獲得文本枢步,不需要從圖像里去檢測(cè)和識(shí)別文字沉删,主要涉及到的是NIL方向的算法渐尿,比如分詞。