ABCNet: Real-time Scene Text Spotting with Adaptive Bezier-Curve Network 自适应 Bezier 曲线网络实时场景文本识别
Paper : https://arxiv.org/abs/2002.10200v2
Code : https://github.com/aim-uofa/AdelaiDet
Code : https://github.com/Yuliang-Liu/bezier_curve_text_spotting
作者交流报告会:https://www.bilibili.com/video/BV1W54y1D7ap?p=8
基于 FPN 的 Anchor-Free 的文本检测模块,连接检测和识别的采样模块,轻量级的识别模块。
使用参数化的 Bezier 曲线 自适应的拟合任意形状的文本
-
为了在图像中准确定位定向的和弯曲的场景文本,首次使用 Bezier 曲线引入了一种新的简洁的弯曲场景文本的参数化表示形式。 与标准边界框表示相比,它引入的计算开销可忽略不计。
-
提出了一种采样方法,也称为 BezierAlign,用于精确的特征对齐,因此识别分支可以自然地连接到整个结构。 通过共享主干特征,可以将识别分支设计为轻型结构。
-
方法的简单性使其可以实时执行推理。 ABCNet 在两个具有挑战性的数据集 Total-Text 和 CTW1500 上实现了最先进的性能,展示了有效性和效率上的优势
Bezier Curve Detection
代表角度, 代表第 个控制点, 代表伯恩斯坦基本多项式(Bernstein):
其中 是一个二项式系数。为了用 Bezier 曲线拟合一个文本的多边形形状,从存在的数据集和实际场景中观察了多边形形状的场景文本,发现使用三次的 Bezier 曲线可以有效的拟合不同种类的多边形形状的场景文本。
基于三次 Bezier 曲线,可以把多边形场景文本的检测简化为一个使用 8 个控制点的边框回归。有四个控制点的直文本是多边形场景文本的典型情况。为了保持一致,我们在每个长边的三分点上插入了另外两个控制点。
分别代表四个顶点的最小 和最小 。在检测部分,使用一个有16通道的卷积层学习 和
Bezier Ground Truth Generation
给定曲线边框标注点 , 代表第 个标注点,主要目标是获得公式 中三次 Bezier 曲线的最优参数。可以简单地应用标准最小二乘法:
以下图为例,右边一项是标注点,中间一项是要求的贝塞尔曲线的控制点。为了求解控制点,需要算出系数 t ,t 通过折线段的累计长度与七个点的折线段的周长的比值来确定,根据贝塞尔的公式可以求得所有的伯恩斯坦多项式的值,又由于方程的个数大于解的个数,可以通过最小二乘法反解出四个控制点的坐标值。
其中 是曲线边框的标注点的数量。Total-Text 和 CTW1500 , 分别是 5 和 7 。 是通过使用累积长度与多边形周长之比来计算的。根据公式 ,把原始多边形标注转变为参数化的 Bezier 曲线。直接使用第一个和最后一个标注点作为第一和最后一个控制点。基于结构化后的 Bezier 曲线边框,可以在没有剧烈变形的情况下很容易地通过 BezierAlign 把曲线文本转为水平文本。
BezierAlign
给定输入特征图和 Bezier 曲线控制点,我们同时处理大小为 的矩形输出特征图的所有输出像素。
以位置 处的像素 为例,可以通过以下公式计算 :
然后使用 和公式 计算 Bezier 曲线的上边界点 和下边界点 ,使用 和 ,可以通过公式 计算出索引采样点 的位置:
通过 的位置,我们可以轻松地应用双线性插值来计算结果。
Recognition branch
与主干网络共享特征图,设计了一个轻量级的识别分支
在 TotalText上的结果:
在 CTW1500 上的结果:
文本截取的对比: