dbnet-文字检测

一: 文字检测常用方法

(1):基于回归,如:Ctpn
(2):基于分割,如:DBNet

二:DBNet的网络结构解析

在这里插入图片描述

1:传统二值化方法

在这里插入图片描述

2:DBNet中的二值化方法

在如上的DBNet结构的threshold map中,threshold并不像传统的二值化的阈值是固定的,它由训练得到,然后与segmentation map一起通过可微分的二值化得到approximate binary map。

3:DBNet中的FPN卷积层采用可变形卷积

在这里插入图片描述
该可变形卷积大致如下:
在这里插入图片描述
(该卷积不必纠结,已被各个框架封装)

4:可微二值化

在这里插入图片描述
在这里插入图片描述

    在上图中,公式中的P(i,j)为probability map中(i,j)位置的像素点为正样本的概
率,T(i,j)为threshold map中(i,j)位置的像素点的阈值,其中k值由实验得到。
probability map与approximate binary map在训练过程中受图P(gt)的监督,而
threshold map在训练过程中受T(gt)的监督。P(gt)中白色区域代表文字区域(实
际是小于文字区域的,它做了一个shrink的操作)。其值为1,黑色区域为非文
字区域,其值为0。白色区域的面积等于T(gt)中框内的面积。T(gt)的框内外灰
黑色部分其值相对较小,但均大于0,而在框上灰白部分其值较大,但都小于1。
   
    通过将P(gt)与T(gt)对比后的结果可微分二值化,得到approximate binary map,
对比发现probability map与approximate binary map是一致的(P(gt)对应位置的
值和differentiable binarization(P(gt)-T(gt))是一致的),那既然如此,为什么还要加
threshold map部分呢,其原因主要有两点:
(1):引入可微二值化
(2):使得效果更好,其解释如下图:

在这里插入图片描述
由上图公式可知,当标签为正样本(y=1)时:CELoss=-ylog(f(x)),f(x)为可微二值化函数(x即P(i,j)-T(i,j)),其导数为-kf(x)e^(-kx),当预测也为正样本时,由(b)可知,其导数约为0,而当预测为负样本时,其导数>10,当标签为负样本时,CELoss=-(1-y)log(1-f(x)),当预测也为负样本时,由©可知,其导数约为0,而当预测为正样本时,其导数>10。在模型预测错误时,loss的导数都较大,这样有利于模型的收敛。

三:标签的制作

1:probability map与approximate binary map的标签

在这里插入图片描述
如上图中的img所示,红色框为文本框(刚好能框住文本),其蓝色框为红色框shrink后的框,其shrink的距离D由上面的公式可得,其中A和L分别为红色框的面积与周长,r为可调参数,文中默认为0.4。

3:threshold map的标签

在这里插入图片描述
如上图所示:红框为文本框(刚好能框住文本),蓝框与绿框为红色框shrink与dilate之后的框,其shrink与dilate的距离均为:D=A(1-r^2)/L,A与L分别为红框的面积和周长,r默认为0.4。其中绿蓝框区域内的每个点的值为该点到红框上各条边的最短距离,然后用:1-该点的值/D,使得距离红色框越近其值越接近1,距离蓝绿框边越近其值越接近于0,然后将该区域其整体归一化到如:(0.3,0.7)之间。而蓝框内以及绿框外的区域则固定为一个较小的值。

其最终的标签如下图:
在这里插入图片描述

四:损失函数

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值