CTPN论文笔记(Connectionist Text Proposal Network)

最近深入看了一下CTPN文字检测论文,写篇笔记记录下自己的理解。

目录

1、本论文提出背景
2、本论文的创新点概括
3、CTPN模型流程概括
4、CTPN模型细节
5、实验结果

1、本论文提出背景

OCR识别任务可以分为检测和识别两个子任务,本文主要关注检测任务。
当前的文字检测模型主要分为两个大方向:
1:bottom-up方法,此类方法会先关注低级别的字符识别,一般是先检测文本像素部分同时过滤非文本区域,然后构造文本行,最后对文本行进行验证。此类方法通常过程比较复杂且鲁棒性和可靠性不够,例如SWT、MSER、HoG等方法。
2:Top-down方法,先检测文字区域,然后构造文本行。本文就是此类方法。

2、本论文的创新点概括

1、对RPN方法进行了修改,只对竖直方向生成Anchor,且固定每个Anchor的宽度(16像素),使得定位更加准确。
2、把文本的目标检测任务转换为定位文本序列的问题,传统目标检测只对独立的目标进行检测,而定位文本序列则可以利用上下文,可以使用sequence方法例如RNN(LSTM)等,从而提升预测精度。
3、实现端到端的模型训练,简化流程。

3、CTPN模型流程概括

1、先使用VGG16得到conv5的特征图(WxHxC),VGG16的conv5通道数C为512
2、使用3x3xC的窗口扫描步骤1特征图的行,把3x3xC展开为一个向量(一行W个向量序列)输入BLSTM网络
3、对于步骤2的每个向量,BLSTM输出256维的向量,对于每一行的特征图,一共输出Wx256数据
4、步骤3中BLSTM输出的256维向量,作为下一步FC的输入,FC隐层一共有512维
5、步骤4中的FC输出5k维,k表示每一行在垂直方向的不同高度的anchor数量,其中前2k(vertical coordinate)表示的是bounding box的高度和y轴中心的坐标,这个坐标是相对坐标,即对每个Anchor的高度和y轴中心坐标进行修正的参数,具体公式可参考公式1;第二个2k(scores)表示的是每个anchor的text/non-text分数;第三个k(side-refinement)表示对每个Anchor水平坐标进行修正的参数
6、通过文本线构造算法,把分类得到的文字proposal合并成文本线
logo

4、CTPN模型细节

Detecting Text in Fine-scale proposals

RPN方法常用于目标检测任务,但是文本检测和一般的目标检测还是有所区别,文本不像普通目标那样具有比较明显的边界且文本由很多个部分组成,例如笔画、字符、单词、空格、文本区等等,因此RPN方法对于文本目标检测效果并不是太好,如图2所示。
logo

和RPN方法类似,CTPN提出的的Fine-scale proposals方法也能够适应不同尺寸的图片,通过一个3x3xC的窗口获取VGG16得到的特征(构造k个anchor),一行构造一个序列输出到BLSTM和FC中,对于每次滑窗数据,最终输出5k个结果,其中前2k(vertical coordinate)表示的是bounding box的高度和y轴中心的坐标,这个坐标是相对坐标,即对每个Anchor的高度和y轴中心坐标进行修正的参数,具体公式可参考公式1;第二个2k(scores)表示的是每个anchor的text/non-text分数;第三个k(side-refinement)表示对每个Anchor水平坐标进行修正的参数。

logo
其中,$ c^{a}_y,h^a$ 表示Anchor的y轴中心坐标及Anchor框的高度;$ c^{*}_y,h^{*} $ 表示ground truth的y轴中心坐标及高度;$ c_y,h $ 表示根据当前参数预测出文字部分的y轴中心坐标及高度;$ v_c和v_h$表示当前预测出的文本区域相对Anchor需要调整的参数,随着训练的迭代,需要使得$v_c,v_h$趋近于$ c^{*}_y,h^{*} $。

Recurrent Connectionist Text Proposals

为了利用文本行的前后文信息,CTPN使用RNN(BLSTM)来处理每一行的序列特征。每个LSTM有128个隐层,每个滑动窗口的3x3xC的特征可以拉成一维,同一行的窗口形成一个序列,BLSTM输出256为的特征,图3为使用RNN和不使用RNN方法的对比
logo

Side-refinement

固定文本框的宽度和水平位置会导致预测box的水平位置不准确,降低了IOU,因此作者还引入了side-refinement用于水平位置的调整,具体方法和垂直方向的调整类似,如公式2所示
logo
绘制文本线算法:主要思想是水平合并相近的proposal,直到无法再合并为止
合并的条件:
1、两个proposal相互都是最近的邻居且距离小于50像素
2、垂直方向的重叠系数(vertical overlap)大于0.7

5、实验结果

logo

6、总结

总体来看本文的方法超越了当年之前的state-of-the-art,达到了相对较优的准确和召回率,且实现了端到端的训练,使得迁移场景的文字检测任务变得非常便利,本人也使用此方法在公司的一个项目上达到了较为理想的效果,在此衷心感谢本文的作者们。