基于RetinaNet的场景文字检测算法

2022-02-19 10:24
计算机应用与软件 2022年2期
关键词:像素点像素特征

金 灵 张 轶

(四川大学计算机学院 四川 成都 610065)

0 引 言

场景文字检测是计算机视觉领域一个非常重要的研究课题,其研究成果可以被应用于车辆辅助驾驶系统、社会场景识别、图片文本分析、机器人导航、图片检索等实际场景。

场景文字的表现形式复杂,不仅具有较大的长宽比、任意方向性、字体和大小多种多样等特点,而且因环境限制,存在图片曝光不均、目标区域模糊等问题。场景文字检测的主要手段是提取图片特征,以区分图片中背景和文字区域。传统方法大多基于手工构造特征,其检测过程繁琐,应对复杂的自然场景时鲁棒性不足。得益于日益增大的数据量和不断提升的硬件计算性能,深度神经网络算法在计算机视觉研究的各个研究方向取得了突破,受其影响,越来越多的神经网络自然场景文字检测算法被提出。

1 相关工作

1.1 研究现状

神经网络模型的自然场景文字检测算法可分为基于锚框的方法和基于像素分割的方法。受目标检测算法启发,Liao等[1]设计了一组具有不同长宽比的锚框,通过在不同层次的特征图上设置不同大小的锚框,检测不同尺寸大小的文字区域,但是该方法只能检测到水平方向的文字区域。Ma等[2]通过为锚框增加旋转角度参数,模型能够检测任意方向的文字区域,但是锚框更为复杂,增大了模型学习的难度。锚框能够保证较好的召回率,但是如何设计锚框需要人的先验经验作为指导,并且难以应对复杂多变的场景文字情况,模型中存在的锚框会产生不可忽视的计算资源开销。因为模型学习的目标是锚框与真实区域之间的偏移量,所以基于锚框的方法又被称为间接回归方法。

基于像素分割的方法中,He等[3]首先提出通过对每个像素点进行分类和预测边界距离,从而定位像素所在的文字区域。因为回归的目标是一个文字像素点与其所在文字区域边界的距离,所以其又被称为直接回归方法。Zhou等[4]提出了RBOX标签生成机制,通过生成像素点分类标签,回归距离标签和回归角度标签,实现以像素点为单位标记文字区域的目的,但同文提出的EAST算法在单个特征图上学习目标文字区域,未考虑文字区域大小不一,长宽比变化较大等问题。Deng等[5]对像素分类和相邻像素链接分类,然后使用Union-Find算法得到像素连通域,实现文字区域实例分割,最后使用最小外接矩形方法得到文字区域。该方法训练过程快,处理小区域文字效果较好,但是在处理文字密集区域时较为繁琐的后处理过程耗时较长。

场景文字检测的样本图片中往往只有少量文字区域,文字像素点和背景像素点的比例极不均衡。针对该问题,现有方法往往在训练过程中使用在线困难样本挖掘算法[6],该算法启发式地选取正负样本,将其比例控制在一个相对较小的范围以内,以缓解样本比例悬殊问题,但其在模型训练过程中会产生不可忽视的计算资源消耗,且样本选取具有随机性,并不能充分利用现有的训练数据。

针对上述问题,本文提出在多尺度特征图上学习不同大小的文字区域,解决因尺度变化大而引起的模型学习困难问题。设计了一个共享卷积核的检测模块,采用直接回归方法定位文字区域;使用Focal Loss[7]作为分类损失函数解决正负样例不均衡问题。

1.2 RetinaNet简介

RetinaNet[7]是一种基于锚框的通用目标检测算法,该网络模型使用特征金字塔网络提取多层次的具有上下文语义的特征图,并且在多个特征图之间共享同一个检测模块,具有检测效果好且速度快的特点。如图1所示,RetinaNet检测模块使用class subnet和box subnet分别处理目标类别分类任务和目标定位任务,其中K表示检测目标的类别个数,A表示预设锚框的个数。

图1 RetinaNet检测模块

2 模型设计

本文提出的场景文字模型受RetinaNet启发,其整体架构如图2所示,分别由特征提取网络、特征金字塔网络、文字区域检测模块三部分组成。图2左侧的特征提取网络和特征金字塔网络共同用于构建融合特征图。首先,使用特征提取网络提取输入图片的特征信息;然后,基于多尺度特征融合的思想,使用特征网络金字塔构建出尺寸不一且具有不同特征语义的融合特征图。

