(二十四)论文阅读 | 文本检测之CTPN


简介

(二十四)论文阅读 | 文本检测之CTPN_第1张图片

图1:论文原文

本文介绍一篇关于自然场景文本检测的论文,发表在 E C C V   2016 {\rm ECCV\ 2016} ECCV 2016。论文基于通用目标检测方法 F a s t e r {\rm Faster} Faster- R C N N {\rm RCNN} RCNN,并通过加入 R N N {\rm RNN} RNN提高检测的准确率。论文原文 源码


0. Abstract

论文提出一种新的文本检测方法, C T P N {\rm CTPN} CTPN,它在一系列精细的文本候选区域上得到检测结果。期间, C T P N {\rm CTPN} CTPN提出一种垂直锚框机制,可以根据每个固定宽度的候选区域预测文本/非文本区域,极大地提高了检测精度。然后,通过 R N N {\rm RNN} RNN将检测结果片段连接形成整个序列文本的检测,因此可以无缝与 C N N {\rm CNN} CNN整合,并以端到端的方式训练整个模型。以上都使得 C T P N {\rm CTPN} CTPN可以适应复杂场景下的检测工作,并且无需额外的后处理操作就可以完成多尺度多语言的文本检测。

论文贡献:(一)论文提出将文本序列检测划分为若干个连续区域检测结果的和,从而可以规避由字符间隔产生的误差;(二)将 R N N {\rm RNN} RNN引入文本检测中,使得划分出的小区域包含上下文信息,从而获得更加精确的结果;(三) C N N {\rm CNN} CNN R N N {\rm RNN} RNN的结合不会引入额外大量的计算开销,且能够处理多尺度和多语言的文本;(四)在当前文本检测方法中达到了 S O T A {\rm SOTA} SOTA


1. Introduction

由于在 O C R {\rm OCR} OCR、机器翻译、图像检索等方面的广泛应用,自然场景下的文本识别得到了迅速的发展。文本识别分为两个步骤:文本检测文本识别。论文聚焦的点是文本检测,也就是检测出图像中可能存在文本的区域。文本多样的形式以及图像杂乱的背景给文本检测带来了巨大的挑战。

当前的文本检测方法大都以一种自下而上的方式,它们通过从基本字符或笔画开始,检测过程主要分为以下步骤:过滤掉非文本区域,构建文本以及文本验证。该复杂的过程大大降低了模型的鲁棒性。这类方法的检测结果严重依赖于字符的检测,通常基于连通分量滑动窗口的方式产生建议区域。但这两种方法仅能产生包含低层语义特征的候选区域,无法满足精确的上下文检测。如人们往往以整体的方式阅读整个序列,而非根据逐字的信息去了解序列的语义。以上的不足通常导致模型产生大量的非目标区域。论文提出的解决办法是:首先通过卷积神经网络产生高层语义特征;并通过锚机制产生文本候选区域;最后引入循环神经网络,使得检测结果具有上下文信息。

F a s t e r {\rm Faster} Faster- R C N N {\rm RCNN} RCNN通过 R P N {\rm RPN} RPN产生高质量的候选区域,使其相比于 F a s t {\rm Fast} Fast- R C N N {\rm RCNN} RCNN得到了巨大的提升。 F a s t e r {\rm Faster} Faster- R C N N {\rm RCNN} RCNN是一种高效的目标检测方法,但是将其直接用于文本检测会产生诸多问题。在目标检测中,图像中每个目标都可以通过一个边界框很好地界定,但由于文本中每个字符是分开的,直接使用目标检测的方法往往会将序列检测为多个片段。此外,目标检测的评价指标通常是基于检测结果与标注信息的交并比确定。但在文本检测中不同的是,由于需要检测整个序列,交并比并不能很好地反映检测结果的优劣(例如某检测结果和标注信息有很高交并比,但遗漏了某个字符,而我们不能认为该检测结果是符合条件的)。论文所使用的各数据集的结果评价指标来源如下: I C D A R   2011 {\rm ICDAR\ 2011} ICDAR 2011的评价指标来自这篇文章, I C D A R   2013 {\rm ICDAR\ 2013} ICDAR 2013 I C D A R   2015 {\rm ICDAR\ 2015} ICDAR 2015的评价指标来自官网, S W T {\rm SWT} SWT的评价指标来自这篇文章, M u l t i l i n g u a l {\rm Multilingual} Multilingual的评价指标来自这篇文章。

论文所提出的 C T P N {\rm CTPN} CTPN使得 R P N {\rm RPN} RPN可以很好地应用于文本检测,并使得通用目标检测方法优雅地嵌入文本检测中。同时引入 R P N {\rm RPN} RPN使得检测的文本序列具有丰富的上下文信息,最终得到了高效的检测结果。


