OCR檢測與識別技術

IT技術精選文摘發表於2018-06-05

在過去的數年中,騰訊數平精準推薦(Tencent-DPPR)團隊一直致力於實時精準推薦、海量大資料分析及挖掘等領域的技術研發與落地。特別是在廣告推薦領域,團隊自研的基於深度線上點選率預估演算法及全流程實時推薦系統,持續多年在該領域取得顯著成績。而在使用者意圖和廣告理解上,藉助於廣告圖片中的文字識別以及物體識別等技術手段,可以更加有效的加深對廣告創意、使用者偏好等方面的理解,從而更好的服務於廣告推薦業務。

OCR(Optical Character Recognition, 光學字元識別)是指對輸入影像進行分析識別處理,獲取影像中文字資訊的過程,具有廣泛的應用場景,例如場景影像文字識別、文件影像識別、卡證識別(如身份證、銀行卡、社保卡)、票據識別等。而場景文字識別(Scene Text Recognition,STR) 不需要針對特殊場景進行定製,可以識別任意場景圖片中的文字(如圖1所示)。相較於傳統OCR,場景圖片中的文字檢測與識別面臨著複雜背景干擾、文字的模糊與退化、不可預測的光照、字型的多樣性、垂直文字、傾斜文字等眾多挑戰。

圖1 場景圖片示例

場景文字識別這一問題在15~20年前就出現了相關的研究工作[1-3],它與傳統OCR的重要區別是需要將照片或視訊中的文字識別出來,其主要分為兩個步驟:

  • 對照片中存在文字的區域進行定位(Text Detection),即找到單詞或文字行(Word/Line-level)的邊界框(Bounding Box);

  • 對定位後的文字進行識別(Text Recognition)。

將這兩個步驟合在一起就能得到文字的端到端識別(End-to-end Recognition)結果。通常來說,實現場景文字的檢測是首要的也是最重要的任務。

數平精準推薦團隊在OCR領域深耕細作多年,自研的基於深度學習方法的文字檢測與識別技術多次在ICDAR競賽資料集上重新整理世界紀錄,特別是在2017年舉辦的第14屆ICDAR官方競賽中,斬獲了“COCO-TEXT”、“醫學文獻影像”等挑戰任務中的4項冠軍,獲得了業內廣泛好評,同時也再次證明了團隊在OCR領域的技術研發能力。本文將主要介紹數平精準推薦團隊的文字檢測技術。

數平精準推薦團隊場景文字檢測技術

1、文字檢測技術

文字檢測是場景文字識別的前提條件,要解決的問題是如何在雜亂無序、千奇百怪的複雜場景中準確地定位出文字的位置。由於背景的複雜性、光照的多變性以及字型的不可預測性等原因,場景文字檢測面臨著極大的挑戰。場景文字檢測的發展歷程與絕大多數的計算機視覺任務相似,傳統的檢測方法包括基於連通域的方法[4][5],以及基於滑動視窗的方法[6-8],自2014年起,基於深度學習的方法[9-17]逐漸成為主流方法。

(1)基於連通域的方法

該類方法認為場景影像中的文字一般都是作為連通域出現,這類方法一般可以分為連通域提取和文字連通域判別兩個環節。其中,連通域提取環節會將影像中的所有連通域提取出來作為備選,文字連通域判別環節則會根據分類器或者啟發式規則判斷提取的連通域到底是文字連通域還是背景連通域。

圖2 基於連通域的文字檢測方法流程圖

(2)基於滑動視窗的方法

將場景文字作為一類特殊的目標,使用類似於目標檢測的方法對場景文字進行定位。首先從每一個滑動視窗中提取若干特徵,然後將提取的特徵送入事先訓練好的分類器判斷當前滑動視窗中是否包含文字,最後需要通過二值化來精確定位場景文字的位置。

圖3 基於滑動視窗的文字檢測方法流程圖

(3)基於深度學習的方法