图2 模型整体结构

针对场景文字检测任务的特点,本文设计了一个轻量级的文字区域检测模块,其架构如图2右侧部分所示。目标检测任务的目标类别数量K往往很大,如COCO数据集[8]含有80个类别,此外RetinaNet是基于锚框的目标检测方法,每一层有9个预设锚框,因此图1中的class subnet输出通道数为720,box subnet输出通道数为36。因为本文方法无需预先设置锚框,仅需使用像素分类分支对输入图片中的像素进行二分类,所以其输出通道数设为1。在此基础上,为了定位文字像素所在的预测文字区域,添加了距离回归分支和角度回归分支,分别用于预测像素到其所在文字区域边界的距离,及文字区域方向角度,其输出通道数分别为4和1。针对场景文字区域长宽比较大的特点,本文提出了中心度预测分支,该分支输出结果可用于重新调整像素分类置信度,其输出通道数为1。所以本文提出的文字区域检测模块整体输出通道数为7,相比于RetinaNet的检测模块,计算资源使用量下降了99%。为了进一步节省计算资源开销,在多个分支间共享卷积层。

综上可知,本文提出的文字区域检测模块更为轻量,这有利于模型在计算资源有限的硬件环境下运行。

2.1 特征提取网络和特征金字塔网络

本文模型采用ResNet-50[9]作为主干特征提取网络。该网络由多个残差模块组成,共生成多个原始特征图,分别可记作C1、C2、C3、C4、C5,每个原始特征图的步长对应为2、4、8、16、32。因为卷积神经网络生成的不同尺寸的特征图具有不同特征信息,网络浅层特征图尺寸较大,保留了较多图像原始位置信息,网络深层特征图尺寸较小,具有更抽象的特征语义信息,因此使用特征金字塔网络[10]将相邻特征图进行融合,得到同时具有丰富位置信息和抽象语义信息的融合特征图。

特征融合的具体实现直接采用了文献[7]所述方法。选取C3、C4、C5作为基础特征图,步长分别为8、16、32。首先对C5施加卷积核尺寸为3、步长S为1、Padding为1的卷积运算,即可得到同尺寸大小的P5。以P5为输入,进行一次卷积核尺寸为3,步长S为2的卷积运算,即可得到P6,P7由P6反复此计算过程并施加ReLU作为激活函数得到,二者步长分别为64和128。将P3和P4统一记作Pi,具体地,首先对Pi+1进行上采样运算,令其尺寸等于Ci,并且将二者叠加,最后通过卷积运算进一步融合特征。数学公式如下所示:

Pi=Conv(Ci⊕Upsample(Pi+1))

(1)

式中:Conv(·)表示卷积核大小为3×3的卷积运算;Upsample(·)表示上采样运算。至此即可得到融合特征图P3、P4、P5、P6、P7,尺寸分别为输入图像的1/8、1/16、1/32、1/64、1/128,并且通道数统一设置为256。这些具有丰富语义信息的融合特征图将被用作检测模块的输入,用于检测候选文字区域。

2.2 像素预测分支

场景文字图片中的像素可以被分为两类。处于文字区域中的像素被视作文字像素,其余为背景像素。像素分类分支用于对输入图片中的像素点进行二分类,以文字像素为正例,背景像素为反例。

因为本文所设计的检测模块在多个不同层次的特征图之间被共享,而且每个特征图具有不同的尺寸大小,相对于原始输入图片的步长不同,所以需要将不同特征图上的每一个位置映射回原始输入图片。具体地,融合特征图可以被统一地表示为Pi∈RHi×Wi×C,另外记Hi和Wi分别为其长和宽,C为通道数量,此处设置为256,并记其步长为Si。对于Pi上的任意给定位置(x,y),其所对应的原始输入像素点坐标为(x′,y′),二者之间的映射方式如下:

(2)

针对场景文字图片中不同类别像素比例极为不均衡的问题,采用Focal Loss[7]作为分类损失函数,具体计算公式如下所示:

(3)

2.3 距离回归分支和角度回归分支

为了定位文字像素所在的文字区域,使用距离回归分支预测像素点与其所在文字区域边界的距离,角度回归分支预测该文字区域的倾斜角度。此处采用RBOX标签生成方法[4],如图3所示。对于任意文字区域,计算其最小外接矩形框区域。对于文字区域内的任意像素,其同样位于对应矩形框区域内。计算文字区域内每个像素点到矩形框上下左右四边界的距离,记作(t,r,b,l),作为距离回归分支的学习目标。通过三角函数计算,可以得到矩形框的旋转角度θ,作为角度回归分支的学习目标。场景文字图片中的文字区域可能会有重叠,对于处在重叠区域的像素点,设定其回归目标为具有相对较小尺寸的文字区域。

