論文閱讀:Synthetic Data for Text Localisation in Natural Images

本文轉載自:

http://blog.csdn.net/u010167269/article/details/52389676


Preface

重新把注意力放到了 自然場景文本檢測與識別 上了。已經從這塊方向離開了一年多了。再回來,已經物是人非。都不像以前那麼玩了,論文趕緊看起來。

上次閱讀完 Reading Text in the Wild with Convolutional Neural Networks 之後,文中提到了作者自己生成了 Synthetic Data(人工合成自然場景文本數據)。我想這數據是如何生成的呢?恰好看見 VGG 實驗室這篇 CVPR2016 的 Paper:Synthetic Data for Text Localisation in Natural Images

這篇 Paper 講的正是如何生成這些數據;並且提出了 Fully-Convolutional Regression Network ( FCRN ),在 ICDAR 2013 上的 F-measure 達到了 84.2%;同時,本文比較了 FCRN 與 YOLO 及其他 end-to-end object detection

作者已經公佈了這篇文章的源碼:https://github.com/ankush-me/SynthText,VGG 組果然業內良心。


Introduction

現在較爲 state-of-art 的文字檢測識別系統,結合了兩個簡單但非常有用的 idea:

  • 將原先先對單個字母進行檢測識別,再組合成單詞的 pipeline,改變爲 將對單個字母、單個字母的檢測識別過程,改變爲分類過程,即用一個分類器直接對文字區域進行分類,類別即爲文字的整個單詞
  • 因爲這樣的分類器,分的類別巨大,因此需要很多很多的訓練樣本。因此,可以人工生成訓練樣本(Synthetic Data)。即將一個單詞直接“粘”在自然場景圖像上(以一定的方式、規則)。這樣就可以產生很多很多的 training data。

上面的這兩點 idea,在上一篇 Reading Text in the Wild with Convolutional Neural Networks 中都有體現。

其實不光是上一篇,還有 ICLR 2014 的 Multi-digit Number Recognition from Street View Imagery using Deep Convolutional Neural Networks 這篇,就將單字母的識別過程轉變爲 classifiy 問題。

在 NIPS 2014 的 Synthetic Data and Artificial Neural Networks for Natural Scene Text Recognition 這篇;以及 ICPR 2012 的 End-to-End Text Recognition with Convolutional Neural Networks 這篇,就用到了 Synthetic Data。

雖然 Reading Text in the Wild with Convolutional Neural Networks 這篇將文字的識別過程轉變成 classify的過程。但 recognition 之前 text region proposals 生成的 pipeline,卻十分得繁瑣、不優雅。從我之前的這篇博文也可以看到,在 detection 的 pipeline 中,結合了 HoGEdgeBoxesAggregate Channel Features,在通過這些特徵檢測生成 text region proposals 之後,纔在 recognition 中用到了 CNN 分類。

可以看到,上面的過程有兩個缺點:

  • 有個 bottleneck,即文字區域的 detection 性能將決定最後 recognition 的質量,以及整體系統檢測識別的質量。如文字區域的 recall 通過結合 EdgeBoxes、ACF features 達到了 98%,然而,整個系統的 Fscore 卻只有 69%,因爲有許多錯誤的、缺失的 word region proposals
  • 整個的 pipeline 十分的繁瑣、慢,同時一點也不優雅。從我上篇博客的筆記就可以看出,用了好多的特徵,又用了 random forest 分類器,很複雜。

本文同樣出自 VGG,也是對上一篇 Reading Text in the Wild with Convolutional Neural Networks 中 word detection 的 complementary。本文做了兩點貢獻:

  • 提出了一種新的方法,使用現成的 deep learning、segmentation 技術將 word 排列進自然場景圖片中,能將 word 很自然的融入進自然場景圖片中。這樣,自動生成 synthetic data,本文稱這種數據集爲SynthText in the Wild,如 Figure 2它可以用於訓練自然場景文字的 word detector。而 Reading Text in the Wild with Convolutional Neural Networks 這篇最後自動生成的文字,不是很自然的融進圖片中,只能用作最後的 recognition 的訓練數據。

  • 本文的第二個貢獻點在於提出了一種 word detection CNN網絡,叫做 fully-convolutional regression network ( FCRN )。類似又不同於於 Jonathan Long 提出的 Fully Convolutional Networks,本文最後prediction 的結果不僅僅是每個像素的類別(文字、非文字) ,而是 框出了文字區域的 bounding box的 parameters。這個 idea 借鑑於 You only look once: Unified, real-time object detection,但本文在其中使用了 convolutional regressor,大幅提升了性能。

