自然场景下的文本检测与识别被认为是目标检测领域中最具有挑战性的难点之一, 它在图像处理、无人驾驶、文档分析、自然语言处理等诸多机器视觉领域都存在大量的应用. 相较于通用物体的目标检测, 复杂场景下的文本检测存在诸多难点: (1)场景中的文本行颜色、字体、尺度多样化并且相关性较小. (2)背景多样化. 在自然场景下, 文本行的背景是任意的, 还可能会受到结构相近的背景的影响(如栅栏). (3)文本行的形状和方向多样化. 如水平、垂直、倾斜、弯曲等. (4)存在诸多艺术字、手写字、多种语言混合以及不同程度的扭曲. (5)恶劣的光照条件和不同程度的遮挡.
近年来, 文本检测领域的深度学习策略主要有: (1)基于字符的文本检测. Baek等[1]提出先检测单个字符(character region score)及字符间的连接关系(affinity score), 然后根据这些连接关系确定最后的文本行, 再采用高斯热度图来生成区域分数和连接分数两个特征图, 最后借助文本行的长度进行弱监督训练. (2)基于文本框的坐标回归的文本检测. Tian等[2]使用一连串小尺度文本框来实现文本检测的任务, 并且引入RNN模型提高文本的检测效果, 用边界优化使文本框的边界预测更加精准; Liao等[3]提出的端到端的神经网络模型, 修改了锚点(anchors)尺寸和卷积核尺寸, 采用多个尺度的预测, 来提高对anchors没有覆盖到的长文本的检测效果. Liao等后来又针对该模型进行了改进[4], 实现了预测旋转的文本框; Shi等[5]提出文本行检测的两个基本组成元素: 分割(segment)和连接(link), 并且提出了两种link类型: 层内连接(within-layer link)和跨层连接(cross-layer link); Zhou等[6]提出一个快速、准确的两阶段文本检测方法. (3)基于语义分割后进行实例分割的方法. Deng等[7]提出通过实例分割结果提取文本的位置, 并且将像素点进行连接得到文本框. 使用像素分类实现语义分割, 使用链接实现实例分割. Wang等[8]提出了一种渐进性的扩展网络, 它可以实现对任意形状文本实例的检测. 该方法使用了最小内核的思想完成实例分割, 在此基础上渐进式地使用不同内核来补充实例分割的区域. (4)文本框回归和语义分割的组合方法. Zhang等[9]提出了一个新型端到端文本检测器, 它由3部分组成: 直接回归模块(DR)、迭代修正模块(IRM)、形状表征模块(SEM). 首先由直接回归模块产生粗略的四边形候选文本框; 然后通过迭代修正得到完整的文本行的特征块; 最后根据文本行的区域、中心线及边界偏移得到最终的文本行.
Zhou等[6]提出的EAST算法在准确性和总体效率方面明显优于同领域内之前提出的其他方法, 后有人对其增加了后置处理(AdvancedEAST[10]). 本文提出Dilated-Corner Attention EAST (DCA_EAST)改进算法, 在AdvancedEAST网络结构加入空洞卷积模块以及角点注意力模块, 改善了漏检情况. 对损失函数改进, 加入类别权重因子和样本难度权重因子, 有效提升了密集文本的检测效果.
1 AdvancedEAST算法分析AdvancedEAST包括全卷积网络(Fully Convolutional Networks, FCN)阶段和非极大值抑制(Non-Maximum Suppression, NMS)合并阶段. FCN可以直接生成文本区域, 消除冗余过程及复杂的中间步骤. 该方法既可以检测单词, 又可以检测文本行, 检测的形状可以为任意形状的四边形. 针对文本行的特点, 使用了位置感知NMS (Locality-Aware NMS)来对生成的文本区域进行过滤, 降低了NMS的复杂度. AdvancedEAST网络结构图(如图1), 分为特征提取主网络(4个级别的特征图, 表示为
对于密集文本的检测, AdvancedEAST算法存在感受野受限的问题; 并且在预测生成激活像素的过程中, 存在头或尾边界像素丢失的情况, 导致文本框漏检, 如图2所示.
2 Dilated-Corner Attention EAST结构 2.1 网络结构优化针对上述问题, 本文在AdvancedEAST算法的基础上引入了空洞卷积模块(dilated conv module)以及角点注意力机制(corner attention module), 改进算法的网络结构如图3所示.
在4个特征图输出之前, 分别采用扩张率为18、12、6和3的3×3空洞卷积来增加网络的感受野.
为了减少激活过程中头或尾边界像素丢失的情况, 本文在对不同尺度的图片特征提取后, 由上至下对每一个层次的特征进行融合, 将特征融合阶段的上采样(unpool)改为双线性上采样, 并利用当前层次融合的特征对目标位置进行预测. 这样相较于标准方法来说, 可以生成更均匀的特征金字塔, 包含更多的上下文信息. 并且本文加入角点注意力模块, 目的是融入后置处理中的边界像素特征.
假设注意力模块需要处理的特征序列为
${{{c}}_{t'}} = \sum\limits_{t = 1}^T {{\alpha _{t't}}{h_t}} $ | (1) |
${\alpha _{t't}} = Softmax (\sigma ({s_{t' - 1}},{h_t}))$ | (2) |
其中, t表示当前时间,
常用的通道注意力机制和空间注意力机制对于特征图边界像素的关键信息提取效果并不理想, 故本文采用了角点注意力机制, 具体地是将特征图的输入边像素界特征与输出的边界像素特征通过一个标准的一维全连接层(dense layer)连接起来, 公式如下:
$attentio{n_i} = Softmax (Dense({x_i},{y_{i - 1}}))$ | (3) |
${c_i} = \sum\limits_{i = 1}^m {attentio{n_i} \times {x_i}} $ | (4) |
其中, i表示当前时步,
在一般的数据集中, 负样本数量太大, 导致损失函数输入参数的大部分都是负样本, 并且很多是容易分类的, 因此会使得对密集文本的检测效果并不是很好. 之前也有一些算法来处理这种类别不均衡的问题, 比如OHEM (Online Hard Example Mining), OHEM算法虽然增加了错分类样本的权重, 但是OHEM算法忽略了容易分类的样本.
故本文在标准交叉熵损失函数[11]的基础上引入了类别权重因子
Score map和vertex code的损失函数公式如下:
${L_s}{\rm{ = }} - {\rm{(}}\alpha {Y^*}{{\rm{(1}} - {\tilde{Y}} {\rm{)}}^\gamma }{\rm{log}}{\tilde{Y}} + (1 - \alpha )(1 - {Y^*}){\tilde{Y}}^\gamma {\rm{log(1}} - {\tilde{Y}} {\rm{))}}$ | (5) |
$ \begin{split} &{L_v} = \\ &\dfrac{{ - \displaystyle\sum\limits_i^N {{\rm{(}}\alpha {y_i}^*{{{\rm{(1}} - {\tilde{y_i}} {\rm{)}}}^\gamma }{\rm{log}}{\tilde{y_i}} + (1 - \alpha )(1 - {y_i}^*){\tilde{y_i}}^\gamma {\rm{log(1}} - {\tilde{y_i}} {\rm{))}}{w_i}} }}{{\displaystyle\sum\limits_i^N {{w_i}} }} \end{split} $ | (6) |
其中,
$\alpha {\rm{ = }}1 - \dfrac{{\displaystyle\sum\nolimits_{{{{y}}^*} \in {Y^*}} {{y^*}} }}{{|{Y^*}|}}$ | (7) |
其中,
${w_i}{\rm{ = }}\left\{ {\begin{array}{*{20}{c}} {1,\;\;{{y}}_i^* = 1} \\ {0,\;\;{{y}}_i^* = 0} \end{array}} \right.$ | (8) |
其中,
对于vertex coord的损失函数, 本文采用加权的Smooth L1函数. 相比于L1损失函数,Smooth L1可以收敛得更快, 相较于L2损失函数来说, Smooth L1对异常值、离群点不敏感, 梯度的变化相对更小, 训练更稳定. 损失函数的定义如下:
${L_g} = \dfrac{{\displaystyle\sum\limits_i^N {{S_i}{w_i}} }}{{\displaystyle\sum\limits_i^N {{w_i}} }}$ | (9) |
其中,
${{S = smooth}_{{{L_1}}}}{\rm{(}}x{\rm{) = }}\left\{ {\begin{array}{*{20}{l}} {0.5{x^2}{\rm{ }},\;\;\;\;\;{\rm{ |}}x{\rm{| < 1}}}\\ {|x| - 0.5{\rm{ }},\;\;\;\;{\rm{otherwise }}} \end{array}} \right. $ | (10) |
综上, 得到总的损失函数为:
$L{\rm{ = }}{\lambda _s}{L_s}{\rm{ + }}{\lambda _v}{L_v}{\rm{ + }}{\lambda _g}{L_g}$ | (11) |
其中,
本次实验在Ubuntu 18.04.3 LTS上进行, 开发语言为Python 3.6.9. GPU版本为NVIDIA GTX 1080Ti, 显存11 GB.
3.2 模型训练采用Adam[12]优化器对本文提出的模型进行端到端训练. 损失函数参数
本文算法与AdvancedEAST算法在自然场景下的文本检测结果对比如图4、图5所示.
对比可以发现, 图4(a)中存在头或尾边界像素丢失而导致的文本框漏检情况, 图5(a)中存在对于密集文本检测不到的情况. 通过本文算法处理后, 激活像素连通性更好, 头尾像素也更加丰富, 密集文本的检测效果明显改善, 如图4(c)、图5(b)所示. 同时, 本文使用准确率(Precision)、召回率(Recall)和加权调和平均值F-measure三个指标来评价本文算法的性能, 并与AdvancedEAST算法进行对比, 实验结果如表2所示. 可以看出, 本文算法相比于AdvancedEAST算法在文本检测的各项指标上均有提升. 其中召回率提升比较明显, 这是因为本文算法增大了困难正样本的检测能力.
4 结论
本文算法在AdvancedEAST算法的基础上, 引入了Dilated-Corner Attention EAST, 增大网络特征提取的感受野, 可捕获更多激活过程中边界的上下文信息, 改善了文本定位中出现的文本框漏检情况; 同时, 对损失函数的改进, 平衡了样本的类别权重以及样本难度权重, 最终有效提升了密集文本的检测效果. 与AdvancedEAST相比, 准确率、召回率和F-值均有提高.
[1] |
Baek Y, Lee B, Han D, et al. Character region awareness for text detection. Proceedings of 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach, CA, USA. 2019. 9365–9374.
|
[2] |
Tian Z, Huang WL, He T, et al. Detecting text in natural image with connectionist text proposal network. Proceedings of the 14th European Conference on Computer Vision. Amsterdam, the Netherlands. 2016. 56–72.
|
[3] |
Liao MH, Shi BG, Bai X, et al. TextBoxes: A fast text detector with a single deep neural network. Proceedings of the 31st AAAI Conference on Artificial Intelligence. San Francisco, CA, USA. 2017. 4161–4167.
|
[4] |
Liao MH, Shi BG, Bai X. TextBoxes++: A single-shot oriented scene text detector. IEEE Transactions on Image Processing, 2018, 27(8): 3676-3690. DOI:10.1109/TIP.2018.2825107 |
[5] |
Shi BG, Bai X, Belongie S. Detecting oriented text in natural images by linking segments. Proceedings of 2017 IEEE Computer Vision and Pattern Recognition. Honolulu, HI, USA. 2017. 3482–3490.
|
[6] |
Zhou XY, Yao C, Wen H, et al. EAST: An efficient and accurate scene text detector. Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, HI, USA. 2017. 2642–2651.
|
[7] |
Deng D, Liu HF, Li XL, et al. PixelLink: Detecting scene text via instance segmentation. Proceedings of the 32nd AAAI Conference on Artificial Intelligence, (AAAI-18), the 30th innovative Applications of Artificial Intelligence (IAAI-18), and the 8th AAAI Symposium on Educational Advances in Artificial Intelligence (EAAI-18). New Orleans, LA, USA. 2018. 6773–6780.
|
[8] |
Wang WH, Xie EZ, Li X, et al. Shape robust text detection with progressive scale expansion network. Proceedings of 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach, CA, USA. 2019. 9336–9345.
|
[9] |
Zhang CQ, Liang BR, Huang ZM, et al. Look more than once: An accurate detector for text of arbitrary shapes. Proceedings of 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach, CA, USA. 2019. 10552–10561.
|
[10] |
AdvancedEAST. https://github.com/huoyijie/AdvancedEAST. [2020-05-12]
|
[11] |
Lin TY, Goyal P, Girshick R, et al. Focal loss for dense object detection. Proceedings of 2017 IEEE International Conference on Computer Vision. Venice, Italy. 2017. 2999–3007.
|
[12] |
Kingma DP, Ba J. Adam: A method for stochastic optimization. Proceedings of the 3rd International Conference on Learning Representations. San Diego, CA, USA. 2015.
|