感人至深的 DB:帮助 probability map 更好地学习(training)却在功成之后(inference)退隐

Real-time Scene Text Detection with Differentiable Binarization Minghui,2020


自说自话:DB 实在是令人感动。

Abstract

  • 基于分割的自然场景文本检测很流行,因为可以应对灵活的文本排布情况,但是后处理中的二值化非常重要,能够将 probability map 转化成文本框或者文本区域
  • 本文的贡献在于 DB 模块,将二值化操作集在整个网络之中,提升效果的同时还加快了处理速度。

Introduction

基于分割的文本检测因为输出像素级的 probability map 所以可以自然地应对各种形状的文本排布,但是需要较多资源继续进行后处理得到最后的文本框或者文本区域。比如下图 2 中的红色 pipeline,得到 map 之后要设定一个阈值进行二值化,然后再进行一些像素聚类等操作得到结果。而本文的思路是,直接将二值化操作集在前面的网络中,如蓝色 pipeline 所示。这样能够实现像素级别特异给定二值化阈值(可训练),因为二值化操作本身不可微,文中还提出了一种近似的函数叫 Differentiable Binarization(DB),这样二值化操作就能跟着整个模型进行训练,实现端到端的预测
在这里插入图片描述

Related Work

Regression-based methods

Segmentation-based methods

Fast scene text detection methods

Methodology

本文的模型架构如下图 3 所示。可以看到:

  • 在预测 probability map 和 threshold map 之前,主体与 FPN 非常相似,这样更能保证小目标的检出率。
  • 两个 map 经过 DB 模块生成 approximate binary map这个 map 和 probability map 共用一套 label
  • 实际预测的时候,既可以通过 probability map 得到最后结果,也可以通过 approximate binary map 得到,二者的结果几乎一致,但是作者建议选用 probability。这样在预测的时候,DB 模块可以直接删掉,减少运算量。(真是无私奉献的 DB 模块,事情做完拂袖而去)
    在这里插入图片描述

(我自己的理解)这里我要再埋一个点,为什么 DB 可以直接删掉,你训练了半天的 DB 已经随之而来的 threshold map 以及 approximate binary map 说不用就不用了?或者换一种说法,怎么就用 probability map 和 binary map 效果几乎一样呢?按道理来讲 binary map 不应该比 probability map 要强吗,怎么这个优势就这么几乎没了。

我觉得重点在于这个binary map 和 probability map 共用一套 label,对共用一套,而且根据后面论文的公式,loss 计算时这两张图的比重还是一样的(并重),所以想要得到更好的 binary map,训练中自然就带动了 probability map 的更新学习效果更好。也就是因为 DB 以及其机制的存在,不仅得到了比原本 probability map 更好的 binary map,还得到了更好的(在 DB之前)的 probability map 本身,这才是 DB 最大的作用,也正因为如此,在预测时可以直接丢掉 DB 模块,直接用 probability map 就足够好。

Binarization

Standard binarization

标准二值化操作可以用下图式子表示:
在这里插入图片描述

Differentiable binarization

DB 采用的可微二值化操作是个阶跃函数:
在这里插入图片描述

  • 可以看到分母指数有 probability map 和 threshold map 的像素对应相减,后文还会用到这个差,定为 x = P i , j − T i , j x = P_{i, j} - T_{i, j} x=Pi,jTi,j
  • 这个值为正,意味着预测是文字的概率比阈值高,二值化之后应该会变成“1”;这个值为负,意味着预测是文字的概率比阈值低,而之后之后应该变成 “0”。
  • threshold map 是经过网络学习的,每个像素都可以有“独一份”的阈值,这样阈值化操作被移植到网络中,而且更加灵活,能够区分之前不容易分割的文本区域。

关于为什么 DB 模块可以提升表现,作者做了理论探讨:
用 BCE loss 来优化的话,正负样本的 loss 如公式 3 所示,求导之后如 4 所示。
在这里插入图片描述
把导数绘图如下图 4 所示:
先说预期:

  • 导数决定了训练学习过程中模型参数的更新以及最后的表现。
  • 若能正确预测正样本或者负样本,那么对应的导数绝对值应该小一点;反之应该大一点,这样才能大步子地更新改正。