這裏寫圖片描述


Object Detection with CNNs

本文的 text detection 過程基於兩個工作:

CNN 特徵用於物體的類別檢測要追溯於 Girshick 等人的 Region-CNN(R-CNN),其方法結合了 region proposals 與 CNN 特徵,YOLO 也是將 CNN 特徵用於物體類別檢測工作的其中一支。

總的來說,R-CNN 架構有三個階段: 
(1)生成 object proposals 
(2)提取每個 proposal 的 CNN feature map 
(3)使用 class specific SVMs 過濾 proposals

這篇 Reading Text in the Wild with Convolutional Neural Networks 使用了類似的 pipeline:EdgeBox + ACF features 得到 region proposals,再用 HoG 特徵訓練 Random Forests 進行 filtering,最後再 Bounding Box Regression 得到最後較爲準確的文字 region region proposals

在 R-CNN 中,提取,每個 proposal 的 feature map 是計算瓶頸(proposal的region有幾千個,多數都是互相重疊,重疊部分會被多次重複提取feature)。在 Girshick 隨後發佈的 Fast R-CNN 中,將 proposal 的 region 映射到 CNN 的最後一層 conv layer 的 feature map 上,這樣一張圖片只需要提取一次 feature,大大提高了速度,也由於流程的整合以及其他原因,在 VOC 2007 上的 mAP 也提高到了 68% ,文章中說速度加速了 100×有餘;同時,將上面 3 個階段的第 2、第 3 個階段合併爲一個多任務學習問題(Multi-task learning problem)

但這類方法,在生成 region proposals 階段又成爲了新的 bottleneck。Lenc 等人在 BMVC 2015 的 R-CNN minus R 中取消了 region proposals 的生成階段。Ren 等人在 2016 NIPS 的 Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 中,直接從一組固定的 proposals 開始,但隨後用Region Proposal Network 進行調增修繕。 

Synthetic Data

人工合成數據有個好處,它可以準確知道文字的 label 信息,以及位置,不需要人工去標註。Wang 等人 ICPR 2012 的 End-to-End Text Recognition with Convolutional Neural Networks ,以及 Jaderberg 等人 NIPS Workshop on Deep Learning 2012 的 Synthetic Data and Artificial Neural Networks for Natural Scene Text Recognition ,就用了 Synthetic Image 去訓練 CNN word recognition 網絡。

文中還提及了其他用 Synthetic Data 來完成工作的文章。這裏就不一一列舉。 

Augmenting Signle Images

這部分提及了,很多將 object 嵌入到其他場景種,達到 photo-realistic 的效果;並且,從單張圖像推斷 3D 結構的工作。 

Synthetic Text in the Wild

訓練一個 CNN 模型,需要大量的標註數據,如 AlexNet,因爲有 ImageNet 這樣級別的數據才能完成訓練。

而諸如 ICDAR 這類數據集,其訓練數據量很小,統計如下: 

這裏寫圖片描述

這樣小的樣本集,不僅不能訓練 CNN,也不合適用來代表文字在自然場景下的所有變化情況:字體、顏色、大小、位置。因此,如果能夠自然的人工合成標註數據,那麼我們便可以得到大量的自然場景文本標註數據。這部分,本文介紹的是如何自然的合成人工自然場景文本數據。

本文提出的人工合成數據引擎有以下優點:

  • Realistic,文字能夠自然的融合到自然場景圖片中
  • automated
  • fast,不需要監督就能快速生成大量的樣本數據

生成的 pipeline 如下:

這裏寫圖片描述


Text and Image Sources

Synthetic Data 的生成,要先獲取文本(word) 、背景圖像。

文本從 Newsgroup 20 dataset 中得到,用 3 種方式採樣獲取:

  • words,以 空格字符 分隔;
  • lines,以 換行字符 定義;
  • paragraph

背景圖像的獲取是通過 Google Image Search ,不同的 objects/scenes、不同的 indoor/outdoor、不同的 natural/artificial。

