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

11 篇文章 3 订阅
11 篇文章 1 订阅

 

算法架构图:

算法分析

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

    • 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、中英文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值