近年來,深度學習因其強大的學習能力以及廣泛的適用性,已經成為人工智慧領域最熱門的方向之一。雖然基於連通域和滑動視窗的方法在傳統OCR任務能夠獲得不錯的效果,但在更為複雜的場景影像文字檢測任務中卻完全落後於深度學習方法。基於深度學習的文字檢測方法使用效果更加魯棒的高層語義特徵,利用更多的資料去擬合更復雜、泛化能力更強的模型,在場景圖片文字檢測中取得了突破性進展。在基於深度學習的文字檢測方法中,使用最廣泛的是基於Region Proposal的方法[9-12],其次是基於影像分割的方法[13-16],以及其他方法[17]等。

2、數平精準推薦文字檢測技術

(1)基於Rotation-RPN的文字檢測方法

在文字檢測領域,基於深度卷積神經網路的演算法已成為主流方法,如基於迴歸的YOLO[18]、SSD[19]和基於RegionProposal兩階段的Faster RCNN[20]、R-FCN[21]等。在基於深度卷積網路的物體檢測框架中,每一層卷積相當於一層濾波器,多層濾波器的串聯可以使最有效的特徵被傳遞到最後,再根據文字目標與物體目標的差異,針對性地改進檢測任務的實現機制,能夠獲得良好的文字檢測效果[9-12]。

目前,基於迴歸的演算法在物體檢測任務中並沒有取得明顯優於Faster-RCNN的檢測效果,主要原因在於兩階段的演算法存在class-balancing。經典的Faster RCNN框架是針對通用物體檢測而設計的,但在文字檢測這一比較特殊的應用中,則有較多不太一樣的地方。例如,Faster RCNN中Anchor的設定並不適合文字檢測任務,而是針對物體檢測任務來設計的,需要調節;另外,Anchor為正矩形,而文字存在傾斜畸變等,如果用正矩形檢測,得到的文字檢測結果無法滿足後續對文字進行識別的要求。

結合場景圖片中文字排列具有不規則、多方向(水平、傾斜、垂直等)、尺寸大小不一等特性,數平精準推薦團隊受到RRPN[11] Rotation Proposals的啟發,基於Faster-RCNN物體檢測模型,研發了一種用於任意方向文字的端到端文字檢測方法,技術架構圖如圖4所示。

圖4  基於Rotation-RPN的場景文字檢測模型架構圖

我們從整體上自動處理文字行/文字邊界框,自研的基於Rotation-RPN的文字檢測方法主要包括三部分:基礎卷積網路、Rotation-RPN網路、Rotation-ROI-Pooling,其中幾個關鍵點如下:

  • 場景影像中並非所有文字都是水平的,存在著大量其他排列分佈的場景文字,如傾斜文字、垂直文字。我們在物體檢測技術架構的基礎上,將角度資訊融入到檢測框架中,目的在於迴歸任意方向的文字框。實驗證明,Rotation-RPN具備檢測自然場景下任意方向文字的能力,尤其能夠檢測出具有語義資訊的傾斜文字和垂直文字;

  • 尺度問題一直都是深度物體檢測方法的核心問題之一,針對檢測模型對文字大小較敏感的問題,我們設定了不同尺寸的Proposal,融合不同尺度卷積特徵並進行多尺度的池化過程,用於檢測不同尺度的文字;

  • 為了實現對任意方向的文字進行自動處理,我們設計了旋轉感興趣區域(RRoI)池化層,RRoI池化層能夠將任意方向、任意寬高比或尺寸的候選旋框投影到固定大小的特徵圖,解決了傳統RoI池化層只能處理軸對齊候選框的問題;

  • 傳統的非極大值抑制(NMS,Non Maximum Suppression)演算法只能處理軸對齊的候選框,為了解決任意旋轉方向重疊文字候選框的NMS問題,我們設計了面向旋轉候選框的非極大值抑制(Inclined-NMS,Inclined Non Maximum Suppression)演算法,Inclined-NMS演算法考慮了傾斜候選框的特性進行擇優選取。

基於Rotation-RPN的場景文字檢測方法是一種用於任意方向文字的端到端文字檢測方法,能夠有效解決文字尺度不一、形態各異,和檢測器對尺度過於敏感等問題,大幅提高了檢測環節的精度。