爲了保證圖像中的所有文字都有標註,因此,所獲取的背景圖像中,不能包含有文字。因此在檢索圖像時,要避免可能會檢索出文字的關鍵詞,如 street-sign,menu 等等。如果檢索出帶有文字的圖像,人工刪除之。 

Segmentation and Geometry Estimation

在真實的自然場景圖像中,文字是幾乎不會跨越兩種不同的區域的。因此,本文先對剛剛搜索到的自然背景圖像,根據 local colour and texture 進行分割,分割成連續的區域,再將文字嵌入其中某一塊區域。

在分割時,採用的是 Contour detection and hierarchical image segmentation 中的 gPb-UCM 算法(閾值: 0.11),採用 Multiscale combinatorial grouping 的實現。

自然場景中的文字一般都是在背景圖像的表面上的。爲了得到相同的效果,文字要根據 local surface normal去“放置”文本,具體爲:本文先通過 Deep convolutional neural fields for depth estimation from a single image 提出的 CNN 模型,獲取像素級別的深度圖像。再用 RANSAC 去擬合出垂直於法向量的平面。然後就可以將文本安置在平面上,這樣文本就較爲自然的融入背景圖像中了。

文本將以如下的步驟安置在分割的區域之中的: 
(1)首先,使用估計出的平面法線(estimated plane normal),將圖像區域輪廓彎曲成 fronto-parallel view,形成一個 fronto-parallel region 
(2)然後,用一個矩形去擬合這個 fronto-parallel region 
(3)最後,文本與上面矩形的較大邊(width)對齊

當把多文本放入同一個 region 中時,要檢查文本與文本之間之後有重疊,即一個文本不能重疊放置在之前的文本上;要注意,也不是所有的分割的 region 都適合嵌入文本:這樣的 region 不能太小、region 的長寬比不能太過於懸殊,都要去除掉,此外,紋理太多的 region 也不適合嵌入文字,這裏的紋理的多少,是由 RGB 圖像的三階導數的 strength 來衡量的。

我們在這裏的處理過程中,用了 Deep convolutional neural fields for depth estimation from a single image的 CNN 模型來估計一張自然圖像其對應的深度圖像。但這裏很容易飯的一個錯誤就是直接用 RGBD 數據來做,都省掉了 CNN 估計深度的過程。文本在這裏用 CNN 來估計一個深度圖像,而不是直接用 RGBD 的準確的深度數據,是因爲以下幾點:

  • 用了 CNN 模型來估計深度圖像,就可以處理所有的 RGBD 圖像了,而不僅僅是 RGBD 數據庫裏的 RGB 圖像。

  • 現在公開可獲取的 RGBD 數據集,如 NYUD v2B3DO (Berkeley 3D Object Dataset)SintelMake3D 在本文的任務中有一些缺陷: 
    (1)數據量太少(NYUD v2 數據集中只有 1500 張圖像,Make3D 中只有 400 幀,B3DO 以及 Sintel 中也之有少量的視頻) 
    (2)分辨率較低,有運動模糊 
    (3)NYUD v2、B3DO 只有室內自然場景數據 
    (4)Sintel 的視頻數據中,場景變化也非常有限 

Text Rendering and Image Composition

一旦需要被嵌入的文本的位置、方向定下來之後,就需要將文本賦予一種顏色。怎麼賦予顏色,本文是從 IIIT5K Word Dataset 中裁剪下來的文字圖像中學習得到的。

每一張裁剪的文字圖像中的像素,用 K-means 將其分爲兩個集合,形成一個顏色對,一個集合是文字的顏色,一個集合是背景的顏色。

每當要去渲染要嵌入的文字的顏色時,與當前背景顏色最接近的文本顏色,即是我們需要渲染的顏色。思想很簡單,最後用在 Lab colour space 中用 L2-norm 來度量顏色的相似度。

在渲染中,大約 20% 的文本需要加邊框,邊框的顏色選擇,要麼與前景的顏色相同,只不過顏色值增加了,或者減小了;要麼選擇前景背景顏色的均值。

爲了保證人造數據的 illumination gradient,我們在文本上使用 Poisson 圖像處理 ,代碼文本使用了 Raskar 的實現:Fast Poisson Image Editing Code。 

