【騰訊Bugly乾貨分享】深度學習在OCR中的應用

本文來自於騰訊bugly開發者社區,未經做者贊成,請勿轉載,原文地址:http://dev.qq.com/topic/5809b...算法

Dev Club 是一個交流移動開發技術,結交朋友,擴展人脈的社羣,成員都是通過審覈的移動開發工程師。每週都會舉行嘉賓分享,話題討論等活動。微信

本期,咱們邀請了 騰訊 TEG 技術工程師「文亞飛」,爲你們分享《深度學習在OCR中的應用》。網絡


你們好,我是文亞飛,來自騰訊TEG,目前負責圖像識別相關的工做。OCR(光學字符識別)旨在從圖片中檢測和識別文字信息,本次分享將介紹咱們在OCR技術研發過程當中的一些方法和經驗總結。app

一,OCR背景及基本框架介紹

OCR技術從上世紀60年代就開始獲得重視和研究,開源OCR框架Tesseract[14]始於1985年,至今仍在不斷迭代和優化。從早期的通用掃描文檔識別(谷歌數字圖書館,ABBYY,漢王,文通等),到銀行卡/身份證/金融票據等證件識別(百度,微信,支付寶)以及車牌識別,OCR在業界也積累了很是多的寶貴經驗。針對不一樣的應用場景,OCR所用到的方法也會有所不一樣。框架

咱們這裏將主要分享在通用圖片下的文字檢測與識別。工具

咱們把通用圖片分爲兩類,字跡清晰背景單一的簡單圖文和字跡模糊背景多變的複雜圖文。性能

上圖分別對應簡單圖文和複雜圖文學習

複雜圖文的文字檢測和識別壓力很大,很是具備挑戰性字體

這是通常的OCR框架流程圖,基於通常的ceiling analysis,文字檢測和文字識別是最具挑戰也是可以最大程度提高總體框架表現的兩個主要模塊。大數據

傳統方法大都須要依靠手動提取特徵來訓練檢測模型和識別模型,因爲底層特徵與高層語義之間特有的語義鴻溝,當應對多類字體變化以及複雜背景干擾的時候,單一的特徵選擇或分類器的調優就顯得相形見絀了。卷積神經網絡LeNet-5第一次在mnist手寫數字識別上獲得成功的應用,而近些年隨着計算硬件成本的下降以及幾項深度學習關鍵技術的突破,AlexNet、VGG、GoogleNet、ResNet等在imageNet、LFW上取得了使人傲嬌的表現,開啓了深度學習在大規模數據訓練和學習的浪潮。

針對OCR傳統手法在應對複雜圖文場景的不足,咱們對文字檢測和文字識別這兩個關鍵步驟結合深度學習進行研究與開發。

2、文字檢測

下圖是2000張人臉、行人、文字的average image

從上圖能夠看到,不一樣於人臉和行人,文字的均值圖更像是一種噪聲,其組成部位即無固定位置,數量也不固定。這代表文字檢測並不能簡單的借用人臉/行人檢測等經常使用目標檢測框架,一步到位的由圖像獲得文字區域標定的端到端方法頗有壓力。

一般,通常的文字檢測方法能夠分爲兩類:

  1. 基於滑動窗口全圖掃描的自上而下的方式。對每一個滑動窗口基於HOG、Gabor、LBP、Haar等紋理特徵訓練Adaboost,SVM,MLP等二類分類器獲得文字區域的機率響應值,而後再利用camshift或連通域分析結合形態學等操做定位最終的文字框。該方法對分類器的要求很高,要求能應對各類字體和背景的形式,即使是基於CNN來訓練檢測模型,大量的掃描滑動窗口對性能耗損十分嚴重,不適合對性能要求較高的大數據應用場景。

  2. 基於底層規則先分割獲得小區域再組合成文字區域的自底而上的方式。一般這類方法利用文字顏色、亮度、邊緣信息進行聚類的方式來快速分離文字區域與非文字區域,而以MSER和SWT爲表明的連通域分析方法在天然場景文字檢測中表現優異,在得到高魯棒性的同時性能也比滑動窗口的形式提升很多。

咱們首先基於MSER(最大穩定極值區域)的方法來設計咱們的檢測方案,以下圖。

因爲MSER基於分水嶺迭代的方式來尋找候選框,能有效提取候選文字區域的同時也容易產生很是多的非文字區域。MSER產生的干擾區域每每跟文字享有相似的紋理特徵(如窗戶,草地,頭髮等),咱們須要強有力的分類器來濾除干擾。SVM/adaboost等傳統手法每每基於人工設計特徵訓練分類器,很難適應複雜多變場景。

因爲過檢測模型是候選框數量很大,爲了下降性能損耗須要把網絡設計得儘量簡單,咱們借鑑MNIST的LeNet-5網絡來構建一個精簡的CNN二分類檢測模型。

上圖是咱們的檢測結果示例

3、文字識別

早先的傳統文字識別手法基本都採用基於模板匹配的方式,對特徵描述要求很是苛刻,很難知足複雜場景下的識別任務。深度學習拋棄了傳統人工設計特徵的方式,利用海量標定樣本數據以及大規模GPU集羣的優點讓機器自動學習特徵和模型參數,能必定程度上彌補底層特徵與高層語義之間的不足。近些年深度學習在人臉識別、目標檢測與分類中達到了史無前例的高度,也開啓了深度學習在文字分類的新浪潮。

Google在photoOCR中設計了一套基於HOG特徵做爲輸入的5層CNN網絡做爲OCR識別模型,該套系統在Google多項產品中獲得成功的應用。Goodfellow等人第一次提出用Maxout做爲非線性激活單元來構建CNN模型學習通用特徵,並隨後在文字分類上取得了state-of-the-art的結果。

