文本检测模型 DBNet 一种基于分割算法的模型 对每个像素点进行自适应二值化,并将二值化过程与网络训练相结合 可微分二值化模块 概率图

文本检测模型 DBNet

DBNet文本检测模型是一种基于分割算法的模型,其优化之处在于对每个像素点进行自适应二值化,并将二值化过程与网络训练相结合。

传统的文本检测方法通常将二值化作为一个后处理步骤,与网络训练分开进行。而DBNet则提出了一种可微分的二值化方法,即将文本检测任务中的二值化过程与网络训练相结合。具体来说,DBNet算法的核心在于其提出的可微分二值化模块(Differentiable Binarization Module,DB Module)。这个模块使用了一个近似二值化的函数,该函数在训练过程中是可微的,因此可以通过反向传播算法来优化网络参数。这个函数能够根据网络的输出自适应地调整二值化阈值,使得网络能够更好地适应不同场景下的文本检测任务。

此外,DBNet的模型结构可以分为三个部分:Backbone网络、FPN网络和Head网络。Backbone网络负责提取图像的特征,FPN网络则是一种卷积网络,用于高效提取图片中各维度特征的结构增强特征,而Head网络则负责计算文本区域概率图。

总的来说,DBNet通过其独特的可微分二值化方法和优化的模型结构,提高了文本检测的准确性和鲁棒性,成为了当前研究领域的热点之一。

背景介绍

一般分割算法流程是先通过网络输出文本分割的概率图,然后使用预先设定好的阈值将概率图转换为二值图,最后使用后处理操作将像素级的结果转换为检测结果。然而,这样就会使得算法性能很大程度上取决于二值化时阈值的选择。

DBNet[1]对这个流程进行了优化,对每个像素点进行自适应二值化,二值化的阈值由网络学习得到,彻底将二值化这一步骤加入到网络里一起训练,这样最终的输出图对于阈值就会非常鲁棒。

模型输入标签

在DB(Differentiable Binarization)网络中,为了训练网络进行文本检测,需要为网络提供适当的标签(ground truth)。虽然网络最终输出三个不同的图(概率图、阈值图和近似二值图),但在训练过程中,通常只有概率图是直接与标签进行比较的,因为阈值图是通过网络学习得到的,而二值图是基于概率图和阈值图通过DB算法计算得到的。

DB网络中,网络的输出为3个部分:概率图、阈值图和近似二值图:

  • 概率图:图中每个像素点的值为该位置属于文本区域的概率。

标签:文本区域的二值图(或称为文本掩码)。文本区域的像素被标记为1,非文本区域的像素被标记为0。
损失函数:通常使用二元交叉熵损失(Binary Cross-Entropy Loss)或其他类似的损失函数来比较网络的预测概率图和真实的文本掩码。

  • 阈值图:图中每个像素点的值为该位置的二值化阈值。

标签:在DB网络的训练中,阈值图并没有直接对应的标签。相反,阈值图是通过网络学习得到的,用于在预测阶段进行自适应二值化。
损失函数:虽然阈值图没有直接的损失函数,但DB网络会确保阈值图与概率图协同工作,以便在二值化过程中产生准确的检测结果。

  • 二值图:由概率图和阈值图通过DB算法计算得到,图中像素的值为0或1。

标签:在训练过程中,二值图并不是直接用于计算损失的。然而,它可以用作一个可视化的辅助工具,帮助理解网络预测的效果。
损失函数:如前所述,二值图是通过DB算法由概率图和阈值图计算得到的,因此在训练过程中不直接参与损失计算。然而,由于概率图与文本掩码之间的损失函数会优化网络以产生更准确的概率图,这间接地也会影响到二值图的质量。

在构造损失函数时,我们需要获取对应的真实标签。阈值图的标签 G d G_{d} Gd,概率图标签 G s G_{s} Gs。DB网络中,标签的获取方式参考了PSENet(Progressive Scale Expansion Network,渐进式尺度扩展网络)中的方法,使用扩张和收缩的方式分别获取上述两个真实标签。标签的构造过程如 图1 所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


图1 DB标签构造示意图

在该方法中,对于一幅文字图像,文本区域的每个多边形使用一组线段 G = { S k } k = 1 n G=\{S_k\}^n_{k=1} G={Sk}k=1n来进行描述,n为线段个数。如 图1 所示, n = 14 n=14 n=14

概率图标签 G s G_s Gs的获取方法使用了Vatti clipping算法,该算法常用于收缩多边形,其中,收缩的偏移量D可以使用周长L和面积A计算得到,公式如下:
D = A ( 1 − r 2 ) L D = \frac{A(1-r^2)}{L} D=LA(1r2)
其中,r为收缩因子,实验中根据经验设置为0.4。

