新文本检测算法TextFuseNet

news2024/11/22 22:35:21

TextFuseNet: Scene Text Detection with Richer Fused Features

  自然场景中任意形状文本检测是一项极具挑战性的任务,与现有的仅基于有限特征表示感知文本的文本检测方法不同,本文提出了一种新的框架,即 TextFuseNet ,以利用融合的更丰富的特征进行文本检测。
  该算法用三个层次的特征来表示文本,字符、单词和全局级别,然后引入一种新的文本融合技术融合这些特征,来帮助实现鲁棒的任意文本检测。另外提出了一个弱监督学习机制,可以生成字符级别的标注,在缺乏字符级注释的数据集情况下也可以进行训练。
  该算法在ICDAR2013上取得F1分数94.3%,在ICDAR2015上F1分数92.1%,在Total-Text上87.1%,在CTW-1500上86.6%,目前为止最佳成绩。

复现代码  获取:

关注微信公众号 datayx  然后回复  文本检测  即可获取。

AI项目体验地址 https://loveai.tech


1. 算法简介

  之前的文本检测算法大致分为两种,基于字符级别的检测和基于单词级别的检测。基于字符级别的检测算法首先提取单个字符,然后再使用字符合并算法合并这些字符成一个单词,然而这种方法因为要生成大量的字符候选框并且要合并,比较耗时。相比之下,基于单词级别的检测算法直接检测单词,会更高效和简单,但这种方法通常无法有效地检测具有任意形状的文本。为了解决这个问题,一些基于单词的方法进一步应用实例分割来进行文本检测。在这些方法中,前景分割掩码被估计以帮助确定各种文本形状。


  尽管有很好的结果,但现有的基于实例分割的方法仍然有两个主要的局限性。一是,这些方法只基于单个感兴趣区域(RoI)检测文本,而不考虑全局上下文,因此它们倾向于基于有限的视觉信息产生不准确的检测结果。二是,现有的方法没有对不同层次的单词语义进行建模,产生假阳性的可能性增大。从图一中可以看到这种方法的弊端。


  本文提出的TextFuseNet能够有效的解决这些问题,并且可以高效准确的预测任意形状的文本。TextFuseNet与其他算法相比主要的区别在于,有效的利用各种层次的特征,例如字符级别的、单词级别的、全局级别的特征,而其他的文本检测算法往往只使用一种层次的特征。

  TextFuseNet网络结构主要分为三个分支:
  第一个是语义分割分支( semantic segmentation branch),该分支用来提取液全局级别的特征;
  另外二个是检测分支和mask分支(detection and mask branches),用来提取字符级别和单词级别的特征;
  在得到三种层次的特征后,使用多路径特征融合体系结构(Multi-path Fusion Architecture),融合三者特征,生成更具代表性的特征表示,从而产生更准确的文本检测结果。

  目前大部分数据集只包含单词级别的标注,很少有字符级别的标注,为解决字符级别标注数据集缺乏的问题,提出了一种弱监督学习方案,通过从单词级注释数据集学习来生成字符级注释。
总体的结构如图2所示。

2. 算法详解

2.1 网络结构

  具体网络结构如图2所示,首先提取多层次的特征,然后执行多路径融合以进行文本检测。该结构主要由5部分组成,

  1. 使用特征金字塔(FPN)作为backbone进行多特征提取;

  2. 使用RPN生成文本候选框;

  3. 语义分割分支生成全局语义特征;

  4. 检测分支预测单词和字符;

  5. mask分支生成单词和字符的实例分割;

  在TextFuseNet中,使用ResNet作为backbone,RPN生成的文本候选框作为检测和mask分支的输入,在语义分割分支来对输入图像进行语义分割,并帮助获得全局级别的特征。
  mask在检测分支中,通过预测文本候选框的类别和采用边界框回归来细化文本候选框,提取和融合了单词和全局级别的特征来检测单词和字符。
  mask分支,对从检测分支检测到的对象执行实例分割;
  提取和融合所有字符、单词和全局级别的特征,以完成实例分割以及最后的文本检测任务。
  2.2节来主要来讲解提取多层次的特征表示,在提取多特征后,多路径融合体系结构来融合不同的特征,用于检测任意形状的文本,多径融合体系结构可以有效地对多层特征进行对齐和合并,以提供健壮的文本检测,多路径融合体系结构的实现细节在2.3节中描述。

