一种实时场景文本检测方法转让专利

申请号 : CN202110612702.5

文献号 : CN113255646B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李建武任建国周天飞

申请人 : 北京理工大学

摘要 :

本发明涉及一种实时场景文本检测方法,属于计算机视觉处理技术领域。首先提取当前自然场景图像的特征。然后采用交叉池化注意力方式,对深层特征的权重进行重新分配。之后对不同尺度的特征自下而上进行融合,将不同尺度特征进行合并。使用特征分块Transformer编码器处理文本多样性。分割出文本实例的“核”,从文本“核”中构建文本实例。本方法,仅需要少量的计算量即可增强骨架网络的特征表示能力。首次提出引用Transformer编码器结构并对其进行修改,得到特征分块Transformer编码器以处理文本多样性问题,对模型性能有较大的提升。本方法在满足实时性的前提下,性能领先于现有的实时场景文本检测方法,在实时性与精度之间实现了更好的平衡。

权利要求 :

1.一种实时场景文本检测方法,其特征在于,包括以下步骤:步骤1:提取当前自然场景图像的特征;

C1×H1×W1 C2×H2×W2 C3×H3×W3 C4×H4×W4提取图像不同深度的特征F2∈R 、F3∈R 、F4∈R 、F5∈R ,其中,C1、C2、C3、C4分别表示每个特征的通道数,H1、H2、H3、H4分别表示每个特征的高度,W1、W2、W3、W4分别表示每个特征的宽度;F2表示网络获取的最浅层特征,F3表示网络获取的次浅层特征,F4表示网络获取的次深层特征,F5表示网络获取的最深层特征;R代表实数集;

其中,F2到F5分别对应模型不同深度对应的特征,从F2至F5,特征依次加深;

步骤2:采用交叉池化注意力方式,对深层特征的权重进行重新分配;

1

步骤2.1:对深层特征F5进行卷积操作,在通道上进行压缩,得到单通道特征图Fc∈R×H4×W4;

步骤2.2:对单通道特征图Fc,分别在H轴与W轴方向进行自适应平均池化,得到两个轴线

1×H4×1 1×1×W4

上的特征Px∈R 与Py∈R ,其中,特征Px感受到当前行上所有的特征,特征Py感受当前列上所有的特征;

步骤2.3:对特征Px和特征Py采用矩阵乘法计算,使用Sigmoid激活函数对计算结果进行处理,得到注意力矩阵AT,并将AT采用跳跃连接的方式对原始特征进行加权;

C4×H4×W4

设获取的特征为Fs∈R ,其计算方式如下:Fs=σ(AvgPoolh(Conv(F5))*AvgPoolw(Conv(F5)))·F5+F5  (1)其中,σ(·)表示Sigmoid激活函数,AvgPoolh(·)表示在H轴方向上进行自适应池化操作,AvgPoolw(·)表示在W方向上进行自适应池化操作,Conv(·)表示卷积操作;*表示矩阵相乘操作,·表示矩阵点乘操作,+表示矩阵加法操作;其中,矩阵点乘操作表示对原始特征进行加权,矩阵加法操作表示跳跃连接;

步骤3:对不同尺度的特征,自下而上进行融合,得到特征F;

步骤4:将不同尺度特征进行合并;

步骤5:将步骤4获取的特征进行分块处理,然后送入Transformer编码器,获取特征的长距离依赖,用于处理文本多样性的问题,包括以下步骤:2

首先,对特征F进行分块,得到块状特征 xi,j表示第i行、第j个特征块,M表示每个特征块的长宽均为M,

C4×1

然后,使用大小为M×M的卷积核进行下采样,得到x′i,j∈R ;

之后,将所有处理后的特征块进行拼接,并送入Transformer编码器中进行处理,得到输出特征C4×H1×W1

最后,对输出特征Ft进行上采样,并与初始特征F进行结合,得到最终特征Fl∈R ;

步骤6:分割出文本实例的“核”;

对步骤5获取的最终特征Fl使用卷积操作进行分割,得到所有文本“核”的前景概率图;

1×H1×W1

然后,使用0.3作为阈值,将其转换为二值图B∈R ,二值图B中的每一个联通区域对应一个文本实例的“核”;

步骤7:从文本“核”中构建文本实例;

对步骤6得到的每一个文本“核”,对其进行扩张,得到完整的文本实例。

2.如权利要求1所述的一种实时场景文本检测方法,其特征在于:步骤3的实现方法如下:

