阿里妹導讀:豐富準確的地圖數據大大提升了我們在使用高德地圖出行的體驗。相比於傳統的地圖數據採集和製作,高德地圖大量採用了圖像識別技術來進行數據的自動化生產,而其中場景文字識別技術佔據了重要位置。商家招牌上的藝術字、LOGO五花八門,文字背景複雜或被遮擋,拍攝的圖像質量差,如此複雜的場景下,如何解決文字識別技術全、準、快的問題?本文分享文字識別技術在高德地圖數據生產中的演進與實踐,介紹了文字識別自研算法的主要發展歷程和框架,以及未來的發展和挑戰。

一  背景

作爲一個DAU過億的國民級軟件,高德地圖每天爲用戶提供海量的查詢、定位和導航服務。地圖數據的豐富性和準確性決定了用戶體驗。傳統的地圖數據的採集和製作過程,是在數據採集設備實地採集的基礎上,再對採集資料進行人工編輯和上線。這樣的模式下,數據更新慢、加工成本高。爲解決這一問題,高德地圖採用圖像識別技術從採集資料中直接識別地圖數據的各項要素,實現用機器代替人工進行數據的自動化生產。通過對現實世界高頻的數據採集,運用圖像算法能力,在海量的採集圖片庫中自動檢測識別出各項地圖要素的內容和位置,構建出實時更新的基礎地圖數據。而基礎地圖數據中最爲重要的是POI(Point of Interest)和道路數據,這兩種數據可以構建出高德地圖的底圖,從而承載用戶的行爲與商家的動態數據。

圖像識別能力決定了數據自動化生產的效率,其中場景文字識別技術佔據了重要位置。不同採集設備的圖像信息都需要通過場景文字識別(Scene Text Recognition,STR)獲得文字信息。這要求我們致力於解決場景文字識別技術全、準、快的問題。在POI業務場景中,識別算法不僅需要儘可能多的識別街邊新開商鋪的文字信息, 還需要從中找出擁有99%以上準確率的識別結果,從而爲POI名稱的自動化生成鋪平道路;在道路自動化場景中,識別算法需要發現道路標誌牌上細微的變化,日處理海量回傳數據,從而及時更新道路的限速、方向等信息。與此同時,由於採集來源和採集環境的複雜性,高德場景文字識別算法面對的圖像狀況往往復雜的多。主要表現爲:

  • 文字語言、字體、排版豐富:商家招牌上的藝術字體,LOGO五花八門,排版形式各式各樣。
  • 文字背景複雜:文字出現的背景複雜,可能有較大的遮擋,複雜的光照與干擾。
  • 圖像來源多樣:圖像採集自低成本的衆包設備,成像設備參數不一,拍攝質量差。圖像往往存在傾斜、失焦、抖動等問題。

由於算法的識別難度和識別需求的複雜性,已有的文本識別技術不能滿足高德高速發展的業務需要,因此高德自研了場景文字識別算法,並迭代多年,爲多個產品提供識別能力。

二  文字識別技術演進與實踐

STR算法發展主要歷程

場景文字識別(STR)的發展大致可以分爲兩個階段,以2012年爲分水嶺,分別是傳統圖像算法階段和深度學習算法階段。

傳統圖像算法

2012年之前,文字識別的主流算法都依賴於傳統圖像處理技術和統計機器學習方法實現,傳統的文字識別方法可以分爲圖像預處理、文字識別、後處理三個階段:

  • 圖像預處理:完成文字區域定位,文字矯正,字符切割等處理,核心技術包括連通域分析,MSER,仿射變換,圖像二值化,投影分析等;
  • 文字識別:對切割出的文字進行識別,一般採用提取人工設計特徵(如HOG特徵等)或者CNN提取特徵,再通過機器學習分類器(如SVM等)進行識別;
  • 後處理:利用規則,語言模型等對識別結果進行矯正。  

傳統的文字識別方法,在簡單的場景下能達到不錯的效果,但是不同場景下都需要獨立設計各個模塊的參數,工作繁瑣,遇到複雜的場景,難以設計出泛化性能好的模型。

深度學習算法

