Connectionist Text Proposal Network

该项工作是启发于 Faster RCNN 中 RPN,并融合 Bi-LSTM 和 Side-refinement 进行场景文本检测。

What’s problem?

文本模式的变化和高度杂乱的背景构成精确文本定位的主要挑战。

该工作之前的文本检测方法大多采用 bottom-up 流程,通常先低级别字符或笔画开始检测,跟随后处理操作:非文本组件过滤,文本行构建和文本行验证。

此类方法的效果极大依赖字符检测的结果,一方面使用低级特征,另一方面没有上下文信息,不能鲁棒的识别字符和笔画。这样会积累大量的非文本组件,后处理操作主要困难就是处理它们。总之,之前的方法步骤复杂,鲁棒性差。

How to slove?

针对上述问题,论文提出 Connectionist Text Proposal Network(CTPN),能够直接定位卷积层中的文本序列。克服了 bottom-up 方法的缺点,同时利用了卷积特征和共享计算的优势。

首先,将文本检测问题转成转化成一系列细粒度的 text proposals,对于每个 text proposal 进行 anchor 回归和 text/no-text 打分。然后,采用 RNN 连接序列文本。



图1 是CTPN 的架构示意图,主要包括三个组成部分:

  • detecting text in fine-scale proposals,
  • recurrent connectionist text proposals
  • side-refinement

Detecting Text in Fine-scale Proposals

类似于 RPN ,CTPN 也是一个全卷积网络,允许任意大小的输入图像。在得到卷积层提取的特征 $W \times H \times C$ 后,使用一个 $3 \times 3$ 的滑动窗口来对这个区域的 text proposals 进行预测。

与 RPN 不同的是,滑动窗口使用 k 个anchor,每个 anchor 宽度固定为 16 个像素,高度进行变化。因此进行 anchor 回归的时候,只需要对 anchor 的高度和 y 轴中心来进行度量。

Recurrent Connectionist Text Proposals

为了提高定位精度,我们将文本行分成一系列细粒度的 text proposals,并分别预测每个文本提议。显然,将每个孤立的提议独立考虑并不鲁棒。这可能会导致对与文本模式类似的非文本目标的误检,如窗口,砖块,树叶等。

通过引入 RNN, 考虑 text proposals 的上下文信息。因此在 conv5 后将每个窗口的特征作为序列 $3 \times 3 \times C $ 输入,更新内部状态:
$$
H_{t}=\varphi(H_{t-1}, X_t), \qquad t=1,2,…,W
$$

Side-refinement

在获得细尺度 text proposals 后,根据 text/no-text 分数是否大于 0.7,将连续的文本 proposals 连接,以构建文本行。细粒度的检测和 RNN 连接可以预测垂直方向的精确位置。因此,在水平方向也进行回归:
$$
o=(x_{side}-c_x^a)/w^a, \quad o^=(x^_{side}-c_x^a)/w^a
$$
其中 $x_{side}$ 是最接近水平边(例如,左边或右边)到当前锚点的预测的 x 坐标。 $x^{side}$ 是 x轴实GT 边缘坐标。

References

  • [1][2016-ECCV]
    Detecting Text in Natural Image with Connectionist Text Proposal Network papercode
请作者吃酒!