近日,曠視科技雲服務事業部(CSG)演算法負責人姚聰博士應邀在雷鋒網 AI 研習社做了一次主題為自然場景文字檢測與識別的線上報告:《Scene Text Detection and Recognition: The Deep Learning Era》,其內容共分為 5個部分:
Background and Overview
Recent Advances and Representative Algorithms
Future Trends and Potential Directions
Typical Applications
Conclusion
第 1 部分給出了文字檢測與識別的定義,為什麼在視覺識別中如此重要,以及當下深度學習時代語境中,面臨的 3 個顯性挑戰;第 2 部分把當下的文字檢測與識別技術歸納為 5 個類別,並分別給出了代表性成果與演算法例項,反映出該領域的最新進展;第 3 部分透過分析文字檢測與識別技術發展趨勢及潛在方向提出了 4 個未來機遇(挑戰);第 4 部分舉出了一些典型的行業落地應用;第 5 部分則做了最後總結。
以下是主要內容(文末附有影片)。
1. Background and Overview
視覺識別中,文字為什麼如此重要?有兩個原因,分別是作為載體的文字和作為線索的文字。
▊文字作為載體
首先,文字並非自然產生,而是人類的創造物,天生包含著豐富而準確的高層語義資訊,傳達人類的思想和情感,這是一般的影像或者影片資訊很難直接描述的,但是文字可以做到。比如《史記》,透過它可以瞭解兩千年前的某個歷史事件相關的人物、時間和地點。
▊文字作為線索
其次,文字是視覺識別的重要線索。如上所示,這是一張街景影像,有建築物,有植物;如果進一步提問,影像拍攝地點是哪兒,光靠以上資訊無從得知,而移除中間的灰色掩膜,會發現這是“中關村廣場購物中心”。藉助文字資訊可以精確獲知影像的拍攝地點。由此可知,文字與其他視覺線索(邊緣、顏色、紋理等)有著非常強的互補作用,透過文字檢測和識別,可以獲得更豐富、準確的資訊。
▊定義
那麼,從研究角度講,如何界定文字檢測與識別問題呢?
簡單來講,文字檢測是指透過演算法計算判斷自然場景中在單詞或者文字行層面是否含有文字例項(如果有,則標出位置)的過程。
文字識別則更進一步,它在文字檢測基礎之上把文字區域轉化為計算機可讀取和編輯的符號的過程。
▊挑戰
目前,文字檢測與識別面臨諸多挑戰。首先,它與傳統 OCR(光學字元識別) 有所區別,因自然場景之中文字變化非常之多,如下所示,左邊是一張典型的掃描文件影像,右邊則是自然場景中採集的多張影像。
透過對比可以發現,左圖的背景非常乾淨,右圖的背景非常雜亂;左邊字型非常規整,右邊則千變萬化 ;左邊佈局較為平整統一 ,右邊則多元複雜,缺乏規範;左邊顏色單調,右邊顏色種類繁多。
總體而言,文字檢測與識別存在三個方面的重大挑戰:
1)場景文字的多樣性。如文字的顏色、大小、方向、語言、字型等。
2)影像背景的干擾。日常生活中隨處可見的訊號燈、指示標、柵欄、屋頂、窗戶、磚塊、花草等區域性來看和文字有一定相似性,這為文字檢測與識別過程帶來很大干擾。
3)第三個挑戰來自影像本身的成像過程。比如拍照包含文字的影像存在噪聲、模糊、非均勻光照(強反光、陰影)、低解析度、區域性遮擋等問題,對演算法的檢測和識別也是是非常大的挑戰。
2. Recent Advances and Representative Algorithms
正是由於存在上述多個挑戰,研究者嘗試從各種角度解決上述問題。這次探討的主題是深度學習時代文字檢測與識別領域的最新進展。這些進展被分成 5 個類別:1)從語義分割和目標檢測方法中汲取靈感,2)更簡化的 Pipeline,3)處理任意形態文字,4)使用 Attention,5)使用合成資料。
▊第一個分類:從語義分割和目標檢測方法中汲取靈感
自然場景文字檢測與識別技術從語義分割和目標檢測方法中汲取靈感而產生的代表性工作主要有:1)Holistic Multi-Channel Prediction,2)TextBoxes,3)Rotation Proposals,4)Corner Localization and Region Segmentation。
深度學習方法相較於相較於傳統方法而言,會從通用物體語義分割和目標檢測演算法中汲取靈感。比如科曠視科技 2015 年有一個工作,稱之為 Holistic Multi-Channel Prediction。
區別於傳統文字檢測方法,Holistic Multi-Channel Prediction 把文字檢測問題轉變為一個語義分割問題,透過對全圖進行語義分割來獲取文字區域,如上所示,左邊為原圖,右邊為已預測的掩膜圖,文字區域高亮,背景區域則被抑制。
Holistic Multi-Channel Prediction 的輸入並非區域性區域,而是整張影像;另外,無論從概念還是功能上來講,該方法皆區別於滑窗或者連通分量方法。
具體來講,Holistic Multi-Channel Prediction 會輸出全域性的三種畫素級預測,包括影像區域、字元位置和相鄰字元間的連線方向。透過這三種資訊,輸出最右邊的結果圖,如紅色矩形部分所示。這一方法的好處是可以同時處理水平、多方向、彎曲文字。
另一種方法是 TextBoxes,它受到單步的通用物體檢測器 SSD 啟發,其本質是把文字作為一種特殊的目標,透過 SSD 對其進行建模。這裡的基礎模型是 VGG-16,卷積層輸出目標文字是否存在以及長寬、大小、方向等資訊,同時取得了很高的精度及效率。
目標檢測領域還存在兩步的檢測器,比如 Faster R-CNN。第三種文字檢測方法稱之為Rotation Proposals,它屬於兩步檢測的範疇,主要借鑑了 Faster R-CNN,在框架保持一致之時,又有所修改,以更好地檢測場景文字,這是因為文字和通用目標有所區別,比如有劇烈的長寬比變化、旋轉方向。
Rotation Proposals 主要做兩件事:第一是擴充錨點,增加方向,改變長寬比變化;第二是 RRoI 池化層,處理各種旋轉情況,分離出規整的特徵圖,方便後續操作。
曠視科技 CVPR 2018 收錄論文《Multi-Oriented Scene Text Detection via Corner Localization and Region Segmentation》提出了一種複合的文字檢測方法——Corner Localization and Region Segmentation(角點檢測和區域分割),它最大亮點是綜合利用目標分割與語義分割兩種方法。
為什麼提出這種方法?這源於實際場景文字例項有時相鄰較近甚至粘連,分割和檢測變得無濟於事。這時透過兩個分支進行處理,一個分支定位文字區域的角點,另一個分支進行文字區域分割,結合這兩種資訊文字輸出文字位置和置信度。
如上所示,Corner Localization and Region Segmentation 基礎模型是 VGG-16,其上新增大量的卷積層,以提取特徵,再往上是兩個分支,1)角點檢測分支透過 SSD 定位角點,透過網路提取角點,最終得到角點位置;2)文字區域分割分支則利用基於 R-FCN 的位置敏感分割,生成不同相對位置的分割圖,得到更準確的文字檢測結果。
▊第二個分類:更簡化的 Pipeline
深度學習時代,幾乎所有的文字檢測與識別方法都會使用更加簡化、更加高效的 Pipelines。這是要分享的第二個類方法,其代表性工作是 EAST。
曠視科技在 CVPR 2017 收錄論文《EAST:An Efficient and Accurate Scene Text Detector》提出一種高度簡化的 Pipeline 結構。如上圖所示,最左側是輸入影像,最右側是演算法輸出結果,中間則是處理步驟, EAST (最下面)把 Pipeline 精簡為中間兩步,其中一步是透過多通道 FCN 進行幾何資訊預測以及前景、背景預測;另外一步是 NMS,最終得到多方向文字檢測結果。
那麼如何實現 EAST 呢?很簡單,透過單一網路刻畫並建模位置、尺度、方向等文字的主要資訊,同時加上多個損失函式,即所謂的多工訓練。如上所示,再借助對幾何資訊的預測即可得到文字檢測的結果。
這種方法的好處主要體現在兩個方面:1)精度方面,允許端到端的訓練和最佳化,2)效率方面,剔除了中間冗餘的處理步驟。
上圖是多種方法的應用對比,橫軸是速度,縱軸是精度,紅點是 EAST 的兩個變體,可以看到其在精度和速度上都優於傳統方法,且在精度和速度質檢取得了極佳的平衡。EAST 已成為為行業標準方法,且程式碼開源,有趣的是,這是由熱心網友 @argman 完成的(曠視貢獻了部分程式碼)有興趣的童鞋可以嘗試;如果只想使用不想看原始碼,目前 EAST 也作為官方模組,整合到最新版 OpenCV 之中。
▊第三個分類:處理任意形態文字
要處理現實世界的文字還面臨著一個挑戰:文字形態的多變性。文字檢測與識別演算法要如何應對呢?曠視科技為此給出了兩個代表性方案:1) TextSnake,2)Mask TextSpotter。
曠視科技 ECCV 2018 收錄論文《TextSnake: A Flexible Representation for Detecting Textf Abies》提出一種全新而靈活的表徵,稱之為 TextSnake。
如上所示,對於彎曲的文字區域,圖 a 使用了傳統的座標對齊的矩形,包含了大量不需要的背景內容;圖 b 將矩形框旋轉,背景內容減少,適應力也隨之變強;圖 c 使用了不規則四邊形進行包圍,效果依然不理想。由此可以得出結論,四邊形無法很好地包圍彎曲的文字區域。
為了更精確地處理這種情況,圖 d 使用了 TextSnake 方法,用一系列圓盤覆蓋文字區域,更好地適應文字的變化,包括尺度、方向、形變等等。
TextSnake 原理示意圖如上,黃色區域代表不規則的彎曲文字區域,綠線代表文字區域的中心線,紅點代表覆蓋文字區域的圓盤中心點,用 c 表示,圓盤半徑用 r 表示,方向資訊用 θ 表示。由此,文字例項可建模為一系列以對稱軸為中心的有序重疊的圓盤。由於文字的尺度和方向是變化的,圓盤也有著可變的半徑和方向,隨文字變化而變化。這種靈活的表示方式可以精確適應各種形態的文字,比如多方向、彎曲文字。
有了 TextSnake 之後,如何設計一個計算模型完成文字檢測呢?其實很簡單,即幾何屬性定義完成,透過 FCN 輸出多個通道的預測結果,並進行整合,分開前景、背景,找出中心線, 根據其半徑和方向即可恢復出文字區域。
曠視科技 ECCV 2018 收錄論文《Mask TextSpotter: An End-to-End Trainable Neural Network for Spotting Text with Arbitrary Shapes》完成了另外一項工作,在 Mask R-CNN 啟發之下提出一種新模型 Mask TextSpotter,透過端到端的方式同時實現了文字檢測和識別。Mask TextSpotter 整體框架基於 Mask R-CNN 並進行改造,同樣也把文字當作一種特殊目標處理。
具體細節如上所示,左邊是輸入影像,右邊是輸出結果。RPN 做文字候選區域的產生;Fast R-CNN 對候選區域打分並回歸其座標;另外還有一個掩膜分支,同時對字元做畫素級的分割和識別。
這有別於傳統方法的識別模組基於 RNN 序列進行建模,或者藉助 CTC loss 進行計算,Mask TextSpotter 則直接做畫素級分割,對每一畫素進行分類,最後連線所有結果完成識別。
▊第四個分類:借鑑 Attention
由於 NLP 領域興起的 Attention 模型的重大影響,其也進入了文字檢測與識別的視野,激發出一些新想法,代表性成果有:1)CRNN,2)ASTER,3)FAN。
在講 Attention 之前,首先講一下曠視科技 TPAMI 2017 的一個工作,稱之為 CRNN,其底層用 CNN 提取特徵,中層用 RNN 進行序列建模,上層用 CTC loss 對目標進行最佳化。它是一個端到端可訓練的文字識別結構,但並未使用 Attention。目前,CRNN 已成長為該領域的一個標準方法,在 GitHub 上已開源。
隨後,曠視科技在 TPAMI 2018 提出一個稱之為 ASTER 的解決方案。由於文字存在傾斜、彎曲等問題,在識別階段,檢測也不一定是最理想的,這時需要分兩步做識別。第一步是給定一張輸入影像,把其中的文字矯正到一個有利於識別的狀態;第二步則是進行識別。這裡需強調的是矯正過程是網路自動學習的,並不存在標註。
那麼,如上所示,ASTER 主要有矯正和識別兩個模組。矯正模組在 STN 的基礎上做了最佳化,使得控制點的預測更精確;識別模組則是一個經典的 CNN+RNN 同時帶有 Attention 的結構,可以對序列進行預測。
當然,Attention 本身也存在一些問題,比如 ICCV 2017 收錄論文《Focusing Attention: Towards Accurate Text Recognition in Natural Images》提出了 FAN 這一工作。
某些情況下,Attention 預測不一定準確,如圖 a 中 Attention 把後兩個點定位在 “K” 上,造成 Attention 點發生重合,進而導致定位不準確與漂移。FAN 方法透過約束 Attention 點位置,將其鎖定為目標文字中心,這樣就避免了重合、漂移等情況,Attention 區域變得更整齊,最終識別效果也得到了提升。
▊第五個分類:使用合成資料
深度學習時代,對資料的需求量大增,大量資料有利於訓練出優秀模型。因此,深度學習時代的文字檢測和識別方法幾乎都會採用合成資料,代表性資料集有 SynthText。
SynthText 是一個經典的透過合成方式產生的場景文字資料集,已在文字檢測和識別領域獲得廣泛應用。其主要思路是先採集幾千張真實場景影像,然後往上貼字,如上圖所示。
具體而言,給定一些自然場景影像之後,SynthText 使用基礎演算法估計幾何資訊以及區域分割的結果,比如估計深度,透過底層演算法分割連通的區域,同時找到一些平滑的區域放置文字,最後生成包含文字的影像資料集。
3. Future Trends and Potential Directions
根據自然場景文字檢測與識別技術發展的現狀,透過分析其未來趨勢及潛在的研究方向,並結合深度學習時代的語境,曠視科技把這一技術的未來挑戰歸結為 4 個方面:1)多語言文字檢測與識別,2)讀取任意形態的文字,3)文字影像合成,4)模型魯棒性。
▊多語言文字檢測與識別
針對較為整齊的文字區域,目前文字檢測技術在使用上問題不大,但是一旦涉及文字識別,超過兩百種語言文字,不同的書寫方式,千差萬別的結構、順序,帶來了重重阻礙,而針對每一種文字都訓練一種模型顯然很不合理。因此,是否可以找到一種通用方法處理不同的文字型別呢?這是未來挑戰之一。
▊讀取任意形態的文字
當前文字的形態多種多樣,面對不同的顏色、字型、組合帶來的不同程度的困難,文字檢測與識別技術目前的表現並不是令人很滿意。那麼,是否存在一種通用模型勝任任意形態的文字呢?這是未來挑戰之二。
▊文字影像合成雖然合成場景文字資料集非常有利於模型訓練,但是由於該技術目前尚不成熟,生成影像不夠真實,影像多樣性欠缺,最終導致資料集質量不高,訓練提升有限。那麼,如何才能合成更加真實豐富的文字影像呢?這是未來挑戰之三。
▊模型魯棒性
模型魯棒性是一個基礎問題,也是解決問題的關鍵。曠視科技過去曾針對輸入影像的邊界進行畫素擾動,結果發現輸出發生較大偏移,甚完全錯誤。這也意味著現有識別模型對微小擾動(如小偏移、旋轉、形變)非常敏感。那麼,如何增強模型魯棒性呢?這是未來挑戰之四。
4. Typical Applications
在深度學習助力之下,文字檢測與識別技術獲得躍進式發展,在相關場景和行業獲得廣泛應用,比如曠視科技人工智慧開放平臺 Face++ 提供卡片、證件文字識別 API 呼叫服務,給出卡片、證件、單據的通用框架解決方案 TemplateOCR。
▊卡片、證件文字識別
卡片、證件的文字識別一直是熱門的行業需求,曠視科技 Face++ 官網提供了 API 可供使用者呼叫,使用者只需上傳圖片,系統便會實時生成結果。目前系統支援身份證、駕駛證、行駛證、銀行卡、車牌號等文字識別。
▊TemplateOCR
隨著時代發展,社會職能部門分工細化、手續辦理日益複雜,證件、卡片、合同、單據結構讓人眼花繚亂,如何處理數百種文字框架的識別任務呢?如果每個文字框架訓練一種模型會耗費巨大的人力、物力、財力,顯然並不划算。
TemplateOCR 是曠視給出的解決方案。這是一種用於識別結構化卡片、證件、單據的通用框架,只需三步操作。第一步是上傳清晰的圖片作為模板,第二步是指定需要識別的文字區域(不需要指定參考區域),然後即可開始識別( API 即時生成)。該方法不僅省去了針對不同框架的文字進行模型訓練的麻煩,也使識別過程變得更加快速和準確。
5. Conclusion
目前來看,深度學習時代之下的場景文字檢測與識別技術依然存在巨大挑戰,其主要體現在以下 3 個方面:1)文字的差異性,存在著語言、字型、方向、排列等各種各樣的形態;2)背景的複雜性,比如幾乎無法區分的元素(標誌、籬笆、牆磚、草地等);3)干擾的多樣性,諸如噪聲、模糊、失真、低解析度、光照不均勻、部分遮擋等情況。
相應而言,針對上述挑戰,文字檢測與識別具體研究有著以下 4 個技術趨勢:1)設計更強大的模型;2)識別多方向、彎曲文字;3)識別多語言文字;4)合成更豐富逼真的資料集。
Talk 影片回放連結:http://www.mooc.ai/open/course/605
本期 R Talker
姚聰,於華中科技大學電信學院獲得學士和博士學位,其主要研究方向為自然場景文字檢測和識別。在國際重要期刊IEEE TPAMI, IEEE TIP以及頂級會議CVPR、ICCV和ECCV等上發表論文十餘篇。目前在曠視科技(Face++)擔任雲服務業務演算法負責人,主持自然場景OCR、人臉活體檢測等技術的研發工作,為FaceID網際網路身份驗證服務、Face++開放平臺等提供演算法支援。