2012年之後,隨着深度學習在計算機視覺領域應用的不斷擴大,文字識別逐漸拋棄了原有方法,過渡到深度學習算法方案。在深度學習時代,文字識別框架也逐漸簡化,目前主流的方案主要有兩種,一種是文本行檢測與文字識別的兩階段方案,另一種是端到端的文字識別方案。

1)兩階段文字識別方案

主要思路是先定位文本行位置,然後再對已經定位的文本行內容進行識別。文本行檢測從方法角度主要分爲基於文本框迴歸的方法[1],基於分割或實例分割的方法[2],以及基於迴歸、分割混合的方法[3],從檢測能力上也由開始的多向矩形框發展到多邊形文本[2],現在的熱點在於解決任意形狀的文本行檢測問題。文本識別從單字檢測識別發展到文本序列識別,目前序列識別主要又分爲基於CTC的方法[4]和基於Attention的方法[5]。

2)端到端文字識別方案[6]

通過一個模型同時完成文本行檢測和文本識別的任務,既可以提高文本識別的實時性,同時因爲兩個任務在同一個模型中聯合訓練,兩部分任務可以互相促進效果。

文字識別框架

高德文字識別技術經過多年的發展,已經有過幾次大的升級。從最開始的基於FCN分割、單字檢測識別的方案,逐漸演進到現有基於實例分割的檢測,再進行序列、單字檢測識別結合的方案。與學術界不同,我們沒有采用End-to-End的識別框架,是由於業務的現實需求所決定的。End-to-End框架往往需要足夠多高質量的文本行及其識別結果的標註數據,但是這一標註的成本是極爲高昂的,而合成的虛擬數據並不足以替代真實數據。因此將文本的檢測與識別拆分開來,有利於分別優化兩個不同的模型。

如下圖所示,目前高德採用的算法框架由文本行檢測、單字檢測識別、序列識別三大模塊構成。文本行檢測模塊負責檢測出文字區域,並預測出文字的掩模用於解決文本的豎直、畸變、彎曲等失真問題,序列識別模塊則負責在檢測出的文字區域中,識別出相應的文字,對於藝術文本、特殊排列等序列識別模型效果較差的場景,使用單字檢測識別模型進行補充。

文字識別框架

文本行檢測

自然場景中的文字區域通常是多變且不規則的,文本的尺度大小各異,成像的角度和成像的質量往往不受控制。同時不同採集來源的圖像中文本的尺度變化較大,模糊遮擋的情況也各不相同。我們根據實驗,決定在兩階段的實例分割模型的基礎上,針對實際問題進行了優化。

文本行檢測可同時預測文字區域分割結果及文字行位置信息,通過集成DCN來獲取不同方向的文本的特徵信息,增大mask分支的feature大小並集成ASPP模塊,提升文字區域分割的精度。並通過文本的分割結果生成最小外接凸包用於後續的識別計算。在訓練過程中,使用online的數據增廣方法,在訓練過程中對數據進行旋轉、翻轉、mixup等,有效的提高了模型的泛化能力。具體檢測效果如下所示:

檢測結果示例

目前場景文本檢測能力已經廣泛應用於高德POI、道路等多個產品中,爲了驗證模型能力,分別在ICDAR2013(2018年3月)、ICDAR2017-MLT(2018年10月)、ICDAR2019-ReCTS公開數據集中進行驗證,並取得了優異的成績。

文本行檢測競賽成績

文字識別

根據背景的描述,POI和道路數據自動化生產對於文字識別的結果有兩方面的需求,一方面是希望文本行內容儘可能完整識別,另外一方面對於算法給出的結果能區分出極高準確率的部分(準確率大於99%)。不同於一般文字識別評測以單字爲維度,我們在業務使用中,更關注於整個文本行的識別結果,因此我們定義了符合業務使用需求的文字識別評價標準:

  • 文本行識別全對率:表示文字識別正確且讀序正確的文本行在所有文本行的佔比。
  • 文本行識別高置信佔比:表示識別結果中的高置信度部分(準確率大於99%)在所有文本行的佔比。

