ABCNet 精读:使用自适应贝塞尔曲线网络进行进行实时场景文本定位 OCR 文本定位 文本检测 CVPR

2023-05-16

文章目录

  • ABCNet 导读:使用自适应贝塞尔曲线网络进行进行实时场景文本定位
  • ABCNet:Real-time Scene Text Spotting with Adaptive Bezier-Curve Network
    • Abstract 摘要
    • 介绍
      • 1.1 相关工作
    • 2.自适应贝塞尔曲线网络(ABCNet)
      • 2.1贝塞尔曲线检测
        • 2.2.1 贝塞尔真值生成
        • 2.1.2 贝塞尔曲线人工合成数据集
      • 2.2 BezierAlign
    • 3. 实验
      • 3.1 实现细节
      • 3.2 在Total-Text实验结果
      • 3.3 在CTW1500实验结果
    • 4. 结论

ABCNet 导读:使用自适应贝塞尔曲线网络进行进行实时场景文本定位

ABCNet:Real-time Scene Text Spotting with Adaptive Bezier-Curve Network

ABCNet,点我下载
CVPR2020收录,在场景文本定位达到最优先进性。

Abstract 摘要

场景文字检测和识别越来越受到研究重视。现行的方法被别粗略的划分成两个类别:基于字符的和基于分割的。这些方法对于字符注释来说是耗费巨大,还得维护一个复杂的过程,对实时应用非常不适合。所以我们提出自适应贝塞尔曲线网络(ABCNet)来解决这个问题。我们的贡献有三个:首次采用参数化的贝塞尔曲线自适应拟合任意形状的文本;我们设计了一种新贝塞尔对齐层,用于提取具有任意形状的文本实例的精确卷积特征,与以前的方法相比,大大提高了精度。与标准的边界盒检测相比,我们的贝塞尔曲线检测引入了微不足道的计算开销,这使得我们的方法在效率和准确性上都具有优势。

在任意形状的基准数据集(Total-Text和CTW1500)上进行的实验表明,ABCNet实现了最新进的精度,同时显著提高了速度。
代码可以在软件包AdelaiDet中找到

介绍

场景文本检测与识别由于在计算机视觉中的广泛应用而受到越来越多的关注。尽管最近取得了巨大的进展[10、41、27、35、26、42],但由于其在大小、长宽比、字体样式、透视失真和形状等方面的多样性,检测和识别野生文本在很大程度上仍未解决。虽然深度学习的出现极大地提高了场景文本定位任务的性能,但是目前的方法离实际应用中仍然存在相当大的差距,特别是在效率方面。

近年来,许多端到端方法[30,36,33,23,43,20]显著提高了任意形状场景文本定位的性能。然而,这些方法要么使用基于分段的方法来维护复杂的管道,要么需要大量昂贵的字符级标注。此外,几乎所有这些方法推理速度都很慢,妨碍了实时应用程序的部署。因此,我们的动机是设计一个简单而有效的端到端框架,用于在图像中定向或弯曲的场景文本定位[5,26],它确保了快速的推断时间,同时达到了与最先进方法相媲美甚至更好的性能。

为了实现这一目标,我们提出了自适应贝塞尔曲线网络(ABCNet),一种端到端的可训练框架,用于任意形状的场景文本识别。ABCNet通过简单而有效的自适应Bezier曲线实现了任意形状的场景文本检测,与标准的矩形边框检测相比,它带来的计算开销可以忽略不计。此外,我们设计了一种新颖的特征对齐层—BezierAlign—来精确计算弯曲形状文本实例的卷积特征,从而在几乎可以忽略计算开销的情况下实现较高的识别精度。我们首次用参数化的贝塞尔曲线表示有向文本或弯曲文本,结果表明了该方法的有效性。我们的定位结果示例如图1所示。

基于分段的结果很容易受到附近文本的影响。非参数非结构化分割结果使得后续识别分支的特征很难对齐。基于分段的结果通常需要复杂的后处理,影响效率。得益于参数化的Bezier曲线表示,我们的ABCNet可以产生结构化的检测区域,因此BezierAlign采样过程可以用来自然地连接识别分支。

