DBNet(Real-time Scene Text Detection with Differentiable Binarization)详解
目前文字检测算法主要包含两类:回归模型类别的文字检测算法与基于图像分割的技术方案。通常情况下,在实际应用中我们更多采用基于图像分割的技术方案进行文字识别(见下图)。该方法的具体流程如下:首先利用深度学习网络生成图片中的文本区域划分结果(即每个像素对应的概率值),随后设定一个预设阈值将分割结果转换为二值图像,并通过连通域分析等方法对像素级的结果进行整合处理以获得最终的文字检测框。

由于存在一种利用阈值区分前景与背景的操作。这种操作不具备可微性。因此无法将该部分流程直接整合到网络中进行训练。为了实现这一目标本文采用了 threshmap 学习方法并结合了可微操作将其成功地纳入到了优化框架之中。如上图所示具体流程可通过红色箭头进行观察和分析

算法的整体架构:
- 图像输入的核心部分并实现提取这一过程以获取所需信息;
- 对于每个尺度层级的金字塔结构进行上采样至一致尺寸后,并结合多尺度信息完成级联融合以生成最终的多尺度特征求索器矩阵F;
- 特征矩阵F被用来构建预测概率图\text{P}以及阈值图\text{T};
- 基于概率映射\text{P}和多尺度特性矩阵F计算出近似二值结果\text{B}。
一、FPN-Conv layer
Deformable convolution
可变卷积具备赋予模型灵活感受域的能力。同时它还特别地强调其在极端比例与尺度下的显著效果。其中我们采用3\times 3的卷积核分别应用于ResNet-18及ResNet-50架构中的conv3、conv4及conv5层。

二、 可微的二值化(differentiable binarization)
在训练过程中使用P、T和B进行监督学习任务,在其中P和B采用了同一的监督信号(label)。当进行推理操作时,则只需其中一个(如P或B)即可完成文本框的生成。
在基于图像分割技术用于文本检测的系统中
二值化公式如下:


监督goundtruth如下图

The true value of P is reached by shrinkage.
The true value of T is that the edge of the text block is contracted inwardly and expanded outwardly respectively.
These parameters p and T are considered as variables in the formula.

三、Label的生成
概率图与PSNet采用相同的标签策略,在概率图中使用缩小距离D后的核作为标签。具体参考PSNet的相关实现。对于阈值图,在文本实例边缘向内缩小并向外扩展的距离范围内进行处理:计算像素点与文本边缘的距离作为gt值(ground truth),其中距离越近则gt值越大,并在归一化处理后落在0.3~0.7之间。生成的具体标签如下所示:红边为原始边界、蓝边为缩小边界、绿边为扩展边界

P、B map Label生成
P是有文字的区域,值为0.9以上,没有文字区域黑的为0。 .
T是一个只有文字边界才有值的,其他地方为0。 .
概率图P与二值图B采用了相同类型的标签。该标签的生成过程基于PSENet的方法。为了精确调整标注位置,每个标注框会施加固定范围内的平移偏移量.

红色框用于标记label和ground truth;D表示收缩距离;A表示红色框所包围区域的面积;L表示该区域的周长;r为收缩比例,并设值取0.4
T map Label生成


灰色区域的值计算得到点(i,j)与label之间的距离,并将其结果进行归一化处理。随后将该值与1相减后使得内部区域赋值为1,外部区域赋值为0。
- 首先对原始标注框G,采用上述偏移量D来进行扩充和收缩,得到的框为

,

。
2. 计算框

内所有的点到G的四条边的距离,选择最小的距离(也就是

框内像素离它最近的G框的边的距离)。
3. 将所求

在G框区域内对每个像素与其对应位置的距离进行归一化处理。
通过计算1减去步骤4所得的映射关系(map),即可获得相应的结果。

框和

框之间的像素到G框最近边的归一化距离值。
5. 由于在处理DB阈值图T的label时需要确保其数值范围合理,在此情况下label不能为0和1之间的小数值(即需进一步缩放到0.3至0.7之间)。
四、Loss 计算

其中,

为概率图的loss,

为二值图的loss,

为阈值图的loss。

和