2.2 Multi-level Feature Representation

  在检测器的检测和掩码分支中,通过预测文本候选框中的字符和单词,能够很容易的获得字符级别和单词级别的特征。这里应用RoIAlign提取不同的特征,并对单词和字符进行检测。
  除了字符和单词特征,还要获取全局的语义特征,如图2所示,语义分割分支是基于FPN的输出构建的。将所有特征层的特征融合到一个统一的特征表示中,并在这个统一的特征表示上执行分割,从而获得全局分段的文本检测结果。通常,使用1×1的卷积将不同特征层的特征的通道数对齐,并将特征映射调整为相同的大小,以便以后统一。

2.3 Multi-path Fusion Architecture

  在获取到多级特征后,分别在检测和mask分支采用多径融合体系结构。
  在检测分支中,基于从RPN获得的文本候选,提取全局和单词级特征,用于不同路径的文本检测。然后,融合这两种类型的特征,以单词和字符的形式提供文本检测。值得注意的是,在检测分支的时候,不能提取和融合字符级别的特征,因为,在执行检测之前,字符尚未被识别。在实际代码中,给定一个文本候选框,使用RoIAlign从FPN的输出特征中提取到一个大小为7×7的全局和单词特征。使用 element-wise相加融合这两个特征,然后再经过一个3×3的卷积层和一个1×1的卷积层,最终融合后的特征用于分类和坐标回归。
  在mask分支,对于每个单词级实例,可以在多路径融合体系结构中融合得到相应的字符、单词和全局级别特征。图3详细说明了多路径融合结构。
  在所提出的体系结构中,从不同的路径中提取多层次特征,并将它们融合起来,以获得更丰富的特征,以帮助学习更具鉴别性的特征表示。

  通过进一步应用RoIAlign提取单词的特征和相应的全局语义特征,通过element-wise求和将这三个层次的特征融合起来,然后通过一个3×3卷积层和一个1×1卷积层去获得更丰富的特征。最后融合的特征用于实例分割。

3.4 loss函数


4. 测试结果

原文地址https://blog.csdn.net/qq_39707285/article/details/113046449


阅读过本文的人还看了以下文章:

TensorFlow 2.0深度学习案例实战

基于40万表格数据集TableBank,用MaskRCNN做表格检测

《基于深度学习的自然语言处理》中/英PDF

Deep Learning 中文版初版-周志华团队

【全套视频课】最全的目标检测算法系列讲解,通俗易懂!

《美团机器学习实践》_美团算法团队.pdf

《深度学习入门:基于Python的理论与实现》高清中文PDF+源码

特征提取与图像处理(第二版).pdf

python就业班学习视频,从入门到实战项目

2019最新《PyTorch自然语言处理》英、中文版PDF+源码

《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码

《深度学习之pytorch》pdf+附书源码

PyTorch深度学习快速实战入门《pytorch-handbook》

【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》

《Python数据分析与挖掘实战》PDF+完整源码

汽车行业完整知识图谱项目实战视频(全23课)

李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材

笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!

《神经网络与深度学习》最新2018版中英PDF+源码

将机器学习模型部署为REST API

FashionAI服装属性标签图像识别Top1-5方案分享

重要开源!CNN-RNN-CTC 实现手写汉字识别

yolo3 检测出图像中的不规则汉字

同样是机器学习算法工程师,你的面试为什么过不了?

前海征信大数据算法:风险概率预测

【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类

VGG16迁移学习,实现医学图像识别分类工程项目

特征工程(一)

特征工程(二) :文本数据的展开、过滤和分块

特征工程(三):特征缩放,从词袋到 TF-IDF

特征工程(四): 类别特征

特征工程(五): PCA 降维