请注意以前的方法,如TextAlign[11]和FOTS[24]可以看作是ABCNet的一个特例,因为一个四边形的边界框可以看作是最简单的具有4条直线边界的任意形状的边界框。此外,ABCNet可以避免复杂的转换,如2D注意[19],使得识别分支的设计更加简单。

我们总结了我们的主要贡献如下:

  • 为了在图像中准确定位有向和弯曲的场景文本,我们首次引入了一种新的简洁的贝塞尔曲线参数表示方法。与标准的边界框表示相比,它引入了微不足道的计算开销。

  • 我们提出了一种采样方法,即BezierAlign,用于精确的特征对齐,因此识别分支可以自然地连接到整个结构。通过共享主干特征,识别分支可以设计成轻量级结构。

  • 我们方法的简单性允许它实时执行推理。ABCNet在Total-Text和CTW1500这两个具有挑战性的数据集上实现了最先进的性能,同时展示了有效性和效率方面的优势。

1.1 相关工作

场景文本定位需要同时关注检测和识别文本,而不只是一个任务。近年来,基于深度学习的方法的出现极大地提高了文本定位的性能。检测和识别的性能都得到了极大的提高。我们将几种具有代表性的基于深度学习的场景文本定位方法归纳为以下两类。图2显示了典型作品的概述。

图2。一些和我们最相关端到端场景文本定位方法概览。在GT(真实)边框里,“W”“R”和“C”分别表示字词级注释、文本内容和字符级注释。“H”、“Q”和“P”表示该方法能够分别检测水平、四边形和任意形状的文本。“RP”表示该方法可以识别四边形框内的弯曲文本。“R”:识别;“BBox”:边界框。虚线框表示该方法无法检测到的文本形状

常规的端到端场景文本定位Li等人提出了第一个基于深度学习的端到端可训练的场景文本定位方法。该方法成功地使用了一个RoI Pooling将检测和识别两阶段框架[34]汇聚到一起,但它只能识别水平和聚焦的文本。它的改进版本[19]显著地改进了性能,但是速度有限。He等人的[11]和Liu等人的[24]采用无锚机制来提高训练和推理速度。他们使用类似的抽样策略,即Text-Align-Sampling和RoI-Rotate分开用于从四边形检测结果中提取特征。注意到这两种方法都不兼容定位任意形状的场景文本。

任意形状的端到端场景文本定位为了检测任意形状的场景文本,Liao等人[30]提出了一种掩码TextSpotter,它巧妙地改进了掩码R-CNN,并使用字符级监督来同时检测和识别字符和实例掩码。该方法显著提高了任意形状场景文本的识别性能。然而,字符级的基本真值是昂贵的,使用免费合成数据很难为真实数据生成字符级的真值。它的改进版本[20]显著地减轻了对字符级ground truth的依赖。该方法依赖于区域建议网络,在一定程度上限制了速度。Sun等人提出了TextNet预先生成四边形检测边界框,然后利用区域建议网络来填充检测特征进行识别。虽然该方法可以直接从四边形检测中识别任意形状的文本,但其性能仍然有限。

最近,Qin等人提出使用RoI掩蔽来聚焦任意形状的文本区域。然而,结果可能很容易受到离群点的影响。此外,分割分支增加了计算负担;拟合多边形过程也引入了额外的时间消耗;分组结果通常是锯齿状的,不平滑的。:[23]的工作是第一个单阶段任意形状的场景文本定位方法,需要字符级真实数据进行训练。[43]的作者提出了一种新的采样方法,RoISlide,它使用来自文本实例的预测片段的融合特征,因此它对长任意形状的文本具有很强的鲁棒性。

2.自适应贝塞尔曲线网络(ABCNet)

