《ABCNet》文本识别

枣树的日志

共 2419字,需浏览 5分钟

 ·

2022-02-09 17:41

《ABCNet:Real-time Scene Text Spotting with Adaptive Bezier-Curve Network》-- 2020CVPR


补充知识点:

伯恩斯坦多项式(Bernstein polynomials):是逼近连续函数的一系列多项式,可用来证明,在区间 区间上所有的连续函数都可以用多项式来逼近,并且收敛性很强,也就是一致收敛。

贝塞尔曲线(Bézier curve):又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线,可以使用很少的控制点生成复杂平滑曲线。常用类型分为:一阶贝塞尔(直线)、二阶贝塞尔(曲线)、三阶贝塞尔曲线。贝塞尔曲线可理解为伯恩斯坦多项式的图形化。


贡献:

  1. 本文是最早通过一个参数化的Bezier curve曲线来自适应拟合任意形状的文本的,这中方法可用于弯曲场景文本检测;
  2. 本文设计了一个新颖的BezierAlign layer,用于精确地提取任意形状文本实例的卷积特征。将BezierAlign用于特征对齐,那么识别分支可以自然地连接到整体结构之中,这使得识别分支可以设计成一个轻量级的结构。
  3. 相比于标准的bounding box detection方法,本文Bezier curve的检测方法引入了可忽略的计算负担,这使得我们的方法在效率和精度上都有提升。

Adaptive Bezier Curve Network(ABCNet)

ABCNet是一个端到端可训练的任意形状的场景文本识别网络。结构如下:

检测框架:采用了一个single-shot, anchor-free的神经网络。anchor boxes的移除极大地简化了检测任务。

ABCNet分为两个部分:1)Bezier curve检测; 2)Bezier-Align and 识别分支。

---------------------------------------------------------

Bezier Curve Detection

Bezier 曲线是一个参数化的曲线用表示,该曲线使用伯恩斯坦多项式作为它的偏置。定义如下:

n表示degree;表示第i个控制点; 表示Bernstein basis polynomials,其定义如下:

是binomial系数。

为了使用Bezier curves拟合任意形状的文本,本文从现有的数据集和真实世界中综合分析了任意形状的文本,发现cubic Bezier曲线能够拟合不同形状的场景文本的形状。

基于cubic Bezier曲线,我们可以将任意形状的场景文本简化到一个有八个控制点的bounding box回归任务中。特别地,笔直的文本有四个控制点(四个顶点),属于一种特殊的任意形状的文本,为了保持一致性,我们在每条边的上插入额外的两个控制点。

为了学习到控制点的坐标,我们首先要生成Bezier curve ground truth,然后使用回归的方法去学习目标。对于每一个文本样例:

和 表示4个顶点最小的x和y的值。预测相关距离的优势是它与Bezier curve的控制点是否超过了图形区域无关。在检测网络内部,我们仅仅需要一个有16个输出通道的卷积层去学习 和 ,这样操作的消耗是非常少的。

即:学习目标为四个顶点中最小的x、y的值以及控制点与最小值点的相关距离。

-------------------------------------------------

Bezier Ground truth generation

在本小节,主要介绍了怎样基于原始标注信息生成Bezier curve的ground truth。

从曲线边框中给定一个标注点 , 表示第i个标注点,主要的目的就是获得cubic Bezier曲线 的公式1的最优参数。为了实现这一点,使用了标准最小平方的方法(standard least square method),公式如下:

m表示曲线边框的标注点数目。对于CTW1500,m分别是5和7。t是用累计长度与多边周长之比来计算的。

根据公式1和公式4将原始的四边形标注转化为参数化的Bezier curve。注意,我们直接使用第一个和最后一个标注点作为第一个 和最后一个 控制点。原始标注和生成的Bezier curve的比较如图5。

另外,基于结构化的Bezier 曲线的bounding box,我们可以容易地使用我们的BezierAlign 去变换曲线文本到一个水平的形式而不需要过多的变形,更多Bezier curve生成的结果如图6所示:

-------------------------------------------------

Bezier Curve Synthetic Dataset

具体操作见原文。

BezierAlign

为了能够实现端到端的训练,许多方法采用各种各样的的采样方式(特征对齐)去连接识别分支。

通过利用一个Bezier curve bounding box的参数化特性,本文提出了用于特征采样的BezierAlign。BezierAlign的采样网格并不是矩形。任意形状网格的每一列都与文本的Bezier曲线边界正交,采样点在宽度和高度上有等距的间隔,分别对坐标进行双线性插值。

给定一个输入特征图和Bezier曲线控制点,本文同时处理长方形的输入特征图的所有输入像素值,特征图的尺寸为。像素 的坐标为 ,则可以通过公式5进行计算:

然后使用t和公式1去计算上面Bezier curve边界 以及下面Bezier curve边界 。使用 和 ,可以通过公式6检索采样点 :

通过 的位置,可以使用双线性差值来计算最终的结果。

Recognition branch

识别分支的结构如下:


实验结果:

Total-Text:

ablation study:

与其他方法的比较:

CTW1500:

浏览 6
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报