(2)基於聯結文字建議網路的文字檢測方法

一般物體檢測中只有一個獨立的目標(如人、貓、狗等),與一般物體檢測不同的是,文字是一個Sequence(字元、字元的一部分、多字元組成的一個Sequence)。基於CTPN方法[10]的基本思想,通過在卷積網路的特徵圖上提取Anchors,並計算每個Anchor的得分,並在計算得分的過程中,綜合利用上下文資訊、每行的文字序列特性,採用RNN進行建模以判斷文字的得分。

圖5  基於聯結文字建議網路的文字檢測模型架構圖

傳統Bottom-up的檢測方法沒有考慮上下文,魯棒性較差,複雜繁瑣,使得文字檢測效能難以突破瓶頸。我們通過Top-down的方式,即先檢測文字區域,再找出文字行,獲得了相比傳統檢測方法更好的結果。

實驗證明,通過CNN提取深度特徵,並結合RNN進行序列學習,能夠大幅提高檢測精度,尤其對於長文字(水平及具有一定傾斜角度的長文字)的檢測。

(3)基於全卷積網路的文字檢測方法

圖6 基於FCN的文字檢測流程圖

基於全卷積網路(Fully Convolutional Network,FCN)的方法[15]同時使用分割(Segmentation)和邊界框迴歸(Bounding Box Regression)的方式對場景文字進行檢測,直接產生單詞或文字行級別的預測(旋轉矩形或任意四邊形),通過非極大值抑制產生最終結果。

圖7 基於FCN的文字檢測網路結構圖

我們設計了基於FCN的文字檢測方法,文字檢測網路(如圖7所示)產生兩種輸出:Score Map和文字邊界框的迴歸結果(迴歸目標為矩形時是5自由度的座標和角度、迴歸任意四邊形時是8自由度的座標)。其中,分數圖的畫素值在[0,1],代表了在同樣的位置預測的幾何尺寸的置信度,分數超過預定義閾值的幾何形狀被認為是有效的結果預測,最後通過非極大值抵制產生最終文字檢測結果。

3、部分場景圖片文字檢測效果圖

騰訊數平精準推薦團隊自研的OCR技術目前已經廣泛服務於公司內部的多個業務。在各類場景中,例如廣告素材、遊戲圖片、敏感廣告等,都有良好的效果,部分文字檢測效果如圖8所示。

(1)廣告圖片

(2)自然場景圖片

(3)遊戲圖片

(4)銀行卡圖片(部分內白為保護隱私)

圖8  場景圖片&垂直應用圖片文字檢測示例

目前數平精準推薦團隊研發的OCR相關技術在公司內部眾多產品中得到使用,例如:騰訊慧眼、手Q看點、話題圈、天御、社交廣告等業務,尤其在廣告推薦的場景中,通過OCR技術對廣告的素材創意進一步的識別和理解,大幅提升了使用者點選率預估的效果。

騰訊數平精準推薦團隊一直致力於實時精準推薦、海量大資料分析及挖掘等領域的技術研發與落地。在OCR方面,我們已經有了多年積累下的各項技術積累,願意與任何有OCR技術相關需求的業務同行進行交流合作,持續打造業界一流的資料、演算法和系統。

OCR識別模組屬於多分類問題,對識別效果影響大的因素包括:複雜背景、藝術字型、低解析度、非均勻光照、影像退化、字元形變、多語言混合、文字行復雜版式、檢測框字元殘缺,等等。對比英文識別,中文OCR具備更強挑戰。例如英文數字可建模為62分類問題,若要識別中文10000個漢字,則需建模為10000分類問題。此外,中文的筆畫複雜度、形近字數量、簡繁體數量、版式排列、詞語組合數量,都比純英文識別挑戰更大。

社交廣告圖片的部分挑戰場景如圖1所示:

(圖1)

社交廣告圖片中有挑戰的文字行如圖2所示:

(圖2)

在2013年之前,傳統演算法在OCR領域占主導地位,其標準流程包含文字檢測、單字元分割、單字元識別、後處理等步驟,如圖3所示。