ABCNet是一个端到端可训练的场景文本定位框架。在图3中可以看到一个直观的流程。受到[47,37,12]的启发,我们采用了一个单次、无锚定的卷积神经网络作为检测框架。删除锚盒大大简化了我们任务的检测。这里的检测是在输出特征图上进行密集预测,检测由4个叠加的卷积层构成,其中stride为1,padding为1,kernel为3×3。接下来,我们将提出的ABCNet的关键组件的两个部分:1)贝塞尔曲线检测;2) BezierAlign和识别分支。
在这里插入图片描述
图3。本文提出的ABCNet框架。利用贝塞尔曲线检测结果,利用三次贝塞尔曲线和贝塞尔对齐提取曲线序列特征。整体框架具有端到端可训练性,效率高。紫色的点表示三次贝塞尔曲线的控制点。

2.1贝塞尔曲线检测

与基于分段的方法相比[40,44,1,38,45, 28],基于回归的方法是对任意形状文本检测更直接的解决方案,如[26,42]。然而,以往基于回归的方法需要复杂的参数化预测来拟合文本边界,在实际中对各种文本形状的拟合效率和鲁棒性都不高。

为了简化任意形状的场景文本检测,我们采用回归方法,认为贝塞尔曲线是曲线文本参数化的理想概念。Bezier曲线是以Bernstein多项式[29]为基的参数曲线c(t)。定义如式(1)所示。

c ( t ) = ∑ i = 0 n b i B i ( t ) , 0 ≤ t ≤ 1 , (1) c(t) = \displaystyle\sum_{i=0}^nb\scriptscriptstyle i \displaystyle B\scriptscriptstyle i \displaystyle(t),0 \le t \le1, \tag{1} c(t)=i=0nbiBi(t),0t1,(1)
式中,n为次数, b i b\scriptscriptstyle i bi为第 i i i个控制点, B i , n ( t ) B\scriptscriptstyle i,n \displaystyle (t) Bi,n(t)为Bernstein基多项式,如式(2)所示:
B i , n ( t ) = ( n i ) t i ( 1 − t ) n − i , i = 0 , . . . , n , (2) B\scriptscriptstyle i,n \displaystyle (t)=\dbinom{n}{i} t^i(1-t)^{n-i},i = 0,...,n, \tag{2} Bi,n(t)=(in)ti(1t)ni,i=0,...,n,(2)
式中, ( n i ) \binom{n}{i} (in)是二项式系数,为了拟合任意形状的文本与贝塞尔曲线,我们全面观察任意形状的场景文本从现有的数据集,在现实世界中,我们经验地证明了一个三次贝塞尔曲线(即 n n n为3),在实际中足以拟合不同种类的任意形状的场景文本。三次贝塞尔曲线的图解如图4所示。
在这里插入图片描述
图4.三次贝塞尔曲线。 b i b_i bi表示控制点。绿色的线形成一个控制多边形,黑色的曲线是三次贝塞尔曲线。注意,只有两个端点 b 1 b_1 b1 b 4 b_4 b4时,Bezier曲线退化为一条直线。

基于三次贝塞尔曲线,我们可以将任意形状的场景文本检测简化为一个总共有八个控制点的边界盒回归。请注意,具有四个控制点(四个顶点)的纯文本是任意形状的场景文本的典型案例。为了保持一致性,我们在每条长边的三个点上插入额外的两个控制点。

为了学习控制点的坐标,我们首先生成了2.1.1中描述的Bezier曲线真实标签,然后使用类似于[25]中的回归方法对目标进行回归。对于每个文本实例,我们使用
Δ x = b i x − x m i n , Δ y = b i y − y m i n , ( 3 ) \Delta_x = b_{ix} - x_{min},\Delta_y = b_{iy} - y_{min}, (3) Δx=bixxmin,Δy=biyymin,(3)
式中 x m i n x_{min} xmin y m i n y_{min} ymin分别为四个顶点中 x x x y y y 的最小值。预测相对距离的优点是与贝塞尔曲线控制点是否超出图像边界无关。在检测头内部,我们只需要一个16个输出通道的卷积层来学习∆x和
∆y,这几乎是无消耗的,但结果仍然可以是准确的,这将在第3节中讨论。

2.2.1 贝塞尔真值生成