分别取值为1.0和10。
论文中

,

均采用二值交叉熵(BCE)求解,正样本与负样本的比值为1:3。
Paddleocr中

采用Dice损失函数,在处理正负样本失衡问题时表现出色。对于高度失衡的二分类分割任务而言,相比仅使用交叉熵损失(BCE)而言,Dice损失(Dice Loss)的效果更为显著;然而一种更为有效的策略是结合Dice损失与交叉熵损失进行优化

采用L1 loss,

指的是标注框经过D偏移量扩大和缩小之间的Gap内的像素索引,

是阈值图T的label。


The derivative values for positive samples lie within the compressed text segment, whereas those for negative samples lie outside it. Significant discrepancies emerge when comparing derivative magnitudes at x>0 versus x<0. When k equals 1, there's little difference in these values. However, when k increases to 50, this discrepancy becomes more pronounced.
The author's paper states that differentiable binarization offers several advantages: By employing differentiable binarization with adaptive thresholds, it not only assists in distinguishing text regions from the background but also successfully separates text instances that are closely connected.
五、Inference

在推理阶段中,可以采用概率图或者说是近似二值图来生成文本区域...为了更进一步地提高效率...就可以只采用概率图来进行处理
文本区域的生成有如下几步:
基于概率图P或其近似表示二值图B,采用阈值0.2生成新的二值图;同时,在图像处理中利用位移量进行调整以提高精度;通过计算得到的位移向量来优化结果的质量

将连通域放大就得到了文本区域。


式中,

表示连通域的面积,

表示连通区域多边形的周长,

设为1.5。
推理过程仅依赖于P map这一工具,在该框架下完成字符识别任务时会基于设定的阈值对图像中的文字区域进行二分类判断;随后执行膨胀操作以增强字符边缘特征;接着在paddleocr框架中调用OpenCV函数cv2.findContours()与cv2.minAreaRect()组合使用,首先提取并计算每个文字区域的最小包围矩形;接着利用cv2.warpPerspective函数对图像进行透视变换矫正处理后输入到rcnn模型进行识别
六、实验
实验结果表明,在ICDAR 2015数据集上进行了检测。The values within parentheses indicate the height of input images. "TB" and "PSE"分别代表TextBoxes++和PSENet.
实验结果表明,在ICDAR 2015数据集上进行了检测。The values within parentheses indicate the height of input images. "TB" and "PSE"分别代表TextBoxes++和PSENet.

补充
语义分割中的loss function
cross entropy loss
在图像语义分割任务中被广泛使用的最常见损失函数是基于像素的交叉熵损失CE。该方法会对每一个像素进行评估,并对其预测结果(以概率形式表示的类别归属)与标签编码(独热形式)之间的差异进行对比分析。
weighted loss
由于交叉熵损失会对每个像素单独计算其类别预测的结果,并将这些损失取均值以达到整体评估效果的目的,在这种机制下我们实际上实现了对图像中每一个像素点都给予平等的学习机会。当不同类别在图像中的分布出现失衡时,则可能会影响这一平衡关系,在训练过程中可能会导致某些特定类别的样本占据主导地位从而影响模型的学习方向
focal loss
考虑到各类别像素的数量分布存在不均衡性而提出了一种改进方案但有时候还需将图像中的像素进一步划分为难学样本与易学样本两类
简单的样本构成能够具备准确预测的能力。通过分类大量简单的样本使损失减少是可行的方法。调整后的影响是使模型忽视了难以处理的数据。因此采取措施使模型关注这些数据就显得尤为重要。
dice soft loss
在语义分割任务中,在于另一个常用的方法是基于Dice系数构建损失函数;实际上两个样本之间的重叠程度可以用该指标来衡量。其取值范围是在0到1之间;当Dice指标达到最大值1时,则表示这两个样本完全重合;而这一指标最初则被应用于二元数据的情形中
soft IOU loss
总结
交叉熵损失将每个像素视为独立样本进行预测;而Dice Loss与IoU Loss则以一种更为系统化的视角看待最终的预测输出。两类损失分别适用于不同的场景,并各有优缺点,在实际应用中可同时采用两类损失函数相互补充。
