Real-time Scene Text Detection with Differentiable Binarization

2024-01-03 09:30

本文主要是介绍Real-time Scene Text Detection with Differentiable Binarization,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们提出了一个名为可微二值化(DB)的module,它可以在分割网络中执行二值化过程。DB module和分割网络一起优化,可以自适应设置二值化的阈值,从检测精度和速度两方面来看,它达到了19年最先进的结果,检测1器实现了 F-measure of 82.8,速度为62FPS, 在MSRA-TD500 数据集上

传统做法:大多数现有的检测方法使用类似的post-processing,如图所示(蓝色箭头):首先,它们设置一个固定的阈值,用于转换分割网络生成的概率图转换成二值图像;然后,使用像素聚类等启发式技术将像素分组到文本实例中

改进做法:将二值化操作插入分割网络,以进行联合优化。通过这种方式,可以自适应地预测图像每个位置的阈值,从而能够完全区分像素前景和背景

然而,标准的二值化函数是不可微的,提出了一个近似的二值化函数,称为可微二值化(DB)

本文的主要贡献是提出了可微的DB模块,对segment结果的二值化过程可以端到端进行训练

  1. 在5个基准集上实现了比较好的表现
  2. 比先前的方法更快,DB可以提供一个二值化图,简化了后处理
  3. 使用轻量级的主干也可以表现好,在ResNet-18主干网络上增强了检测性能
  4. 在推理阶段,可以移除DB,不影响性能

1. 方法

由FPN产生的结果特征结果F,由thresh网络和probability网络分别产生probability map (P) and the threshold map (T). approximate binary map (Bˆ) 由 P 和 T计算得到

1.1 二值化

训练过程中不可以随着分割网络的优化而优化

采用一个step-function代替,其中Bˆ 是 approximate binary map,T为threshold map,P为概率图,k=50

这个可微分的二值函数,不仅可以很好的区分前后背景,而且还能很好的分开相邻文本

在不同x区域,k值放大的重要性

1.2 Adaptive threshold

从外观上看,阈值图 (threshold map) 与的文本边框图相似。 但是,阈值图的动机和用法与文本边框图不同。 在下图中显示了带有/不带有监督的阈值图。即使没有监督阈值图,阈值图也会突出显示文本边框区域。 这表明类似边界的阈值图有利于最终结果。 因此,我们在阈值图上应用了类似边界的监督,以提供更好的指导。文中的阈值图用作二值化的阈值。

1.3 Deformable convolution

可变形卷积可以为模型提供灵活的感受野,这对极端长宽比的文本实例特别有利。 在 ResNet-18 或 ResNet-50 主干中的 conv3,conv4和conv5阶段的所有3×3卷积层中应用了可调节的可变形卷积

1.4 Label generation

生成扩张和收缩的polygon的偏移量计算,想法来自于PSENET

shrunk和dilated公式,r设置为0.4

probability map:缩小 Gs
threshold map: 扩张 Gd

将Gs和Gd之间的间隔作为文本区域,threshold的label可以通过计算与原始多边形最近的部分的距离

1.4 optimizer

其中α=1.0,β=10

对于概率损失和二值损失都采用在线难例挖掘,loss采用BCELoss,正负比例1:3

thresh损失采用的是L1 distance,其中Rd是膨胀多边形的所有点的索引,y*是阈值图的label

2. 推理阶段

  1. 首先使用固定的阈值(0.2)把概率图或者近似二进制图二值化得到二值图;

  2. 从二值图中获得连续的区域(缩小的文本区域);

  3. 使用维特比算法计算的偏移,将缩小的区域膨胀


http://www.taodudu.cc/news/show-8411054.html