在本节中,我们将简要介绍如何在原始注释真值基础上生成贝塞尔曲线。任意形状的数据集,例如Total-text[5]和CTW1500[26],使用多边形对文本区域注释。给定曲线边界上的标注点 { p i } i = 1 n \{p_i\}_{i=1}^n {pi}i=1n,其中 p i p_i pi为第 i i i个标注点,为了达到得到式(1)中三次贝塞尔曲线 c ( t ) c(t) c(t)的最优参数的目标,只需应用标准最小二乘法即可,如式(4)所示:
[ B 0 , 3 ( t 0 ) ⋯ B 3 , 3 ( t 0 ) B 0 , 3 ( t 1 ) ⋯ B 3 , 3 ( t 1 ) ⋮ ⋱ ⋮ B 0 , 3 ( t m ) ⋯ B 3 , 3 ( t m ) ] [ b x 0 b y 0 b x 1 b y 1 b x 2 b y 2 b x 3 b y 3 ] = [ p x 0 p y 0 p x 1 p y 1 ⋮ ⋮ p x m p y m ] (4) \left[ \begin{matrix} B_{0,3}(t_0) & \cdots & B_{3,3}(t_0) \\ B_{0,3}(t_1) & \cdots & B_{3,3}(t_1) \\ \vdots & \ddots & \vdots \\ B_{0,3}(t_m) & \cdots & B_{3,3}(t_m) \end{matrix} \right] \left[ \begin{matrix} b_{x0} & b_{y0} \\ b_{x1} & b_{y1} \\ b_{x2} & b_{y2} \\ b_{x3} & b_{y3} \end{matrix} \right] = \left[ \begin{matrix} p_{x0} & p_{y0} \\ p_{x1} & p_{y1} \\ \vdots & \vdots \\ p_{xm} & p_{ym} \end{matrix} \right] \tag{4} B0,3(t0)B0,3(t1)B0,3(tm)B3,3(t0)B3,3(t1)B3,3(tm)bx0bx1bx2bx3by0by1by2by3=px0px1pxmpy0py1pym(4)
这里 m m m表示曲线边界的标注点的数量。对于Total-Text和CTW1500, m m m分别是5和
7。 t t t是用累计长度与折线周长之比来计算的。根据式(1)和式(4),我们将原始的折线标注转换为参数化的Bezier曲线。注意,我们直接分别使用第一个和最后一个注释点作为第一个控制点( b 0 b_0 b0)和最后一个控制点( b 4 b_4 b4)。可视化对比如图5所示,结果表明,生成的结果在视觉上甚至比原来的ground truth更好。此外,基于结构化的Bezier曲线包围框,我们可以很容易地使用第2.2节中描述的BezierAlign将弯曲的文本变换成水平格式,而不会产生剧烈的变形。图6显示了生成Bezier曲线结果的更多示例。我们的朴素的方法,在实际中可以推广到不同类型的文本。
在这里插入图片描述
图5.生成贝塞尔曲线比较。在图(b)中对于每个曲线边,红色虚线形成一个控制多边形,红点代表控制点。变换结果如下图所示。在图(a)中,我们利用TPS[2]和STN[14]将原始的ground truth变换成矩形。在图(b)中,是使用生成的Bezier曲线和我们的BezierAlign变换的结果。

在这里插入图片描述
图6.贝塞尔曲线生成的实例结果。绿线是最后的贝塞尔曲线结果。红色虚线表示控制多边形,4个红色端点表示控制点。放大可以获得更好的可视化效果。
在这里插入图片描述
图7.以前的采样方法和BezierAlign对比。该方法能够准确地提取文本区域的特征,对识别训练至关重要。请注意,align过程是在中间的卷积特征中处理的。
在这里插入图片描述
图8.人工合成三次贝塞尔曲线标注数据的实例

2.1.2 贝塞尔曲线人工合成数据集

对于端到端场景文本定位方法,总是需要大量的自由人工合成数据,如表2所示。然而,现有的800k SynText数据集[7]仅为大多数纯文本提供了四边形边界框。为了丰富任意形状的场景文本,我们尝试使用VGG人工合成方法[7]生成150k合成数据集(94,723张图像包含了大部分的直文本,54,327张图像包含了大部分的弯文本)。特别地,我们从COCOText[39]中过滤出40k个无文本的背景图像,然后用[32]和[17]准备好每个背景图像的分割掩模和场景深度,用于接下来的文本渲染。为了增加合成文本的形状多样性,我们对VGG合成方法进行了修改,使用各种艺术字体和语料库合成场景文本,并对所有文本实例生成多边形标注。然后,这些标注数据将被2.1.1节说描述的方法生成贝塞尔曲线GT。我们的合成数据示例如图8所示。

