Multi-Oriented Text Detection with Fully Convolutional Networks

检测单个字符容易受背景干扰,造成漏检或误检的情况,而检测文本框相对于单个字符来说,和背景的区分行更强。因此,能不能结合局部信息(单个字符)和上下文信息(文本块)结合起来,使得检测更加鲁棒性。

FCN 在 2015 年被提出去进行像素分割,那么自然地想到能够标定每个像素属于文字的概率(salient map),也可以得到每个像素是字符中心的概率(centroid map)。

Methods

算法流程如下图所示,主要分为:Text Block Detection, Text Line Generation 和 Text Line Candidates Classification。

Text Block Detection

使用 Text-Block FCN 得到 salient map,然后对其进行过滤,聚类得到文本块。Text-Block FCN 的结构是在 VGG16 的基础上修改的,融合前几层的特征进行预测。

Text Line Generation

步骤大体如下:

  • Character Components Extraction:使用 MSER 方法提取字符候选区域,然后利用候选区域的面积和长宽比过滤噪声。
  • Orientation Estimation:这里假设同一个块中的所有文本线方向是一致的,文本线是近直线的。可以通过寻找最优的垂直坐标偏移 $h$ 和角度 $\theta$ 确定一条一线,使得该直线穿过字符数最多。公式如下,其中 $\Phi$ 是穿过字符的个数。
    $$
    \theta_{r}=\arg \max_{\theta} \max_{h} \Phi(\theta ,h)
    $$
  • Text Line Candidate Generation: 对每个块里的所有字符进行聚类,然后为每个类生成一个 bounding box。

Text Line Classification

通过 Character-Centroid FCN 获得每条文本线中的所有可能存在的字符的中心。然后通过 Intensity criterion 和 Geometric criterion 过滤非文本线。

My Thoughts

  • 这是较早将分割的思想引入到场景文字检测中,但还是用 MSER 方法提取字符,然后聚类,处理过程繁琐,text blocks 只是用来过滤 false positive 的情况。

References

  • [1] [2016-CVPR] Multi-Oriented Text Detection with Fully Convolutional Networks paper
请作者吃酒!