图3 RBOX标签生成方法

距离回归分支采用IoU Loss作为损失函数,具体形式如下:

(4)

(5)

Lreg=Ldist+λθLθ

(6)

式中:λθ用于控制二者比例,实验将其设置为10。

2.4 中心度预测分支

场景文字具有较大的长宽比,对于任意给定的文字区域,其中心位置的像素点感受野分布相比其他位置更为均匀,边界距离回归目标更为平衡。受FCOS[11]启发,本文提出中心度预测分支,用于度量像素点相对其所在文字区域中心位置的偏离程度,其标签生成公式如下:

(7)

式中:t、b、l、r分别为像素点距上下左右四边界的距离。式(7)可知,越靠近文字区域中心的像素点,由于其到上、下边界的距离相近,到左、右边界的距离相近,则对应的中心度得分越高,反之则越低。中心度回归分支使用Binary Cross Entropy作为损失函数,其具体形式如下:

(8)

(9)

2.5 模型优化目标函数

模型采用多任务学习策略进行训练,整体优化目标函数计算公式如下:

L=Lfl+λ(Lreg+Lcent)

(10)

式中:λ是比例因子,用于控制二者在整体损失中的比重。在实验过程中,λ设置为1。

2.6 分层学习策略

针对场景文字区域大小不一、尺度变化较大的问题,提出按文字区域大小为依据的分层学习策略。神经网络模型浅层特征图的感受野较小,有利于学习小目标区域,深层特征图具有更大的感受野,常被用于学习大目标区域。具体地,记每个像素点对应的最大边界回归目标k=max(t,r,b,l),设融合特征图Pi最大可接受回归距离为mi,若有mi-1≤k

3 实 验

3.1 数据集

为了验证本文方法的有效性,实验分别在ICDAR-2013[12]、ICDAR-2015[13]和MSRA-TD500[14]数据集上进行了性能验证。

ICDAR-2013数据集由227幅训练图片和233幅测试图片构成,其中文字区域多为水平方向,文字内容以英文为主,图片内容清晰,常用于验证模型的基本性能。ICDAR-2015数据集共包含1 500幅图片,其中1 000幅用于训练,其余500幅构成了测试集。该数据集由Google Glass拍摄,包含大量聚焦模糊的图片,文字内容包含中英双语,其中的文字区域尺度变化大,具有明显的方向性,可以用于验证本文模型能够处理多方向及不同大小文字区域的能力。MSRA-TD500数据集的训练集包含300幅图片,测试集有200幅图片。该数据集的主要特点是其以行作为标注单位,包含中英双语文字内容,且文字区域长宽比大,适用于验证本文所述模型处理大长宽比文字区域的能力。

本文模型在上文所述各数据集上测试效果如图4所示。可以看出,该模型在应对各种尺度大小、任意方向的文字区域时,具有令人满意的检测效果。针对较为密集的文字区域,或存在重叠的文字区域时,也能够正确进行处理。

(a) ICDAR-2013文字检测结果

(b) ICDAR-2015文字检测结果

(c) MSRA-TD500文字检测结果图4 文字检测效果图展示

3.2 实验细节

本文所述模型使用maskrcnn-benchmark[15]框架进行开发工作,开发语言为Python,使用一块Nvidia 1060 6 GB显卡对模型进行训练。在实验过程中,因硬件条件限制,调整图片尺寸大小令最大边长不超过800,并将batch size设为4,以最大程度利用显卡计算资源,并且对输入图片进行随机的翻转、旋转、拉伸等操作,以达到数据增广的目的,将变换后的图片用作模型输入。训练过程中,使用随机梯度下降算法(SGD)对模型进行优化,为了让模型优化过程能够稳定地进行,将初始学习率设为0.001,weight decay设置为0.000 5。除此之外,以实验结果指标为依据,调整融合特征图Pi能够接受的最大归回距离mi,具体地,m2、m3、m4、m5、m6、m7分别设置为0、48、96、192、384和∞。

Zhan等[16]提出了一个人工合成数据集,该数据集由10 000幅添加有随机文字区域的图片构成,该类数据集常被用于对模型进行预训练,以加速模型收敛。在模型训练阶段,首先使用该数据集训练模型100个周期。在此基础上,使用上文中所述三个不同的数据集分别在其上进行微调,直到损失函数无明显的变化时停止训练过程。