将特征FS、F4、F3、F2,采用FPN方式进行自下而上的融合;

64×H4×W4 64×H3×W3 64×H2×W2 64×H1×W1设融合后的特征为P5∈R 、P4∈R 、P3∈R 与P2∈R ,计算方式如下:

P5=reduceconv5(FS)                       (2)P4=conv4(cat(up2(P5),reduceconv4(F4)))    (3)P3=conv3(cat(up2(P4),reduceconv3(F3)))    (4)P2=conv2(cat(up2(P3),reduceconv2(F2)))    (5)其中,reduceconv5(·)、reduceconv4(·)、reduceconv3(·)和reduceconv2(·)分别表示对特征FS、F4、F3与F2进行通道压缩的卷积操作,压缩后的通道特征均为64;up2(·)表示两倍上采样操作;cat(·)表示两个特征通道组合的操作;conv4(·)、conv3(·)与conv2(·)分别表示对组合后的特征进行卷积的操作,其输入特征通道数为128,输出特征通道数为64;

步骤4的实现方法如下:

C4×H1×W1

对步骤3中得到的P5、P4、P3、P2这四个不同尺度的特征进行合并,得到特征F∈R ,其计算公式为:F=conv(cat(P2,up2(P3),up4(P4),up8(P5)))      (6)其中,conv(·)表示卷积运算,cat(·)表示将四个特征在通道上进行合并,up2(·)表示两倍上采样操作,up4(·)表示四倍上采样操作,up8(·)表示八倍上采样操作。

说明书 :

一种实时场景文本检测方法

技术领域

[0001] 本发明涉及一种实时场景文本检测方法,属于计算机视觉处理技术领域。技术背景
[0002] 图像文本检测,旨在对图像中的文本区域进行定位,通常使用矩形框或多边形框标示出图像中文本所在区域。图像文本识别,旨在将图像中的文本内容翻译成计算机中对应的文本表示。通常,文本检测与文本识别技术结合在一起,作为文本识别系统进行应用。
[0003] 按照应用方向的不同,文本检测与文本识别可以分为两类。
[0004] 一类用于扫描文件、个人证件、票据表单等固定场景下的图像处理,在该类领域中,通过文本检测与文本识别技术,对信息进行结构化的抽取并返回,以满足各行各业对数据录入、修改、储存与传输的需求,从而减小大量繁琐的工作量,降低企业用人成本,提高办公效率。
[0005] 另一类是用于对商场、公路等自然场景图像的处理,文本检测与本文识别在该类任务中,通常用于对其他的任务进行辅助而非直接进行应用。例如,在自动驾驶任务中,对交通标志牌内容的检测与识别可以辅助自动驾驶系统对路况进行感知;在图像视频内容审核中,通过该技术实现对图像、视频帧中文字内容的抽取从而判断其中是否包含敏感信息。在线教育行业中,通过对图像中的文字内容进行定位与识别实现拍照翻译与拍照搜题的功能。由此可见,文本检测的精度直接影响着整个文本识别系统的性能。
[0006] 对于固定场景的文本检测与文本识别技术已经十分成熟。但是,对自然场景图像的文本检测技术仍有很大的提升空间,其困难主要体现在成像的质量、复杂的背景、文本的多样性与可变性三个方面。
[0007] 目前,基于深度学习的场景文本检测方法包括三种:基于边框回归的方法、基于图像分割的方法,以及二者混合的方法。
[0008] (1)基于边框回归的方法。在目标检测系统的模型框架上进行修改,以处理文本实例多样性等问题。但是,该类方法的主要问题在于:其很难对任意形状的文本实例进行检测,且检测速度较慢。
[0009] (2)基于分割的文本检测方法。通常是将图像中的文本作为前景统一分割,然后使用连通区域划分的方法区分不同的文本实例。但是,该类方法的主要问题在于:空间上相邻的文本实例在前景概率图中属于同一个连通区域,难以进行区分,因此在预测时需要对文本实例的表达方式进行修改。
[0010] (3)基于混合的方法。通常使用分割的方法先获取完整的文本实例前景概率图,然后使用检测的方法将不同的文本进行区分。该类方法虽然解决了基于边框回归方法存在的较难对任意形状文本实例进行检测的问题,但检测速度依然很慢,很难拓展到实时的场景任务中。

发明内容

