©作者 | Hanbo Cheng
單位 | NJUST
研究方向 | 場景文字檢測
論文標題:
GLASS: Global to Local Attention for Scene-Text Spotting
Abstract
本篇文章針對端到端的 Scene-Text Spotting 任務,提出裏一個新穎的 Module :GLASS (Global-to-Local Attention mechaniSm for text Spotting)。這個模塊結合了 image 中的 global feature(大尺度,低分辨率)和 local feature(小尺度,高分辨率)對任務進行端到端的訓練。同時文章還提出了一個新的基於旋轉的損失函數,優化了模型對旋轉字體的識別。通過實驗,該模塊和損失函數可以顯著增加現有模型的 performance。
文章試圖解決什麼問題?
端到端的 Scene-Text Spotting 的一個主要挑戰是文字尺度的變化(large text/ small text),以及文字存在旋轉角度。
文章主要的貢獻
- 提出了新穎的 GLASS 模塊,在極端尺度變化的情況下增強了模型的性能;
- 設計了一個週期的,針對旋轉的損失函數(具體是正弦函數的形式),增強了模型對於任意旋轉角度的 scene text 的 Spotting 性能;
- 在幾個數據集上 ICDAR 2015, Total-Text, TextOCR,Rotated ICDAR 2013上取得了 SOTA 的結果;
- 將 GLASS 模塊應用到現成的 Scene Text Spotting 框架上,使得這些模型的性能得到了提升(説明來 GLASS 的泛用性)。
Methodology
論文中的模型結構如下:
2.1 GLASS
GLASS 主要針對的分支是 recognition branch,這裏是 GLASS 中的運算示意圖:
首先關於 Global feature 和 Local feature 從何而來?也就是 , 。
- Global 特徵來自 detection 分支(具體是 FPN feature),具體特徵的採樣範圍仍然受 bbox 限制,但通過 FPN 各級採樣,其感知域比 local feature 要大
- Local 特徵來自於 detection 分支生成的 bbox,因為只有一個選框,所以分辨率更高(主要針對小尺度 text)。
2.2 Global和local的融合
● first
用文字概括一下:原本 , 的大小都是 ,現在將他們的 Channel 分成 k 等分,,再將他們以上述的形式 concat 起來, 最終變成 channel 為 的向量(共WH)。
● second
這一部分將簡單的 concat 深度的 fuse:
其中 是一個可學習的向量, 將 tesor reshape 成 的形式。
這一步相當於通過注意力機制得到一個初步融合的特徵 。
● third
這一步:
其中 是一個可學習的向量,實際上就是一個 1*1 的卷積, 是批標準化。
2.3 Orientation Prediction
本文針對一個 bbox 設置了 5 個描述參數,2 個描述中心座標,2個用於描述 H,W,1 個用於描述旋轉角度,整個 bbox 的 loss function:
這個損失函數,針對前四個參數採用了 L1 norm,針對角度,設計了一個基於正弦函數的 loss,不難看出有這樣的特性,偏移 k*180 的 loss=0,並且這一部分是可以求導的。同時滿足了合理性和可導。
2.4 Global to Local End-to-End Text Spotting(模型總述)
整個模型的 backbone 是 ResNet50 和 FPN。 通過是哦那個 Rotated-RoIAlign,在 FPN 的各個層級上採樣得到。對於 先對輸入圖像做 Rotated-RoIAlign,再使用 ResNet34 抽取特徵得到。使用上述的 GLASS 得到融合特徵 用它完成 text 的 recognition。關於 mask branch,僅僅採用了 global feature(這一點和 Mask R-CNN 的處理基本一致,應該不是文章的重點)
模型的總體優化目標:
- :選框 loss
- :mask loss,和 mask R-CNN 一致
- :recognition loss
Experiment
文章在幾個 benchmark 上測試了方法的表現,並且和 SOTA 模型做了比較。同時,文章也嘗試將 GLASS 融合進了兩個較為常見的 E2E,Scene-text spotting 網絡(Mask TextSpotter v3, ABCnet v2),並測試了融合後的性能。此外又做了一些消融實驗。
3.1 Comparison with SOTA
針對不同的文字旋轉角,和別的模型對比 performance,可以看出 GLASS 能很好的應對旋轉過的文字。
3.2 Incorporating GLASS into other methods
可以看出,加入了 GLASS 之後,其他模型在 Total-Text 和 ICDAR2015 數據集上都有提升,儘管處理速度些許變慢。
3.3 消融實驗
關於是否使用 Global 和 Local feature,以及是否 fuse 它們,和以什麼樣的方式 fuse 做了消融實驗。可以看出採用全局和局部特徵+ GLASS 融合,可以取得最好的表現。
針對 bbox 的損失函數做了消融實驗,主要是是否用基於正弦的方式計算角度的 loss,還是説使用 L1norm。可以看出基於正弦函數的方法明顯更優。
GLASS 對於識別不同尺度文字的影響,可以看出增加了 GLASS 以後,對於各種尺度的文字識別,performance 都有提升。
僅僅針對 recognition branch 做的消融實驗,這裏使用 ground truth bbox,消除 detection branch 的影響。可以看出 GLASS 對於 recognition 有提升。
Rethink
1. 本文針對尺度不同,以及旋轉角的問題做了一些特化的設計,並取得了不錯的效果。這裏提到的使用 FPN 提取 Global 特徵(low resolution),使用直接的 feature map 提取 local 特徵,再將兩組特徵加以融合的方法十分值得學習。再以後遇到 scale 方面的問題,或許可以採用類似的思路。
2. 文章結尾提到:在一些場景文字,各個字符間隔較大時,以及遇到一些不規則的字體時,模型會出現誤判,這也是未來的一個努力方向。
一些誤判樣例:
- 針對第一個問題:我認為主要還是尺度的問題,以及卷積感知域的問題。字符本身的尺度相較於單詞的尺度太小。或許可以採用類似 ViT 的一些方法(讓我想到了 SwinSpotter 那篇文章),利用 transformer 可以將兩個較遠的像素點產生聯繫的特性處理這個問題。但這個問題顯然更加複雜,因為兩個相隔較遠的字符,去判斷他們屬於一個 word,似乎需要一些先驗知識的支持。
- 關於不規則字體:之前讀過一篇基於知識圖譜,通過 scene-text 完成 img captioning 任務的文章(knowledge Mining with SceneText for Fine-Grained Recognition),或許圖片也可以反作用於文字,比如説這個 Flower(第二行第三個),似乎根據圖片可以做一些 inference。