(圖3)

此處介紹傳統方法中具有代表性的PhotoOCR[1]演算法。PhotoOCR是谷歌公司提出的一套完整OCR識別系統,包含文字區域檢測、文字行歸併、過分割、基於Beam Search的分割區域的組合、基於HOG特徵和全連線神經網路的單字元分類、基於ngram方法的識別結果校正。PhotoOCR系統覆蓋傳統OCR流程每一環節,通過流程細化與每一環節的多類技術整合化,在2013年取得了優異結果,同樣也暴露傳統方法諸多不足,例如:需要將OCR系統割裂成過多環節、需要在每個環節上引入過多人工干預、需要根據場景設定方法整合、難以做到端到端訓練,等等。

自2012年AlexNet[2]在ImageNet競賽奪冠以來,深度學習方法開始在影像視訊領域大幅超越傳統演算法,並開始擴充套件到OCR領域,包括基於卷積神經網路(Convolutional Neural Network, CNN)和基於長短期記憶(Long Short-Term Memory, LSTM)的方法等。基於CNN的識別演算法,代表性論文是[3]。該方法由兩部分構成,檢測模組採用基於 region proposal 和滑動窗的方法切出詞條,識別部分採用 7層CNN對整詞分類,如圖4所示。

(圖4)

此論文另一大貢獻是提供了大規模合成資料的方法。標註文字的成本遠高於標註人臉、物體等資料,高標註成本限制了OCR資料集規模。因此,合成樣本方法的出現,有效緩解了深度網路對於OCR真實標註資料的依賴,極大推動了OCR識別領域的深度演算法的發展。

CNN方法的出現,最大功能是在特徵工程及單字元分類領域替代傳統方法,但仍然未能避免傳統思路中難度最大的二值化和字元分割問題。在複雜的自然場景、廣告場景中,CNN分類方法仍難以滿足需要。

4 騰訊DPPR團隊場景文字識別技術

本章重點介紹騰訊數平精準推薦團隊(Tencent-DPPR)的深度OCR演算法。考慮到傳統分類以及CNN單字元分類的諸多不足,本團隊基於長短期記憶(Long Short-Term Memory, LSTM)網路的技術路線,進行序列化(詞彙、短語、語句等)識別。


4.1. 基於聯結時序分類

與語音識別問題類似,OCR可建模為時序依賴的詞彙或者短語識別問題。基於聯結時序分類(Connectionist Temporal Classification, CTC)訓練RNN的演算法,在語音識別領域[4]顯著超過傳統語音識別演算法。一些學者嘗試把CTC損失函式借鑑到OCR識別中,CRNN [5]就是其中代表性演算法。CRNN演算法輸入100*32歸一化高度的詞條影像,基於7層CNN提取特徵圖,把特徵圖按列切分(Map-to-Sequence),每一列的512維特徵,輸入到兩層各256單元的雙向LSTM進行分類。在訓練過程中,通過CTC損失函式的指導,實現字元位置與類標的近似軟對齊。

CRNN借鑑了語音識別中的LSTM+CTC的建模方法,不同點是輸入進LSTM的特徵,從語音領域的聲學特徵(MFCC等),替換為CNN網路提取的影像特徵向量。CRNN演算法最大的貢獻,是把CNN做影像特徵工程的潛力與LSTM做序列化識別的潛力,進行結合。它既提取了魯棒特徵,又通過序列識別避免了傳統演算法中難度極高的單字元切分與單字元識別,同時序列化識別也嵌入時序依賴(隱含利用語料)。本團隊也多處改進LSTM+CTC的演算法,並應用到自然場景影像、銀行卡識別、身份證識別等多個任務中。在CNN一側,我們在卷積層採取類似VGG網路的結構,減少CNN卷積核數量的同時增加摺積層深度,既保證精度,又降低時耗。在RNN一側,我們針對LSTM有對語料和影像背景過擬合的傾向,在雙向LSTM單元層實現了Dropout策略。在訓練技巧一側,我們針對CTC loss對初始化敏感和收斂速度慢的問題,採用樣本由易到難、分階段訓練的策略。在測試階段,針對字元拉伸導致識別率降低的問題,我們保持輸入影像尺寸比例,根據卷積特徵圖的尺寸動態決定LSTM時序長度。我們使用的演算法的網路結構如圖5所示,由於以上所述的多處改進,我們的演算法速度快且精度高,在身份證、銀行卡等業務上取得98%以上識別準確率。

