Mask TextSpotter: An End-to-End Trainable Neural Network for Spotting Text with Arbitrary Shapes
简介
Mask TextSpotter: An End-to-End Trainable Neural Network for Spotting Text with Arbitrary Shapes,ECCV 18
作者 :旷视科技,华中科技大学白翔老师团队
文章链接
代码pytorch实现
代码caffe2实现
解决的问题 :场景文本检测和识别。本文以一种可以端到端训练的神经网络模型实现场景文本检测和识别两个任务,提出模型名为Mask TextSpotter,可以通过语义分割semantic segmentation识别任意形状的文本实例。以前的方法([27]和[3])将两个任务分别调优,忽视了两者之间的高度相关又互补的关系,也无法end-to-end
图三是本文提出的方法,使用绿色bounding box,是文本检测的结果,红色文本是识别的结果。
论文主要贡献
- 提出一种简单光滑可训练的端到端文本spotting模型Mask TextSpotter
- 该模型可以识别和检测任意形状的文本,无论是水平,旋转还是弯曲
- 与之前的方法不同,该方法使用语义分割实现文本检测和识别
- 该方法在多个数据集中达到了SOTA
相关工作
场景文本检测
以前的工作有基于回归的Edge Boxes,基于文本对称性的,基于Faster R-CNN和SSD的,用于处理水平文本识别问题。还有基于语义分割技术的,基于实体链接的,基于密集分割图的,基于旋转敏感度等方法,用于处理旋转文本识别问题。对于任意形状文本的识别任务,由于在现实生活中具有广泛使用意义,近年来得到了较多关注,[41]利用文本对称性提出了解决系统,[4]则提出了一个数据集。而本文的方法与之前的不同,是基于实例分割的任意形状文本检测方法。
场景文本识别
之前的方法主要有三类:识别文字,识别字符,和识别序列。识别字符的方法首先定位独立的字符然后进行识别并组合成单词,识别文字的方法是进行文本检测并分类,基于序列的方法则按照序列标注问题处理,如使用基于注意力机制的seq-to-seq模型。而本文的方法是属于基于字符的方法,但不同于以往的方法,本文使用FCN对字符进行定位和识别,同时使用基于序列的方法以更好地处理旋转或弯曲的不规则文本
通用物体检测和语义分割方法
随着深度学习的快速发展,通用物体检测和语义分割方法得到了广泛发展。本文借鉴了Mask R-CNN对物体实例进行分割,但不同的是本文的mask branch不仅能够分割文本区域,还能够对字符类别进行概率估计。
Pipeline

- Pipeline:四个部分组成,分别是FPN,RPN,Fast R-CNN和mask branch
- ResNet+FPN:使用ResNet50对不同尺度特征进行特征提取和融合以提高精度
- RPN:使用不同尺度的anchors及RoI Aligh操作生成候选区域
- Fast R-CNN:完成分类和回归任务,提供更精确的bounding boxes
- mask branch:完成文本实例分割和字符分割任务,如下图所示,输入RoI特征图16*64,经过4个卷积核和1个反卷积,输出预测图有38个通道,分别是1个全局文本实例图(任意形状文本的精确位置),10个数字图,26个字母图和1个背景图(用于后处理)。
Loss Function
多任务损失函数(公式3-7)
包括RPN网络的损失,Faster R-CNN分支的损失和mask分支的损失,其中mask分支包括全局文本分割损失和字符分割损失,前者是一个平均二值较差损失函数,后者是加权softmax分类损失函数。
像素投票机制
将输出的字符分割图解码成字符序列。首先,将背景分割图进行二值化,然后寻找字符连通区域,并计算对应的字符分割图上每个连通区域的均值,将最大的均值概率对应的字符分配给该区域作为预测字符,然后从左到右确定当前文本区域对应的字符序列。
加权编辑距离
此外,本文还提出了一种新定义的加权编辑距离,用于在给定字典中查找当前预测序列的最佳输出,由于可能存在多个最小距离相同的单词,而无法取决最佳时,考虑到插入、删除和替代的不同代价,对编辑距离进行加权计算求最优,设计初衷是根据当前投票后的字符概率进行三种操作的代价计算。

实验结果
为了验证提出方法的有效性,分别在三个数据集上测试对于水平文本、旋转文本和弯曲文本的识别性能。

本人文笔粗浅,以上是个人理解,如有错误,欢迎指正。