咱們參考Maxout網絡模型基於caffe來構建咱們的OCR識別模型

在識別網絡訓練環節,卷積神經網絡要識別這類複雜多變的文字,首先面臨的挑戰就是如何獲取足夠多的符合多樣性的訓練樣本。只有讓訓練樣本知足字體、顏色、背景等的多樣性才能保證訓練出符合業務需求的ocr識別網絡。

如下咱們的OCR方法識別結果示例

四,業界

ABBYY與漢王相似,更擅長於掃描文檔轉PFD做業。

而通用場景文字識別,OCR做爲圖像識別領域很是經典也很是有挑戰的研究課題,百度、微軟、Google都有強大的研究團隊進行研發,也都取得了很是不錯的進展。

今天的分享就到此結束了,謝謝你們,歡迎你們一塊兒探討交流。

互動問答

Q1:這些技術客戶端上有應用嗎,效果如何?

咱們基礎研究這邊只負責技術員研發,目前主要用在部門內部需求,還沒有對外輸出。

Q2:想問一下OCR有沒有針對中文繁體字異體字方面的識別技術?在古籍整理方面應該會有比較大的應用

咱們目前是支持繁體的,若是要支持其餘異體字,只要準備相應的訓練集便可。

Q3:請問一下有沒有比較輕量級的開源OCR庫供app集成,主要使用場景是用於經過卡片圖像識別卡號

咱們目前的應用場景是大數據業務,對性能要求很高。識別卡號這種具體也許場景通常會作相應的調整,檢測能夠利用卡號的位置等信息,若是識別的字體比較單一,能夠精簡訓練集,訓練一個相對輕量級的識別網絡。

Q4:就識別銀行卡這個功能,要怎麼去作?這知識點是哪方面的?

銀行卡和身份證這種屬於特定也許場景下的識別,相對本文介紹的通用圖片識別壓力要小不少。參考問題3的回答

Q5:亞飛老師好,通用場景中要面臨不一樣的環境,好比在移動端應用的OCR技術,在處理不一樣噪聲,模糊,光照不均等情形時,有什麼處理經驗可借鑑和分享麼?

關鍵是要準備充足的字符訓練集,能夠根據字符前景和背景生成多個灰度值對,使得訓練樣本更加豐富

Q6:OCR識別二維碼,須要怎麼去作?

本次分享的這套OCR技術應該難以應對二維碼的識別,能夠旋轉字體,加干擾,藝術字體,對抗性太強,識別和檢測的壓力都很大

Q7:識別網絡的訓練樣本大概是多少許級?準確率如何?

訓練樣本在千萬級別,業務場景的識別率在95%以上

Q8:看上面的那個圖,對有地圖,或者有背景水印的圖片. OCR 仍是很吃力。主要是文字檢測階段是否是?微信裏面的街景掃描原理是怎樣的?謝謝!

對,場景文字識別最難的仍是文字檢測,背景干擾,文字對比度弱等狀況下很容易漏檢。前面提過,只要訓練樣本足夠,識別基本不會有什麼問題的。微信的街景掃描沒有體驗過。天然場景的文字識別一直是業內挑戰最高的一個課題,目前基於深度學習在這方面的研究不少,到工業界尚未很是成熟的算法,百度和google是業界最好的。

Q9:當面對不一樣背景和圖像畸變時,大家通常會如何應對,更傾向於在預處理緩解規範化,仍是在訓練樣本中加入多樣化的樣本?

後者。不過檢測到整行文字傾斜是能夠考慮先作方向矯正再送識別。

Q10:能用來識別車牌嗎?考慮對車牌拍攝時的光照,角度等因素。

能夠。不過車牌的檢測算法很成熟了,能夠先檢測到車牌,作方向矯正後再送識別。車牌銀行卡這種文字類別相對不多,不到100個,通常傳統的模板匹配的方法也能夠達到比較好的效果。而本文介紹的通用圖片的文字識別須要應對6000多個漢字還有英文數字等,對網絡的要求更高

Q11:問題:除了基於CNN的識別方法,有沒有嘗試過其餘的深度學習算法。好比RNN,是否對於粘連字符和英文的識別效果會更好?

咱們目前是作字符切割以後再送識別,切割對中英文混排壓力很大。後續會考慮用基於RNN的LSTM來作整行識別,能避免切割,問題是將會對性能產生影響。

Q12:錘子發佈的 big bang,他的檢測很精確,尤爲對文字語句,段句這塊。現場展現將一段化學元素和語句成功段開,對於這個的原理,能解釋下嗎?這個您對它怎麼看?謝謝!

錘子的big bang我的理解跟OCR不大相關。手機應該是能夠直接從聊天記錄得到文本,不須要從圖像裏去檢測和識別文字,主要涉及到的是NIL方向的算法,好比分詞。


更多精彩內容歡迎關注bugly的微信公衆帳號:

騰訊 Bugly是一款專爲移動開發者打造的質量監控工具,幫助開發者快速,便捷的定位線上應用崩潰的狀況以及解決方案。智能合併功能幫助開發同窗把天天上報的數千條 Crash 根據根因合併分類,每日日報會列出影響用戶數最多的崩潰,精準定位功能幫助開發同窗定位到出問題的代碼行,實時上報能夠在發佈後快速的瞭解應用的質量狀況,適配最新的 iOS, Android 官方操做系統,鵝廠的工程師都在使用,快來加入咱們吧!

相關文章
相關標籤/搜索