(圖5)


4.2. 基於注意力機制

近兩年來,注意力機制在影像描述[6]、語音識別[7]、自然語言處理[8][9]等領域大放異彩,本團隊也開始嘗試把此機制引入到OCR識別模組。注意力機制能夠聚焦詞條影像特徵向量的ROI,在當前時刻實現特徵向量與原圖字元區域的近似對齊,提升深度網路中的Encoder-Decoder模型的聚焦度與準確率。

注意力機制實現方式多樣,在基於注意力模型識別法語街景路標的論文[10]中,作者首先把同個路標的4個不同視角影像分別輸入到相同Inception-v3 CNN網路提取特徵圖,對拼接後的特徵圖,進行二維空間注意力加權,加權後的結果輸入到單向LSTM層解碼分類。相比於LSTM+CTC模型,注意力模型更顯式的把當前時刻待分類字元與原圖位置對齊,同時也更顯式的利用前一時刻語料依賴。根據文獻[10]的實驗,對比於LSTM+CTC模型,注意力模型配合自迴歸連線,在法語街景路牌資料集上,除了精度提升6%,收斂速度也快了2倍。

我們在注意力機制上,與文獻[10]的設計不同,我們採用的網路結構如圖6所示。特徵編碼階段,我們採取類似於VGG的10層卷積網路。特徵解碼階段,我們結合了注意力機制與LSTM層。在注意力機制上,我們採用基於內容和基於歷史相結合的混合方法。基於內容的注意力方法使用上一步預測的字元向量以及預測該向量的加權特徵向量作為聯合特徵,聯合特徵向量作為LSTM的輸入,產生注意力機制的查詢向量;基於歷史的注意力方法會使用上一步的注意力,我們採用CNN從上一步的注意力提取特徵作為注意力機制中的索引向量的一部分。除了混合注意力模型的改進,我們也在訓練資料與技巧等方面多處改進。我們也引入影像隨機填補、隨機破壞注意力模組所輸入的語序依賴、隨機拉伸、依據每個batch內樣本動態填補影像長度,等等。通過持續優化,當前我們的注意力模型在廣告影像、自然場景影像等極具挑戰的場景取得了86%以上端到端準確率。

(圖6)

5 當前效果

當前騰訊數平精準推薦團隊(Tencent-DPPR)的OCR識別演算法,能夠應對藝術字、模糊、低解析度、字型變形、字元殘缺等多類有挑戰場景,在廣告場景已經取得良好效果。

5.1. 多樣化版式(橫豎版式共存):

(圖7)

5.2. 藝術字與字型變形:

(圖8)

5.3.低解析度與模糊字元:

(圖9)

5.4. 檢測框有殘缺:

(圖10)

5.5. 檢測框過大:

(圖11)

5.6.  複雜或非均勻背景:

(圖12)

5.7. 多語言混合:

(圖13)

6 未來工作展望‍

本文介紹了騰訊數平精準推薦團隊(Tencent-DPPR)的OCR識別演算法,包括識別演算法的演進之路以及4個代表性方法。雖然我們當前已採用基於聯結時序分類和空間注意力機制的深度RNN網路,效果有明顯提升,但識別模組仍存在多個挑戰有待解決,包括:過低解析度影像、高噪聲影像、強變形藝術字、複雜排版文字、超長文字行、殘缺過多的檢測框等。此外,如何顯式利用語料資訊彌補影像質量降低時識別能力明顯退化的問題,也需進一步研究。OCR技術在廣告影像以及其他形式影像的研究與落地,仍存在巨大潛力尚待挖掘,本團隊也會繼續精耕細作。

公眾號推薦:

相關文章