A Fast Text Detection Network

這部分介紹了本文所採用的文字區域檢測的 CNN 模型結構。

用 x 代表一張圖像,最常見的基於 CNN 的檢測方法,就是先提出一些圖像 region,這些 region 可能包含有待檢測的目標,用一個 CNN 模型 c=ϕ(cropR(x)){0,1},來評判 region 是不是待檢測的目標。

這種方法,即是大名鼎鼎的 R-CNN 所採用的策略。但因爲每張圖像都要評判數以千計的 region,R-CNN 的速度很慢,因爲 R-CNN 中需要重複計算大量 region proposals 的 score,所以針對這些重複計算,作者提出了 Fast R-CNN 以及後續的 Faster R-CNN,這是後話。

一個更快的檢測方法,構建一個固定域的 predictors (c,p)=ϕuv(x),其中每一個專門用於預測一個 object 周圍特定圖像位置 (u,v) 的: cR,以及 p=(xu,yv,w,h)。這裏的 pose parameter 有兩個:(x,y)(w,h)。 (x,y) 代表了 bounding box 的 location,(w,h) 代表了 bounding box 的大小。每一個 predictor ϕuv 都在 (x,y)Bρ(u,v) 內 predict objects。

上面的構造聽起來很抽象,但以 Implicit Shape Model ( ISM ),以及 Hough voting 的實現爲例,就很平常了。

本文受到 Jonathan Long et al. Fully Convolutional NetworksJoseph Redmon et al. You only look once: Unified, real-time object detection 工作的啓發,本文提出了一個極端的 Hough voting 。在 ISM、Hough voting 中,獨立個體的預測結果通過 image scheme、voting scheme 被彙總起來。YOLO 與之類似,不過沒有直接的用個體的 prediction 結果。

YOLO 與 Hough voting 有很大的不同:Hough voting predictors ϕuv(x) 具有局部平移不變性,而 YOLO 不具有,有兩點原因: 
(1) YOLO 中的每一個 predictor 可以從全局圖像中採集信息,而不僅僅是以 (u,v) 爲中心的 patch; 
(2)每個 (u,v) 點上,YOLO 的 predictor 函數不相同。即當位置 (u,v)(u,v) 不同時,predictor 函數 ϕuvϕu,v 不相同。

YOLO 方法在 PASCAL 或者 ImageNet 上檢測物體時,可以從獲取背景信息。但是本文發現,對於文本這樣又小、多變的情況,並不適用。本文在這裏提出了一種介乎於 YOLO、Hough voting 之間的方法。

YOLO 中,每一個 detector ϕuv(x) 仍直接 predict 物體的存在與否,但是不需要經過耗時的 voting 累加過程了。但是在 Hough voting 中,detectors 是局部平移不變的,共享參數。

我們把這種局部的,平移不變的 predictors 作爲 CNN 網裏最後一層的輸出,於是便得到了 fully-convolutional regression network ( FCRN )。 

Architecture

FCRN 的頭幾層 layer,計算 text-specific image features。之後上面的網絡層,就是 dense regression network

Single-scale features

本文的 CNN 結構受啓發於 VGG-16,裏面包含了又小、又多的 filters。但是,在本文的結構中,發現即使沒那麼多的 filters,結果也一樣好,同時也更有效率。網絡結構如下:

layers params
Convolution - ReLU num_filters: 64, kernel size: 5×5, stride: 1, padding: 2
Max Pooling kernel size: 2×2
Convolution - ReLU num_filters: 128, kernel size: 5×5, stride: 1, padding: 2
Max Pooling kernel size: 2×2
Convolution - ReLU num_filters: 128, kernel size: 3×3, stride: 1, padding: 1
Convolution - ReLU num_filters: 128, kernel size: 3×3, stride: 1, padding: 1
Max Pooling kernel size: 2×2
Convolution - ReLU num_filters: 256, kernel size: 3×3, stride: 1, padding: 1
Convolution - ReLU num_filters: 256, kernel size: 3×3, stride: 1, padding: 1
Max Pooling kernel size: 2×2
Convolution - ReLU num_filters: 512, kernel size: 3×3, stride: 1, padding: 1
Convolution - ReLU num_filters: 512, kernel size: 3×3, stride: 1, padding: 1
Convolution - ReLU num_filters: 512, kernel size: 5×5, stride: 1, padding: 2

