当前位置: 首页 > news >正文

机器学习笔记 - CRAFT(文本检测的字符区域感知)论文解读

        以前用刚性词级边界框训练的方法在以任意形状表示文本区域方面存在局限性。论文提出了一种新的场景文本检测方法,通过探索每个字符和字符之间的亲和力来有效地检测文本区域。为了克服缺乏单个字符级别注释的问题,论文提出的框架既利用了合成图像的给定字符级别注释,也利用了通过学习的临时模型获得的真实图像的估计字符级别地面实况。为了估计字符之间的亲和力,网络使用新提出的亲和力表示进行训练。对六个基准的广泛实验,包括在自然图像中包含高度弯曲文本的 TotalText 和 CTW-1500 数据集,表明我们的字符级文本检测显着优于最先进的检测器。根据结果​​,我们提出的方法保证了检测复杂场景文本图像的高度灵活性,例如任意方向、弯曲或变形的文本。

https://arxiv.org/pdf/1904.01941.pdficon-default.png?t=M85Bhttps://arxiv.org/pdf/1904.01941.pdf        场景文本检测因其众多的应用而在计算机视觉领域引起了广泛关注,例如即时翻译、图像检索、场景解析、地理定位和盲导航。 最近,基于深度学习的场景文本检测器显示出了良好的性能。这些方法主要训练他们的网络来定位词级边界框。 但是,它们可能会在例如弯曲、变形或极长的文本,这些文本很难用单个边界框检测到。 或者,在通过以自下而上的方式链接连续字符来处理具有挑战性的文本时,字符级意识具有许多优势。 幸运的是,现有的大多数文本数据集都没有提供字符级别的注释,而获取字符级别的基本事实所需的工作成本太高

使用 CRAFT 进行字符级检测的可视化。(a) 我们提出的框架预测的热图。 (b) 各种形状文本的检测结果。

         在论文中,提出了一种新颖的文本检测器,可以定位单个字符区域并将检测到的字符链接到文本实例。 我们的框架,称为CRAFT(Character Region Awareness For Text detection),设计有一个卷积神经网络,产生字符区域得分和亲和力得分。 区域分数用于定位图像中的单个字符,而亲和力分数用于将每个字符分组为单个实例。 为了弥补字符级注释的不足,我们提出了一个弱监督学习框架,用于估计现有真实单词级数据集中的字符。

        在深度学习出现之前,场景文本检测的主要趋势是自下而上,其中主要使用手工制作的特征——例如 MSER 或 SWT——作为基本组件。 最近,通过采用流行的对象检测/分割方法,如 SSD、Faster R-CNN 和 FCN,提出了基于深度学习的文本检测器。

        采用基于 VGG-16 并具有批量标准化的全卷积网络架构作为主干。 模型在解码部分有跳跃连接,这与 U-net 相似,因为它聚合了低级特征。 最终输出有两个通道作为分数图:区域分数和亲和力分数。 网络架构如下图所示。

网络架构示意图

         主要目标是在自然图像中精确定位每个单独的字符。 为此训练了一个深度神经网络来预测字符区域和字符之间的亲和力。 由于没有可用的公共字符级数据集,因此该模型以弱监督方式进行训练。

所提出方法的整体训练流程示意图。 以弱监督方式使用真实图像和合成图像进行训练。

        对于每个训练图像,为区域得分和具有字符级边界框的亲和力得分生成地面实况标签。 区域分数表示给定像素是字符中心的概率,亲和度分数表示相邻字符之间空间的中心概率。

        与合成数据集不同,数据集中的真实图像通常具有单词级别的注释。 在这里,我们以弱监督的方式从每个词级注释生成字符框,如上图所示。

        即使没有给出字符级注释,它也可以检测单个字符。 所提出的方法提供了字符区域分数和字符亲和力分数,它们一起以自下而上的方式完全覆盖了各种文本形状。 由于提供字符级注释的真实数据集很少见,因此我们提出了一种弱监督学习方法,该方法可以从临时模型生成伪真实数据。 CRAFT 在大多数公共数据集上展示了最先进的性能,并通过展示这些性能而无需微调来展示泛化能力。 未来希望以端到端的方式用识别模型训练我们的模型,看看 CRAFT 的性能、鲁棒性和通用性是否转化为更好的场景文本识别系统,可以应用于更一般的场景。

相关文章:

  • 【云原生-Docker】Docker 安装 Python
  • ESP8266-Arduino编程实例-TLV493D磁传感器驱动
  • Hue在大数据生态圈的集成
  • AtCoder Beginner Contest 267 (A~D)
  • 羊了个羊游戏源码搭建开发过程
  • 基于人工蜂群算法的新型概率密度模型无人机路径规划(Matlab代码实现)
  • File Inclusion 全级别
  • 微信小程序——云开发|计费方式调整大家怎么看?
  • Github 最新霸榜,号称架构师修炼之路的“葵花宝典”限时开源
  • RFSoC应用笔记 - RF数据转换器 -07- RFSoC关键配置之RF-DAC内部解析(一)
  • 【老生谈算法】matlab实现霍夫变换算法源码——霍夫变换算法
  • 赶紧进来看看!!!你一定要会做的八道经典指针笔试题!!!
  • 力扣刷题流程--记录用
  • bp神经网络优化算法对比,bp神经网络的优化算法
  • 新学期,新FLAG | 从心出发
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • 3.7、@ResponseBody 和 @RestController
  • Hexo+码云+git快速搭建免费的静态Blog
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JavaScript实现分页效果
  • Mysql5.6主从复制
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • php的插入排序,通过双层for循环
  • python docx文档转html页面
  • vue 个人积累(使用工具,组件)
  • 闭包--闭包作用之保存(一)
  • 从0实现一个tiny react(三)生命周期
  • 大主子表关联的性能优化方法
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 开发基于以太坊智能合约的DApp
  • 来,膜拜下android roadmap,强大的执行力
  • 普通函数和构造函数的区别
  • 前端路由实现-history
  • 深度学习中的信息论知识详解
  • 小而合理的前端理论:rscss和rsjs
  • 追踪解析 FutureTask 源码
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • ​什么是bug?bug的源头在哪里?
  • # Java NIO(一)FileChannel
  • #1014 : Trie树
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (day 12)JavaScript学习笔记(数组3)
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (二)hibernate配置管理
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (接口封装)
  • (四)模仿学习-完成后台管理页面查询
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • .java 9 找不到符号_java找不到符号
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • @Autowired多个相同类型bean装配问题
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)