2. Related Work

2.1 Text Detection

以前的文本检测方法通常以一种自下而上的方式,根据检测流程大致可以分为两类:基于连通分量和基于滑动窗口。基于连通分量的方法首先使用快速滤波器区分文本和非文本区域,然后贪婪地将文本像素组合为候选笔画或字符。基于滑动窗口的方法在图像上密集地滑动多尺度的窗口,然后逐个判断窗口内的区域是否满足条件。然而,这类自下而上的方法不能产生预期的检测结果。由于在检测单个字符和字符拼接时的误差累计,模型往往会产生许多错误的检测结果。此外,基于滑动窗口的方法会产生大量的计算开销。

2.2 Object Detection

当前目标检测的通用步骤是:首先产生一系列的候选区域,然后通过后续 C N N {\rm CNN} CNN等对候选区域进行分类和回归。选择性搜索算法是 R C N N {\rm RCNN} RCNN F a s t {\rm Fast} Fast- C N N {\rm CNN} CNN等产生候选区域的方法。随后, F a s t e r {\rm Faster} Faster- C N N {\rm CNN} CNN提出一种高效的用于产生高质量候选区域的方法, R P N {\rm RPN} RPN。但 R P N {\rm RPN} RPN只能对候选区域作初步筛选,如判断区域内是否有目标而并不明确目标的类别,剩余的检测工作通过 F a s t {\rm Fast} Fast- C N N {\rm CNN} CNN完成。此外,文本与目标的表现形式大不相同,这使得通常不能直接将通用目标检测方法应用于文本检测中。


3. Connectionist Text Proposal Network, CTPN

(二十四)论文阅读 | 文本检测之CTPN_第2张图片

图2:CTPN

根据上图,对于特征图上的每个位置,向量的维度变化过程是:首先通过 V G G 16 {\rm VGG16} VGG16产生大小为 W × H × C W×H×C W×H×C的特征图;然后使用一个 3 × 3 {\rm 3×3} 3×3大小的滑动窗口在特征图上滑动,特征图上的每个位置结合周围就可以使 3 × 3 × C {\rm 3×3×}C 3×3×C的向量变成一个 256 256 256维的输出以满足双向 L S T M {\rm LSTM} LSTM的输入;然后在双向 L S T M {\rm LSTM} LSTM中对序列的每个位置元素编码位置信息,得到输出。此时的输出既包含图像的语义信息又包含空间位置信息;接着将输出送入一个全连接层,即产生 R P N {\rm RPN} RPN的输出结果,其中 k k k表示每个位置所使用的锚框的数量。

3.1 Detecting Text in Fine-Scale Proposals

R P N {\rm RPN} RPN类似, C T P N {\rm CTPN} CTPN是一种全卷积形式,可以接受任何尺寸的输入。实际上,如上图中的 ( b ) (b) (b) C T P N {\rm CTPN} CTPN在特征图上使用密集的小型滑动窗口产生一系列精细的文本候选区域(固定宽为 16 16 16像素)。图中仅展示了可能包含文本的区域,其中以不同颜色区分各区域包含文本的概率。

上图 ( b ) (b) (b) C T P N {\rm CTPN} CTPN的检测流程。其中,使用 V G G 16 {\rm VGG16} VGG16作为主干网络,并在网络的最后一层特征图(固定为 16 16 16倍下采样)使用 3 × 3 3×3 3×3大小的窗口滑动以初步产生候选区域。这种直接将 R P N {\rm RPN} RPN应用于产生文本候选区域会产生诸多问题(具体原因在引言部分的第三段中已经说明),如下图:
(二十四)论文阅读 | 文本检测之CTPN_第3张图片

图3:RPN和CTPN产生的候选区域

图左是直接使用 R P N {\rm RPN} RPN产生的候选区域。考虑到目标与文本的不同,以及文本自身的特点,论文所使用的方法如上图右。将整个序列看作是一系列若干连续的小型区域的组合,论文中将每个区域的宽固定为 16 16 16像素。这样,每个区域可能包含一个或多个笔画、部分字符、单个字符或多个字符等。这样就避免模型去预测序列的宽度,转而集中预测每个区域的高度。接着,论文提出一种垂直锚机制,同时预测每个区域的高度以及是否包含文本。