最後得到輸入圖像的 feature map。 

Class and bounding box prediction

從上面的結構可以看出,由於有 4 個 Max Pooling 層,其最後的 feature map 中,每一個 feature 包含了 16×16 pixels 範圍內的特徵。每 16×16 像素範圍 feature,有 512 個 feature channel: ϕfuv(x)

當有了上面的 features:ϕfuv(x) 之後,現在可以構建 dense text predictors:ϕux(x)=ϕruvϕf(x),這些text predictors 被施以 7 個 5×5 大小的 linear filters:ϕruv,每一個要 regressing 7 個數: 
(1)物體存在的 confidence:c 
(2)pose parameters:p=(xu,yv,w,h,cosθ,sinθ),其中 θ 是 bounding box rotation

因此,對於輸入的一張圖像:H×W,我們得到一系列柵格化的 predictorsHΔ×WΔ,其中的 Δ 即是前面 max pooling 的個數:Δ=24=16 ,圖像中柵格化的每一個 predictor 都負責檢測 文本中心(word center)是否在當前的柵格內。

YOLO 的操作相似,但其實施的分辨率只有這裏的一半。

實際中,本文輸入圖像的大小爲 224×224,劃分出來、柵格化的 predictor 個數爲:14×14。 

Multi-scale detection

因爲剛剛 CNN 的 receptive field 太小了,當圖像中的文本區域太大時,就會失效。因此,本文對輸入圖像做多尺度的檢測。縮放尺度爲 {1,1/2,1/4,1/8}

最後將多尺度下的檢測的 bounding box 用 Non-maximal suppression(非極大值抑制)進行取捨融合。

即最後的檢測結果爲,去掉 overlap 大於一個閾值的 score 較小的那個,即所謂的 Non-Maximal Suppression(非極大值抑制)。 

Training loss

訓練 CNN 網絡的 loss 函數,本文如同 YOLO 中所使用的,採用每一個 HΔ×WΔ×7 輸出的 squared loss term

如果某一個柵格 predictor 中沒有 ground-truth 文本,這個 loss會忽略掉除了 c(text/non-text) 以外的所有 params。 

Comparison with YOLO

本文的 CNN 結構 FCRN 要比 YOLO 小 30× 倍有餘,因爲 YOLO 中 90% 參數都在最後的兩層全連接層。

同時,由於 YOLO 的全局性(global nature,前面講過它要採集全局的信息),YOLO 對於不尺度下的 image,都要重新訓練,更加加大了 YOLO 模型的大小。實際中,本文的模型只有 44M 的大小,而 YOLO 2G 的大小,使得 YOLO 也更加難以訓練,訓練也更加的慢(2× 倍慢於本文的 FCRN)。 

Evalutation

評測部分分爲以下幾個部分:

  • 介紹了幾個用於評測本文模型的數據集
  • 將本文的模型用於 text localisation 任務
  • 探討了在人工生成數據的 pipeline 中,重要的幾個環節,以及實驗的詳細細節
  • 將之前的 text localisation 結果用於 end-to-end text spotting,本文的方法在 text localisation 以及 end-to-end text spotting 任務中,都有較大的提升
  • 討論本文的 text localisation 模型在速度上的提升 

Datasets

本文是在以下幾個 benchmark 個評測 text detection 模型的效果的:ICDAR 2011ICDAR 2013,以及 Street View Text 數據集。數據集的統計信息如表1: 

這裏寫圖片描述



SynthText in the Wild 
這是本文自己生成的人工自然場景文本數據集,包含有 800,000 張訓練圖像,每一張圖像大約有 10 個 word instance,以及標註好的 bounding box。 


ICDAR Datasets 
因爲 ICDAR 2015 與 ICDAR 2013 數據集幾乎類似,所以,只用了 ICDAR 2011、2013 的。 


Street View Text 
簡寫爲 SVT 數據集,SVT 數據集是從 Google 街景圖像上摳出來的,同時標註了 bounding boxes。SVT 因爲其中包含了較小的文字,以及文字的分辨率較低,所以其任務難度大於 ICDAR 數據集。同時,也不是所有的 text instance 都被標註了。所以在實際中,準確率是被低估了。 