[0011] 本发明的目的是为了克服现有技术无法在检测速度与实时性之间进行有效平衡等缺陷,为有效解决高实时性模型无法获取高精度的技术问题,提出一种实时场景文本检测方法,能够高效、实时地提取自然场景图像中的文本位置。
[0012] 一种实时场景文本检测方法,包括以下步骤:
[0013] 步骤1:提取当前自然场景图像的特征。
[0014] 具体地,可采用ResNet18、DarkNet19或VGG16等轻量模型作为骨架网络,提取图像C1×H1×W1 C2×H2×W2 C3×H3×W3 C4×H4×W4不同深度的特征F2∈R 、F3∈R 、F4∈R 、 F5∈R 。其中,C1、C2、C3、
C4分别表示每个特征的通道数,H1、H2、 H3、H4分别表示每个特征的高度,W1、W2、W3、W4分别表示每个特征的宽度;F2表示网络获取的最浅层特征,F3表示网络获取的次浅层特征,F4表示网络获取的次深层特征,F5表示网络获取的最深层特征。R代表实数集。
[0015] 其中,F2到F5分别对应模型不同深度对应的特征,从F2至F5,特征依次加深。
[0016] 步骤2:采用交叉池化注意力方式,对深层特征的权重进行重新分配。目的是获得更好的特征表示。
[0017] 具体地,包括以下步骤:
[0018] 步骤2.1:对深层特征F5进行卷积操作,在通道上进行压缩,得到单通道特征图Fc∈1×H4×W4
R 。
[0019] 步骤2.2:对单通道特征图Fc,分别在H轴与W轴方向进行自适应平均池化,得到两1×H4×1 1×1×W4
个轴线上的特征Px∈R 与Py∈R 。其中,特征Px感受到当前行上所有的特征,特征Py感受当前列上所有的特征。
[0020] 步骤2.3:对特征Px和特征Py采用矩阵乘法计算,使用Sigmoid激活函数对计算结果进行处理,得到注意力矩阵AT,并将AT采用跳跃连接的方式对原始特征进行加权。具体如下:
[0021] 设获取的特征为Fs∈RC4×H4×W4,其计算方式如下:
[0022] Fs=σ(AvgPoolh(Conv(F5))*AvgPoolw(Conv(F5)))·F5+F5  (1)
[0023] 其中,σ(·)表示Sigmoid激活函数,AvgPoolh(·)表示在H轴方向上进行自适应池化操作,AvgPoolw(·)表示在W方向上进行自适应池化操作,Conv(·)表示卷积操作。*表示矩阵相乘操作,·表示矩阵点乘操作,+表示矩阵加法操作。其中,矩阵点乘操作表示对原始特征进行加权,矩阵加法操作表示跳跃连接。
[0024] 步骤3:对不同尺度的特征,自下而上进行融合。
[0025] 具体地,将特征FS、F4、F3、F2,采用FPN方式(Feature PyramidNetworks,特征金字塔网络)进行自下而上的融合,目的是使不同尺度的特征均获得较好的特征表示。具体方法如下:
[0026] 设融合后的特征为P5∈R64×H4×W4、P4∈R64×H3×W3、P3∈R64×H2×W2与 P2∈R64×H似W1,计算方式如下:
[0027] P5=reduceconv5(FS)           (2)
[0028] P4=conv4(cat(up2(P5),reduceconv4(F4)))  (3)
[0029] P3=conv3(cat(up2(P4),reduceconv3(F3)))  (4)
[0030] P2=conv2(cat(up2(P3),reduceconv2(F2)))  (5)
[0031] 其中,reduceconv5(·)、reduceconv4(·)、reduceconv3(·)和reduceconv2(·)分别表示对特征FS、F4、F3与F2进行通道压缩的卷积操作,压缩后的通道特征均为64; up2(·)表示两倍上采用操作;cat(·)表示两个特征通道组合的操作;conv4(·)、 conv3(·)与conv2(·)分别表示对组合后的特征进行卷积的操作,其输入特征通道数为128,输出特征通道数为64。
[0032] 步骤4:将不同尺度特征进行合并。
[0033] 对步骤3中得到的P5、P4、P3、P2这四个不同尺度的特征进行合并,得到特征F∈Rc4×H1×W1。其计算公式为:
[0034] F=conv(cat(P2,up2(P3),up4(P4),up8(P5)))    (6)
[0035] 其中,conv(·)表示卷积运算,cat(·)表示将四个特征在通道上进行合并,up2(·) 表示两倍上采样操作,up4(·)表示四倍上采样操作,up8(·)表示八倍上采样操作。
[0036] 步骤5:使用特征分块Transformer编码器处理文本多样性。
[0037] 将步骤4获取的特征F进行分块处理,然后送入Transformer编码器,获取特征的长距离依赖,用于处理文本多样性的问题。
[0038] 具体地,可以包括以下步骤:
[0039] 首先,对特征F进行分块,得到块状特征 xi,j表示第i行、第j 个特征2
块,M表示每个特征块的长宽均为M,
[0040] 然后,使用大小为M×M的卷积核进行下采样,得到x′i,j∈RC4×1;
[0041] 之后,将所有处理后的特征块进行拼接,并送入Transformer编码器中进行处理,得到输出特征
[0042] 最后,对输出特征Ft进行上采样,并与初始特征F进行结合,得到最终特征 Fl∈RC4×H1×W1。
[0043] 步骤6:分割出文本实例的“核”。
[0044] 对步骤5获取的最终特征Fl使用卷积操作进行分割,得到所有文本“核”的前景概1×H1×W1
率图。然后,使用0.3作为阈值,将其转换为二值图B∈R ,二值图B中的每一个联通区域对应一个文本实例的“核”。
[0045] 步骤7:从文本“核”中构建文本实例。
[0046] 对步骤6得到的每一个文本“核”,对其进行扩张(可采用Vatti算法),得到完整的文本实例。
[0047] 有益效果
[0048] 本发明方法对比现有技术,具有如下优点:
[0049] 1.提出了交叉池化注意力的方式对特征进行重新分配,该方式仅需要少量的计算量即可增强骨架网络的特征表示能力。
[0050] 2.首次提出引用Transformer编码器结构并对其进行修改,得到特征分块 Transformer编码器以处理文本多样性问题,该模块对模型性能有较大的提升。
[0051] 3.本方法在满足实时性的前提下,性能领先于现有的实时场景文本检测方法,在实时性与精度之间实现了更好的平衡。