2.2 BezierAlign

为了支持端到端训练,以前的方法大多采用各种采样(特征对齐)方法来连接识别分支。通常,抽样方法表示网络内区域裁剪过程。换句话说,给定一个特征图和感兴趣区域(RoI),利用抽样方法选择RoI的特征,有效地输出一个固定大小的特征图。但是,以前的非分割方法的采样方法,如RoI Pooling [18], RoIRotate [24], Text-Align-Sampling[11],或RoI Transform
[36]不能正确对齐任意形状的文本的特性
(RoISlide[43]众多预测片段)。利用紧凑贝塞尔曲线边界盒的参数化特性,提出了特征采样的贝齐尔对齐方法。BezierAlign是从RoIAlign[8]扩展而来的。不像RoIAlign, BezierAlign的采样网格的形状不是矩形的。相反,任意形状网格的每一列都与文本的Bezier曲线边界正交。采样点分别在宽度和高度上的间距相等,是根据坐标双线性插值的。
在给定输入特征图和贝塞尔曲线控制点的情况下,我们同时处理输出像素大小为 h o u t × w o u t h_{out}×w_{out} hout×wout的矩形特征图。以特征输出图中位置在 ( g i w , g i h ) (g_{iw},g_{ih}) (giw,gih)的像素 g i g_i gi为例,由式(5)计算 t t t:
t = g i w w o u t (5) t=\dfrac {g_{iw}} {w_{out}} \tag{5} t=woutgiw(5)
然后利用 t t t和式(1)计算上贝塞尔曲线边界 t p tp tp 和下贝塞尔曲线边界 b p bp bp 的点。利用 t p tp tp b p bp bp,我们可以用式(6)将采样点 o p op op 线性索引化:
o p = b p ⋅ g i h h o u t + t p ⋅ ( 1 − g i h h o u t ) op = bp \cdot \dfrac {g_{ih}} {h_{out}}+tp \cdot (1-\dfrac {g_{ih}}{h_{out}}) op=bphoutgih+tp(1houtgih)
利用 o p op op 的位置,我们可以很容易地应用双线性插值来计算出结果。之前的抽样方法与BezierAlign的比较如图7所示。
识别分支 得益于共享骨干功能和BezierAlign,我们设计了一个轻量级的识别分支如表1所示,用于更快的执行。它包括6个卷积层,1个双向层LSTM[13]层,1个全连接层。基于输出类别分数,我们使用一个经典的CTCLoss评价文本字符串(GT)对齐[6]。注意,在训练过程中,我们直接使用生成的Bezier曲线GT来提取RoI特征。因此,检测分支不影响识别分支。在推理阶段,将RoI区域替换为2.1节所述的检测Bezier曲线。实验3简化研究表明,提出的BezierAlign可以显著提高识别性能。

3. 实验

我们在两个最近引入的任意形状的场景文本基准上评估了我们的方法,即全文本[3]和CTW1500[26],它们也包含大量的连续文本。我们还在Total-Text进行了简化研究,以验证我们提出的方法的有效性。

3.1 实现细节