特征工程(六): 非线性特征提取和模型堆叠

特征工程(七):图像特征提取和深度学习

如何利用全新的决策树集成级联结构gcForest做特征工程并打分?

Machine Learning Yearning 中文翻译稿

蚂蚁金服2018秋招-算法工程师(共四面)通过

全球AI挑战-场景分类的比赛源码(多模型融合)

斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)

python+flask搭建CNN在线识别手写中文网站

中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络开发过程详细知识点

网络生命周期至少包括系统构思与计划、分析和设计、运行和维护的过程。 常见的迭代周期分为四阶段周期、五阶段周期、六阶段周期。 网络开发过程根据五阶段迭代周期模型可被分为五个阶段: 需求分析、现有网络分析、确定网络逻辑结构、确定网络物理结构、安装与维护。…

linux实践php8.2加laravel-cotane和swoole服务器

php8.2 composer -v 报错: Deprecation Notice: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in phar:///usr/bin/composer/vendor/symfony/console/Descriptor/TextDescriptor.php:290 解决方法可以升级下composer&#xff1…

计算机中小数的存储

十进制小数怎么转成二进制小数?怎么在计算机中存储float? 计算机中存储的二进制小数(float)怎么转成十进制小数?

法规标准-ISO 20900标准解读

ISO 20900是做什么的? ISO 20900全名为智能交通系统-部分自动泊车系统(PAPS)-性能要求和试验程序,其中主要是对PAPS系统的功能要求、性能要求及测试步骤进行了介绍 PAPS类型 I类型PAPS系统反应 II类型PAPS系统反应 一般要求 运行期间的最大速度 系统…

05 【绑定样式 条件渲染 列表渲染】

1.绑定样式 1.1 class样式 写法 :classxxx xxx可以是字符串、对象、数组。 所以分为三种写法:字符串写法、对象写法、数组写法。 1.1.1 字符串写法 字符串写法适用于: 类名不确定,要动态获取 <style>.normal{background-color: skyblue;} </style><!-- 准备…

DeSTSeg:用于异常检测的分割网络引导去噪学生教师模型(CVPR2023)

文章目录 DeSTSeg: Segmentation Guided Denoising Student-Teacher for Anomaly Detection摘要本文方法Synthetic Anomaly GenerationDenoising Student-Teacher Network分割网络推理 实验结果消融实验 DeSTSeg: Segmentation Guided Denoising Student-Teacher for Anomaly D…

倾斜摄影三维模型数据的几何坐标变换与点云重建并行计算技术探讨

倾斜摄影三维模型数据的几何坐标变换与点云重建并行计算技术探讨 倾斜摄影三维模型数据的几何坐标变换和点云重建是一项大规模计算密集型任务&#xff0c;需要消耗大量的计算资源。并行计算技术可以将这些任务分解为多个子任务&#xff0c;并在多个CPU或GPU上同时运行&#xff…

一起学SF框架系列4.6-模块context-AbstractApplicationContext

org.springframework.context.ApplicationContext接口表示Spring IoC容器&#xff0c;负责实例化、配置和组装bean。容器通过读取配置元数据来获取关于实例化、配置和组装哪些对象的指令。配置元数据以XML、Java注释或Java代码表示。它允许您表达组成应用程序的对象以及这些对象…

微信小程序的登录流程

一、背景 传统的web开发实现登陆功能&#xff0c;一般的做法是输入账号密码、或者输入手机号及短信验证码进行登录。 服务端校验用户信息通过之后&#xff0c;下发一个代表登录态的 token 给客户端&#xff0c;以便进行后续的交互,每当token过期&#xff0c;用户都需要重新登…

深度学习训练营N1周:Pytorch文本分类入门

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 NLP的功能&#xff1a; 本周使用AG News数据集进行文本分类。实现过程分为前期准备、代码实战、使用测试数据集评估模型和总结四个部分。…

chatgpt赋能python:Python冒泡排序详解

