基于深度学习的场景文本检测

CTPN

简介:
基于目标检测方法的文本检测模型,在Faster RCNN的基础上进行了改进,并结合双向LSTM增强了序列提取特征,通过anchor和gt的设计将文本检测任务转化为一连串小尺度文本框的检测。
解决问题:
文本长短不一,基于anchor的目标检测网络很难通过设置合适的anchors去适应不同的样本。
在这里插入图片描述
网络结构:
在这里插入图片描述

  1. 使用VGG提取网络特征获取大小为 N∗H∗W∗C 的特征图;
  2. nhwc, 提取33的框,n9chw->(nH)w9c
  3. 以 W为序列维度输入到一个双向的LSTM,学习每一行的序列特征;
  4. 送入RPN ,其中anchor宽度设置为16,高度为k个不同的值;
  5. NMS过滤;
  6. 文本框进行合并。(合并规则:水平距离小于50,文本框高的交并比大于0.7)。
    存在的问题:
    只能检测水平文本,无法检测带倾斜角度的文本。

EAST

简介:
基于像素回归的文本检测网络。
解决问题:
ctpn这类基于检测小文本框再合并的算法速度较慢,且无法检测倾斜文本。
网络结构:
[图片]

1 Unet提取图像特征,增强特征提取能力;
2 两个输出头用于预测,一个输出score map用于预测每个像素的得分值,一个输出box信息(中心点坐标、宽、高、旋转角度;box四点坐标);
3 逐行合并的nms增加合并效率。
存在的问题:
可以处理的文本实例的最大大小与网络的感受野成比例。这限制了网络预测甚至更长文本区域的能力;
无法检测弯曲文本。

PSENET

简介:
psenet作为一种基于分割的方法,能够对任意形状的文本进行定位。其次,该模型提出了一种渐进的尺度扩展算法,该算法可以成功地识别相邻文本实例。
解决问题:
能够对任意形状的文本进行定位;
基于内核的思想可更加精准的分离相邻文本实例。
网络结构:
[图片]

1 resnet+fpn提取特征;
2 输出7个渐进减少的内核图;
[图片]

3 通过广度优先搜索(BFS),从最小的内核图逐步扩充到最大预测图:
(1) 从具有最小尺度的核S 1 S_1S开始(在此步骤中可以区分实例,不同实例有不同的连通域);
(2)通过逐步在较大的核中加入更多的像素来扩展它们的区域;
(3)完成直到发现最大的核.
存在的问题:
基于分割的文本检测模型无法区分重叠的文本实例,文本框较多时后处理时长很慢。

DBNET

简介:
基于分割的文本检测方法,延续了psenet的内核思想,提出了可微分二值化模块。
解决问题:
将阈值二值化过程变得可微,这一小小改动不仅可以增加错误预测梯度,也可以联合优化各个分支,得到更好的语义概率图。
网络结构:
[图片]

1 resnet+fpn提取特征;
2 输出两个一个内核区域的概率图,和外核区域的阈值图;
3 通过阈值图与概率图的计算得出内核二值图。
[图片]

(1)内核外核构建图:
[图片]

[图片]

(2)本质就是带参数K的sigmod函数,通过参数K=50来模拟hard截断二值化函数。
[图片]

4 后处理直接对每个内核文本实例按比例进行外扩。
存在的问题:
基于分割的文本检测模型无法区分重叠的文本实例。

DBNET++

[图片]

添加了注意力机制模块,在空间维度学习不同尺度和不同空间位置的权重,达到 scale-robust 特征融合。
[图片]

近期新文章:
结合transformer,提出新的端到端文本检测识别网络/更精准的检测弯曲文本。
端到端文本识别:

TESTR:

[图片]

在DETR的基础上提出适合文本端到端识别的算法,两个decoder分别输出charactor和polygon。
Deepsolo:
[图片]

encoder输出Bezier曲线,decoder输出确切的曲线值。
弯曲文本检测(基于contour的文本检测):

DPtext_former:

[图片]

encode输出box,对文本框的点进行重采样,decoder输出polygon,解决旋转角度过大或反向文本的多边形。

MixNET:

[图片]

