Multi-Oriented Text Detection with Fully Convolutional Networks

该文是白翔团队发在 2016 CVPR 上的工作,主要是引入 FCN 解决多方向文本定位问题。

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

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

Methodology

算法共分为三步:文本快检测,文本线生成,文本线过滤。整个流程如 Fig 1 所示:

文本块生成

使用 Text-Block FCN 得到 salient map,然后对其进行过滤,聚类得到文本块。Text-Block FCN 的结构是在 VGG16 的基础上修改的,如 Fig 2 所示:

Figure 2. Architecture of Text-Block FCN

文本线生成

步骤大体如下;

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

    Figure 3. Orientation estimation

  • Text Line Candidate Generation: 对每个块里的所有字符进行聚类,然后为每个类生成一个 bounding box。

文本线过滤

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

My Thoughts

  • 文章是第一篇将 FCN 用来进行文字检测的,将 text block 和 charcter 结合起来进行检测,还是蛮具有创新性。
  • 如果直接用 FCN 的结果生成 bounding box,可能出现一个text block 有多个文本行。可以结合白翔团队近期的 Mask Text Spotter 思考一下改进的策略,尝试一下能不能省去后面的步骤。

References

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