Python冒泡排序详解 介绍 Python是一门强大的编程语言&#xff0c;它在数据科学、机器学习、Web开发等领域都有广泛的应用。其中&#xff0c;排序算法是编程中一个重要的话题&#xff0c;冒泡排序也是最基本的排序算法之一。本文将详解Python冒泡排序的实现方法和优化技巧&am…

chatgpt赋能python:利用Python编写模拟器:一种循序渐进的方法

利用Python编写模拟器&#xff1a;一种循序渐进的方法 模拟器是一种用于模拟计算机硬件或软件的程序。它模拟了真实设备的功能&#xff0c;可以帮助开发人员进行测试和调试&#xff0c;以及提供一种环境来设计和验证新的算法和协议。Python是一种广泛使用的编程语言&#xff0…

计讯物联宝贝王手工大赛投票结果正式揭晓,速速围观!

在孩子的想象世界中&#xff0c; 生活中的可爱 可以是专属六一的蛋糕&#xff0c; 可以是创意手绘手摇扇&#xff0c; 可以是萌萌可爱的花束&#xff0c; 可以是未来超智能机器人&#xff0c; 可以是无人航天器模型…… 他们的想象&#xff0c; 是尚未被世俗沾染的赤忱之…

【i阿极送书——第三期】《Hadoop大数据技术基础与应用》

系列文章目录 作者&#xff1a;i阿极 作者简介&#xff1a;Python领域新星作者、多项比赛获奖者&#xff1a;博主个人首页 &#x1f60a;&#x1f60a;&#x1f60a;如果觉得文章不错或能帮助到你学习&#xff0c;可以点赞&#x1f44d;收藏&#x1f4c1;评论&#x1f4d2;关注…

病毒分析丨一款注入病毒

作者丨黑蛋 一、病毒简介 SHA256: de2a83f256ef821a5e9a806254bf77e4508eb5137c70ee55ec94695029f80e45 MD5: 6e4b0a001c493f0fcf8c5e9020958f38 SHA1: bea213f1c932455aee8ff6fde346b1d1960d57ff 云沙箱检测&#xff1a; 二、环境准备 系统 Win7x86Sp1 三、行为监控 打开…

基于GD32开发板的GPS定位模块的使用操作

基于上一章的介绍&#xff0c;本章将介绍如何基于gd32开发板使用gps定位模块。 一、官方代码分析 正点原子的官方测试例程&#xff0c;测试代码的逻辑还是比较简单的&#xff0c;主要就是先调用函数atk_mo1218_init()进行初始化&#xff0c;接着就调用 SkyTraq binary 协议的 A…

mac host学习

参考&#xff1a; SSH中known_hosts文件作用和常见问题及解决方法 https://blog.csdn.net/luduoyuan/article/details/130070120在 Mac 上更改 DNS 设置 https://support.apple.com/zh-cn/guide/mac-help/mh14127/mac mac中有时候你输入的域名&#xff0c;但会跳转到与期望ip不…

Arduino UNO用L9110 电机驱动模块驱动两个直流电机

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、简介二、工作原理三、使用前准备四、测试方法五、实验现象 一、简介 L9110电机驱动模块采用推挽式功率放大&#xff0c;设有固定安装孔&#xff0c;适合组装&a…

Linux常用命令——grub命令

在线Linux命令查询工具 grub 多重引导程序grub的命令行shell工具 补充说明 grub命令是多重引导程序grub的命令行shell工具。 语法 grub(选项)选项 --batch&#xff1a;打开批处理模式&#xff1b; --boot-drive<驱动器>&#xff1a;指定stage2的引导驱动器&#x…

霸榜第一框架:工业检测,基于差异和共性的半监督方法用于图像表面缺陷检测...

关注并星标 从此不迷路 计算机视觉研究院 公众号ID&#xff5c;ComputerVisionGzq 学习群&#xff5c;扫码在主页获取加入方式 论文地址&#xff1a;https://arxiv.org/ftp/arxiv/papers/2205/2205.00908.pdf 链接: https://pan.baidu.com/s/1ar2BN1p2jJ-cZx1J5dGRLg 密码: 2l…