文本行識別全對率主要評價文字識別在POI名稱,道路名稱的整體識別能力,文本行識別高置信佔比主要評價算法對於拆分出識別高準確率部分的能力,這兩種能力與我們的業務需求緊密相關。爲了滿足業務場景對文字識別的需求,我們針對目前主流的文字識別算法進行了調研和選型。

文字識別發展到現在主要有兩種方法,分別是單字檢測識別和序列識別。單字檢測識別的訓練樣本組織和模型訓練相對容易,不被文字排版的順序影響。缺點在某些"上下結構","左右結構"的漢字容易檢測識別錯誤。相比之下序列識別包含更多的上下文信息,而且不需要定位單字精確的位置,減小因爲漢字結構導致的識別損失。但是現實場景文本的排版複雜,"從上到下","從左到右"排版會導致序列識別效果不穩定。結合單字檢測識別和序列識別各自的優缺點,採用互補的方式提高文字識別的準確率。

單字檢測識別和序列識別結果融合

1)單字檢測識別

單字檢測採用Faster R-CNN的方法,檢測效果滿足業務場景需求。單字識別採用SENet結構,字符類別支持超過7000箇中英文字符和數字。在單字識別模型中參考identity mapping的設計和MobileNetV2的結構,對Skip Connections和激活函數進行了優化,並在訓練過程中也加入隨機樣本變換,大幅提升文字識別的能力。在2019年4月,爲了驗證在文字識別的算法能力,我們在ICDAR2019-ReCTS文字識別競賽中獲得第二名的成績(準確率與第一名相差0.09%)。

單字檢測識別效果圖

2)文本序列識別

近年來,主流的文本序列識別算法如Aster、DTRT等,可以分解爲文字區域糾正,文字區域特徵提取、序列化編碼圖像特徵和文字特徵解碼四個子任務。文字區域糾正和文字區域特徵提取將變形的文本行糾正爲水平文本行並提取特徵,降低了後續識別算法的識別難度。序列化編碼圖像特徵和文字特徵解碼(Encoder-Decoder的結構)能在利用圖像的紋理特徵進行文字識別的同時,引入較強的語義信息,並利用這種上下文的語義信息來補全識別結果。

通用序列識別結構

在實際應用中,由於被識別的目標主要以自然場景的短中文本爲主,場景文本的幾何畸變、扭曲、模糊程度極爲嚴重。同時希望在一個模型中識別多個方向的文本,因此我們採用的是的TPS-Inception-BiLSTM-Attention結構來進行序列識別。主要結構如下所示:

文本序列識別模型

對於被檢測到的文本行,基於角點進行透視變換,再使用TPS變換獲得水平、豎直方向的文本,按比例縮放長邊到指定大小,並以灰色爲背景padding爲方形圖像。這一預處理方式既保持了輸入圖像語義的完整,同時在訓練和測試階段,圖像可以在方形範圍內自由的旋轉平移,能夠有效的提高彎曲、畸變文本的識別性能。將預處理完成的圖像輸入CNN中提取圖像特徵。再使用BiLSTM編碼成序列特徵,並使用Attention依次解碼獲得預測結果。如下圖所示,這一模型通過注意力機制在不同解碼階段賦予圖像特徵不同的權重,從而隱式表達預測字符與特徵的對齊關係,實現在一個模型中同時預測多個方向文本。文本序列識別模型目前已覆蓋英文、中文一級字庫和常用的繁體字字庫,對於藝術文本、模糊文本具有較好的識別性能。

序列識別效果

3)樣本挖掘&合成

在地圖數據生產業務中經常會在道路標誌牌中發現一些生僻的地點名稱或者在POI牌匾中發現一些不常見的字甚至是繁體字,因此在文字識別效果優化中,除了對於模型的優化外,合理補充缺字、少字的樣本也是非常重要的環節。爲了補充缺字、少字的樣本,我們從真實樣本挖掘和人工樣本合成兩個方向入手,一方面結合我們業務的特點,通過數據庫中已經完成製作的包含生僻字的名稱,反向挖掘出可能出現生僻字的圖像進行人工標註,另一方面,我們利用圖像渲染技術人工合成文字樣本。實際使用中,將真實樣本和人工合成樣本混合使用,大幅提升文字識別能力。

