DB算法分析《Real-time Scene Text Detection with Differentiable Binarization》

本文深入探讨了一种名为DB的算法架构,该算法主要用于文本检测,特别是在处理弯曲、多方向和多语言文本方面表现出色。其核心包括backbone特征提取、特征金字塔构建、概率图和阈值图生成,以及通过变形卷积提升对宽高比不一的文本块的识别能力。文章还详细介绍了算法的训练流程、损失函数、预测阶段的数据预处理和后处理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

算法架构图:

算法分析

  • 总览,主要包含三个部分:

    • backbone提取特征(特征金字塔)
    • 特征金字塔被上采样到相同尺度构建一个特征图F
    • 使用F来预测概率图P和阈值图T,并通过P和T来生成二值图B
  • 一些细节:

    • 预设的图片大小【640,640】
    • 在训练阶段:P、T、B都会进行loss计算,并bp,其中P、B会使用相同的标签
    • 在推理阶段,P、B都可以被用于计算bbox
    • DB模块的优势:
      • 帮助区分非常近的模块
      • 自己的理解其实就是对边界做了加强学习,让边界更准了,同时免去了复杂的后处理,连通区域的计算其实就在里面了
    • 阈值图T的学习可以监督或者非监督,监督效果更好
    • 阈值图T的用法是,用于对P的二值化
    • 关于DB模块
      • 损失函数,及其导数:

 

  • deformable conv:可形变的卷积,提供可形变感受野,对大宽高比有效果
  • 标注生成:基于PSEnet标注的生成规则。收缩和扩展的长度计算公式(6),其中收缩和扩展之间的像素为T的正样本,其余为负样本

 

 

  • 损失函数:
    • loss计算方式这里,其实就是交叉熵,因为x受T影响,bp到P时,可以理解为P会影响最终的结果,同时P也可以被学习
    • 其中阿尔法为1.0,贝塔为10,Ls、Lb为负采样交叉熵损失,采样比1:3;Lt为平滑后的L1损失,只计算Gd内部的像素(可能是为了避免样本不平衡的问题,类似于负采样)

 

 

  • 在推理阶段,使用P或者B生成bbox差不多
  • box生成规则:
    • 首先使用阈值进行二值化(预设0.2)
    • 通过二值化后的map寻找连接区域(对应标注的Gs,收缩图)

 

  • 通过公式(10)反推文本区域:

  • 训练细节:
    • 所有的模型先使用Synthtext与训练10w个iter
    • 然后finetuning 各自数据集1200epoch,类别totaltext1500个训练集的话,标注数据2k个应该足够了
    • lr设置方面:
      • 初始化0.007
      • 每个iter改变一次:lr= (1 − iter/maxiter )^power,power=0.9,maxter=epoch*(iterperepoch),decay=0.0001,moment=0.9
    • 数据增强方面:
      • -10-10随机旋转
      • 随机裁剪
      • 随机偏移
      • all resize 640*640
    • 预测阶段,等比例
  • 缺陷:
    • 重叠文本无法处理
       

模型效果(附带数据说明)

 

 

1)弯曲文本:

2、多方向文本

3、多语言

4、中英文

### 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值