自然场景文本区域检测之CTPN

        CTPN是现在的主流自然场景文本区域检测模型中流传最广泛的模型之一,它可以同时检测水平或者稍微倾斜的自然场景下的文本。CTPN的全称为Connectionist Text Proposal Network,该模型在论文Detecting Text in Natural Image with Connectionist Text Proposal Network(ECCV2016)中提出,论文传送门:https://arxiv.org/abs/1609.03605。

        文本区域检测与通常的图像目标检测不同的是,文本行为一个序列,而不是一个独立检测的目标,序列在检测过程中有好有坏,好处是可以利用序列的上下文信息对整个文本行做出判断,可以利用循环神经网络来学习文本的上下文信息,CTPN模型中采用BLSTM(Bi-directional LSTM,双向LSTM)提取文本字符在图像中的上下文信息,以此来提高文本块的识别精度,坏处是整体文本行的检测相比单个目标要难。

        CTPN中的P与RPN中的P为同一个词,proposal可以理解为图像中的一个个小区域,在CTPN中proposal的宽度是固定的,其实作者也在论文中提到CTPN是RPN的扩展,RPN在Faster R-CNN的相关论文中提出,Faster R-CNN作为CTPN的前身也是一项非常优秀的工作,RPN的提出使得当时目标检测有了突出的效果,与RPN相同的是CTPN也允许任意大小图像输入。

        作者认为仅仅预测每个proposal的竖直位置会取得更好的准确率,这也是该论文的一个亮点,作者采用了一种垂直anchor的机制,可以同时预测出固定宽度的text proposal的y-axis(即垂直)位置和文本/非文本置信度,大幅提高了预测精度。CTPN采用RNN使得模型成为一个end-to-end模型,方便训练,而文中提到的一个个有序的proposal也是由RNN得到。

CTPN基本结构

自然场景文本区域检测之CTPN_第1张图片

  1. 网络使用VGG16作为特征提取网络,VGG16是一个相当经典的CNN网络,网络结构相对简单,而且有开源大量数据集上训练的权重文件,方便迁移学习,效果也不赖,因此经常被用作特征提取网络,通过VGG16得到Conv5(VGG16中最后一层卷积层的输出)的输出作为feature map。
  2. 在feature map上进行滑窗(窗口大小3*3),得到3*3*C的特征向量。
  3. 将每一行所有的窗口得到的特征向量按序列顺序输入到BLSTM中,得到W*256的输出。
  4. 将BLSTM的输出输入到全连接层中。
  5. 全连接层输出到三个回归或分类层中。2k scores 表示的是k个anchor的类别信息(是字符或不是字符)。2k vertical coordinate和第三个k side-refinement是用来回归k个anchor的位置信息。因为一个anchor用的是中心位置的高(y坐标)和矩形框的高度两个值表示的,所以一个有2k个输出。k个side-refinement这部分主要是用来精修文本行的两个端点的,表示的是每个proposal的水平平移量。
  6. 使用一个标准的非极大值抑制算法来滤除多余的box
  7. 把分类得到的文字的proposal中的垂直的矩形合并成文本线。

垂直坐标计算

      k个anchor 具有固定16个像素的水平位置,但垂直位置在k个不同的高度上变化,这里作者使用的是10个anchors。高度在11-273个像素变化,作者通过一个proposal 边界框的高度和y轴的中心计算得到垂直坐标。有关预测anchor边界框的相对的垂直坐标的计算是由下式得到。

其它细节

        为了提高精度,作者将文本行分割为一个fine-scale的序列文本Proposal,并分别对他们中的每一个进行预测。作者提出这个结构想要达到的目标是直接在卷积层上编码上下文信息,形成一个紧密的网络内部连接。RNN使用可以使用隐藏层对信息进行循环编码。

        CTPN将每两个相近的proposal组成一个pair,合并不同的pair直到无法再合并为止。

        CTPN可以用标准的反向传播和随机梯度下降进行end-to-end的训练。与RPN相同的是训练样本为anchors,其位置可以由输入的图片预先计算,所以每个anchor训练的标签可以根据GTbox计算得到。

        针对文本/非文本的分类,二进制的标签被分给每一个正anchor(文本)和负anchor(非文本),正负anchor是由IOU与GT边界重叠计算得到的。正的anchor被定义为:IOU与GTbox 的重叠大于0.7的或者最高的anchor。负的anchor是IOU小于0.5产生的

你可能感兴趣的:(项目实训,ctpn,文本区域检测)