一、算法介绍
本文提出了一种文本检测模型。该模型将二值化操作插入了分割模型进行共同优化。每个像素点的阈值可以被计算得到。然而,标准的二值化是不可微的,所以本文提出了一个近似计算可微二值化(Differentiable Binarization, DB)
。
本文主要贡献为提出的DB模块是可微的,因此二值化过程可以在CNN中进行端到端训练。与之前的基于分割的模型相比,本文有如下几个优势:
- 在五个基准数据集上有良好的表现,其中包括水平、多个方向、弯曲的文本。
- 比之前的方法要快很多,因为DB可以提供鲁棒的二值化图,从而大大简化了后处理过程。
- 使用轻量级的backbone(ResNet18)也有很好的表现。
- DB模块在推理过程中可以去除,因此不占用额外的内存和时间的消耗。
2. 详细过程
相关工作
文本检测技术可分为两类:基于回归的方法和基于分割的方法。
- 基于回归的方法:直接回归文本实例的bounding box。
优点:只要采用简单的后处理(如NMS);
缺点:大多数难以预测不规则形状的准确边界,如曲线形状。
- 基于分割的方法:使用像素级别的预测结果和后处理算法来获得bounding box。
模型结构
大多数的检测方法流程如蓝色箭头所示,首先用一个分割网络得到概率图,然后使用一个固定的阈值将概率图转化为二值图像,最后使用启发式算法像素聚类将像素组成文本实例。
DBNet的流程图(如上图中红色箭头所示)目的是将二值化操作插入到分割网络中进行联合优化,这样网络可以自适应的预测图像中每一个像素点的阈值(区别去传统方法的固定阈值),从而可完全区分前景和背景的像素。
二值化阈值由网络学习得到,彻底将二值化这一步骤加入到网络里一起训练,这样最终的输出图对于阈值就会具有非常强的鲁棒性,在简化了后处理的同时提高了文本检测的效果。
在训练过程中,对概率图(P)、阈值图(T)和近似二值图进行监督,其中概率图和近似而知图使用共同的监督。在推理过程中,使用近似二值图或者概率图,通过box形成模块的计算可以获得bounding box。
整个流程如下:
- 图像经过FPN网络结构,得到四个特征图,分别为1/4,1/8,1/16,1/32大小;
- 将四个特征图分别上采样为1/4大小,再concat,得到特征图F
- 由F得到 概率图(P) 和 阈值图 (T)
- 通过P、T计算(通过可微分二值化DB,下文介绍) approximate binary map( 近似二值图)
可微二值化
二值化:给定概率图P,二值化过程为
标准二值化公式是不可微的,因此不能通过训练进行优化。可微二值化公式如下:
k是放大系数,经验值为50。
微分推导:假设使用交叉熵损失函数,,其中,则正样本和负样本对应的损失为
导数有两个特性(1)被放大了k倍,(2)对于被错分的样本放大得更多。
可变形卷积
可以产生可变形的感受野,有利于处理具有大长宽比的文本实例。在所有conv3,conv4和conv5中使用3 x 3的卷积核中使用。
样本生成
给定一张文本图,每个文本区域的多边形可以表示为
其中,n是顶点个数。n的大小因数据集而异,如ICDAR 2015使用四个点,CTW 1500使用16个点。正样本区域通过Vatti clipping算法,将多边形G收缩成Gs。偏移量D可以通过周长L和面积A计算得到
r是偏移系数,经验值一般设为0.4。
损失函数
损失函数由三部分组成,概率图的损失Ls,二值化图的损失为Lb,阈值图的损失为Lt。
Ls和Lb都采用二元交叉熵损失。
Lt使用L1范数的和进行计算。