cnn输出polygon后,使用transformer得到更精准的polygon坐标。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

jenkins gradle 编译时jvm不足情况

gradle 编译时jvm不足情况 #开启线程守护,第一次编译时开线程,之后就不会再开了org.gradle.daemontrue#配置编译时的虚拟机大小org.gradle.jvmargs-Xmx2048m -XX:MaxPermSize512m -XX:HeapDumpOnOutOfMemoryError -Dfile.encodingUTF-8#开启并行编译&…

JL15-400/11过电流继电器 400A 一开一闭 380V 柜内安装JOSEF约瑟

系列型号 JL15-1.5/11电流继电器JL15-2.5/11电流继电器 JL15-5/11电流继电器JL15-10/11电流继电器 JL15-15/11电流继电器JL15-20/11电流继电器 JL15-30/11电流继电器JL15-40/11电流继电器 JL15-60/11电流继电器JL15-80/11电流继电器 JL15-100/11电流继电器JL15-150/11电流…

顺序表的动态分配基本操作

#include <stdio.h> #include <stdlib.h>// 顺序表存储空间动态分配 #define InitSize 10 // 顺序表初始长度 typedef int ElemType; // int类型重命名为ElemType&#xff0c;方便后续调整typedef struct { // 定义结构体ElemType *data; // 用静…

LeetCode 刷题 --- 快速幂

前言&#xff1a; 幂运算是一种常见的运算&#xff0c;求取a^n,最容易想到的方法便是通过循环逐个累乘&#xff0c;其复杂度为O(n)&#xff0c;这在很多时候是不够快的&#xff0c;所以我们需要一种算法来优化幂运算的过程。 快速幂&#xff0c;二进制取幂&#xff08;Binary…

Transformer的前世今生 day03(Word2Vec、如何使用在下游任务中)

前情回顾 由上一节&#xff0c;我们可以得到&#xff1a; 任何一个独热编码的词都可以通过Q矩阵得到一个词向量&#xff0c;而词向量有两个优点&#xff1a; 可以改变输入的维度&#xff08;原来是很大的独热编码&#xff0c;但是我们经过一个Q矩阵后&#xff0c;维度就可以控…

express+mysql+vue,从零搭建一个商城管理系统16--收货地址(全国省市县名称和code列表)

提示&#xff1a;学习express&#xff0c;搭建管理系统 文章目录 前言一、新建config/area.js二、新建models/address.js三、新建dao/address.js四、新建routes/address.js五、添加地址六、查询用户地址列表总结 前言 需求&#xff1a;主要学习express&#xff0c;所以先写serv…

ANOMALY TRANSFORMER: TIME SERIES ANOMALY DETECTION WITH ASSOCIATION DISCREPANCY

论文题目&#xff1a; ANOMALY TRANSFORMER: TIME SERIES ANOMALY DETECTION WITH ASSOCIATION DISCREPANCY 发表会议&#xff1a;ICLR 2022 论文地址&#xff1a;https://openreview.net/pdf?idLzQQ89U1qm_ 论文代码&#xff1a;https://github.com/thuml/Anomaly-Transforme…

七、Java中SpringBoot组件集成接入【Minio文件服务器】

七、Java中SpringBoot组件集成接入【Minio文件服务器】 1.Minio介绍2.搭建Minio服务2.1Windows部署2.2Linux部署2.3docker部署 3.Minio可视化操作4.SpringBoot接入Minio1.添加maven依赖2.yaml配置文件3.配置类4.工具类5.控制类 5.常见问题6.其他参考文章 1.Minio介绍 对象存储…

设计模式深度解析:适配器模式与桥接模式-灵活应对变化的两种设计策略大比拼

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 适配器模式与桥接模式-灵活应对变化的两种设计策略大比拼 探索设计模式的魅力&#xff1a;深入了…

Day16-【Java SE进阶】IO流(二):字符流、缓冲流、转换流、打印流、数据流、序列化流、IO框架

一. 字符流 字节流&#xff1a;适合复制文件等&#xff0c;不适合读写文本文件 字符流&#xff1a;适合读写文本文件内容 1. FileReader(文件字符输入流) 作用:以内存为基准&#xff0c;可以把文件中的数据以字符的形式读入到内存中去。读取单个字符&#xff0c;性能比较差&a…