垂直锚机制的思路如下:对于特征图的每个位置,文本建议区域的宽度为 16 16 16像素(相对于原图,由于是 16 16 16倍下采样,相当于在特征图上的滑动步长为 1 1 1)。然后设计 k k k(论文中设置为 10 10 10)个等宽的锚框,其高度从 11 11 11 273 273 273不等。在训练过程中与 F a s t e r {\rm Faster} Faster- C N N {\rm CNN} CNN类似,这里回归的是相对偏移量: v c = ( c y − c y a ) / h a ,   v h = l o g ( h / h a ) (1) v_c=(c_y-c_y^a)/h^a,\ v_h={\rm log}(h/h^a)\tag{1} vc=(cycya)/ha, vh=log(h/ha)(1) v c ∗ = ( c y ∗ − c y a ) / h a ,   v h ∗ = l o g ( h ∗ / h a ) (2) v_c^*=(c_y^*-c_y^a)/h^a,\ v_h^*={\rm log}(h^*/h^a)\tag{2} vc=(cycya)/ha, vh=log(h/ha)(2)

注意,由于候选区域的宽是固定的,这里不用处理框的横坐标及宽度。这样,就能产生如图 2 2 2和图 3 3 3中右半部分的结果。

3.2 Recurrent Connectionist Text Proposals

前面我们提到,为了得到更加准确的预测结果,论文的做法是将原始序列预测分割成许多连续小型区域预测的组合。显然,我们需要以某种方法将所有区域连接起来。由于序列的元素间具有很强的语义信息,而 R N N {\rm RNN} RNN是一种高效的编码序列信息的结构。由此,作者将 R N N {\rm RNN} RNN引入文本检测中。如下图:(二十四)论文阅读 | 文本检测之CTPN_第4张图片

图4:带/不带RNN的CTPN

为此,作者的做法是:在产生候选区域时,将每个 3 × 3 {\rm 3×3} 3×3卷积区域的特征作为序列输入,并在隐藏层反复更新其状态 H t H_t Ht(该状态主要用于在 L S T M {\rm LSTM} LSTM中编码每个区域的位置信息): H t = φ ( H t − 1 , X t ) (3) H_t=\varphi(H_{t-1},X_t)\tag{3} Ht=φ(Ht1,Xt)(3)

其中 X t ∈ R 3 × 3 × C X_t\in R^{3×3×C} XtR3×3×C是第 t t t个滑动窗口的卷积特征,当前窗口的状态由自身的卷积特征以及前一个状态共同决定, φ \varphi φ是一个非线性函数。为了防止梯度消失,论文中使用的是 L S T M {\rm LSTM} LSTM(在原始 R N N {\rm RNN} RNN中引入输入门控、遗忘门控和输出门控)。同时,由于当前区域的信息可以既与前面框有关系也与后面框之间有联系,尤其是紧挨着的框。为了将当前位置的区域同不同方向的区域建立联系,论文中使用的是双向 L S T M {\rm LSTM} LSTM。双向 L S T M {\rm LSTM} LSTM中使用的隐藏层单元数为 256 {\rm 256} 256

3.3 Side-Refinement

最后的检测结果通过将交并比大于 0.7 0.7 0.7的候选区域连接起来,具体过程如下:首先,我们定义建议区域 B i B_i Bi的邻居为 B j B_j Bj,记为 B j → B i B_j\rightarrow B_i BjBi。其中, B j B_j Bj是水平方向上离 B i B_i Bi最近的建议区域;二者的距离小于 50 50 50像素;二者在垂直方向上的交并比大于 0.7 0.7 0.7接着,如果满足 B j → B i B_j\rightarrow B_i BjBi B i → B j B_i\rightarrow B_j BiBj,则将两个建议区域合并为一个区域。重复此过程,将小的区域不断合并成最后的检测结果。

基于精细化的检测以及 R C N N {\rm RCNN} RCNN能够产生精确的结果,图像在水平方向上被分割为 16 16 16像素等宽的区域。当建议区域在水平方向与标注框的交并比较低边缘的区域被丢弃时,会产生较差的检测结果。如下图:
(二十四)论文阅读 | 文本检测之CTPN_第5张图片

图5:是否使用边界修正的CTPN

如上图中红色框表示置信度较大的结果,而其他颜色框置信度相对较低。我们可以观察到大部分处于边缘的框的置信度较低。如在第一幅图中,第一二个浅绿色的框表示它们的置信度较低,那我们是否应该将它们丢弃呢?显然第一个框我们可以直接丢弃;而如果丢弃了第二个框,那么文本框的左边界并没有将全部文本框住,如果不丢弃第二个框,那么检测结果的左端会出现大量的空白区域。基于这中现象,论文提出一种对文本框的边界进行优化的方法。这里,我们自然而然地想到,因为前期我们只对每个固定宽度的区域做回归,而没有考虑拼接后的文本框的优化,论文提出的方法是给每个固定框预测一个偏移。具体地,与候选框的 y y y方向预测类似,这里也计算一个相对偏移: o = ( x s i d e − c x a ) / w a ,   o ∗ = ( x s i d e ∗ − c x a ) / w a (4) o=(x_{side}-c_x^a)/w_a,\ o^*=(x_{side}^*-c_x^a)/w^a\tag{4} o=(xsidecxa)/wa, o=(xsidecxa)/wa(4)

