CVPR2020论文解读:OCR场景文本识别
CVPR2020论文解读:OCR场景文本识别
ABCNet: Real-time Scene Text Spotting with Adaptive Bezier-Curve Network∗
论文链接:https://arxiv.org/pdf/2002.10200.pdf
摘要
场景文本的检测与识别越来越受到人们的关注。现有的方法大致可以分为两类:基于字符的方法和基于分割的方法。这些方法要么代价高昂,要么需要维护复杂的管道,这通常不适合实时应用。在这里,我们提出了自适应贝塞尔曲线网络(ABCNet)来解决这个问题。我们的贡献有三点:
1) 第一次,我们通过参数化的贝塞尔曲线自适应地处理任意形状的文本。
2) 我们设计了一个新的bezierallign层,用于提取任意形状文本实例的精确卷积特征,与以前的方法相比,显著提高了精度。
3) 与标准包围盒检测方法相比,我们的Bezier曲线检测方法的计算开销可以忽略不计,从而使我们的方法在效率和精度上都具有优势。在任意形状的基准数据集total Text和CTW1500上的实验表明,ABCNet达到了最新的精度,同时显著提高了速度。特别是,在全文本上,我们的实时版本比最新的状态识别方法快10倍以上,具有竞争性的识别精度。
1. Introduction
我们的主要贡献总结如下。
•为了精确定位图像中的定向和弯曲场景文本,我们首次引入了一种新的使用贝塞尔曲线的弯曲场景文本的简明参数化表示。与标准的边界框表示相比,它引入了可忽略的计算开销。
•我们提出了一种采样方法,即a.k.a.Bezier对齐,用于精确的特征对齐,因此识别分支可以自然地连接到整个结构。通过共享主干特征,识别分支可以设计成轻量级结构。
•我们方法的简单性允许它实时进行推理。ABCNet在Total Text和CTW1500这两个具有挑战性的数据集上实现了最先进的性能,展示了在效率和效率方面的优势。
1.1. Related Work
我们将几种具有代表性的基于深度学习的场景文本识别方法归纳为以下两类。图2显示了典型作品的概述。
Regular End-to-end Scene Text Spotting
Arbitrarily-shaped End-to-end Scene Text Spotting
2. Adaptive Bezier Curve Network (ABCNet)
ABCNet是一个端到端的可训练框架,用于识别任意形状的场景文本。直观的管道如图3所示。受[47,37,12]的启发,我们采用了单点无锚卷积神经网络作为检测框架。移除锚定箱可以简化我们任务的检测。该算法在检测头输出特征图上进行密集预测,检测头由4个步长为1、填充为1、3×3核的叠层卷积层构成。接下来,我们分两部分介绍拟议的ABCNet的关键组成部分:
1) 贝塞尔曲线检测
2) bezierralign和识别分支。
2.1. Bezier Curve Detection
Bezier曲线表示参数曲线c(t),它使用Bernstein多项式[29]作为其基础。定义如等式(1)所示。
式中,n表示度数,bi表示第i个控制点,
表示伯恩斯坦基多项式,如式(2)所示:
其中
是二项式系数。为了用贝塞尔曲线确定文本的任意形状,我们从现有的数据集中全面地观察任意形状的场景文本。在现实世界中,我们通过经验证明,三次贝塞尔曲线(即n为3)在实践中对不同类型的任意形状的场景文本是足够的。三次贝塞尔曲线如图4所示。
2.1.1 Bezier Ground Truth Generation
在本节中,我们将简要介绍如何基于原始注释生成贝塞尔曲线地面真值。任意形状的数据集,例如Total text[5]和CTW1500[26],对文本区域使用多边形注释。给定曲线边界上的注记点
,其中pi表示第i个注记点,主要目标是获得方程(1)中三次Bezier曲线sc(t)的最佳参数。为此,我们可以简单地应用标准最小二乘法,如等式(4)所示:
这里m表示曲线边界的注释点数量。对于total-text和ctw1500,m分别为5和7。t是通过使用累积长度与多段线周长的比率来计算的。根据方程(1)和方程(4),我们将原始的多段线注释转换为参数化的贝塞尔曲线。注意,我们直接使用第一个和最后一个注释点分别作为第一个(b0)和最后一个(b4)控制点。可视化比较如图5所示,其结果表明,生成的结果在视觉上甚至比原始地面真实性更好。此外,基于结构化的Bezier曲线边界框,我们可以很容易地使用第2.2节中描述的Bezier对齐将曲线文本扭曲成水平格式,而不会产生明显的变形。贝塞尔曲线生成结果的更多示例如图6所示。我们方法的简单性允许它在实践中推广到不同类型的文本。
2.1.2 Bezier Curve Synthetic Dataset
对于端到端的场景文本识别方法,总是需要大量的自由合成数据,如表2所示。然而,现有的800k SynText数据集[7]只为大多数直文本提供四边形边界框。为了丰富和丰富任意形状的场景文本,我们尝试用VGG合成方法合成了150k个合成数据集(94723个图像包含大部分直线文本,54327个图像包含大部分曲线文本)。特别地,我们从COCO文本[39]中过滤出40k个无文本背景图像,然后用[32]和[17]准备每个背景图像的分割遮罩和场景深度,用于以下文本渲染。为了扩大合成文本的形状多样性,我们对VGG合成方法进行了改进,将场景文本与各种艺术字体和语料库合成,并对所有文本实例生成多边形标注。然后使用注释通过第2.1.1节中描述的生成方法生成贝塞尔曲线地面真值。综合数据的示例如图8所示。
2.2. Bezier Align
形式化地给出输入特征映射和Bezier曲线控制点,同时处理hout×wout大小的矩形输出特征映射的所有输出像素。以具有位置(giw,gih)的像素gi(来自输出的特征图)为例,通过公式(5)计算t:
然后用t和方程(1)计算上Bezier曲线的边界点tp和下Bezier曲线的边界点bp。利用tp和bp,我们可以通过方程(6)对采样点op进行线性索引:
利用op的位置,我们可以很容易地应用双线性插值来计算结果。以前的采样方法和Bezier Align之间的比较如图7所示。
3. Experiments
我们对最近引入的两个任意形状的场景文本基准Total text[3]和CTW1500[26]进行了评估,这两个基准还包含大量的纯文本。我们还对全文进行了消融研究,以验证我们提出的方法的有效性。
消融研究:Bezierralign。
为了评价所提出的成分的有效性,我们对这个数据集进行了消融研究。我们首先对取样点的数量如何影响端到端结果进行敏感性分析,如表4所示。从结果中我们可以看出,采样点的数量可以显著影响最终的性能和效率。我们发现(7,32)在F-measure和FPS之间实现了最佳的权衡,这在下面的实验中用作最终设置。通过与图7所示的先前采样方法进行比较,我们进一步评估了Bezierralign。表3所示的结果表明,bezierallign可以显著改善端到端的结果。定性示例如图9所示。
消融研究:贝塞尔曲线检测。
另一个重要的组件是Bezier曲线检测,它支持任意形状的场景文本检测。因此,我们也进行了实验来评估贝塞尔曲线检测的时间消耗。表5的结果表明,与标准包围盒检测相比,贝塞尔曲线检测不会引入额外的计算。
与最新技术的比较。我们进一步比较了我们的方法和以前的方法。从表2可以看出,我们的单尺度结果(短尺度为800)可以在达到实时推理速度的同时达到竞争性的性能,从而在速度和单词准确性之间取得更好的权衡。通过多尺度推理,ABCNet达到了最先进的性能,显著优于所有以前的方法,特别是在运行时间方面。值得一提的是,我们的快速版本可以比以前的最佳方法[20]快11倍以上,精度相当。
定性结果。ABCNet的一些定性结果如图10所示。结果表明,该方法能够准确地检测和识别大部分任意形状的文本。此外,我们的方法还可以很好地处理直文本,具有近似四边形的紧凑包围盒和正确的识别结果。图中还显示了一些错误,这些错误主要是由于错误识别其中一个字符造成的。
由于该数据集中的中文文本所占的比例很小,在训练过程中我们直接将所有的中文文本视为“看不见的”类,即96级。注意,最后一个类,即第97个类在我们的实现中是“EOF”。我们遵循与[43]相同的评估标准。实验结果如表6所示,这表明在端到端的场景文本识别方面,ABCNet可以显著地超过现有的技术方法。这个数据集的示例结果如图11所示。从图中,我们可以看到一些长文本行实例包含许多单词,这使得完全匹配单词的准确性极为困难。
4. Conclusion
我们提出了一种基于Bezier曲线的实时端到端的场景文本识别方法ABCNet。ABCNet利用参数化的Bezier曲线重新构造任意形状的场景文本,可以用Bezier曲线检测任意形状的场景文本,与标准的包围盒检测相比,计算量可以忽略不计。有了这样规则的Bezier曲线包围盒,我们自然可以通过一个新的bezierralign层连接一个轻量级的识别分支。此外,通过使用我们的Bezier曲线合成数据集和公开可用的数据,在两个任意形状的场景文本基准(Total text和CTW1500)上的实验表明,我们的ABCNet可以达到最先进的性能,这也比以前的方法快得多。
CVPR2020论文解读:OCR场景文本识别的更多相关文章
- OCR场景文本识别:文字检测+文字识别
一. 应用背景 OCR(Optical Character Recognition)文字识别技术的应用领域主要包括:证件识别.车牌识别.智慧医疗.pdf文档转换为Word.拍照识别.截图识别.网络图片 ...
- 图像分类:CVPR2020论文解读
图像分类:CVPR2020论文解读 Towards Robust Image Classification Using Sequential Attention Models 论文链接:https:// ...
- CVPR2020论文解读:手绘草图卷积网络语义分割
CVPR2020论文解读:手绘草图卷积网络语义分割 Sketch GCN: Semantic Sketch Segmentation with Graph Convolutional Networks ...
- CVPR2020论文解读:3D Object Detection三维目标检测
CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...
- CVPR2020论文解读:三维语义分割3D Semantic Segmentation
CVPR2020论文解读:三维语义分割3D Semantic Segmentation xMUDA: Cross-Modal Unsupervised Domain Adaptation for 3 ...
- CVPR2020论文解读:CNN合成的图片鉴别
CVPR2020论文解读:CNN合成的图片鉴别 <CNN-generated images are surprisingly easy to spot... for now> 论文链接:h ...
- CVPR2020 论文解读:少点目标检测
CVPR2020 论文解读:具有注意RPN和多关系检测器的少点目标检测 Few-Shot Object Detection with Attention-RPN and Multi-Relation ...
- 跟我读CVPR 2022论文:基于场景文字知识挖掘的细粒度图像识别算法
摘要:本文通过场景文字从人类知识库(Wikipedia)中挖掘其背后丰富的上下文语义信息,并结合视觉信息来共同推理图像内容. 本文分享自华为云社区<[CVPR 2022] 基于场景文字知识挖掘的 ...
- 超简单集成华为HMS ML Kit文本识别SDK,一键实现账单号自动录入
前言 在之前的文章<超简单集成华为HMS Core MLKit通用卡证识别SDK,一键实现各种卡绑定>中我们给大家介绍了华为HMS ML Kit通用卡证识别技术是如何通过拍照自动识别卡 ...
随机推荐
- [C#] NAudio 库的各种常用使用方式: 播放 录制 转码 音频可视化
概述 在 NAudio 中, 常用类型有 WaveIn, WaveOut, WaveStream, WaveFileWriter, WaveFileReader 以及接口: IWaveProvider ...
- Vue method与computed的区别
为了说明method与computed的区别,在此我想先来看看computed属性在vue官网中的说法: 模板内的表达式是非常便利的,但是它们实际上只用于简单的运算.在模板中放入太多的逻辑会让模板过重 ...
- Android Hook框架adbi的分析(1)---注入工具hijack
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/74055505 一.Android Hook框架adbi的基本介绍 adbi是And ...
- hdu4920 矩阵乘法%3
题意: 给你两个矩阵,让你求两矩阵的乘积,然后3取余.矩阵是n*n的,n<=800 思路: 如果什么都不考虑的话,矩阵的乘法是o(n^3)的,800*800*800 = ...
- 通过使用 NTLite 工具实现精简Windows系统
NTLite 是一款专业于Windows平台的系统精简工具,NTLite主要面对系统封装人员使用,比如各大下载站及GHO镜像下载站,Windows系统二次精简封装打包使用,NTLite可以对系统进行极 ...
- 0803-PyTorch的Debug指南
0803-PyTorch的Debug指南 目录 一.ipdb 介绍 二.ipdb 的使用 三.在 PyTorch 中 Debug 四. 通过PyTorch实现项目中容易遇到的问题 五.第八章总结 py ...
- IDEA只有Commit没有Push按钮
问题描述 idea的右上角只有commit按钮,而没有push按钮 问题解决 打开File->Settings->Menus and Toolbars->Navigation Bar ...
- opencv——感兴趣区域(ROI)的分析和选取[详细总结]
引言 在利用OpenCV对图像进行处理时,通常会遇到一个情况,就是只需要对部分感兴趣区域进行处理.因此,如何选取感兴趣区域呢?(其实就是"抠图"). 在学习opencv的掩码运算后 ...
- Camera.main
在Unity项目的C#代码中可以看到Camera.main.transform.position.Camera.main.transform.eulerAngles.Camera.main.trans ...
- mysql枚举和集合
create table consumer( id int, name char(16), sex enum('male','female','other'), level enum('vip1',' ...