在阈值图标签 G d G_d Gd的计算中,首先使用概率图标签 G s G_s Gs的计算过程中得到的偏移量D进行多边形的扩充,然后计算 G d G_d

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/691381.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker需要代理下载镜像

systemctl status docker查看docker的状态和配置文件是/usr/lib/systemd/system/docker.service vi /usr/lib/systemd/system/docker.service, 增加如下配置项 [Service] Environment"HTTP_PROXYhttp://proxy.example.com:8080" "HTTPS_PROXYhttp:…

【机器学习】集成学习在信用评分领域实例

集成学习在信用评分领域的应用与实践 一、引言二、集成学习的概念与原理三、集成学习在信用评分中的应用实例四、总结与展望 一、引言 在当今金融数字化快速发展的时代,信用评分成为银行、金融机构等评估个人或企业信用风险的重要工具。然而,单一的信用评…

欢乐钓鱼大师自动钓鱼,游戏辅助!

在探索《欢乐钓鱼大师》的世界时,一项备受关注的功能是陀螺仪模式。这是一种利用手机陀螺仪传感器来增强游戏体验的功能,通过模拟真实的钓鱼动作,让玩家更深入地沉浸在游戏的世界中,感受到更加逼真的钓鱼体验。在本篇攻略中&#…

感知机和神经网络

引入 什么是神经网络? 我们今天学习的神经网络,不是人或动物的神经网络,但是又是模仿人和动物的神经网络而定制的神经系统,特别是大脑和神经中枢,定制的系统是一种数学模型或计算机模型,神经网络由大量的人…

【iOS开发】—— 初识锁

【iOS开发】—— 初识锁 线程安全锁的种类自旋锁定义原理自旋锁缺点OSSpinLock(自旋锁) 互斥锁os_unfair_lockpthread_mutexNSLockNSRecusiveLockSemaphore信号量synchronized 总结两种之间的区别和联系: 线程安全 当一个线程访问数据的时候…

【微服务】spring aop实现接口参数变更前后对比和日志记录

目录 一、前言 二、spring aop概述 2.1 什么是spring aop 2.2 spring aop特点 2.3 spring aop应用场景 三、spring aop处理通用日志场景 3.1 系统日志类型 3.2 微服务场景下通用日志记录解决方案 3.2.1 手动记录 3.2.2 异步队列es 3.2.3 使用过滤器或拦截器 3.2.4 使…

Windows环境下编译 aom 源码详细过程

AV1 AV1是一种开源的视频编码格式,由开放媒体联盟(AOMedia Video 1,简称AOMedia或AOM)开发。AV1旨在提供比现有的视频编码格式如H.264和H.265更好的压缩效率,同时保持或提高视频质量。AV1的编码效率显著高于H.264&…

差分约束 C++ 算法例题

差分约束 差分约束 是一种特殊的 n 元一次不等式组,m 个约束条件,可以组成形如下的格式: { x 1 − x 1 ′ ≤ y 1 x 2 − x 2 ′ ≤ y 2 ⋯ x m − x m ′ ≤ y m \begin{cases} x_1-x_1^{} \le y_1 \\ x_2-x_2^{} \le y_2 \\ \cdots \\ x_…

【机器学习】 技术栈和开发环境搭建

各位大佬好 ,这里是阿川的博客 , 祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 博客目录 技术栈编程语言库框架编辑器项目IDE …

行业分析---马斯克的Tesla

1 背景 在前面的博文《行业分析---我眼中的Apple Inc.》中,笔者曾介绍过苹果公司的财报和商业。依然本着提升自己看公司的能力,尝试去分析相对熟悉的公司,看懂它的商业。在之前的博客《自动驾驶---Tesla之FSD简介》中,笔者也简单介…

UE5C++ FString做为参数取值时报错error:C4840

问题描述 用来取FString类型的变量时报错: 问题解决 点击错误位置,跳转到代码: void AMyDelegateActor::TwoParamDelegateFunc(int32 param1, FString param2) {UE_LOG(LogTemp, Warning, TEXT("Two Param1:%d Param2:%s"), param…

带你探索CA和SSL证书

目录 一、什么是CA? 二、什么是SSL证书? 三、SSL证书分类和文件种类? 3.1 证书的分类: 3.2证书格式: 四、SSL和TSL 五、PSK介绍 六、nginx配置介绍 一、什么是CA? CA是证书的签发机构,它是…