张庭瑞,方承志,徐国钦,陈睿霖
(南京邮电大学 电子与光学工程学院、柔性电子(未来技术)学院,江苏 南京 210023)
文本作为一种非常重要的信息载体,其所包含的语义信息十分丰富且准确,这些信息是人类生产生活中不可或缺的。随着计算机视觉技术的迅猛发展,自然场景文本检测技术广泛应用于自动驾驶[1]、智能监控[2]、文字识别[3]等领域。
现阶段,根据文本的特征和检测方法的不同,文本检测可以分为基于传统方法的文本检测和基于深度学习的文本检测。传统的文本检测方法(如SWT[4],MSER[5])通常使用纹理、边缘、极值区域等一些特征来检测自然场景中的文本区域。虽然这些方法易于理解,但是依赖于人工设计特征并且需要进行大量的计算和参数调整,在处理复杂的场景文本图像时可能会出现误检和漏检等问题。而基于深度学习的文本检测方法可以通过学习大量的数据,准确检测和定位各种复杂场景下的文本,并且具有更高的自适应性。因此,越来越多的基于深度学习的方法被提出用于文本检测。
基于深度学习的文本检测方法大致分为基于回归的方法和基于分割的方法。基于回归的方法是对目标文本区域进行坐标回归,可以通过设定锚框(anchor[6])的方式(如RRPN[7],TextBoxes++[8])回归文本边界框,或者直接预测(如ABCNet[9],MSR[10])文本的边界框坐标。这类方法对于具有规则形状的文本检测效果较好,但是对不规则形状的文本检测效果并不理想。基于分割的方法(如PixelLink[11],PSENet[12])从像素角度出发,对图像中的每一个像素点进行分类,判断该像素点是否属于文本目标,再通过后处理方法回归文本行边界框。虽然这类方法对不规则文本有较好的检测效果,但是整体流程较为繁琐,需要复杂的后处理过程,在文本检测时往往开销很大。而Zhou等人提出了基于回归和分割的混合检测算法─EAST[13],有效地解决了复杂的后处理问题,省去了很多不必要的中间步骤,实现了端到端的训练和优化,是一种高效而准确的文本检测算法。但是由于EAST[13]算法存在感受野受限的问题,对于较小的文本以及长文本的检测效果并不理想。虽然AdvancedEAST等算法[14-18]对EAST[13]算法进行了优化,改善了对于长文本的检测,但是仍存在部分漏检情况,而且对密集文本的检测效果较差。
针对这一问题,该文基于EAST[13]算法进行改进,提出一种基于多分支特征融合的自然场景文本检测算法。由于自然场景中的文本大多是呈矩形形状,该文对RFB-s[19]加以改进,使其卷积核适应于文本的特殊形状。将改进的RFB-s[19]模块作为浅层特征的增强模块,增强浅层特征的语义信息,有效提高对于细小文本的检测精确度。针对文本以及文本笔画多方向性,对CCA[20]模块进行改进,增加斜向交叉路径,使其适应于多向的长文本形状。经过由两个改进的CCA[20]模块循环组合成的RCCAM[20]模块,使得特征图中的每个像素能够以非常有效的方式获取全图像的上下文信息,增大特征图的感受野,提高对长文本的检测能力。最后在训练过程中加入Dice loss可以有效地解决正负样本中的类不平衡问题。把EIoU[21]作为几何损失函数,在IoU的基础上进一步考虑了中心点损失、宽损失和长损失,使得目标框和锚框在宽度和高度的差异上最小化,从而使模型收敛的更快并产生更好的定位结果。
EAST算法是一种用于场景文本检测的端到端的深度学习算法,它省去了不必要的中间步骤,直接高效而准确地预测文本区域。
EAST算法的网络结构分为特征提取层、特征融合层和输出层三个部分。特征提取层采用VGG16网络作为骨干网络,分别提取四个卷积层后的特征图(大小为输入图像的1/4,1/8,1/16和1/32)来实现对不同尺度文本行的检测。
特征合并层采用U-net[22]方法进行逐层合并,首先将后一层的特征图上采样两倍,接着将上采样后的特征图与前一层特征图进行通道上的合并。通过一个卷积核大小为1×1的卷积操作来减少通道数降低计算量,再通过卷积核大小为3×3的卷积来进行进一步的局部信息融合。重复上述操作直至生成最终特征图。
输出层通过卷积核大小为1×1的卷积输出一个1通道的置信度得分图和一个多通道的几何特征图。其中几何特征图包括4个通道的边界框特征图和1个通道的旋转角度特征图。
为了提升对小文本检测的准确性,改善长文本检测的不完整性,该文提出一种基于多分支特征融合的自然场景文本检测方法,其网络结构如图1所示。
图1 改进的EAST网络结构
该方法采用VGG16网络作为特征提取的主干网络,利用ImageNet数据集上预训练的卷积网络参数进行初始化。为了保留更多细节,减少模型计算量,高效产生密集预测结果,该方法移除最后一阶stage,提取前三个卷积层后的特征图f1,f2,f3(大小为输入图像的1/16,1/8,1/4)作为特征输入。特征融合部分分为三条分支,一条针对小文本检测不准问题对浅层特征图f3进行特征增强,引入并改进RFB-s模块来扩大浅层感受野,给予浅层特征足够的语义信息,提高对小文本检测的准确度。一条为FPN[23]特征金字塔分支,这条分支通过对主干网络中不同卷积层后的特征图进行上采样,然后进行通道上的合并,得到多尺度特征融合后的特征。还有一条分支针对长文本检测的不完整问题,引入并改进RCCAM模块,有效扩大了感受野,增强对长文本的检测效果。最后结合三条分支,实现对不同尺度文本的有效检测。
RFB-s以Inception网络为基础,增加了不同膨胀率的膨胀卷积,在确保在不降低图像分辨率的情况下增大感受野,提取多尺度特征,使卷积神经网络能够更有效地学习特征。RFB-s模块相较于RFB模块具有卷积核较小、参数量少的优势,适合应用于浅层小文本的检测。
浅层网络特征图的分辨率高,能够有效地表征文本的细节信息。但是由于浅层网络的感受野较小,缺乏一定的特征语义信息,在对细小文本进行检测时容易出现误检、漏检问题。所以,该算法在网络的特征融合部分针对小文本检测单独设计一条支路。相比于常规的目标检测,文本目标通常为长条形、具有较大的长宽比。针对这一现象,该文在RFB-s的基础上进行改进,采用1×3和3×1的卷积替代3×3的卷积,不仅减少了参数和一定的计算量,而且适用于文本目标的特殊形状。将改进的RFB-s模块(图2所示)作为浅层特征增强模块,以此来扩大浅层网络的感受野,增强其对上下文信息的捕获能力,提高对小文本检测的准确率。
图2 改进的RFB-s网络结构
若想对长文本进行有效的检测,则需通过不断地加深卷积神经网络层来扩大感受野。但是此种做法会使网络变得复杂,增大网络的参数量和计算量,而且仍不能捕获全局信息,感受野仍受到一定的限制。
Huang等人提出Criss-Cross Attention(CCA)机制,通过建模像素之间的长距离关系来获得更加丰富的上下文信息。CCA收集每个像素点所在行列的信息。通过串行连接使用两个循环CCA得到循环十字交叉注意力模块(Recurrent Criss-Cross Attention,RCCA)(见图3),这时每个像素点可以有效地捕获完整图像上的信息。
图3 RCCAM模块
自然场景中的长文本往往占据较大的长宽比。若是采用一般的方形卷积核则会引入一些不必要的干扰信息。而CCA模块专注于像素点所在行列上的文本信息,更适合于长文本的检测。针对自然场景中的文本以及文本笔画多方向性,该文在CCA模块的基础上,增添了斜向交叉路径,使得每个像素点在捕捉竖直和水平方向文本信息的同时还捕捉了斜交叉方向上的文本信息,增强了对长文本检测的敏感性。通过循环两次改进的CCA模块得到改进的RCCAM模块(见图4)。
图4 改进的RCCAM模块
针对长文本检测效果不佳的问题,引入改进的循环十字交叉注意力模块进行改善,过程如图5所示。
图5 流程图
将图像输入特征提取部分的卷积神经网络层得到特征图f1,大小为原图像的1/16。该文的RCCAM模块由两个改进的CCA模块串联组成。特征图f1(通道数为C)经过1×1的卷积层,得到两个通道数小于C的特征映射Q和K,接着经过Affinity操作生成特征图A,Affinity的具体公式如式1:
(1)
其中,Qu表示在特征图Q上任意位置u取的一个通道向量,Ωu表示在特征图K上取的与u所在相同行列及斜交叉路径上的向量集合,第i个元素就是Ωi,u,di,u表示Qu和Ωi,u的关联度。将di,u输入softmax层进行归一化处理得到特征图A。特征图f1经过另一个1×1的卷积层,生成通道数等于C的特征映射V。同样的,对于V上的任一位置u,可得到一个特征向量Vu和向量集合Φu,将此集合与特征图A进行Aggregation聚合操作(见式2),然后再加上原始输入特征图f1,输出f1'。
(2)
在自然场景下的文字所占的比例过小,而复杂背景所占的比例较大。为了更好地缓解这种正负样本占比不均衡的情况,该文在网络训练时采用Dice Loss 函数来代替类平衡交叉熵损失函数。公式如式3:
(3)
为了准确定位矩形回归边界框,提升文本检测的精度,该文在原IoU(见式4)损失函数的基础上进行优化,采用EIoU损失函数,改进后的损失函数对预测框和真实框的位置更为敏感。EIoU在IoU的基础上,还考虑了中心点损失、宽损失和长损失,具体公式如式5:
(4)
(5)
其中,IoU为交并比,反映预测框与真实框的重叠情况,ρ2(,)为欧氏距离的平方,b和bgt分别为预测框和真实框的中心点坐标,c为覆盖预测框和真实框的最小外接框的对角线长度,w和wgt为预测框和真实框的宽,h和hgt为预测框和真实框的高,Cw和Ch是覆盖两个框的最小外接框的宽度和高度。EIoU有效提升了检测精度,使得预测框与真实框在包含、重叠或不相交的情况下,通过反向传播使网络训练收敛的快速且准确。
实验是在Python3.8下基于pytorch深度学习框架实现,采用Adam优化器,初始学习率设置为1e-3。训练集batchsize为24,硬件配置GPU为RTX3090,显存为24 GB。
实验采用的数据集为ICDAR2015和MSRA-TD500。ICDAR2015中共有1 500张图片,包含1 000张训练图片和500张测试图片。MSRA-TD500共有500张多种类和多国语言的图片,其中包含300张训练图片和200张测试图片。采用准确率(Precision)、召回率(Recall)和F值(F-score)作为评价指标。
为了评估该算法的性能,将其与原EAST算法和其他算法在ICDAR2015和MSRA-TD500上进行比较,得到的结果如表1、表2所示。
表1 ICDAR2015数据集检测结果对比 %
表2 MSRA-TD500数据集检测结果对比 %
由表1、表2可以看出,该算法在ICDAR2015数据集上相较于原EAST算法在准确率、召回率、F值上分别提升3.70百分点、7.07百分点、5.53百分点,在MSRA-TD500数据集上相较于原EAST算法在准确率、召回率、F值上分别提升2.12百分点、5.82百分点、4.48百分点,对比其他的算法也有一定的提升,验证了算法的有效性。
将原EAST算法与文中算法的检测结果进行对比,如图6所示。
图6 算法对比
由对比图(a)和(b)可以看出,原EAST算法对于细小的文本检测效果并不是很好,出现了漏检的现象。而文中算法对浅层的网络特征进行语义增强,丰富其上下文信息,对含有相关中英文小文本信息的检测效果较好。由图(c)和(d)看出,文中算法改善了长文本的检测效果,对于传单标语等要求长而细的文本,利用其优势性可以快速而准确地检测出来,并且不会出现检测框断裂、漏检等情况。
在EAST算法的基础上进行改进,提出一种基于多分支特征融合的自然场景文本检测算法。引入并改进RFB-s作为浅层特征增强模块,给予浅层特征足够的语义信息,改善了小文本检测存在的漏检、误检问题。引入并改进循环十字交叉注意力模块,使得特征图上的每个点能够有效捕获全局上下文信息,提高对长文本的检测能力。优化了损失函数,缓解了正负样本比例失衡问题,提高了对边界框定位的准确度。实验证明,该算法有效提升了对小文本和长文本的检测能力。此外,该算法仅针对旋转的矩形文本检测效果理想,在后续工作中将对弯曲文本的检测进行研究。