【位运算】【 数学】【 哈希映射】2857. 统计距离为 k 的点对

本文涉及知识点 位运算 数学 哈希映射 LeetCode 2857. 统计距离为 k 的点对 给你一个 二维 整数数组 coordinates 和一个整数 k &#xff0c;其中 coordinates[i] [xi, yi] 是第 i 个点在二维平面里的坐标。 我们定义两个点 (x1, y1) 和 (x2, y2) 的 距离 为 (x1 XOR x2) …

PMP备考心得 | 策略与技巧大揭秘

1.理解考试大纲&#xff1a;首先&#xff0c;你需要熟悉PMP考试的内容和结构。PMI官网提供了详细的考试大纲&#xff0c;包括项目管理的五个过程组&#xff08;启动、规划、执行、监控、收尾&#xff09;和十个知识领域&#xff1b; 2.制定学习计划&#xff1a;根据个人的时间…

【C语言】基本语法知识C语言函数操作符详解

主页&#xff1a;醋溜马桶圈-CSDN博客 专栏&#xff1a;C语言_醋溜马桶圈的博客-CSDN博客 gitee&#xff1a;mnxcc (mnxcc) - Gitee.com 目录 1.基本语法 1.1 代码解释 1.1.1 main()主函数 1.1.2 int 1.1.3 { } 1.1.4 printf()库函数 1.1.5 stdio.h头文件 1.2 C语言的…

突破边界:Web3开启数字化社会的新纪元

引言 随着科技的不断进步和数字化社会的发展&#xff0c;Web3正逐渐成为了人们关注的焦点。作为新一代互联网的演进形态&#xff0c;Web3具有突破传统边界、实现去中心化的特点&#xff0c;被认为将开启数字化社会的新纪元。本文将深入探讨Web3的概念、特点、应用场景&#xf…

VueUse常见方法使用

npm i vueuse/core 1、useDebounceFn 节流防抖 import { useDebounceFn } from vueuse/core<button type"button" class"search" click"query">查询</button>// 查询 获取table数据const query2 async () > {try {const res …

MySQL 多表查询强化练习

环境准备 create table dept(id int PRIMARY KEY,dname VARCHAR(50),loc VARCHAR(50) ); insert into dept values (10,研发部,北京), (20,学工部, 上海), (30,销售部,广州 ), (40,财务部,深圳);create table job(id int PRIMARY KEY,jname VARCHAR(20),descripition VARCHAR(…

latex如何对一段文本进行加粗

在LaTeX中&#xff0c;你可以使用\textbf{}命令来对一段文本进行加粗。例如&#xff1a; \textbf{这是要加粗的文本}这将会把"这是要加粗的文本"这段文字显示为加粗。 如果你想要对整段文本进行加粗&#xff0c;你可以将整段文本都放在\textbf{}命令中&#xff0c;…

jsp学习

1.新建文件&#xff0c;创建web动态项目 2.项目点击next两下&#xff0c;点击勾选gentear&#xff0c;点击finish 3.文件成功后是有jsp文件 4.在webapp新建jsp文件 5. 使用模板html5建立文件 <% page language"java" contentType"text/html; charsetUTF-8&qu…

西瓜书机器学习AUC与ℓ-rank(loss)的联系理解以及证明(通俗易懂)

前言 在学习到这部分时&#xff0c;对 ℓ-rank 以及AUC的关系难以理解透彻&#xff0c;在网上看到其他博主也并未弄明白&#xff0c;大家大多写自己的理解&#xff0c;我希望您在看完这篇文章时能够深刻理解这二者的关系&#xff0c;如果我的理解有误&#xff0c;希望您在评论…

数据结构 之 二叉树

&#x1f389;欢迎大家观看AUGENSTERN_dc的文章(o゜▽゜)o☆✨✨ &#x1f389;感谢各位读者在百忙之中抽出时间来垂阅我的文章&#xff0c;我会尽我所能向的大家分享我的知识和经验&#x1f4d6; &#x1f389;希望我们在一篇篇的文章中能够共同进步&#xff01;&#xff01;&…