再看实际:

  • (b) 图中 x 大于 0 的部分(右侧)为正确预测正样本的导数;(c)图中 x 小于 0 的部分(左侧)为正确预测负样本的导数。绝对值都比较小,反之都比较大。
  • k = 1 时会弱化正确或错误预测的导数区别,所以作者建议使用 k 为 50,这样其实有点 focal loss 的韵味,也算一种 attention 了。
    在这里插入图片描述

这里作者也多说了一句,T 有帮助 P 更好的更新,也就是 threshold map 帮 probability map 更好地更新(所以说 DB 模块以及其相关的一切都在帮 probability map 变得更好)。

Adaptive threshold

关于这个自适应阈值 map,可以发现它很接近真实的文本边界,但是作者发现 threshold map 即使不通过监督训练,也能得到比较好的接近真实的文本边界的结果,如下图 5 所示:
在这里插入图片描述
所以,作者进一步地加上监督训练 threshold map 来得到更好的结果,这样本文中更看重 threshold map 作为阈值的属性(帮助得到更好的 probability map)而不是“接近文本边界”的属性。

Deformable convolution

可变性卷积能够提供灵活的 receptive field,不多说了。

Label generation

对于多边形的标注信息 G,经过 shrink 和 dilate 操作生成 probability map 和 threshold map 的 label。

  • probability map:正样本区域通过在原始的多边形 G 基础上进行 offset 为 D 的 shrink,得到 G s G_s Gs
  • threshold map:用同样大小的 offset D 进行 dilate 得到 G d G_d Gd,那么 G s G_s Gs G d G_d Gd 之间的 gap,就是 threshold 的感兴趣区域,这个区域中像素点的 label(一个数值) 就通过最近的 G 来给定。
    offset D = A ( 1 − r 2 ) L D = \frac{A(1 - r^2)}{L} D=LA(1r2)

在这里插入图片描述

Optimization

根据前面图 3 的网络示意图中的 3 个 map,总 loss 依次为 probability、binary、threshold 3 项求和, α = 1 \alpha = 1 α=1 β = 10 \beta = 10 β=10如下:
L = L s + α × L b + β × L t L = L_s + \alpha \times L_b + \beta \times L_t L=Ls+α×Lb+β×Lt

  • 对于 probability 和 binary 应用 BCE 损失函数,进行了困难样本挖掘,保证用于训练的样本集合 S l S_l Sl 中正负样本比例在 1:3 左右:
    L s = L b = Σ i ∈ S l y i log ⁡ x i + ( 1 − y i ) log ⁡ ( 1 − x i ) L_s = L_b = \Sigma_{i \in S_l} y_i \log x_i + (1 - y_i)\log(1 - x_i) Ls=Lb=ΣiSlyilogxi+(1yi)log(1xi)
  • 而对于 threshold 应用 L1 distance,对于每个像素点,计算其实际预测与标记的差异绝对值, dilate G d G_d Gd 内部的所有像素点都要逐个计算累加: L t = Σ i ∈ R d ∣ y i ∗ − x i ∗ ∣ L_t = \Sigma_{i \in R_d} |y_i^* - x_i^*| Lt=ΣiRdyixi

前面也提到过了,在预测阶段可以直接删除 DB 模块(同时也就不能得到 binary map 了),直接使用 probability 的结果然后进行固定阈值的二值化,得到 shunk text region,然后再 dilate 得到结果。

(我自己的理解)这里也算再次强调/验证了论文中 threshold map 的作用:不是提供直接的二值化,而是用 adaptive threshold 的方式帮助网络得到更好的 probability map,在这个角度上 DB 提升了网络的性能;而到了预测的时候,DB 已经不再重要,因为 probability map 已经足够好了(我写不下去了,有点感动 23333,DB 来帮 probability map 成长,然后直接退隐了)

Experiments

Datasets

Implementation details

Ablation study

Comparisons with previous methods

Limitation

Conclusion

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值