OCR端到端检测识别模型:PGNet论文阅读笔记


前言

因项目需要,最近开始阅读PGNet论文,期望了解这一OCR端到端文本检测与识别模型原理与细节,期望能够应用到项目中带来OCR的提升。

论文题目:PGNet:Real-time Arbitrarily-Shaped Text Spotting with Point Gathering Network

论文link: https://arxiv.org/pdf/2104.05458.pdf


摘要(Abstract)

论文中提到,任意形状的文本的识别(包括检测)受到越来越多的关注。但是现有的文本识别器都是基于两阶段(two -stage)框架或者基于字符的方法(character-based)。这些方法都要用到NMS(Non-Maximum Suppression),ROI(Region-of-Interest)或者字符集标注操作(这些操作都是非常耗时的)。该论文提出的一种新颖的网络结构-全卷积点聚集网络(fully convolutional Point Gathering Network-PGNet),实现了实时检测与识别任意形状的文本,同时避免了上述提到的耗时操作。

PGNet是一阶段的文本识别器(包含检测),应用 PG-CTC损失 来学习像素级字符分类特征图,避免了应用字符级标注。论文通过使用PG-CTC解码器,可以从二维空间收集到高级别的字符分类向量,然后对这些向量进行解码转换为文本符号,因为这个过程中没有使用NMS或者ROI技术,所以保证了PGNet的高效执行。

PGNet也考虑了每个字符与它的临近字符的关系,应用 图强化模块(Graph Refinement Module, GRM) 来优化识别结果并提升端到端的(end-to-end) 性能。

实验证实了论文方法在保证识别准确率的同时提高了执行速度。尤其在 数据集 Total-Text, 实现了46.7 FPS, 超过了已有的识别器一大截。


1. 介绍(Introduction)

在这里插入图片描述

任意形状的文本检测与识别是很有挑战性的,目前大部分解决方案(如图Fig.2)都有如下劣势:
(1)两阶段网络通常都博爱阔NMS和RoI这两种非常耗时的操作,比如RoISlide 和 BezierAlign;
(2)训练时需要字符级标注,这是非常费时费力,比如 Mask TextSpotter;
(3)使用预定义规则对非常规文本方向进行识别,导致识别失败,比如 TextDragonMask TextSpotter 假设文本方向为从左到右或者从上到下,这些都阻碍了正确识别有挑战性的文本。

论文提出实时解析(检测与识别)文本的新框架,即PGNet, 它应用了一种成为点聚集的操作(point gathering)。PGNet是一种基于多任务学习的单阶段文本解读器, 架构如图Fig.3所示。
在这里插入图片描述
在模型推理阶段:论文中使用FCN(Fully convolutional network)模型来学习文本区域包含的各种信息,包括文本中心线(text center line, TCL, 1 通道特征图), 文本边界偏移(text border offset, TBO, 4通道特征图-TCL每一像素距离文本区域上、下边界点的偏移量),文本方向偏移(text direction offset, TDO, 2通道特征图-TCL每一像素到下一个文本阅读位置的偏移量)以及文本字符分类特征图(text character classification, TCC, n通道特征图-n为字符类别数)。基于像素的字符分类特征图由PG-CTC(Point Gathering CTC)损失函数训练得到,避免了字符标注操作。

在后处理阶段:在每一个文本实例中可以根据TCL和TBO特征图提取出带有文本方向的中心点序列;可以从TBO特征图获取文本检测的结果;应用PG-CTC解码器,论文将高级别的二维TCC特征图转换为字符分类概率向量序列,用这个概率向量序列可以解码出最终的文本识别结果。

受到 SRNGTC 的启发,论文提出使用 图强化模块(GRM) 来进一步提升端到端识别性能。文本序列中的点可视为图(graph)中的一个节点(node),每一个节点的表现能力可通过相邻的语义上下文(semantic context)和视觉上下文信息(visual context)来提升,字符分类结果理应更加准确。

论文贡献主要包括如下三点:
(1)提出PGNet,避免了字符集标注,NMS,RoI这些耗时的操作,实现了更好的端到端性能并且速度更快。
(2)提出一种重建文本解读方向的机制,在更有挑战性的场景和非传统文本方向上能够准确识别文本。
(3)提出GRM模块来提升CTC识别结果。


2. 相关工作(Related Work)

论文中主要对现有的端到端文本识别器(CharNet, TextNet, Mask TextSpotter, TextDragon, ABCNet)和 图神经网络(Graph Neural Networks) 进行简要介绍,这里就不赘述了。

这里特别提一下,论文使用空间图卷积网络(Spatial Graph Convolutional Networks)来对当前点和它的邻居的语义信息进行推理进而提升CTC识别结果。


3. 方法(Methodology)

论文首先介绍了PGNet的执行流程(如图Fig.3所示):
首先将图像输入带有FPN(Feature Pyramid Networks)的backbone中,输出特征图 F v i s u a l F_{visual} Fvisual。然后 F v i s u a l F_{visual} Fvisual被用来预测TCL, TBO, TDO, TCC这四个特征图(以并行多任务学习的方式),这四个特征图的宽和高为输入图像的 1 / 4 1/4 1/4。在训练阶段,TCL,TBO,TDO被相同尺度的标签特征图监督学习,PG-CTC损失被用于训练像素级的TCC特征图(PG-CTC解决了需要字符级标注的问题)。在推理阶段,从TCL特征图中提取每一文本实例的中心点序列,然后根据TDO特征图来对中心点序列进行排序进而恢复文本正确的识别顺序,让PGNet能够识别非常规文本方向的文本。根据TBO特征图提供的相应边界偏移信息,PGNet实现了对每一文本实例的多边形检测。同时,PG-CTC解码器能够将高级别的二维TCC特征图序列化成字符分类概率序列,对该概率序列解码即为最终的文本识别结果。

3.1 点聚集CTC(Point Gathering CTC)

PG(point gathering)操作在PGNet的训练和推理阶段扮演了重要的角色,它帮助摆脱了字符级标注,NMS, RoI操作。PGNet中的TCC是由37个字符(37通道)组成的特征图,包括26个字母,10个阿拉伯数字以及1个背景类。PG操作主要依据每一文本实例的中心点从TCC特征图中聚集字符分类概率序列,公式如下所示:
在这里插入图片描述
其中, π = { p 1 , p 2 , . . . , p N } \pi =\{p_{1}, p_{2},...,p_{N}\} π={ p1,p2,...,pN}是长度为 N N N的中心点序列。 P π P_{\pi} Pπ是大小为 N × 37 N\times37 N×37的字符分类概率序列。

在训练阶段,使用PG-CTC损失能够让像素级的TCC特征图的训练免于字符集标注的需要。经典的CTC损失函数解决了源序列与目标序列长度不一致的问题。CRNN框架将特征图的高度转换为1,但是在识别弯曲文本时容易受到背景噪声的影响。2D-CTC将CTC的搜索路径扩展到二维空间,但是仍然不能处理一张图片含有多个文本实例的情况。论文提出的PG-CTC解决了这个问题,损失函数公式为 C T C _ l o s s ( P , L ) CTC\_loss(P,L) </

  • 6
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值