【CVPR2018】FOTS: Fast Oriented Text Spotting with a Unified Network論文閱讀筆記

一、作者

二、摘要

提出一種端到端可訓練Fast Oriented Text Spotting網絡,同時檢測識別。RoIRotate共享檢測和識別的卷積特徵。本方法沒有重複計算消耗,並學習到更多通用特徵,因此優於two-stage方法。在ICDAR2015、ICDAR2017MLT和ICDAR2013達到state-of-the-art。達到實時的任意方向text spotting,22.6fps在ICDAR2015 text spotting task超出state-of-the-art五個百分點。

三、介紹

因爲特徵提取是最耗費時間的,本文收縮計算到單個檢測網絡,見圖1。ROIRotate是連接檢測和識別的關鍵,通過方向檢測bounding boxes從feature maps獲取特徵。

流程見圖2,首先用共享卷積層提取feature maps;基於全卷積網絡的方向文本檢測分支來預測檢測bounding boxes;RoIRotate運算符從feature map提取檢測結果對應文本proposal特徵;然後文本proposal特徵進入RNN編碼器和CTC解碼器去文字識別。因爲網絡可微,整個網絡可以端到端訓練。這是第一個任意方向文本檢測識別端到端網絡。非常好訓練,沒有複雜的預處理和超參數。

四、方法細節

FOTS有四個步驟:共享卷積、文本檢測分支、RoIRotate運算、文本識別分支。

  1. 整體流程

共享卷積網絡如圖3,其backbone是ResNet-50,受FPN(Feature pyramid networks for object detection.2016)啓發,我們連接低level和高level語義特徵圖。輸出1/4圖像。

文本檢測分支輸出稠密的逐像素預測結果,是任意方向的文本區域proposals,提出RoIRotate轉換相應共享卷積到固定高度特徵,同時保持原始區域寬高比。CNN和LSTM去編碼文本序列,CTC解碼。識別分支結構如下表1。

  1. 文字檢測分支

受EAST(曠世CVPR2017)啓發,本文采用全卷積網絡作爲文字檢測器。因爲有很多小文字,我們共享卷積層採用1/4而不是1/32的降採樣。輸出稠密的逐像素單詞預測值。第一個通道計算每個像素爲正樣本的概率,如同EAST文本中心區域像素才爲正樣本;其他4通道表示當前像素與四邊的距離;最後一個通道表示bounding box的方向。最後結果使用閾值和NMS

在實驗中發現籬笆、圍牆這種很像文字的難以分類,我們使用online hard example miningOHEM來區分和解決類間不平衡問題。F值提升2個點。

(注:OHEM爲R-CNN的作者寫的CVPR2016< Training Region-based Object Detectors with Online Hard Example Mining - cvpr 2016 oral>,是bootstrapping在dl中的應用。簡單來說就是從ROI中選擇hard,而不是簡單的採樣。具體的方法就是先讓所有樣本通過dl計算出loss,以loss大爲hard example的標準,選擇B/N個進行反向傳播。直覺想到的方法就是將那些未被選中的ROI的loss直接設置爲0即可,但這實際上還是將所有的ROI進行反向傳播,時間和空間消耗都很大,所以作者在這裏提出了本文的網絡框架,用兩個網絡,一個只用來前向傳播,另一個則根據選擇的ROIs進行後向傳播,的確增加了空間消耗(1G),但是有效的減少了時間消耗,實際的實驗結果也是可以接受的。kaiming he提出了一種新的方法 focal loss, 直接在loss上進行變換,不需要像ohem一樣forward兩遍,看起來即簡潔又實用。)

    檢測分支的loss方程有兩部分:文本分類部分和bounding box迴歸部分。文本分類部分可看做降採樣score map的逐像素分類loss。只有文本區域中心被認爲正樣本,Bounding box內的非中心區域被認爲not care

