阅读笔记——Real-time Scene Text Detection with Differentiable Binarization

概述

当前文字检测主要分为基于检测和基于分割两种方法。相对于检测的方法,分割方法更便于检测各种不同形状的文本。它的缺点主要是后处理复杂,而且这部分可能成为时间性能瓶颈。而基于检测的方法优点是后处理简单,缺点是不好处理不规则形状的文本,例如弧形文本。

对于现有的基于分割的方法,在后处理方面思路基本上一致:对于一个概率图,首先要选定一个固定阈值,将这个概率图进行二值化,随后需要设计算法将二值化区域形成一个个的文字实例。这个阈值的设置,对于检测精度有着较大的影响。如下图所示,这里提出的方法对概率图的每个像素都预测一个二值化阈值,使得不用手动设置全局二值化阈值。
在这里插入图片描述

方法

论文了提出一种可微分的二值化阈值方法(Differentiable Binarization,DB),改善了文字实例边缘分割精度和二值化阈值设置过程。

整体网络架构如下图所示。

在训练阶段首先输入图像经过一个特征金字塔网络,得到 1 4 \frac {1}{4} 41 大小的特征图 F F F,然后基于这个特征图 F F F,预测一个概率图(Probability map,P)、一个阈值图(Threshold map,T)以及一个二值化图(approximate binary map,B)。在训练阶段对 P P P T T T B B B 都计算损失。 P P P B B B 还共用 GT 信息。

在推理阶段,文字实例 box 就可以由 B 或者 P 计算得来,由这两个得到的文字 box 差异不大。为了计算效率直接使用概率图输出,移除阈值图分支。box 根据下面几个步骤产生:

  • 首先设置常数阈值将概率图或者近似二值图二值化(例如设置阈值 0.2);
  • 然后在二值图中获取文字连通区域;
  • 将连通区域使用 Vatti clipping algorithm 算法进行扩张得到最终的文字区域。

在这里插入图片描述

二值化

对于一个大小 H × W H×W H×W 的特征图,给定一个自定义阈值 t t t,二值化结果就是:
在这里插入图片描述
这个过程是不可微分的,因此无法放到网络里面联合优化。作者提出可微分二值化 DB 过程:
在这里插入图片描述
其中 k k k 经验设置为 50, T T T 是学习到的自适应阈值图, P P P 是概率图结果。DB 模块不仅有利于帮助网络区分文字区域和背景,也可以帮助区分挨得很近的文字实例。如下图所示,对于预测错误的文字边界,DB 将给予很大的损失惩罚。
在这里插入图片描述
DB 生成的自适应阈值图有利于网络区分文字边界。另外为了提高对于宽高比很极端的文字实例的性能,还引入了可变形卷积(Deformable convolution)。

标签生成

概率图和二值化图标签生成:受 PSENet 网络的方法启发,对于一个多边形标注,使用 Vatti clipping algorithm 算法,完成对多边形内部的收缩,收缩之后多边形内部区域作为概率图 GT。

阈值图标签生成:首先将多边形标注向外部扩充,扩充之后边界和概率图的边界之间的区域作为阈值图 GT 区域,也就是文本实例边界区域。

整体如下图所示:
在这里插入图片描述

优化目标

损失函数 L L L 是 概率图损失 L s L_s Ls、二值化图 L b L_b Lb、阈值图损失 L t L_t Lt 三者的加权和:
L = L s + α × L b + β × L t L=L_s + \alpha × L_b + \beta × L_t L=Ls+α×Lb+β×Lt

其中 L s L_s Ls L b L_b Lb 为交叉熵损失, L t L_t Lt L 1 L1 L1 损失。设置 α \alpha α β \beta β 分别为 1.0 和 10。

实验及指标

SynthTextMLT-2017 datasetICDAR-2015MSRA-TD500 datasetCTW1500 datasetTotal-Text dataset 数据集上进行了实验验证。

对每个实验,先在 SynthText 上预训练 100k 步,然后在对应的数据集上 finetune 1200 epoch。输入图像都 resize 到 640×640。

最终在各个数据集上的指标如下图。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### Differentiable Binarization 模型介绍 #### 定义与背景 Differentiable Binarization (DB) 是一种用于场景文本检测的技术,旨在解决传统二值化方法不可微的问题。传统二值化操作依赖固定阈值 \( t \),对网络输出的概率图 \( P \) 进行划分[^2]。然而,这种方式是非连续的,不支持梯度反向传播。 #### 可微分二值化函数 为了解决这一问题,DB引入了一个近似的阶跃函数作为可微分替代方案: \[ B(x, k)=\frac{1}{1+\exp(-k(P-T))} \] 这里,\( P \) 表示概率图,\( T \) 表示自适应阈值图,而 \( k \) 则是一个放大因子,通常设置为50。该表达式建立起了概率图和阈值图到最终二值化图像间的平滑映射关系,允许在整个神经网络框架内实现端到端的学习过程。 #### 推理阶段优化 在实际部署过程中,为了提高效率并保持精度不变,可以选择直接利用概率图来进行后续处理而不是转换成精确的二进制形式。这是因为当采用适当高的置信水平时,两者产生的边界框几乎相同;同时省去了额外的阈值判断环节也简化了整体架构设计[^1]。 ```python import torch.nn.functional as F def differentiable_binarize(prob_map, thresh_map, k=50): """ Applies the differentiable binarization on probability map. Args: prob_map (Tensor): Probability maps from network output. thresh_map (Tensor): Adaptive threshold maps. k (float): Amplification factor. Returns: Tensor: Binary-like tensor after applying DB formula. """ return 1 / (1 + torch.exp(-k * (prob_map - thresh_map))) ``` #### 应用领域 DB技术主要应用于自然场景下的文字识别任务中,在这类应用场景里能够有效地区分前景文字区域同背景噪声,并且对于相邻字符间存在粘连情况也能较好地分离出来,提高了OCR系统的鲁棒性和准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哇哇九号

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值