Real-time Scene Text Detection with DB 阅读

Real-time Scene Text Detection with DB 阅读


1.现在大多数基于分割的方法都是将分割网络产生的probability map转化为 binary image,然后将像素分为文本实例。在这里概率图转换为二值图都是通过人为设定阈值进行转换。如下图蓝线部分。

pipeline
但是,标准二值化函数是不可微分的,因此论文提出了一种二值化的近似函数,称为可微分二值化(DB),在训练时可以完全微分。
对于DB网络,作者总结的几个显著优点:
1.在具有垂直,水平,弯曲的五个数据集上都取得了比之前的检测网络更好的效果。
2.检测的速度很快。
3.使用轻量级的backbone(ResNet-18)就可以取得很好的效果。


Binarization

Standard binarization

对于一张由分割网络产生的 probability map P P P ∈ \in R h ∗ w R^{h*w} Rhw,当 P P P转换为二值图后,像素值为1的地方就代表是文本区域。
B i , j = { 0 i f P i , j > = t , 1 otherwise. B_{i,j}= \begin{cases} 0& if \quad P_{i,j}>=t,\\ 1& \text{otherwise.} \end{cases} Bi,j={01ifPi,j>=t,otherwise.

Differentiable binarization

标准的二值化是不可微的,不能直接参与网络的训练,因此论文提出了一种近似函数,该函数与标准化而值函数形状相似,但是是可微的,可以进行梯度回传、训练。

B ^ i , j = 1 1 + e − k ( P i , j − T i , j ) \hat{B}_{i,j}=\frac{1}{1+e^{-k(P_{i,j}-T_{i,j})}} B^i,j=1+ek(Pi,jTi,j)1
其中 B ^ \hat{B} B^是approximate binary map; T T T是从网络中学习到的 adaptive threshold map; k k k是用来放大梯度的超参数。

三种 map

了解一下DB函数的交叉熵损失函数

DB函数:
f ( x ) = 1 1 + e − k x f(x)=\frac{1}{1+e^{-kx}} f(x)=1+ekx1
其中 x = P i , j − T i , j x=P_{i,j}-T_{i,j} x=Pi,jTi,j
二分类CE损失函数为:
C E l o s s = − y log ⁡ y ^ − ( 1 − y ) log ⁡ ( 1 − y ^ ) CE_{loss}=-y\log{\hat{y}}-(1-y)\log{(1-\hat{y})} CEloss=ylogy^(1y)log(1y^)
所以正负标签的损失函数为:
l + = − log ⁡ 1 1 + e − k x l_+=-\log{\frac{1}{1+e^{-kx}}} l+=log1+ekx1
l − = − log ⁡ ( 1 − 1 1 + e − k x ) l_-=-\log{(1-\frac{1}{1+e^{-kx}})} l=log(11+ekx1)
这两个函数的图像分别是:
在这里插入图片描述
在这里插入图片描述
从图中可以看出:当样本为正样本,以及 P i , j > T i , j P_{i,j}>T_{i,j} Pi,j>Ti,j意味着网络输出正确,所以 l o s s loss loss趋于0且梯度为0,当样本为负样本时以及 P i , j > T i , j P_{i,j}>T_{i,j} Pi,j>Ti,j意味着网络输出错误, l o s s loss loss很大且梯度恒定。

Deformable convolution

为了可以检测到极端长宽比的文本区域。论文里采用了可变形卷积的方式,用来自动提取feature map的有用特征。传统的卷积核的采样位置都是固定的,比如3 × \times × 3、5 × \times × 5的卷积核,都只能采样固定区域的点,这就导致了网络难以适应几何形变。而可变形卷积会由网络学习出关于卷积核里的采样偏移量,最后卷积核会根据这些偏移量进行采样。
加上该偏移量的学习之后,可变形卷积核的大小和位置可以根据当前需要识别的图像内容进行动态调整,其直观效果就是不同位置的卷积核采样点位置会根据图像内容发生自适应的变化,从而适应不同物体的形状、大小等几何形变。在这里插入图片描述
在这里插入图片描述

Label generation

在这里插入图片描述
其中红线是原图的多边形标签,蓝线和绿线分别是收缩和扩张后的区域。收缩比例是根据原图红线的周长和面积计算得到的。
在这里插入图片描述
蓝线区域就是probability map的标签
蓝线区域和绿线区域之间的白色部分就是threshold map的标签.
其中白色区域是根据每一个点到最近边界的距离计算的,所以靠近红线部分的点比较亮。(这个完全是自己的理解,自己也不太清楚threshold map label 怎么生成的?)

Optimization

论文使用的损失函数:
L = L s + α × L b + β × L t L=L_s+\alpha\times L_b + \beta \times L_t L=Ls+α×Lb+β×Lt
L s L_s Ls是probability map 的损失, L b L_b Lb是binary map的损失, L t L_t Lt是 threshold map 的损失。
其中 L S L_S LS, L b L_b Lb采用了二分类交叉熵损失:
L s = L b = ∑ y ∈ S l y i log ⁡ x i + ( 1 − y i ) log ⁡ ( 1 − x i ) L_s=L_b=\sum_{y \in S_l}{y_i \log{x_i}+(1-y_i)\log{(1-x_i)}} Ls=Lb=ySlyilogxi+(1yi)log(1xi)
L t L_t Lt采用:
L t = ∑ y ∈ R d ∣ y i ∗ − x i ∗ ∣ L_t=\sum_{y \in R_d}{|y_i^*-x_i^*|} Lt=yRdyixi

在inference期间,由网络获得的approximate binary map,通过设定阈值(0.2)变为只有0,1的二值图,再得到收缩后的文本区域,因为做的标签是收缩后的,所以最终结果要根据之前的缩放比例进行放大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值