附图说明

[0052] 图1为本发明所使用的网络模型的整体结构。
[0053] 图2为文本尺度多样性的具体表现。
[0054] 图3为本发明中提出的交叉池化注意力模块。
[0055] 图4为本发明中提出的交叉池化注意力的可视化结果。
[0056] 图5为本发明中特征分块Transformer编码器结构。
[0057] 图6为本发明中构建文本“核”的示意图。
[0058] 图7为从文本“核”中构建完整文本实例的示意图。

具体实施方式

[0059] 下面结合附图和实施例,对本发明方法做进一步详细说明。
[0060] 实施例
[0061] 如图1所示,一种实时场景文本检测方法,包括以下步骤:
[0062] 步骤1:采用ResNet18作为骨架网络进行特征提取。其输入为归一化操作之后的自然场景图像,图像大小为640×640。将ResNet18网络中stage1、stage2、 stage3与stage4四64×160×160 128×80×80 256×40×40 512×20×20
层特征作为F2∈R 、F3∈R 、F4∈R 与F5∈R 。其中底层特征F2可
以获取文本实例的位置,轮廓等细节信息,高层特征F5可以获取图像的语义信息。
[0063] 步骤2:如图2所示,自然场景下的文本实例尺度多变,但在空间上呈现一定的行相关与列相关性,采用图3所示的交叉池化模块与FPN结构对步骤1获取的特征进行处理以获得更好的特征表示。当前卷积神经网络通过堆叠卷积与池化操作来获取更大的感受野,卷积操作从本质上可以看作是对周围的像素或特征进行加权求和,且通常使用的卷积核大小为3×3的固定结构。因此,其特征获取的感受野存在较大的局限性,很难对复杂的场景进行理解,该缺陷在浅层卷积神经网络中更为突出。在本方法中,由于引入的FPN的结构,当特征F5获得较好的特征表示时,自下而上的特征融合方法可以使得底层特征同样具有更好的特征表示能力。因此,在本发明中,仅对特征F5使用交叉池化注意力进行处理。图4为交叉池化注意力模块得到的注意力矩阵可视化结果,可以看出注意力矩阵呈现出两个特征:
[0064] (1)两个轴向特征Px∈R1×1×20与Py∈R1×20×1在结合时使用矩阵乘法进行计算使得注意力矩阵权重存在部分行相关与列相关性,这符合设计交叉池化注意力模块的初衷,即文本实例存在一定的行相关与列相关性。
[0065] (2)注意力矩阵更倾向于对某个区域的特征进行放大,且该区域在文本实例真实的位置上发生了偏移,该现象主要由卷积网络的平移不变性导致(常见于检测与分割算法中),在与浅层特征结合后会对文本实例的真实位置进行解码,因此,交叉池化注意力从本质上可以理解为一种对目标区域特征进行放大的方法。
[0066] 步骤3:将不同尺度特征进行结合并使用特征分块Transformer编码器进行处理。图5为特征分块Transformer编码器的结构。使用Transformer编码器对原始特征直接处理时无法满足实时性的要求。因此对Transformer编码器的结构进行三个方面的修改得到特征分块Transformer编码器(Feature Patch Transformer Encoder,FPTE):
[0067] (1)在本实施例中,将特征分成一批4×4大小的块状特征,然后对将每块特征进行下采样得到1×1大小的特征,最后将处理后的块状特征转换为特征序列以满足Transformer编码器的输入,使用该方式使得输入特征数量降低16倍,后续注意力操作的计
2
算量与注意力矩阵的大小减小了16倍,因此将其添加到网络中仍可满足实时性的要求;
[0068] (2)去除Transformer编码器中的位置编码部分。在NLP任务中,由于 Transformer无法感知每个特征的位置信息,因此将每个特征的绝对位置通过编码与特征同时输入到Transformer中。然而,使用卷积神经网络提取的特征已经可以获得图像中的结构信息,此使引用的Transformer编码器的目的主要为了使特征获取长距离依赖;
[0069] (3)为了获得较高的精度与实时性,Transformer编码器每层注意力机制的个数与编码器深度均设置为1。
[0070] 步骤4:分割出文本实例的“核”。采用基于分割的方法对文本实例进行分割时会导致相邻的文本实例无法采用连通域划分的方法对其进行区分,因此,可以采用Vatti算法构建文本“核”以区分不同的文本实例,图6为构建文本核的示意图,计算公式为:
[0071]
[0072] 其中,di表示文本框缩进的像素点的个数,pn表示需要进行缩进的文本框,Area(· )表示文本框面积计算公式,Perimeter(·)表示文本框周长计算公式。
[0073] 步骤5:对得到的文本“核”采用Vatti的方式进行反向的扩展得到完整的文本实例,图7为文本“核”扩张示意图。其扩张公式为:
[0074]
[0075] 其中,ei表示当前文本“核”扩张的像素点个数,kn表示需要进行扩张的文本“核”。
[0076] 验证
[0077] 使用数据集为ICDAR2015与TotalText数据集。ICDAR2015共包含1500 张数据,每张数据大小为720×1280,其中训练集1000张,测试集500张,平均每张图片上含有7.12个文本实例,所有的文本实例均采用四边形框进行标注,因此该数据集由水平、竖直和倾斜三种不同的文本实例构成。Total‑ Text共包含1555张数据,数据尺度多变,其中训练集1255张,测试集300 张,平均每张图片上含有7.37个文本实例,所有的文本实例均采用多边形框进行标注,因此在该数据集中包含水平、弯曲与任意形状的文本实例。
[0078] 本实施例在ICDAR2015与TotalText数据集上进行实验,在数据增强方面,首先将图片进行按照0.5的概率进行水平翻转,然后在(‑10°,10°)之间随机挑选一个角度对图像进行旋转,接着在(0.5,3)内随机选取一个比例对图像进行缩放,最后在缩放后的图片上使用640×640的大小的窗口进行随机裁剪。测试时,为了使测试时的数据分布与训练时的数据分布尽可能地接近,在 ICDAR2015数据集上将短边缩放到763个像素点,在TotalText数据集上保证图像比例不变的前提下将短边缩放到800个像素点。
[0079] 在实现上,所有的实验均使用Pytorch深度学习框架完成,训练周期设置为1200,每次迭代的批量大小设置为2,在4块2080ti上采用分布式训练完成。所有的性能测试也均在2080ti上进行,其中ICDAR2015数据集上IoU阈值设置为0.7、TotalText数据集上IoU阈值设置为0.6。在训练方式上,采用 Adam(Adaptive Moment Estimation)优化器对参数进行‑8学习,其中初始学习率设置为0.001,betas分别设置为0.9与0.999,eps设置为1e ,weight_decay设置为0。在训练策略上,首先使用Warmup的策略训练3个epoch,然后学习率在接下来的训练中按照 进行衰减。其中,iter表示当前迭代的次数,maxiter表示整
个训练阶段迭代的次数。