最易理解的DB算法(Differentiable Binarization)

2.2.2 DB算法(Differentiable Binarization)

2.2.2.1概述

近年,由于基于分割的方法对各种形状(弯曲、竖直、多方向)的场景文本检测更加精确,因此,基于分割的方法在场景文本检测领域很流行。
DB(Differentiable Binarization)算法全称可微分二值化处理,基于分割的场景文本检测即把分割方法产生的概率图(热力图)转化为边界框和文字区域,其中会包含二值化的后处理过程。二值化的过程非常关键,常规二值化操作通过设定固定的阈值,然而固定的阈值难以适应复杂多变的检测场景。本文作者提出了一种可微分的二值化操作,通过将二值化操作插入到分割网络中进行组合优化,从而实现阈值在热力图各处的自适应。
DB在场景文本检测上的效果
在这里插入图片描述
DB方法整体如图所示:
在这里插入图片描述
如上图方法结构图所示,首先,图片通过特征金字塔结构的resnet50-vd层(详细结构参考2.2.4),通过上采样的方式将特征金字塔的输出变换为同一尺寸,并级联(cascade)产生特征及特征层;然后,通过特征层预测概率图(probability map)及文本概率图,用于计算该像素属于文本的概率形成文本概率图,然后根据各像素动态阈值形成动态阈值图,最后,通过文本概率图和动态阈值图生成DB二值图,根据DB二值图拓展标签生成,形成文本框。
  在训练阶段,监督被应用在阈值图、概率图和近似的二值图上,其中后两者共享同一个监督;在推理阶段,则可以从后两者轻松获取边界框。本文档通过可微分二值化、自适应阈值、标签生成、优化等4方面展开叙述。

2.2.2.3可微分二值化

下式表示了传统二值化操作的方法,其中P表示概率图,t表示划分阈值。通过固定的阈值对网络输出的概率图进行划分。由于这种二值化方式是不可微分的,因此它无法在训练阶段随着分割网络被优化。
在这里插入图片描述
因此,一个开源作者提出了一个approximate step function,用于将二值化操作融合于分割网络中。如下式所示,建立了概率图P和阈值图T与二值化图之间的关系,使得二值化的计算可微,从而可以满足梯度反向传播的条件。
在这里插入图片描述
其中,k为放大因子,依经验设定为50.带有自适应阈值的可微分二值化不仅有助于把文字区域与背景区分开,而且还能把相近的实例分离开来。

2.2.2.2自适应阈值

在可微分二值化中,将阈值图、概率图建立可微的关系生成二值图实际上已经解决了阈值自适应的问题。而下图显示的是阈值图在有、无监督下的表现。
即使没有监督的阈值图,阈值图也能突出文本边界区域。这表明像边界一样的阈值图有利于最终的结果。因此,作者在阈值图上应用边界监督来更好地指导。
在这里插入图片描述
上图中,图a为原图,图b为概率图,图c为无监督的阈值图,图d为有监督的阈值图。

2.2.2.3标签的生成

在这里插入图片描述
对于概率图标签的生成,作者受到了PSENet的启发。给定一张文字图像,其文本区域的每个多边形由一组线段描述:
在这里插入图片描述
其中,n表示顶点的数量。
通过 Vatti clipping 算法 (Vati 1992)缩小多边形。收缩偏移量D可以通过周长L和面积A计算:
在这里插入图片描述
其中,r是收缩因子,依经验设置为0.4.

2.2.2.4优化

损失函数是通过概率图损失Ls - 二值图损失Lb - 阈值图Lt构成的带有权重的损失。

在这里插入图片描述
其中,α,β分别设置为1.0和10.
  Ls和Lb使用二值交叉熵损失函数:
在这里插入图片描述
其中,Sl表示正负样本比例为1:3的样本集。
Lt使用L1距离损失函数。
在这里插入图片描述

  • 7
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Differentiable SVD(Singular Value Decomposition)是一种在机器学习和深度学习中常用的技术,用于对矩阵进行分解和降维。TensorFlow是一个开源的机器学习框架,提供用于构建和训练神经网络的工具和函数。在TensorFlow中,可以使用Differentiable SVD来进行矩阵的SVD分解,并通过梯度下降算法来优化分解得到的矩阵。 使用TensorFlow实现Differentiable SVD的步骤如下: 1. 导入TensorFlow库,并创建一个需要进行SVD分解的矩阵。 2. 使用TensorFlow提供的函数,例如tf.linalg.svd,对矩阵进行SVD分解。该函数会返回分解得到的三个矩阵:左奇异矩阵、奇异值矩阵和右奇异矩阵。 3. 根据需要,可以对奇异值矩阵进行降维处理,例如保留前k个最大的奇异值,并将其余的奇异值置为0。 4. 对降维后的矩阵重新进行重构,通过乘积得到近似的原始矩阵。 5. 定义一个损失函数,用于衡量重构矩阵与原始矩阵之间的差异。 6. 使用梯度下降算法,通过最小化损失函数来优化分解得到的矩阵。 7. 迭代多次,直到得到满意的分解结果。 Differentiable SVD的优势在于能够将矩阵分解与模型训练过程相结合,实现端到端的优化,而不需要手动地进行SVD分解和重构。这样可以提高模型的可解释性和泛化能力,同时省去了手动调整降维参数的繁琐过程。TensorFlow作为一个强大的深度学习框架,为实现Differentiable SVD提供了丰富的函数和工具,使得这一技术更加容易应用于实际问题中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值