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