这篇论文的主干网络采用了一个与之前大多数论文相同的设置,即 ResNet-50[9]和一个特征金字塔网络(FPN)[22]。对于检测分支,我们利用输入图像的1/8、1/16、1/32、1/64和1/128分辨率的5个特征图上的RoIAlign,而对于识别分支,BezierAlign在三种大小分别为1/4、1/8和1/16的feature map上执行。预训练的数据来自于公开的基于英文单词的数据集,包括如2.1.2节中描述的150k合成数据,从原始COCO-Text[39]和7k ICDAR- MLT数据[31]中过滤出的15k张图像。然后,在目标数据集的训练集上对预先训练的模型进行finetuning。此外,我们还采用了数据增强策略,如随机标度训练,短标度随机选择560 -~800,长标度小于1333;随机裁剪,确保裁剪尺寸大于原始尺寸的一半,并且没有任何文本被剪切(对于一些难以满足条件的特殊情况,我们不应用随机裁剪)。
我们使用4台特斯拉V100 gpu训练我们的模型,图像批处理大小为32。最大迭代150K;初始化学习率为0.01,降为70k迭代时0.001,120K迭代时0.0001。整个培训过程大约需要3天。
在这里插入图片描述
表1.识别分支的结构,这是一个简化版本的CRNN[35]。对于所有的卷积层,填充大小限制为1。 n n n 表示批大小。 c c c 表示通道大小。 h h h w w w 代表输出特征图的高度和宽度, n c l a s s n_{class} nclass代表的预测类的数量,本文设置为97,包括英文字符大小写,数字,符号,一个代表所有其他类别符号,和最后一类EOF。

3.2 在Total-Text实验结果

数据集。Total-Text数据集[3]是在2017年提出的最重要的任意形状场景文本基准之一。它收集了各种场景,包括类文本复杂场景和低对比度的背景。它包含1555张图像,其中1255张用于训练,300张用于测试。为了模拟真实的场景,这个数据集的大多数图像都包含大量的常规文本,同时保证每个图像至少有一个弯曲文本。文本实例使用多边形进行单词级注释。它的扩展版本[5]改进了训练集的注释,按照文本识别序列为每个文本实例添加了一个固定的10点注释。数据集只包含英文文本。为了评估端到端的结果,我们使用与以前相同的度量方法,即使用F-measure来测量单词的准确性。

简化研究:BezierAlign。为了评估提出的组件的有效性,我们对这个数据集进行简化研究。我们首先对采样点的数量如何影响端到端的结果进行敏感性分析,如表4所示。从结果中可以看出,采样点的数量对最终的性能和效率有很大的影响。我们发现(7,32)在F-measure与FPS之间达到最佳平衡,在接下来的实验中作为最后的设置。我们进一步评估BezierAlign,将其与图7中所示的先前抽样方法进行比较。表3中显示的结果表明,BezierAlign可以显著改善端到端结果。定性的例子如图9所示。
在这里插入图片描述
图9.四边形抽样方法和BezierAlign识别结果质量。左:原始图像。右上角:采用四边形抽样的结果。右下角:使用BezierAlign的结果。

简化研究:贝塞尔曲线检测。 另一个重要的组成部分是贝塞尔曲线检测,它可以实现任意形状的场景文本检测。因此,我们也进行了实验来评估的时间消耗贝塞尔曲线检测。表5中的结果表明与标准边界盒检测相比,贝塞尔曲线检测没有引入额外的计算。
在这里插入图片描述
表2.在Total-Text场景文本定位结果。这里*表示根据原始论文或提供的代码粗略推断的结果。当输入图像的短尺寸为600时,ABCNet-F速度更快。MS:多尺度测试。数据集:AddF2k [46];IC13 [16];IC15 [15];TT [4];MLT [31];COCO-Text [39]

先进性对比。我们进一步将我们的方法与以前的方法进行比较。从表2中可以看出,我们的单尺度结果(短标度为800)在实现实时推理速度的同时,可以获得具有竞争力的性能,从而可以更好地权衡速度和单词的准确性。通过多尺度推理,ABCNet实现了最先进的性能,特别是在运行时间上显著优于以前的所有方法。值得一提的是,相同精度下我们最快的版本比以前最好的方法[20]快11倍以上。
结果质量。ABCNet的一些结果质量如图10所示。结果表明,该方法能准确地检测和识别任意形状的文本。此外,我们的方法还可以很好地处理直文本,具有近似四边形的紧密边界框和正确的识别结果。图中也出现了一些错误,这些错误主要是由于错误地识别了其中一个字符。
在这里插入图片描述
图10.在Total-text上ABCNet检测结果质量。检测结果以红色边框显示。浮点数是预测的置信度。放大可以获得更好的可视化效果。
在这里插入图片描述
表3.BezierAlign简化研究。遵循水平采样[18],遵循四边形采样[11]。
在这里插入图片描述
表4.BezierAlign取样点的数目的简化研究。