3.3 实验结果展示

本文方法在上述三个数据集上取得的测试效果如表1、表2和表3所示,表内*表示多尺度检测。

表1 ICDAR-2013数据集结果对比

表2 ICDAR-2015数据集结果对比

表3 MSRA-TD500数据集结果对比

在ICDAR-2013数据集上,准确率、回归率、F1分数分别取得了0.90、0.84、0.87,检测结果性能与现有方法具有可比性,证明该方法具备处理基本自然场景文字区域的能力。

在ICDAR-2015数据集上不仅测试了模型的检测效果,还测试了模型的运算速度。实验结果表明,该方法能够在一秒内处理大约13.6幅输入图片,说明了模型设计过程中所提出的一系列节省计算资源开销的方法的有效性,能够有效地提高模型整体运算速度。准确率、回归率、F1分数分别为0.867、0.807、0.836,表明该方法能够处理环境复杂的文字区域。具体地,该方法计算资源使用小,运行速度快,且具有优秀的检测效果,说明该方法具有更好的实用性,能够满足某些对运行速度要求的应用场景。

最后,在MSRA-TD500数据集上,该方法分别取得了0.837、0.764、0.790的准确率、回归率和F1分数,表明该方法具有处理具有显著长宽比的文字区域的能力。

另外还在该数据集上验证了本文所提中心度分支的有效性。在测试阶段,去除式(9),直接使用分类分支预测的输出作为预测文字区域的置信度。准确率、回归率和F1分数分别为0.824、0.748、0.784,与启用中心度分支的测试结果相比有微幅下降,表明本文所引入的中心度分支能够提高模型检测结果的质量。

本文所提多尺度检测方法,将EAST算法[4]作为基线参考模型。从上述三个实验结果对比可知,本文所提方法在检测效果上均取得了更好的评价指标。

为了验证Focal Loss的有效性,修改本文模型设计,采用EAST方法中的设置,使用OHEM方法平衡正负样例个数,正负比例设置为1 ∶3,并且使用Balanced Cross Entropy作为像素分类损失函数,其具体形式如下:

(11)

3.4 模型性能分析

模型性能的提升从评价指标和运行速度两方面进行分析。通过采用分层学习策略,将不同文字区域划分到具有不同语义的融合特征图上进行学习,减缓了文字区域尺度大小显著的问题;采用Focal Loss作为分类损失函数,减缓了样例类别不平衡对模型学习的影响程度,并且令模型在学习过程中更多地关注困难样例;引入的中心度分支能够对候选文字区域置信度进行二次调整,有效地抑制了边缘检测不完整的区域。因此实验中本文模型具有很好的评价指标性能。该方法设计的文字区域检测模块设计轻量,并且在多个融合特征图之间共享使用,降低了计算资源使用的增加量;使用Focal Loss替代在线困难样本挖掘方法,避免了中间处理过程,减少了内存使用;模型在整体计算过程中无需锚框,不仅消除了锚框匹配过程,也消除了因锚框而产生的内存消耗。模型整体结构简洁,后处理过程仅使用标准的非极大值抑制算法。因此,该方法相比于现有方法更快。

4 结 语

针对自然场景中文字区域尺度变化显著的问题,提出了依据文字区域大小进行学习分配的分层学习策略,针对文字区域长宽比较大的问题,提出了中心度分支,针对文字区域图片中像素样例类别严重不均衡问题,提出了使用Focal Loss作为分类损失函数。在多个数据集上对模型的有效性进行了验证,实验结果表明,本文方法相比于先前方法有所提高,且本文方法整体过程简洁,无中间处理过程,后处理过程简单,整体计算资源开销小,运行速度更快,因此具有更好的可用性。本文方法改进空间如下:(1) 针对小字体区域和复杂字体区域的检测效果尚显不足;(2) 分层学习策略采用了启发式方法,该方法不一定将文字区域分配到最佳融合特征图上,后续工作可依据上述两点展开。

猜你喜欢
像素点像素特征
“像素”仙人掌
抓特征解方程组
不忠诚的四个特征
一种X射线图像白点噪声去除算法
基于灰度直方图的单一图像噪声类型识别研究
基于canvas的前端数据加密
图像采集过程中基于肤色理论的采集框自动定位
高像素不是全部
神回复
春天来啦(2则)