式中 x s i d e x_{side} xside表示到当前锚框最近的水平侧(左侧或右侧), x s i d e ∗ x_{side}^* xside表示真实值,可以通过事先手工计算得到。 c x a c_x^a cxa是水平方向上锚框的中心横坐标, w a w^a wa表示锚框的宽度,即 16 16 16。当预测的结果为连续的文本时,边侧仅基于开始和结束的端点计算,偏移的作用仅是用于修正最后的检测结果。将边界优化后就可以得到图中红色文本框的检测结果。同时,由于该过程同网络整体是同步进行的,因而不会产生额外的计算。

3.4 Model Outputs and Loss Functions

由图 2 2 2我们可以看到,对于特征图上的一个位置而言, C T P N {\rm CTPN} CTPN在经过全连接层后产生三个输出,这三个输出分别表示: 2 k 2k 2k个垂直方向的预测表示锚框的纵坐标和高度; 2 k 2k 2k个置信度表示 k k k个锚框内是否含有目标; k k k表示每个锚框的边界偏移预测。最后,相应的 C T P N {\rm CTPN} CTPN产生三个项的损失函数: L ( s i , v j , o k ) = 1 N s ∑ i L s c l ( s i , s i ∗ ) + λ 1 N v ∑ j L v r e ( v j , v j ∗ ) + λ 2 N o ∑ k L o r e ( o k , o k ∗ ) (5) L({ {\rm s}_i,{\rm v}_j,{\rm o}_k})=\frac{1}{N_s}\sum_iL_s^{cl}({\rm s}_i,{\rm s}_i^*)+\frac{\lambda_1}{N_v}\sum_jL_v^{re}({\rm v}_j,{\rm v}_j^*)+\frac{\lambda_2}{N_o}\sum_kL_o^{re}({\rm o}_k,{\rm o}_k^*)\tag{5} L(si,vj,ok)=Ns1iLscl(si,si)+Nvλ1jLvre(vj,vj)+Noλ2kLore(ok,ok)(5)

损失函数的第一项表示类别置信度的预测,其中 s i ∗ = { 0 , 1 } {\rm s}_i^*=\{0,1\} si={ 0,1}表示标注信息, s i {\rm s}_i si是预测结果;第二项表示对有效框的纵坐标的回归,其中有效框的定义是与标注框的交并比大于 0.5 0.5 0.5或相应 s j {\rm s}_j sj判断为有文本;第三项表示水平方向的边界偏移。式中 i i i j j j k k k均表示框的索引。此外, L s c l L_s^{cl} Lscl S o f t m a x {\rm Softmax} Softmax函数, L v r e L_v^{re} Lvre L o r e L_o^{re} Lore S m o o t h L 1 {\rm SmoothL1} SmoothL1函数, λ ∗ \lambda_* λ是超参数, N ∗ N_* N表示相应的标准化参数。


4. Experimental Results and Discussions

(二十四)论文阅读 | 文本检测之CTPN_第6张图片

图6:CTPN同其他方法在不同数据集上的实验结果对比

(二十四)论文阅读 | 文本检测之CTPN_第7张图片

图7:ICDAR数据集上的实验结果对比


5. Conclusions

本文介绍的是较早的经典的基于深度学习的文本检测的文章,它主要借助通用目标检测方法实现文本检测。 C T P N {\rm CTPN} CTPN主要基于经典的检测模型 F a s t e r {\rm Faster} Faster- R C N N {\rm RCNN} RCNN,主要是提出对 R P N {\rm RPN} RPN的改进。 C T P N {\rm CTPN} CTPN对水平文本或稍微倾斜文本的检测具有较强鲁棒性,但还不具备较大幅度倾斜和不规则外形文本检测的能力。这两方面也是后续文本检测方法所关注的重点。总的来说,文本检测作为自然场景文本识别的重要前提,其一直是人们关注的热点,而 C T P N {\rm CTPN} CTPN恰好为这个领域提供了一种可行的思路。


参考

  1. Tian Z, Huang W, He T, et al. Detecting text in natural image with connectionist text proposal network[C]//European conference on computer vision. Springer, Cham, 2016: 56-72.
  2. https://zhuanlan.zhihu.com/p/34757009.
  3. https://www.cnblogs.com/skyfsm/p/9776611.html.


你可能感兴趣的:(论文阅读,计算机视觉,深度学习)