3.3 在CTW1500实验结果

数据集。CTW1500[26]是2017年提出的另一个重要的任意形状场景文本基准。与Total-Text相比,该数据集包含中英文文本。此外,注释是基于文本行级别的,它还包括一些类似文档的文本,即,无数可以堆叠在一起的小文本。CTW1500包含1k训练图像,500张测试图像。
实验。由于该数据集中中文文本的占用非常小,我们在训练时直接将所有中文文本视为“未见”类,即第96类。注意在我们的实现中最后一类,为第97类是“EOF”。我们遵循与[43]相同的评价标准。实验结果如表6所示,表明在端到端场景文本定位方面,ABCNet可以显著地超越以前最先进的方法。此数据集的示例结果如图11所示。从图中,我们可以看到一些长文本行实例包含许多单词,这使得完全匹配单词准确性变得非常困难。也就是说一个字符识别错误将导致整个文本零分。
在这里插入图片描述
图11.在CTW1500端到端定位结果质量。放大可以获得更好的可视化效果。
在这里插入图片描述
表6.CTW1500上的端到端的场景文本定位结果。*表示来自[43]的结果。“None”代表无词典。“Strong Full”表示我们使用了测试集中出现的所有单词。

4. 结论

我们提出了ABCNet,一种基于贝塞尔曲线的任意形状场景文本实时端到端定位方法。利用参数化的贝塞尔曲线重新构造任意形状的场景文本,ABCNet可以用贝塞尔曲线检测任意形状的场景文本,与标准边框盒检测相比引入的计算成本可以忽略不计。使用这种规则的Bezier曲线边框,我们可以通过一个新的BezierAlign层自然地连接一个轻量级的识别分支。

另外,通过利用我们的Bezier curve 合成数据集和公开数据集,在两个任意形状的场景文本基准测试集(Total-Text和CTW1500)证明了我们的ABCNet可以实现最先进的性能,同时也比以前的方法快得多。