Text Localisation Experiments

從兩點評估上面的 detection network:

  • 比較了單張與多尺度({1,1/2,1/4,1/8})圖像的 detection 性能
  • 當使用更高質量的 proposal 時,提高了 text detection 的結果



Training 
FCRN 在本文生成的 SynthText in the Wild 數據集上訓練。每一張圖像被 resize 到 512×512 的大小。

除了最後一個卷積層,其餘的卷積層之後,均使用了 Batch-Normalization 技術。

使用了帶 momentum(momentum=0.9)的 SGD(隨機梯度下降)來優化求解。

每次的 batch 爲 16,weight-decay 設置爲 54

learning-rate 開始設置爲 104,當 loss 陷入停滯期時,減小到 105

同時由於只有很小的一部分 grid-cells 會帶有 text(大約 1%2%),因此,本文開始時將非文本的概率誤差項的權重,乘以 0.01;這個權重會隨着訓練的進行逐漸增加到 1

因爲類別的不均衡性,如果沒有這樣的權重調整機制,所有的可能的得分會漸漸塌縮爲 0。 


Inference 
從 FCRN 模型中,得到 class probabilities,以及 bounding box 的 prediction。

這些 bounding box 會經過一個閾值 t(最小能接受的 class probabilities),如果大於這個閾值,纔會保留。

隨後,還要經過 Non-maximal suppression,去除掉重疊太大的 score(此處即 class probability)較小的 bounding box。

本文會給出 t 值取兩種值的情況,當 t=0.3,bounding box 的 precision 更高,當 t=0.0 時,也就是所有的 bounding box 都接受,可以取得更高的 recall。

這其實是一個 trade-off 的過程。 


Evaluation protocol 
本文實驗中,評價檢測效果,用兩種 protocol: 
(1)ICDAR 中常拿來評價 localisation 結果的 DetEval 
(2)PASCAL VOC 中 交除並(IoU),當 IoU0.5 ,是 positive detection。 


Single & multi-scale detection 

這裏寫圖片描述

如上面的表2,FCRN 的單尺度、多尺度的檢測性能。

儘管 FCRN 單尺度下的 recall 差了 12%,但其檢測精度 F-measure 已經可以與 Neumann 等人的 CVPR 2012: Real-time scene text localization and recognitionICCV 2013: Scene text localization and recog- nition with oriented stroke detection 相比較了。

FCRN 多尺度的檢測,其檢測的 recall 比單尺度下的 recall 多了 12%,同時也超越了 Neumann 等人方法。 


Post-processing proposals 
爲了進一步的提高 FCRN 的檢測性能,本文使用 Max Jaderberg 等人在 Reading Text in the Wild with Convolutional Neural Networks 中使用的 post-processing 方法:

  • 用一個 random forest classifier 來過濾 text/non-text;
  • 使用一個 bounding box regression 的 CNN 結構來進一步提高 bounding box 的準確度;
  • 再經過一個 NMS

本文測試這個後處理,用兩種模式: 
(1)low-recall:NMS 中的閾值 t=0.3 ,多尺度檢測(Multi-scale FCRN),這種產生的 proposals 少於 30 個。 
(2)high-recall :所有的 FCRN 檢測得到的 proposals 都接受,這樣就有 1000 多個 proposals。

這兩種模式的實驗結果,用 FCRN+multi-filtFCRNall+multi-filt 來表示,如表2中的結果。注意到 low-recall在 text detection 上的結果比 state-of-art 的結果都要好,而 high-recall 的在所有數據集上,將 F-measure 提高了 6%

下圖5 畫出了在 ICDAR 2013 上的文本檢測的 Precision-Recall 曲線(圖中底部的灰色曲線,max-recall = 85.9%): 

這裏寫圖片描述

實際上,不同的方法的曲線: 
(1)FCRN + multi-scale 
(2)Max Jaderberg 中原始的 Precision-Recall 曲線 
(3)Max Jaderberg 模型在 SynthText 數據集上重新訓練得到的曲線 
(4)FCRNall + multi-filt 
同時,圖中還給出了 Maximum F-score (F)Average Precision (AP)maximum Recall (Rmax)