樣本挖掘和合成方案

文字識別技術小結

高德文字識別算法通過對算法結構的打磨,和多識別結果的融合,滿足不同使用場景的現實需要。同時以文字識別爲代表的計算機視覺技術,已廣泛應用於高德數據自動化生產的各個角落,在部分採集場景中,機器已完全代替人工進行數據的自動化生產。POI數據中超過70%的數據都是由機器自動化生成上線,超過90%的道路信息數據通過自動化更新。數據工藝人員的技能極大簡化,大幅節約了培訓成本和支出開銷。

三  未來發展和挑戰

目前高德主要依賴深度學習的方式解決場景文字的識別問題,相對國外地圖數據,國內漢字的基數大,文字結構複雜導致對數據多樣性的要求更高,數據不足成爲主要痛點。另外,圖像的模糊問題往往會影響自動化識別的性能和數據的製作效率,如何識別模糊和對模糊的處理也是高德的研究課題之一。我們分別從數據,模型設計層面闡述如何解決數據不足和模糊識別的問題,以及如何進一步提高文字識別能力。

數據層面

數據問題很重要,在沒有足夠的人力物力標註的情況下,如何自動擴充數據是圖像的一個通用研究課題。其中一個思路是通過數據增廣的方式擴充數據樣本。GoogleDeepMind在CVPR 2019提出AutoAugment的方法, 主要通過用強化學習的方法尋找最佳的數據增廣策略。另一種數據擴充的解決辦法是數據合成,例如阿里巴巴達摩院的SwapText利用風格遷移的方式完成數據生成。

模型層面

模糊文本的識別

模糊通常造成場景識別文本未檢測和無法識別的問題。在學術界超分辨率是解決模糊問題的主要方式之一,TextSR通過SRGAN對文本超分的方式,還原高清文本圖像,解決模糊識別的問題。對比TextSR,首爾大學和馬薩諸塞大學在Better to Follow文中提出通過GAN對特徵的超分辨率方式,沒有直接生成新的圖像而是將超分辨率網絡集成在檢測網絡中,在效果接近的同時,由於其採用End-to-End的模式,計算效率大幅提高。

文字語義理解

通常人在理解複雜文字時會參考一定的語義先驗信息,近年來隨着NLP(Natural Language Processing)技術的發展,使得計算機也擁有獲得語義信息的能力。參考人理解複雜文字的方式,如何利用語義的先驗信息和圖像的關係提高文字識別能力是一個值得研究的課題。例如SEED在CVPR 2020提出將語言模型添加到識別模型中,通過圖像特徵和語義特徵綜合判斷提高文字識別能力。

其他發展

除此之外,從雲到端也是模型發展的一個趨勢,端上化的優勢在於節約資源,主要體現在節約上傳至雲端的流量開銷和雲端服務器的計算壓力。在端上化設計上,針對OCR算法的研究和優化,探索高精度、輕量級的檢測和識別框架,壓縮後模型的大小和速度滿足端上部署的需要,也是我們今後需要研究的一個課題。

參考文獻

1. Liao M et al. Textboxes++: A single-shot oriented scene text detector[J]. IEEE transactions on image processing, 2018.

2. Lyu P , Liao M , Yao C , et al. Mask TextSpotter: An End-to-End Trainable Neural Network for Spotting Text with Arbitrary Shapes[J]. 2018.

3. Zhou X , Yao C , Wen H , et al. EAST: An Efficient and Accurate Scene Text Detector[J]. 2017.

4. Shi B , Bai X , Yao C . An End-to-End Trainable Neural Network for Image-Based Sequence Recognition and Its Application to Scene Text Recognition[J]. ieee transactions on pattern analysis & machine intelligence, 2017, 39(11):2298-2304.

5. Wojna Z , Gorban A N , Lee D S , et al. Attention-Based Extraction of Structured Information from Street View Imagery[C]// 2017 14th IAPR International Conference on Document Analysis and Recognition (ICDAR). IEEE, 2018.

6. Li H , Wang P , Shen C . Towards End-to-end Text Spotting with Convolutional Recurrent Neural Networks[J]. 2017.

相關文章