欢迎访问我的博客
隆力奇的博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ABCNet 精读:使用自适应贝塞尔曲线网络进行进行实时场景文本定位 OCR 文本定位 文本检测 CVPR 的相关文章

  • 向 Tesseract eng.traineddata“添加”新字体

    据我所知 Tesseract 3 x 附带了 6 种英文字体 如果我错了 请纠正我 我需要训练 Tesseract 来支持 5 种以上的字体 我只需要大写字母和数字 没有特殊字符或符号 我遵循了各种流程 例如 向 Tesseract 3 O
  • 使用 OCR python 读取图像上的数字

    我正在尝试使用 Python 和 tesseract 中的 OpenCV 提取图像上的数字 这是我的尝试 但我什么也没得到 该代码没有返回预期的数字 import fitz pytesseract os re import cv2 sTem
  • Android OCR 使用 tess-two(tesseract 的一个分支)

    我正在使用 OCR 作为正在进行的项目中的模块 经过一周的深入研究后 我认为我应该在 Eclipse 上运行一个测试应用程序 看看它的工作有多准确 我发现 tess two 是 tesseract 的一个分支 作为对我的 OCR 的支持 我
  • 使用 PHP 识别数字

    我正在尝试从图片中提取一些范围从 1 到 99 的数字 我已经尝试了几种使用 PHP 的 OCR 方法 但最终我的脚本会失败 因为数字偶尔会向左或向右旋转 5 这使得图片无法识别 我现在已经安装了 Ocropushttp code goog
  • 如何将 Tesseract OCR 库集成到 C++ 程序中

    我正在尝试使用Tesseract OCR 库 https code google com p tesseract ocr 为了创建一个程序来读取电梯楼层号码的图片 我还没有找到任何关于如何将 Tesseract 库包含到 C 文件中的示例
  • PHP/jQuery/JavaScript 中的免费 OCR 处理 API [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何免费的 PHP OCR API 在 PHP jQuery 或 JavaScript 中有详细
  • 为什么用 PIL 和 pytesseract 无法获取字符串?

    这是一个简单的Python 3光学字符识别 OCR 程序来获取字符串 我已经在这里上传了目标gif文件 请下载并另存为 tmp target gif try from PIL import Image except ImportError
  • java中pdf解析为文本

    我有一个阿拉伯语 PDF 我想使用 Java 将其解析为文本文档 我已经尝试了很多次 英语单词解析成功 但阿拉伯语单词解析失败 谁能推荐一个可以正确转换阿拉伯语单词的解决方案 我想到了几个图书馆 阿帕奇蒂卡 http tika apache
  • 识别图像中的 visio 形状

    在提供 SCADA 解决方案时 我们经常会获得结构化控制图 如下所示的 visio 类似流程图 中指定的最终用户规范 这些规范通常以 PDF 格式或图像形式提交 为了在 C 中访问这些 我希望使用 OpenCV 库之一 我正在研究模板识别
  • 超正方体的替代方案

    Python 或 OpenCV 中是否有替代软件或任何库可以替代 Tesseract 进行字符识别 有什么建议的可以用Python实现的字符识别方法吗 Thanks This site https github com kba awesom
  • Android 中最好的 OCR(光学字符识别)示例 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想要一个在android中运行OCR的例子 我做了一些研究并找到了一个在android中实现OCR的例子 https github co
  • 什么是可以检测手写的好的 OCR? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要一个库 可以在扫描手写纸后从其中提取文本 正常拉丁文本 它可以是一个免费的解决方案 甚至是我必须付费的解决方案 只要它可以处理大写字
  • Windows 7 OCR API

    我一直在审查 Office 2007 MODI OCR 的替代品 OneNote 2010 解决方案的质量 结果低于 2007 我注意到 一旦您安装了可选 tiff 过滤器 http technet microsoft com en us
  • tess4j 与 Spring mvc

    我已经尝试将 tess4j 作为独立的 java 程序 并且它可以正常工作并给出文本输出 现在我正在尝试创建一个 spring mvc web 项目 在 pom 中添加 tess4j 的依赖项 并且我已在我的项目中添加了 tess4j 源
  • 为什么 pytesseract 导致 AttributeError: 'NoneType' 对象没有属性 'bands'?

    我正在尝试开始使用 pytesseract 但正如你在下面看到的 我遇到了问题 我发现人们遇到了似乎相同的错误 他们说这是 PIL 1 1 7 中的错误 其他人说这个问题是由于 PIL 懒惰造成的 需要强制 PIL 加载图像im load
  • Google Vision API 文本识别器无法正常工作

    我使用 Google Vision API 来读取报纸等任何物体上的文本或墙上的文本 我已经尝试过来自 Google 开发者网站的相同示例 但我的文本识别器总是返回 falseIsOperational功能 我在 Blackberry ke
  • tesseract (v3.03) 输出为 PDF [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 为什么会返回这个错误呢 root amd 3700 2gb ocr test tesseract l dan pdf png out pd
  • 用于屏幕文本的 OCR(光学字符识别)

    我正在尝试创建一个软件 通过捕获屏幕截图来自动化 PC 然后使用 OCR 光学字符识别 来查找要单击的特定按钮 例如 我已经有了鼠标和键盘控制部分 但现在 我需要 OCR 来处理屏幕截图 我发现 Tesseract OCR 似乎不能很好地处
  • 从图像中识别数字

    我正在尝试编写一个应用程序来查找图像内的数字并将它们相加 如何识别图像中的书写数字 图像中有很多框 我需要获取左侧的数字并将它们相加得出总数 我怎样才能实现这个目标 编辑 我对图像进行了 java tesseract ocr 但没有得到任何
  • 在 google Vision OCR 中被识别为单个单词的特殊字符?

    我试图让谷歌视觉 OCR 正则表达式可搜索 我已经完成了它 并且当文档仅包含英文字符时效果很好 但当有其他语言的文本时 它就会失败 发生这种情况是因为我在谷歌视觉单词组件中只有英文字符 如下所示 VISION API WORD COUNTE

随机推荐