DBNet学习笔记

1.网络结构:
DBNet学习笔记_第1张图片

1.网络流程

输入一张图片,经过卷积操作-> 1/2 -> 1/4 -> 1/8 ->1/16 ->1/32进行特征的提取,然后进行上采样操作,上采样的过程是把1/32的特征通过插值进行上采样到原图的1/16,然后将上采样后的1/16与前一步骤的1/16特征进行相加,得到一个是原图1/8的特征图,再与1/8的特征图进行相加,得到一个1/4的特征图,再对输出的四个特征图分别上采样到一样大小,进行一个concat操作,concat后的特征为原图的1/4,再对这样一个特征图进行插值到原图大小。网络的输出分为两个部分,一是概率图(probability map:代表像素点是文本的概率),另一个是阈值图(threshold map:每个像素点的阈值)。接着是二值化图(binary map),由概率图和阈值图计算得到。最后经过后处理,得到文本框的坐标。
本文亮点:对每一个像素点进行自适应二值化,二值化阈值由网络学习得到,彻底将二值化这一步骤加入到网络里一起训练

二值化公式:
在这里插入图片描述
公式中Pi,j表示概率值,Ti,j表示阈值图部分像素点的值,若(Pi,j-Ti,j) > 0Bi,j的值就是1,若(Pi,j-Ti,j) < 0,Bi,j的值就是0,具体可以参考下图:
DBNet学习笔记_第2张图片

上述公式即一个带系数的sigmoid函数:
DBNet学习笔记_第3张图片

2.loss函数

使用的loss函数为:

CELoss=-ylog(f(x))+(1-y)log(1-f(x))

y为上述的二值化公式,x为二值化公式中的(Pi,j-Ti,j)部分,当标签为 1 时,即y=1(表示为文字区域),那么公示的+号后部分为0,若标签为0时,即y=0(表示为非文字区域).
而在二值化公式中,有个超参数k,是为了调节网络在预测错误时的Loss值,当预测错误时,使得loss值是一个约等于10的值,相当于加大预测错误的惩罚。

3.标签如何制作

DBNet学习笔记_第4张图片
如图,假设红色的框紧密地包围了一行文本,那么是如何得到概率图和阈值图呢?是经过一个叫做shrink的操作,使用公式:D=A(1-r**2)/L,式中A表示红色框的面积,L表示红色框的周长,r为超参数,在论文中为0.4,经过这样一个shrink操作,就得到了蓝色框的位置,即概率图。阈值图是经过一个D距离的膨胀,即图中绿色框的位置。那么他们的取值是如何呢,具体可以参考:https://www.bilibili.com/video/BV1xf4y1p7Gf?p=1

你可能感兴趣的:(算法,深度学习,算法,计算机视觉)