0%

Mask TextSpotter

论文启发于 Mask RCNN,提出一种 end2end 的场景文字检测和识别模型,能够检测和识别任意形状的文本。

论文认为文献[2]和[3]虽然提出了 end2end 模型,但是训练的时候还是分步骤训练的,不能完全达到一个 end2end的行为。另外,它们只聚焦于水平或旋转的文本,不能解决弯曲的文本。

Architecture

Figure 1. Model architecture

如 figure 1 所示,mask textspotter 由四部分组成:

  • Backbone:FPN + ResNet50,用来提取特征图。
  • RPN:生成 text proposals,然后使用 RoI Align 提取 RoI 特征。
  • Fast RCNN:对 text proposals 进行更精确地分类和回归。
  • Mask Branch:包含 text instance 分割和 character 分割任务。如 figure 2 所示,会输出一个 global word map,36 个 character maps 和一个 background map。

Figure 2. Mask branch

character 的 Bbox 被缩小成原来的四分之一。

Loss Function

损失函数可以定义为:

L=Lrpn+α1Lrcnn+α2LmaskLmask=Lglobal+βLcharL = L_{rpn} + \alpha_1 L_{rcnn} + \alpha_2 L_{mask} \\\\ L_{mask}=L_{global}+\beta L_{char}

这里的 α1,α2,β\alpha_1,\alpha_2,\beta 都设为 1,其中 LglobalL_{global} 是一个平均 binary cross-entropy 损失:

Lglobal=1Nn=1N[yn×log(S(xn))+(1yn)×log(1S(xn))]L_{global}= - \frac{1}{N} \sum_{n=1}^{N} [y_n \times \log(S(x_n))+(1-y_n) \times \log(1-S(x_n))]

这里的 S(x)S(x) 是 sigmoid 函数。

LcharL_{char} 是一个加权的 soft-max 损失, YYXX 对应的 ground truth:

Lchar=1Nn=1NWnt=0T1Yn,tlog(exn,tk=0T1exn,k)L_{char}= - \frac{1}{N} \sum_{n=1}^{N} W_n \sum_{t=0}^{T-1} Y_{n,t} \log(\frac{e^{x_{n,t}}}{\sum_{k=0}^{T-1}e^{x_{n,k}}})

Inference

测试将 Fast RCNN 产生的 Bbox 经过 NMS 后作为候选框输入 mask branch 生成 global maps 和 character maps。最后产生的 polygons 直接通过计算 global maps 得到。字符序列则通过 pixel voting 算法。

Pixel Voting 流程:

  • 将 background map 进行二值化得到所有的字符区域;
  • 对于所有的 character maps 求每个字符区域的像素得分均值,把得分最高的字符类别得分设为该区域输出的字符;
  • 把所有的字符从左到右连接得到字符序列。

论文发现如果使用普通的编辑距离去匹配单词,会有多个的编辑距离一样,因此提出 weighted edit distance。

My Thoughts

  • Mask TextSpotter 本质是用 Faster RCNN 进行目标定位,然后使用目标分割来识别字符,那么可以替换分割算法提升效果。
  • 之前的 text spotter 模型都是先分开训练,再联合训练,这个能直接联合训练。
  • 英文的字母较少,在中文上可能不行。

References

  • [1] [2018-ECCV] Mask TextSpotter: An End-to-End Trainable Neural Network for Spotting Text with Arbitrary Shapes paper
  • [2] [2017-ICCV] Deep TextSpotter: An End-to-End Trainable Scene Text Localization and Recognition Framework papercode
  • [3] [2017-ICCV] Towards end-to-end text spotting with convolutional recurrent neural networks. paper