白翔:複雜開放場景中的文本理解
編者按:李白的《秋浦歌》中有這樣一句詩:「題詩留萬古,綠字錦苔生」,描繪了天執筆、地做紙、苔為墨,揮毫題字的豪邁場景,也展示了自然場景中文本類型的多樣性;而另兩句「古壁剝舊題」,「廢寺失題名」,則暗示了場景雜訊對文本的影響。這幾段描寫共同衍生出了現代計算機視覺領域中的一個挑戰,即複雜開放場景中的文本理解。
本文中,來自華中科技大學的白翔教授,將針對場景中文字類型多樣、場景複雜多變、以及場景雜訊等問題,帶著大家通過深度神經網路,在開放場景中實現準確的文本理解。
本文整理自白翔教授在ICDAR2017的學術報告。
本次報告是關於場景文本理解的。眾所周知,深度學習已在圖像視頻方面顯示了巨大的能力,且在文本分析領域也取得了一些有意義的進步,我也在嘗試將深度學慣用於文本相關工作。
文本理解目前主要有兩個方面的工作,一個是傳統的文本理解,它往往只需識別文檔中的文本;而另一個場景文字理解,需要將照片或視頻中的文字識別出來,它包含文本檢測和文本識別兩個步驟:
首先是對存在文字區域的定位(Text Detection),即找到單詞或文本行的邊界框(bounding box);然後對定位的區域內容進行識別(Text Recognition),即預測邊界框中每一個字元的類標籤。將這兩步合在一起就能達到最終目的:端到端的文本識別。
我的報告分為五個部分。首先,回顧近來用於場景文本理解的深度學習方法;然後介紹我們在場景文本檢測和識別方面的最新工作;最後介紹一些場景文本理解的應用和我對領域趨勢的認識。
背景
相比於文件圖片,自然場景圖片中文字的分布更加稀疏和分散,其具有多方向且多語種的特性。
在2016年以前,大多數場景文本檢測工作有三個步驟:首先,利用手工設計特徵生成候選框;然後,利用二分類卷積神經網路或隨機樹來進行文本/非文本區域的分類,即過濾掉誤檢的候選框;最後,利用CNN來修正區域定位,以得到較精確的回歸結果。
在2016年以後,文本檢測工作逐漸受到深度神經網路的影響,可以大致分為三類:
其一是基於分割的思想,通過分割網路提取文本區域,然後採取一些後處理方法獲取邊界框。代表性的工作是發表在CVPR2016的「Multi-oriented text detection with fully convolutional networks」;
其二是基於候選框的思想,直接用一個神經網路來檢測文本邊界框。代表性的工作是發表在CVPR2016的「Synthetic data for text localization in natural images」;
其三是混合思想,它採用多任務學習的框架,結合了分割和邊界框檢測的方法。代表性的工作是發表在ICCV2017的「Deep Direct Regression for Multi-Oriented Scene Text Detection」。
場景文字識別大致分為兩類思路:其一是從單詞或字元層面入手,設計單詞分類器或字元分類器,將每一個單詞或字元作為一類目標,進行多類別分類任務。
而近來循環神經網路大放異彩,它可以將文本識別看作一個序列標籤問題,並能夠直接輸出標籤序列。因此,第二種思路從序列層面入手,將文本看作一個字元序列,通過設計序列特徵提取器,結合循環神經網路(RNN)和CTC模型(Connectionist temporal classification),將文本序列作為一個整體進行識別。
從「場景文本理解」相關文章在2017年頂會中統計數據來看,超過80%的文章聚焦多方向文字檢測,而對場景文本識別和端到端識別的關注度相對較低,且大多數文章集中於解決英文文本問題。
實際上,拉丁文和非拉丁文是截然不同的。我們在此以英文(拉丁文)和中文(非拉丁文)舉例,前者相鄰單詞間通常有一個空格,而後者沒有明顯的視覺劃分,因此中文的單詞劃分只能藉助語義信息指導。考慮到此差異性,如果設計一個同時適用於拉丁文和非拉丁文的文本理解系統,可採用基於文本行的檢測和序列標籤方法。
區別於普通的物體和英文單詞,文本行具有更大的高寬比,對於普通的卷積核,文本行不能被完全覆蓋。這意味著現有基於深度學習的目標檢測方法並不能很好適用於場景文本檢測。
上表展示了在ICDAR 2013、ICDAR 2015、RCTW 2017數據集上檢測達到的最好F值結果。即便使用更多的訓練數據,中文數據集上的表現也要明顯低於英文數據集,這是因為中文文本行相對英文有更大的比例變化。這裡中文場景文本RCTW數據集來自於我們最近組織的ICDAR(International Conference on Document Analysis and Recognition)比賽,RCTW數據集包含很多長文本數據。
在非拉丁文本檢測中,為了克服長文本行的較大比例變化,我們引入一些策略:首先改變卷積核尺度,比如使用長條形卷積核;然後為了增大感受野範圍,我們採用類似於inception的模塊,組合不同卷積核產生的特徵圖。此外,使用基於部分的模型也是一種很好的選擇,但這就需要把文本行中相鄰的部分進行分組。
場景文字檢測
Proposal-based method
這裡主要介紹兩個場景文本檢測思想,一個是基於候選區域的方法(TextBoxes);另一個是基於部件的方法(SegLink),通過檢測部件後將其連接起來。首先介紹TextBoxes:
在引入我們的演算法之前,首先回顧一下基於CNN的檢測方法:SSD(Single Shot detector )。SSD開始在深度特徵圖上初始化一些默認的方框,這裡我們以4*4和2*2的特徵圖舉例。然後默認框將被分類且被分配一個檢測分值,同時,默認的方框被回歸到一個確切的位置。默認框和回歸結果都是矩形的,用中心點和寬高可以將其表示。
TextBoxes方法採用SSD作為基礎框架,首先在設計默認框(Default Box)時,採取多比例大小的框(包含長條形狀的框)。TextBoxes方法對SSD的卷積核也進行了改進,因為文本行往往比普通物體更長,常用卷積核並不能和文本行很好匹配,因此這裡將1*1或3*3的卷積核更換為適合文字的長條形卷積核。
由上表可以看出,TextBoxes明顯優於SSD並且在ICDAR2013數據集上達到了state-of-the-arts的效果,這個數據集主要由包含水平文本的圖片構成。
而現實圖片中的文本往往不是水平的,也就是說,文本的邊界框是多邊形而不總是矩形的,因此我們添加了一個分支來回歸多邊形坐標,進一步優化TextBoxes以適用於多方向文本。
我們在ICDAR2015數據集上驗證了我們的演算法,實驗表明,TextBoxes++達到了state-of-the-art的性能。
為了進一步擴大卷積神經網路的感受野,我們使用聯結多種特徵圖的inception模塊,舉個例子,上圖的inception模塊整合了3*3、1*5、5*1三種不同卷積核產生的特徵圖。
為了驗證inception模塊的有效性,我們在RCTW 2017的一個數據子集上進行測試,這個數據集主要包含一些長條形文本圖片,結果表明inception 模塊有效提高了長條文本檢測準確率。
我們也在整個RCTW數據集上進行了測試,通過和曾在比賽中獲勝的其他團隊方法進行比較,可以看出我們結合inception block的TextBoxes++方法達到了最高的F值。
Part-based method
接下來介紹基於部件的方法SegLink,它的核心思想是將文本行分解成兩種可檢測的元素:定義為部件(segment)和關聯(link)。部件是指文本行的一部分(圖中黃色部分),關聯是指連接兩個相鄰部件的聯繫(圖中綠色短線),被關聯表明其屬於同一單詞或者文本行。 基於segments和links,整個文本行可以通過一個簡單的組合表達出來。因為Segments和Links不涉及感受野問題,所以這個思路可以處理長文本行。
如圖是SegLink的檢測框架圖,我們依舊使用SSD作為基礎框架,採用VGG16檢測模型,通過多層CNN同時檢測segments和links,跨層連接是對不同層的兩個segments的連接,它也是通過計算得到的,因為相鄰的segments可能不會來自同一層。
從在MSRA-TD500和ICDAR2015兩個數據集上的測試結果來看,我們的SegLink方法對方向不確定的文本行和中英混合的文本都有較好的檢測性能。
事實上,SegLink不僅能夠處理長文本行,還可以很好地檢測彎曲排列的文本行。如圖,星巴克的logo字母是彎曲排列的,而SegLink可以靈活地適應它的文本形狀。
場景文字識別
CRNN model
針對場景文字識別,這裡主要講述兩個演算法,針對整齊規則文本的CRNN模型,和針對不規則形文本的RARE模型。首先介紹CRNN:
該網路由三個部分組成:一個CNN網路,一個RNN網路和CTC損失。CNN(卷積神經網路)從輸入圖片提取特徵,然後我們將圖片特徵轉化為特徵序列,作為序列標籤輸入到LSTM中,最後CTC(Connectionist temporal classification) loss將序列標籤轉化為文本。將這三個部分組合從而可以端到端地訓練。
我們將每一個像素寬度圖片的深度特徵看作一幀,通過這種方法,可以從左到右獲得一個幀序列,每一幀對應原始圖像中的局部區域。
針對開放字典數據集,我們的方法在識別精度上達到了當時的state-of-the-arts。CRNN還具備以下優勢:可以端到端訓練;且不受字元標註的約束,這意味著我們可以直接輸入文本行進行訓練和測試;它沒有字典集的限制,因此我們可以將其用於其他序列的識別,比如識別銀行卡上的數字;在模型大小上,它比主流的模型參數減少了40~50倍,更有利於在工業實際場景中落地。
RARE model
對於形狀不規則的文本行,我們提出了RARE(Robust text recognizer with Automatic REctification)模型來解決。
如圖,由於拍攝視角的變化、文字曲形的排列方式等因素影響,自然場景圖片中的文本形狀常常是不規則的,如圖中SVT-Perspective和CUTE80數據集所示,這就給識別造成了極大的困難。CRNN可能對此類情形並不奏效,它是在輸入文本水平的前提下提出來的,因此我們提出了RARE。
我們設計的網路由兩部分組成,空間轉換網路(STN, Spatial Transformer Network)和序列識別網路(Sequence Recognition Network)。其中,STN負責修正輸入圖片,使其圖片中文本呈水平形,SRN負責識別文本。這兩個網路通過反向傳播進行聯合訓練,上圖中的虛線就表示反向傳播。
SRN包含一個編碼器和一個解碼器。編碼器由一個ConvNet和一個Bi-LSTM組成,用來生成特徵序列表達,解碼器是一個基於注意力機制的字元生成器,根據輸入序列循環地產生字元序列,根據每一步的注意力機制來解碼相關內容,上圖展示了SRN在各數據集上的識別精確度。
區別於CRNN模型中的解碼器,我們使用基於注意力機制的模型作為RARE的解碼器。解碼器逐步將一些特徵幀解碼為一個字元,但由於某些幀中的形變,解碼器可能會輸出一些錯誤的識別結果。
在識別之前,我們可以引入一個空間變換網路STN(Spatial Transformer Network)來修正不規則文本圖片。
這裡具體講解一下STN的結構。首先定位網路生成一組基準點C,然後在網格生成器中,從基準點計算TPS變換的參數,在原圖上生成一個採樣網格P,採樣器同時提取網格P和輸入圖片I,以此輸出一個修正後的圖片。
STN的一個特點是其採樣器是可微的,因此只要有一個可微的定位網路和一個可微的網格生成器,STN就可以反向傳播誤差並得以訓練。
網格生成器估計TPS變換的參數,併產生一個採樣網格。如上圖,原圖中基準點是C,修正後圖中定義基準點為C』,網格生成器計算TPS變換的參數T,採樣器將原圖I 修正為I』。上表顯示,相比於單獨使用SRN,添加STN可以大幅度提高識別效果,特別是對於一些有形變的文本數據集。
儘管STN校正有效地提高了識別率,但是對於嚴重彎曲的文本圖片它的性能並不理想。因此,我們用帶有邊界點標註的文本數據作為定位網路的監督信息訓練,實驗表明,識別率有顯著提升。
如圖,是STN對SVT-Perspective和CUTE80兩個數據集中有形變文本的修正結果。
另一個有趣的發現是,將檢測和識別結合起來,可以使得最終檢測的準確率有極大提升。如圖,輸入圖片通過檢測器檢測出來目標區域後,將檢測的區域摳取出來輸進識別器,這種組合使得很多誤檢可以被過濾掉,也就是說最終檢測的性能提升了。
我們對檢測得分和識別得分求取調和平均值,最終從ICDAR2015上的實驗結果看出,這種組合有效提高了文本檢測的效果。
相關應用
結合文本線索的細粒度圖片分類
這裡主要介紹場景文本檢測識別的三方面應用:
1)結合文本線索的細粒度圖片分類;
2)基於數字的行人重識別;
3)從文本識別到行人重識別。
通常,只用圖片直觀的視覺信息是不足以進行細粒度圖像分類的,如上圖,看上去(a)和(b)是類似的,而實際上,(b)和(c)描述的是同一場景,且與(a)大不相同。我們仔細觀察,(b)(c)中分別包含了語義相近的詞「cafe」和「coffee」,這其實可以在圖片僅有微小視覺差異的情況下幫助我們進行細粒度的圖片分類。
自然場景圖片中的文本包含了豐富的語義信息,它與目標或場景有著非常密切的關係。因此,我們將文本表達和深度視覺特徵結合起來,訓練一個全局的深度卷積神經網路。
整個端到端的演算法流程如上圖所示。首先使用一個已有的文本識別框架來提取出文本,然後通過word embedding提取這些文本的特徵,同時,GoogLeNet對輸入圖片提取1024維視覺特徵向量,為了消除文本中的雜訊,我們又添加了一個注意力模型對提取出的文本分配權重,最後將視覺特徵和文本特徵基於一定的權重組合起來,利用多模態融合特徵進行最終的分類。
如上圖所示,圖片中的一些文本不是與圖片表達的內容密切關聯的,它們會對後期分類造成干擾,因此我們使用了一個注意力模型來篩選對分類有幫助的文本。
為了驗證演算法的有效性,我們在兩個數據集上進行了測試,一個是辦公場所建築數據集Con-Text,它包含28種場景,共24,255張圖片。另一個是飲料瓶數據集Drink Bottle,它選自ImageNet數據集,含有20種飲料瓶共18,488張圖片。這兩個數據集圖片都包含了文本,且不同種類間只有很小的視覺差異。
可以看出,添加文本線索後,在Con-Text和Drink Bottle上的識別性能都有大幅度的提高。
如圖可以看出,網路中添加的注意力模型可以過濾掉錯誤的文本,並選擇出與類別更相關的文本。
我們也將學習到的融合特徵用於圖像檢索,如圖,只用視覺信息可能會因為其差別過小引起誤分類,而加入文本信息後,酒瓶圖片檢索的mAP提升了12.8%。
基於數字的行人重識別
在馬拉松比賽中,由於人員龐大、時間持續性長、場景複雜、服裝相似等特性,使用行人重識別或者人臉識別的方法來跟蹤參賽者是非常困難的,考慮到每一位選手有一個獨特的編號,我們試圖從場景文本檢測的角度入手,根據編號進行行人的定位與跟蹤。
如圖,我們提出的方法分為如下幾個步驟:首先使用TextBoxes對輸入圖片進行文本檢測,即定位出文本區域,然後通過CRNN進行文本識別,再將帶搜索文本與識別出的文本庫進行匹配,尋找到該數字文本對應的選手。
我們在自己收集的一個馬拉松數據集上驗證了這個基於號碼牌的行人重識別方法,Marathon數據集包含8706張訓練圖片和1000張測試圖片,經測試行人重識別正確率為85%,從某種程度上講它可以幫助人們進行搜索,還能有效減少搜索時間。
從文本識別到行人重識別
我們發現了一個很有趣的類比思想,將水平文本行看作一個從左到右的序列可以取得很好的識別效果,那麼受此啟發,我們可以將行人看作一個從上到下分塊的序列進行重識別。
我們又進一步探索了LSTM在行人重識別中的作用,發現LSTM可以學到比CNN更加好的特徵,如圖是基於LSTM的模型,添加LSTM後在Market1501上的識別率顯著提升。
我們用上述網路進行行人檢索,由上圖可以直觀地看出,添加LSTM後檢索結果明顯優於以往。這是因為LSTM使用相鄰部分上下文信息豐富了每個人的部分特徵,使得模型更具有判別性。
未來發展趨勢
未來我們將更加著眼於以下幾個方面:不規則文本的檢測,比如針對彎曲的或者多視角下的文本行;端到端的多語言文本識別;半監督或弱監督的文本檢測識別;基於生成對抗網路的文本圖像合成;針對文本識別或自然語言處理的框架;場景文本和圖像/視頻的結合,以應用到更多的實際場景中去。
TAG:深度學習大講堂 |