相关文章:

  • nginx realip模块
  • 编写SPI_Master驱动程序_老方法
  • C#学习笔记第二课
  • 聚是一团火,散作满天星 【Django多项目合并】
  • 揭秘Transformer创始八子:聚是一团火,散是满天星
  • Vscode插件-让代码敲出火焰
  • Python|Python的一团火——人工智能的选择,机器学习的青睐
  • 雷军:小米创业8年内部影像首次公开 看完我心里边都是一团火
  • 小米纪录片《一团火》上映,这团火烧到你了吗?
  • 因为他们想要找回他们的国家!
  • 博弈论第六集总结
  • 【项目管理/PMP/PMBOK第六版/新考纲】敏捷开发/关键链法 CCM/缓冲时间/帕金森定律/墨菲定律/路径汇聚风险/资源平衡/资源平滑/工期压缩技术/赶工/快速跟进
  • 脑机接口技术的未来之驳
  • C语言易错知识点六(指针 (Part one))
  • 要时尚 去董家渡“驳样”_新浪上海_摩登上海
  • 六)Stable Diffussion使用教程:SD Upscale
  • 巴黎启用无人驾驶接驳小巴测试,希望借此缓解交通压力
  • Mobileye“杀入”短途接驳自动驾驶,分摊L4级方案成本
  • React Hooks 使用误区,驳官方文档
  • 达芬奇密码053
  • 达芬奇密码052
  • 达芬奇密码041
  • 达芬奇密码022
  • 达芬奇密码049
  • 达芬奇CAN配置----CANIF
  • Pycharm和Spyder哪个好?
  • 拓嘉启远电商:为什么拼多多商品数量越多越好是不对的
  • fbook使用记录一
  • CocoaPods 安装相关问题
  • div+css静态网页设计——环境保护--水生态环保(5页) 环境网页设计作业 简单大学生静态HTML网页作品
  • 这篇关于Real-time Scene Text Detection with Differentiable Binarization的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



    http://www.chinasem.cn/article/565242

    相关文章

    linux 下Time_wait过多问题解决

    转自:http://blog.csdn.net/jaylong35/article/details/6605077 问题起因: 自己开发了一个服务器和客户端,通过短连接的方式来进行通讯,由于过于频繁的创建连接,导致系统连接数量被占用,不能及时释放。看了一下18888,当时吓到了。 现象: 1、外部机器不能正常连接SSH 2、内向外不能够正常的ping通过,域名也不能正常解析。

    【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

    🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At

    UMI复现代码运行逻辑全流程(一)——eval_real.py(尚在更新)

    一、文件夹功能解析 全文件夹如下 其中,核心文件作用为: diffusion_policy:扩散策略核心文件夹,包含了众多模型及基础库 example:标定及配置文件 scripts/scripts_real:测试脚本文件,区别在于前者倾向于单体运行,后者为整体运行 scripts_slam_pipeline:orb_slam3运行全部文件 umi:核心交互文件夹,作用在于构建真

    python内置模块datetime.time类详细介绍

    ​​​​​​​Python的datetime模块是一个强大的日期和时间处理库,它提供了多个类来处理日期和时间。主要包括几个功能类datetime.date、datetime.time、datetime.datetime、datetime.timedelta,datetime.timezone等。 ----------动动小手,非常感谢各位的点赞收藏和关注。----------- 使用datet

    时间序列|change point detection

    change point detection 被称为变点检测,其基本定义是在一个序列或过程中,当某个统计特性(分布类型、分布参数)在某时间点受系统性因素而非偶然因素影响发生变化,我们就称该时间点为变点。变点识别即利用统计量或统计方法或机器学习方法将该变点位置估计出来。 Change Point Detection的类型 online 指连续观察某一随机过程,监测到变点时停止检验,不运用到

    【ReactJS】困惑于text/babel与browser.js还是babel.js?

    使用JSX   使用JSX,可以极大的简化React元素的创建,JSX抽象化了React.createElement()函数的使用,其语法风格类似于HTML语法风格。对比如下代码可以让你更好的理解这一点。 // 使用React.createElement()return React.createElement('div',null,'Hello',this.props.name);//使用J

    Android:EditText在hint字体大小和text字体大小不一致时的设置方法

    今天碰到一个需求,有一个输入框EditText,要求输入某项金额,要求在未输入文字之前,hint提示,输入文字之后显示输入的文字,要求是未输入内容时hint字体大小为14sp,输入金额之后字体大小要变成30sp。,可是EditText本身没有这个属性可以设置,怎么办呢,只有在代码中添加监听事件了: /*** 添加监听,在hint时和text时切换字体大小*/cetMoney.addTextCha

    MACS bdgdiff: Differential peak detection based on paired four bedGraph files.

    参考原文地址:[http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html](http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html) 文章目录 一、MACS bdgdiff 简介DESCRIPTION 二、用法

    lua data time

    local getTime = os.date(“%c”); 其中的%c可以是以下的一种:(注意大小写) %a abbreviated weekday name (e.g., Wed) %A full weekday name (e.g., Wednesday) %b abbreviated month name (e.g., Sep) %B full month name (e.g., Sep

    Event Time源码分析

    《2021年最新版大数据面试题全面开启更新》 flink 中Processing Time也就是处理时间在watermark定时生成、ProcessFunction中定时器与时间类型的窗口中都有使用,但是其内部是如何实现注册定时器、如何调用、如何容错保证在任务挂掉在下次重启仍然能够触发任务执行,都是我们今天的主题。首先需要了解一下在flink内部时间系统是由哪些类来共同完成这件事,下面画