图像文字识别初探(一)-CRNN(Convolution Recurrent Neural Network)和DTRN(Deep-text Recurrent Network)
图像文字识别初探(二)-FAN(Focusing Attention Network)
图像文字识别初探(四)-- single-shot text detector
Single-shot text detector
论文:Single Shot Text Detector with Regional Attention
此片论文出自深圳先进科学院乔宇老师团队,论文中提出single-shot text detector算法,此算法直接输自然图片中的world-level bounding boxes,算是图像文字检测。此文本检测由三部分组成,a convolutional component,a text-specific component和a box prediction component。其中卷积和box预测组件继承于SSD检测,a text-specific组件包含两个模型,a text attention module和a hierarchical inception module。 算法整体架构如下图所示,其中卷积和box预测组件是由SSD扩展而来。
Hierarchical Inception Module
在一个CNN模型中,低层的卷积特征通常关注局部图像细节,而更深层的卷积特征通常能够捕获到更多高层次的抽象信息,在SSD检测算法,通过多层次的卷积特征图来预测物体bounding boxes,就可以在图片中预测多个尺寸的物体,由于文本通常也具有多种多样的尺寸或者纵横比,在GoogleNet网络架构中inception架构的启发下,论文中提出了hierarchical Inception module来整合卷积特征。首先需要对每一层的卷积层应用一个类似的Inception module,接下来从多个卷积层中聚集Inception特征并生成AIF(Aggregated Inception Features)。每一个AIF融合当前层和最近两个层的inception特征,例如上图中的AIF-1:64×64×512是融合Conv3_3,Conv4_3和fc_7层的Inception特征的结果。
inception块的详细细节如下图所示,某一层卷积特征图经过不同的卷积操作,1x1-conv,3x3-conv,带1x1-conv的3x3-pool和5×5-conv,其中5×5-conv被拆分成1x5-conv和5x2-conv卷积层。
Text Attention Mechanism
attention module是在AIF上构建的,它能够生成一个像素级别的概率图,这个概率图能够表示在每一个像素位置上的文本概率,也可被称作attention map。attention module 包含两个卷积核为3×3,pad为1的卷积层,一个反卷积层连接AIF到attention map,紧接着通过使用一个在反卷积特征上的softmax激活函数生成attention map。
给定一个512x512的输入图像,假设我们得到的第一层AIF特征为,对于的attention map的计算步骤如下所示,其中是反卷积特征,接下来通过使用1x1的卷积核将其映射成2通道的特征图,,接下来是一个softmax激活函数。其中得到的softmax map中的positive部分是attention map ,表示每个文本的像素级别的概率。
接下来,attention map被简单地resize后被编码到AIF中,那么就可以得到带有文本区域注意力编码的特征图。其中被resize成,是在AIF图中所有通道上的元素级的点集运算(element-wise dot product)
在训练过程中,文本的注意力信息是自动学习的,attention modual的提出能够在三个方面提高性能,首先是减少错误检测的数目,再次是它能够使得整个模型检测到更多模糊的文本,最后是能够提高world-level检测的准确率
总结:
- 端到端训练
- 检测多尺寸multi-scale和多方向multi-orientation的文本
- world-level text detector
算法名称 | 算法 | 优点 |
CRNN/DTRN | CNN+RNN+CTC | 端到端训练 不限输入图片长度 对字典无要求 |
FAN | attention network + foucusing network(同样用到CNN+RNN) | 端到端训练 能识别复杂或低质量图像中的文字 解决了注意力偏移问题 对字典没有要求 |
mask textSpotter | FPN+RPN+Fast RCNN + mask branch(引入语义分割) | 端到端训练 基于字符的方法 检测识别任意形状的文本 |
Single-shot text detector | SSD+attention | 端到端训练 world-level text detector 可检测多尺寸和多方向的文本 |