基于卷积神经网络的文本检测算法研究
2019-04-12李阳李绍彬解云超冯爽
李阳,李绍彬,解云超,冯爽
(中国传媒大学 信息工程学院,北京 100024)
1 引言
文本检测是近年来计算机视觉领域具有挑战性的热门研究课题之一。文本作为一种特殊的视觉信息,它除了具备颜色、纹理这些基本的计算机视觉特征外,还具有较为明确的、有针对性的语义信息,在图像及场景理解中扮演着关键角色。
足球是全世界最受欢迎的体育运动之一,观众、球队教练、球迷等等都有对足球比赛进行智能分析的需求。近年来,对足球赛事自动分析工具的需求大大增加。在足球比赛场景画面复杂的情况下,对足球赛事图像进行较为精准的文本检测,为理解赛事场景中的信息、分析足球赛事提供了研究基础。
场景图像中的文本检测是场景文本分析的第一步,目前已经有很多不同的方法可以用于文本检测。场景文本检测方法主要分为两类:一类是基于连通区域分析的方法,另一类是基于滑动窗口的方法。Yao[1]、Epshtein[2]、Neumann[3]等人采用连通区域分析的方法进行文本检测,这类方法[1-5]首先根据颜色相似或空间邻接等一致性特征,进行连通域分析,然后对连通区域按照文本区域、非文本区域做出判定,从而将文本区域从整幅图像中区分出来。Kim[6]、Gllavata[7]、Lyu[8]等人采用滑动窗口的方法进行文本检测,基于滑动窗口的方法[6-10]主要通过采用大小可变的滑动窗口在多个空间尺度上进行采样,然后利用机器学习的方法判别窗口里是否具有文本信息。
本文基于TextBoxes[11]算法,提出新的卷积神经网络,对足球赛事场景下的文本能够有效检测。针对足球赛事场景下,文本几何形状多样、球衣号码和广告牌的宽高比例不同等问题,设置适用于足球场景中文本检测的默认框;针对足球赛事场景下,图像背景远远多于文本而导致的样本不均衡问题,提出使用Focal Loss作为用于分类的损失函数,并制作用于足球赛事场景下文本检测的数据集,在该数据集上对算法有效性进行了验证。
2 基于卷积神经网络的文本检测算法
2.1 文本检测网络结构
文本检测的网络结构如图1所示,这是一个28层的卷积网络,其中前13层继承于VGG-16[12]的网络结构,保留了VGG-16的conv1_1至conv4_3层,之后额外添加了15层,包括13个卷积层和2个池化层。卷积层的尺寸逐渐减小,可以预测出不同尺度的检测框。其中,6个卷积层的特征图直接连接到文本框层(Text-box Layers),文本框层输出为每个默认框相对于真实边界框的偏移值和预测的检测框的分类分数。最后,采取非极大值抑制整合输出。该网络模型具体配置参数如表1所示。
图1 文本检测网络结构示意图
网络中的所有卷积核尺寸均较小,为3×3或1×1,故该网络参数较少。添加填充(padding)后的特征图经过3×3和1×1的卷积核卷积计算后,宽和高不变,随着网络层数加深,网络能够表征抽象和高级的特征。对于采用大卷积核的网络,输入图像经过一次卷积,会产生较小的特征图,经过数层卷积便会生成1×1特征图,网络层数较浅,映射关系相对简单,学习到的特征泛化能力不够突出。因此,采用小卷积核具有减少参数和加深网络的优点。
为了检测到不同尺寸的目标文本,传统方法将图像缩放至不同大小进行检测,最后再将结果合并。对于卷积层来说,越底层对应的感受野越小,保留的图像细节越多;越高层对应的感受野越大,能捕捉到更全局的信息。本文利用卷积网络中不同层提取特征不同的特点,可以达到对不同尺寸的目标文本进行检测的目的。所以,本文检测网络采用6个不同的特征图,来实现多尺度检测。
表1 文本检测CNN详细配置
续表
2.2 默认框的设置
本文针对足球场景下的文本进行检测。在足球场景下,文本主要包括球衣号码、场景中的广告牌、球员名称以及台标等。相较于普通的自然场景中的文本,足球场景下的文本类别和几何形状的多样,分别体现在球衣号码和英文单词、数字和单词的几何形状间区别很大。如图2所示,球衣号码多是高大于宽的,而球员名称或者广告中的单词多是宽大于高的。
图2 足球场景下文本形状示意图
根据文本特点,选取适用于足球场景中文本检测的默认框。针对号码选取宽高比为{1:5、1:3、1:2}的默认框,针对单词文本选取宽高比为{1:1、2:1、3:1、5:1}的默认框,即定义了{1:5,1:3,1:2,1:1,2:1,3:1,5:1}这7种比例的默认框。并采取3×3卷积核代替原始模型中1×5卷积核,3×3卷积核对较大宽高比和较小宽高比的文本都适用。
对Text-box Layers的卷积核的通道数,根据默认框的改变而做出相应的改变。检测网络使用卷积神经网络特征图生成相应的默认框,在Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2、Global这6个卷积层的特征图上,每一个神经元具有对原始图像的感受野,对应着原始图像感受野区域的不同比例的默认框。对这6个特征图上的每一个神经元节点,可以预测其对应的默认框的偏移值,以及是否为检测框的类别分数。例如,对于每一个特征点对应的区域,取k个不同形状的默认框,那么就会产生(2+4)*k个输出,其中2是指对于每个默认框会计算2个二分类的分数,4是指对于每个默认框会计算4个位置偏移值。对于m×n大小的特征图,应将卷积核通道数设置为(2+4)*k,产生(2+4)kmn个输出。
在训练过程中,需要判定默认框是否为正样本,当默认框与标定框(ground truth)的面积的交叉重叠比(Intresection Over Union,IOU)大于阈值0.5时,判定为正样本,反之则判定为负样本。
2.3 损失函数
训练分为两个任务:分类任务和回归任务。分类任务用于判别默认框是否为文本,输出是2维向量,表示是文本的概率以及不是文本的概率;回归任务用于预测默认框位置的偏移值,以得到更贴近真实文本框的检测框,输出是4维向量,表示经过特定规则平移缩放后的偏移值。因此,检测网络的损失函数由两部分构成,分别为代表置信度的分类损失函数和代表位置的回归损失函数。
检测网络采用的损失函数如下:
L(p,l,v*,v)=Lconf(p,l)+αLloc(v*,v)
(1)
其中,Lconf为评估分类的损失函数;Lloc为评估位置的损失函数;l为代表类别的标签,l=1表示是文本区域,l=0表示是背景;参数p=(p0,p1)代表每个类别的概率;v是预测框相对于默认框的偏移值;v*是真实框相对于默认框的偏移值;α为两个损失函数的权衡值,这里取1。
对于回归损失函数Lloc,使用Smooth L1 Loss[13],该损失函数具体表示如下:
(2)
(3)
其中,参数v和v*定义如下:
(4)
(5)
其中,x、y、h、w分别是预测出的检测框的中心点横坐标、纵坐标、高、宽;xa、ya、ha、wa分别是默认框的中心点的横坐标、纵坐标、高、宽;x*、y*、h*、w*分别是真实框的中心点的横坐标、纵坐标、高、宽。
对于分类损失函数,使用Focal Loss[14],使得模型在训练时更注重于难训练的样本。难于区分的样本对损失的贡献变大,网络更倾向于对这些样本学习。Focal Loss定义如下:
FL(pl)=-α(1-pl)γlog(pl)
(6)
其中,l为类别的标签,l=1表示是文本区域,l=0表示是背景;参数p=(p0,p1)代表每个类别的概率;α是权重参数,这里取0.25;γ是聚焦参数,这里取2。
将表示置信度的分类损失函数用Focal Loss表示,即:
Lconf(p,l)=FL(p)
(7)
由式(6)可知,当概率大,也就是容易正确分类时,会减小损失对网络的反馈;当概率小,也就是样本难以区分时,会增加这些样本的权重。α解决了正负样本之间的平衡问题,(1-pl)γ则对易分样本和难分样本进行区分。当一个样本分类错误,即概率p很小时,(1-p)因子就会接近1,其损失不被影响;当一个样本分类正确,即其概率很大接近1时,因子(1-p)就接近0,这个样本的权重就被降低了。γ参数调节易分样本降低权重的比例,显然,样本越易分,则对损失的贡献越小,相对来说,难分样本所占的比重就会变大。
2.4 非极大值抑制
在检测任务的后续处理中,需要使用非极大值抑制进行搜寻,消除冗余的检测框,找到最佳的检测框,非极大值抑制效果示意图如图3所示。首先,将检测结果按照置信度得分进行排序,选中概率最大的检测结果,将其余检测框与这个检测框进行比较,若IOU大于某一设定的阈值,则认为这些检测框包含于目前这个得分最高的检测框中;然后,将这些检测框删除,保留第一个检测框;最后,从未处理的检测框中继续选择概率最大的检测框,重复上述过程,直到处理完所有的检测框,得到最终保留下来的结果。
图3 非极大值抑制效果示意图
3 实验
3.1 数据集
(1)足球场景的文本检测数据集:对足球赛事场景下的文本进行标注。足球赛事图片截取于20个足球赛事视频中,对图片中英文字符、数字、符号“:”和符号“-”进行标注。分别标注了文本的坐标信息以及文本内容,生成相应的xml标签文件。标注共得到3000张图片,包含34512个文本区域。足球赛事场景下文本标注的图片如图4所示,标签如图5所示。使用该数据集的2300张样本作为训练数据,用于微调训练网络模型;其余的700张样本作为测试数据,用于对算法的验证。
图4 足球场景下文本标注图片
图5 足球场景下文本标注的标签
(2)数字合成数据集:制作合成数据工具,由背景图片和提供的数字或字符自动合成供文本检测的图片,每张图片具有对应的标签文件,标签文件中是文本的位置信息。该方法共合成200000张图片。数字合成图片如图6所示,标签如图7所示。该数据集用于预训练网络模型。
图6 数字合成图片
图7 数字合成图片的标签
(3)SythText[15]数据集:SythText是公开数据集,由真实的自然场景图片和文本实例合成。该数据集包含858750张图片,这些图片由11698张背景图片和7266866个单词文本构成。SythText数据集用于预训练网络模型。
3.2 实验细节
网络输入采用300×300大小的图片,RGB三通道输入。在训练过程中,加载VGG-16模型中相应的参数(即表1中Conv1_1到Conv4_3的参数)对网络这部分卷积层进行初始化。训练采用随机梯度下降法(Stochastic Gradient Descent,SGD)进行网络优化学习,动量参数为0.9,权值衰减为(Weight Decay)为0.0005,学习率初始化设置为0.001,以指数衰减法更新学习率。实验在Windows系统下完成,GPU配置为NVIDIA GTX1080,采用的深度学习框架为Google的TensorFlow,使用Python进行编程实验。
3.3 实验结果与分析
本文分别对基础网络TextBoxes、重新设定默认框的改进网络OursDefault、在OursDefault基础上使用Focal Loss作为损失函数的改进网络OursDefault+Focal进行训练与测试。
测试数据为700张足球场景下文本检测图片,与训练数据不重复。评估基于三个指标:精确度P、召回率R、综合指标F。精确度P为正确检测到的文本数量与所有预测出的矩形框个数的比值;召回率R为正确检测到的文本数量与所有真实文本数量的比值;综合指标F为精确度P和召回率R的调和平均值。本文对测试数据中全部文本的精确度、召回率和综合指标进行评估,并分别对数字文本和字母文本的召回率进行评估。
表2 不同算法的检测性能对比
表2为对基础算法TextBoxes、本文改进算法OursDefault、OursDefault+Focal的检测性能的对比。可以看出,本文改进的模型在召回率和综合指标上均有提升。首先,OursDefault模型与TextBoxes基础模型的结果相比较,召回率有较大的提升,说明本文提出的改进方法能正确检测到更多的真实文本。尤其是数字文本的召回率,OursDefault模型相比TextBoxes模型提高了将近10%,说明本文提出的改进算法能够有效检测数字文本。其次,OursDefault+Focal模型与前两个模型相比较,全部文本、数字文本、字母文本的召回率均有提升,并且综合指标F最高。精确度有所下降的原因是,改进后的模型对文本特征更为敏感,会将测试图片中与文本极为相似的图案检测为文本。
图8为TextBoxes模型与OursDefault模型检测结果的展示。可以看出,TextBoxes算法对于横向文本可以成功检测,但是对于竖状的文本、侧身时导致宽高比很小的文本,如图8中的球衣号码“7”、球衣号码“16”,难以检测。本文算法OursDefault在重新对默认框进行设置后,对于这些宽高比小的竖状文本,均能够有效检测。检测效果得到改善是因为原始TextBoxes模型中均为宽高比大于1的默认框,而改进后的OursDefault模型中设置有宽高比小于1 的默认框,这些默认框能够对球衣号码这种大多为竖状的文本更好地拟合。
图9为OursDefault模型与OursDefault+Focal模型检测结果比较。可以看出,相较于OursDefault模型,OursDefault+Focal模型在遮挡、残缺、模糊的情况下,能够更成功地检测到文本。这是因为,足球赛事场景中的背景区域远远多于文本区域,在我们选取的默认框中,负样本数要远远多于正样本,正负样本不均衡。本文提出使用Focal Loss作为分类损失函数进行训练,在训练过程中Focal Loss对不同样本赋予不同的权重。易于区分的样本权重较小,难以检测的目标权重较大,有效解决了样本不均衡带来的问题。对遮挡、残缺、模糊这类难以区分的样本,在训练时给予较大权重,因此该模型能够对其有效检测。
TextBoxes检测结果 OursDefault检测结果图8 TextBoxes与OursDefault检测结果比较
OursDefault检测结果 OursDefault+Focal检测结果图9 OursDefault与OursDefault+Focal检测结果比较
4 结论
本文采用卷积神经网络对足球赛事场景下的文本进行检测,在TextBoxes网络的基础上提出两点改进:一是重新设置默认框,解决球衣号码等竖状文本的检测问题;二是使用Focal Loss作为分类损失函数进行训练,解决背景与文本的正负样本不均衡问题。此外,还制作了足球赛事场景下文本检测的数据集,用于训练和测试。实验结果表明,本文提出的改进方法是有效的。在下一步的研究中,考虑将角度信息用于位置回归任务中,实现对倾斜文本的多方向检测。