(注:FCN for Sementic Segmentation對每一個pixel都求了score,所以最後一張圖片對一個類得到的是一個score map

分類loss用交叉熵loss。迴歸loss用IoU loss(Unitbox:An advanced object detection network.2016)和rotation angle loss(East: An efficient and accurate scene text detector.2017),因爲他們對目標形狀、尺度和方向變換很魯棒。 。超參數是爲了平衡兩個loss,本文設爲1。

  1. RoIRotate

用於將方向特徵區域變換爲axis-aligned feature maps,如圖4。輸出固定高度,保持寬高比。相比於RoI pooling(fast r-cnn)和RoIAlign(mask r-cnn),RoIRotate在regions of interest提取特徵時提供更通用的操作。

操作分兩步,根ground truth座標或者預測值座標計算每個text proposal的仿射變換參數;在shared feature maps的每個region分別仿射變換,從而獲得feature maps中的規範水平text proposal。本文高度爲8。總之,RoIRotate輸入是共享卷積,輸出所有text proposals的固定高度,寬高比不變的feature maps。

不同於目標分類,文字識別對檢測噪聲很敏感。一個文本區域的小檢測錯誤會割掉若干字符,對訓練有壞處,所以訓練時我們使用文本區域gt代替預測值。在測試階段,應用閾值和NMS去過濾文本區域。RoIRotate後,變換feature maps送入文本識別分支。

  1. 文字識別分支

使用共享卷積網絡生成的、RoIRotate變換後的區域特徵來預測文本label。輸入特徵到LSTM,上面提到降採樣4倍,因爲有的緊密筆畫的字符,降採樣容易導致筆畫消失。文本識別網絡類似VGG,卷積、pooling、一個雙向LSTM、一個全連接層和最後的CTC解碼。

後略。

最終多任務loss方程: ,超參數用來平衡兩個loss,本文設爲1。

  1. 實現細節

使用ImageNet預訓練模型。訓練過程分兩步,先用Synth800k dataset(Synthetic data for text localisation in natural images.2016CVPR)訓練10個epochs,再用真實數據去finetune直到收斂。不同訓練數據集應用於不同任務。

數據增廣對於深度神經網絡的魯棒性非常重要,特別是真實數據很少。首先,圖像長邊resize從640到2560;其次,圖像隨機在[-10°,10°]旋轉;然後,寬度不變,高度在[0.8,1.2]倍縮放;最後,從以上變換圖像裏隨機切割採樣640*640圖像;

使用OHEM提升性能。對每幅圖像,512個困難負樣本、512個隨機負樣本、所有正樣本被選中來分類。結果,正負比例從1:60提升到1:3對於bounding box迴歸,每幅圖我們選擇128個困難正樣本和128個隨機正樣本來訓練。

測試時,文本檢測後,RoIRotate使用閾值和NMS過濾,然後再進入識別分支獲取最後結果。對於多尺度測試,所有尺度結果結合後再NMS去獲得最後結果。

五、實驗結果

  1. 與Two-stage方法比較

文本檢測和識別一起訓練,可以相互受益。爲了驗證,我們建立了一個two-stage系統,檢測和識別模型分開訓練,識別網絡的訓練樣本直接從原圖切割。實驗證明在各數據集上Fots比單獨檢測或識別模型訓練,能夠提升1到2個百分點。因爲檢測更關注整體文字特徵,而識別幫助網絡學習字符級特徵的細節,遇到文本區域內在變化較大,或者文字區域與背景區域相似,識別能夠強制模型學習字符細節。Fots學習到語義信息:同一單詞的不同字母有不同模式,也加強了與相似背景的區分。

  1. 與state-of-the-art方法比較

對於單尺度測試,長邊在三個數據集上分別resize至2240、1280、920得到最好結果。採用3到5個尺度做多尺度測試。

  1. 速度和模型尺寸

端到端比two-stage速度提升一倍,大小降低一倍。

爲了達到實時,我們將ResNet-50替換爲ResNet-34,使用1280*720作爲輸入。使用TITAN-Xp GPU訓練Caffe。

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