文字檢測+識別之FOTS
論文:FOTS: Fast Oriented Text Spotting with a Unified Network
Github:https://github.com/jiangxiluning/FOTS.PyTorch
商湯和深圳先進院喬宇老師合租的作品。
FOTS是一個快速的端到端的整合檢測+識別的框架,和其他two stage的方法相比,FOTS具有更快的速度。
藍色框中表示FOTS,紅色框表示其他two stage的方法。可見FOTS的速度幾乎是別的方法的一半。
論文貢獻:
- 提出了端到端的快速的文字檢測+識別一體化的方案。
- 提出了RoIRotate ,類似於roi pooling 和roi align,該操作主要池化帶方向的文字區域,通過該操作可以實現將文字檢測和文字識別端到端的連線起來。
- FOTS在公開資料集ICDAR 2015, ICDAR 2017 MLT,ICDAR 2013 上取得了state of the art的效果。
整體結構:
FOTS的整體結構由4部分組成。shared convolutions,the text detection branch, RoIRotate operation,the text recognition branch。
shared convolutions:
FOTS的基礎網路結構為Resnet50,共享卷積層採用了類似U-net的卷積的共享方法,將底層和高層的特徵進行了融合。這部分和EAST中的特徵共享方式一樣。最終輸出的特徵圖大小為原圖的1/4。
the text detection branch:
該模組和EAST完全一樣。
Loss函式如下,
包括了分類的loss(cross entrop)和座標的迴歸的loss(IOU loss),實驗中,平衡因子,λreg =1。
RoIRotate operation:
該模組將有角度的文字塊,經過仿射變換,轉化為正常的axis-glign的文字塊。
M:仿射變換矩陣,包含旋轉,縮放,平移
Ht:仿射變換後的特徵圖的高度,實驗中為8
wt:仿射變換後的特徵圖的寬度
(x,y):特徵圖中的點的位置
(t; b; l; r) :特徵圖中的點距離旋轉的框的上下左右的距離
θ:檢測框的角度
Vcij:在位置(i,j),通道c處的輸出值。
Ucnm:在位置(i,j),通道c處的輸入值。
hs:輸入的高度
ws:輸入的寬度
Φx, Φy :雙線性插值的核的引數
the text recognition branch:
該模組主要為crnn結構。
Y*表示一條識別結果的路徑,其中識別的字元的個數T<=圖片寬度W
B 表示所有的多對一的路徑的集合
最終實驗的loss為檢測+識別的loss,λrecog =1
實驗結果:
ICDAR2015結果:
ICDAR2017 MLT結果:
ICDAR2013結果:
速度和模型大小:
總結:
FOTS一個檢測+識別一體化的框架,具有模型小,速度快,精度高,支援多角度,的特點。