可以看出,相比較於 Max Jaderberg 的原始的統計數據,最後一個 FCRNall + multi-filt 的方法在 maximum recall(+10.3%)、Average Precision (+11.1%),提升都很大很大。 

Synthetic Dataset Evaluation

這裏本文還探究了 Synthetic Data 生成的過程中,不同的生成階段,對於 localisation 精度的影響。本文隨着生成條件的複雜性逐漸增加,生成了三種 Synthetic Data,這裏的“複雜性”是指 text 嵌入的位置與一些 constraints,具體如下: 
(1)text 隨機的嵌入到背景圖像中; 
(2)將 text 嵌入到局部顏色、紋理的邊界內部; 
(3)對嵌入的 text 進行 distorted,扭曲,使之符合嵌入的背景區域圖像的 depth,即上面所說,需要將 text 進行 warping,嵌到與法向量垂直的面上。

除了上面三種不同的生成條件,其餘的條件都是一樣的,文字的內容(字典)、背景圖像、顏色分佈。 


下圖 Figure 6 展示了 FCRNall-multi-filt 方法在 SVT 數據集上的 text localisation 測試結果。

相比較於(1)隨機的將 text 放置到背景圖像中,(2)的將 text 嵌入到局部顏色、紋理邊界內的生成方法,將Maximum F-score (F +2.1%)Average Precision(AP +3.85%maximum Recall(Rmax +6.8%

像比較於(2),(3)中將文字進行 distorted 再嵌進背景圖像,提升的倒不是很多。從圖中可以看出,Maximum F-score(F) 提升了 0.55%Average Precision(AP) 提升了 0.75%maximum Recall(Rmax 則沒有一點提升。 

這裏寫圖片描述

這種原因可能是因爲在 SVT 數據集中的的文本區域是 fronto-parallel orientation(平行平面方向的)

同樣的,SVT 數據集中隨着生成數據的條件增加,其 text localisation 的表現隨之提升。在 ICDAR 數據集中也是相同的,但因爲 ICDAR 數據集的難度要遠小於 SVT 的數據集,也就是說 ICDAR 的背景圖像沒有 SVT 數據集的複雜,受益於文本嵌入條件要小,也因此在 ICDAR 中的提升也小於 SVT。 

End-to-End Text Spotting Text

text spotting 受限制於 text detection 的精度,目前 state-of-art 的 word recognition 精度超過了 98%,可參見文章 Synthetic Data and Artificial Neural Networks for Natural Scene Text Recognition。本文在這裏使用前面對於 text localisation 的提升的結果,在 recognition 部分,達到 state-of-art 的效果。

這裏同樣需要約定一個評測標準,這裏的 evaluation protocol 是與 Wang 等人的 ICCV 2011: End-to-end scene text recognition 一致: 
words 中小於三個字母的忽略;words 中含有非數字、字母的,忽略;positive detection 的 IoU0.5 


下面 Tabel 3 展示了 end-to-end text spotting 的結果,這裏使用的方法爲 FCRN + multi-filt,以及 FCRNall + multi-filt。 

這裏寫圖片描述


Timings

FCRN 在當只有單尺度,即沒有尺度縮放時,每秒可以處理 20 張 512×512 大小的圖像(一個 GPU)。

FCRN 當處理有尺度縮放的圖像時,每秒可以處理 15 張 512×512 大小的圖像(一個 GPU)。

當使用 Reading Text in the Wild with Convolutional Neural Networks 中的高質量的 proposals 時,它需要 3 秒,才能完成一張圖像的處理。

因此,本文的方法在 region proposals 中,比 Reading Text in the Wild 提升了 45 倍。 


此外,本文的 FCRN + multi-filt 方法,由於只使用高得分的 detections,將需要的 proposals 降低了 10 倍有餘, 文獻 Reading Text in the Wild with Convolutional Neural Networks 中的 proposals 大約有 200 來個(其實有 2000 個,但經過了一個 random forest 過濾,只剩下 200 個)。

因爲本文的 FCRN 中的高得分的 detections,不超過 30 個。

下面 Table 4 是本文的方法與 Reading Text in the Wild with Convolutional Neural Networks 速度的比較。根據變量的不同,速度提升有 3 倍到 23 倍。 

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章