论文解读 | [CVPR2020] ContourNet:向精确的任意形状场景文本检测迈出进一步

news2024/12/26 23:39:47

目录

1 研究背景和目的

1.1 主要贡献:

1.2 两个挑战:

2 ContourNet

3 方法论

3.1 Adaptive-RPN

3.2 LOTM 

3.3 点重定位算法

4 实验和结果


论文地址:ContourNet: Taking a Further Step toward Accurate Arbitrary-shaped Scene Text Detection

1 研究背景和目的

场景文本检测是一项在复杂背景中检测文本区域并用边界框标记它们的任务。在这篇文章中,作者提出了一种不区分尺度的自适应区域建议网络(AdaptiveRPN),通过仅关注预测和地面真实边界框之间的联合交集(IoU)值来生成文本建议。一个新的局部正交纹理感知模块(LOTM)在两个正交方向上对提案特征的局部纹理信息进行建模,并用一组轮廓点表示文本区域。

1.1 主要贡献:

1、我们提出了一种新的FP抑制方法,通过在两个正交方向上对局部纹理信息进行建模,这是一种更直接的方法,与以前的方法相比,计算量更少。

2、所提出的自适应RPN有效地处理了大规模方差问题,并实现了文本区域的更精细定位,这可以很容易地嵌入到现有方法中。

1.2 两个挑战:

第一个挑战是误报(FP)

第二个挑战是场景文本的大规模变化

2 ContourNet

 ContourNet 主要由三部分组成:自适应区域建议网络(Adaptive-RPN)、局部正交纹理感知模块(LOTM) 和点重定位算法。

自适应区域建议网络(Adaptive-RPN):首先通过自动学习文本区域上的一组边界点来生成文本建议,这些边界点指示文本实例的空间扩展。Adaptive-RPN 的训练对象由预测和图像真实边界框之间的 loU 值驱动。与传统的 RPN 方法相比,Adaptive-RPN 对场景文本的大规模变换不敏感,并且可以自动考虑文本区域的形状信息,以实现更精细的定位。

局部正交纹理感知模块(LOTM):为了捕获文本轮廓区域中的不同纹理特征。LOTM 以两个正交方向上(水平/垂直)对建议特征的局部纹理信息进行建模,并用两个不同热力图中的轮廓点表示文本区域,其中任一热力图仅对特定方向上的纹理特征做出响应。

点重定位算法:通过同时考虑两个正交方向的响应,有效地过滤具有强单向或弱正交激活的预测。以这种方式,文本区域被检测并用一组高质量的轮廓点表示。

3 方法论

3.1 Adaptive-RPN

图2 红点是提案边界框预定义的一组点,绿点是细化点(最后真实边界框的点),皇上虚线表示回归的偏移量(红点-->绿点)

Adaptive-RPN 只关注预测边界框和真实边界框之间的 loU 值,这是一种比例不变的度量,并使用一组预定义点 P={(x_{l}, y_{l})}^{n}_{l=1}(1个中心点,n-1 个边界点)来代替建议表示的4维向量。并通过公式1细化这一组预定义点(红点)为真实边界点(绿点)

可以细化表示为:

 其中{\Delta x_{l}, \Delta y_{l}}^{n}_{l=1}是到预定义点的预测偏移量,w_{c} 和 h_{c} 是当前边界框建议的宽度和高度。

 如图2所示,预测的偏移量用于处理当前提案边界框中n个预定义点的局部细化。然后,我们使用下面方程的max-min函数将这些细化点与4个极值点绑定,以表示预测的边界框(Ground-truth bounding box)。其中,中心点 ({x}', {y}') 用于规范化边界框(例如,如果x_{tl} > {x}',则 x_{tl} = {x}'

3.2 LOTM 

图3、LOTM(左),点重定位算法(右) 

如图3所示,LOTM 包含两个分支(水平/垂直) 。在水平方向上,在特征图上滑动大小为 1×k 的卷积核,来模拟水平方向上的局部纹理信息,它只关注 k 范围区域中的纹理特征。而垂直方向上通过大小为 k×1 的卷积核来模拟垂直方向上的纹理特征。k 是超参数,用于控制纹理特征感受野的大小。最后,实施两个 Sigmoid 层,将两个方向上的热图标准化为[0, 1]。这样就可以在两个正交方向上检测文本区域,并在两个不同的热图中用轮廓点表示。

3.3 点重定位算法

Point Re-scoring Algorithm(点重定位算法)用来进一步处理来自 LOTM 的两个热图。如下算法所示,首先通过非最大抑制(NMS)处理不同热图中的点,以实现紧密表示。然后抑制具有强单向或弱正交响应的预测,最后选择两个热图中具有不同响应的点作为候选。最后,文本区域就可以用这些高质量轮廓点组成的边界框表示。

NMS_{H} 和 NMS_{V}  分别表示水平和垂直方向的NMS操作。 θ = 0.5,以更好的权衡召回率和精度。

4 实验和结果

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

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

相关文章

第八章 - 数据分组( group by , having , select语句顺序)

第八章 - 数据分组 group by数据分组过滤分组 having分组排序groub by语句的一些规定select语句顺序数据分组 在使用group by进行分组时,一般都会配合聚合函数一起使用,实现统计数据的功能。比如下面例子,需要按性别计算人数。按性别进行分组…

内嵌于球的等边三棱柱

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 做一个网络让输入只有3个节点,每个训练集里有两张图片,让B的训练集全为0,排列组合A,观察迭代次数平均值的变化。共完成了64组,但只有12组不同的迭代次数。 差值结构 A-B 迭代次…

【银河麒麟V10操作系统】修改屏幕分辨率的方法

文章目录前言系统概述方法1:使用命令行修改方法2:写文件修改方法3:界面端修改的方法前言 本文记录了银河麒麟V10系统修改分辨率的方法。 使用命令行修改写文件修改界面端修改的方法 系统概述 方法1:使用命令行修改 打开终端&am…

零基础学软件测试可行么

当然是可行的,软件测试是一门对于零基础小白非常友好的一门语言~不少小伙伴在选择IT行业的时候都会从软件测试入手。在开始学习之前,首先需要了解软件测试到底是什么,包括哪些知识点,最后的才是找一个靠谱的学习路线去学习。 其实…

用Python实现一个电影订票系统

一、效果展示通过Python实现一个电影订票系统,效果如下所示:二、整体结构图三、代码分解3.1 infos.py一部电影的详细信息适合用 字典 结构来存储,我们可以给字典里添加多个键值对来保存电影的名称、座位表和宣传时用的字符画,比如…

学自动化测试可以用这几个练手项目

练手项目的业务逻辑比较简单,只适合练手,不能代替真实项目。 学习自动化测试最难的是没有合适的项目练习。 测试本身既要讲究科学,又有艺术成分,单单学几个 api 的调用很难应付工作中具体的问题。 你得知道什么场景下需要添加显…

Webpack(应用二:HtmlWebpackPlugin)

上一文章介绍了Webpack的基本使用。 这章介绍webpack的HtmlWebpackPlugin,也就是上一章节遗留每次打包后,html都得重新链接打包地址名称,现在通过HtmlWebpackPlugin来实现一起打包。 提示:没有学习上一章的小伙伴,可以…

ZenBuster:一款功能强大的多线程跨平台URL枚举工具

关于ZenBuster ZenBuster是一款功能强大的多线程跨平台URL枚举工具,该工具基于Python开发,同时还具备暴力破解功能。 该工具适用于安全专业人员,可以在渗透测试或CTF比赛中为广大研究人员提供帮助,并收集和目标相关的各种信息。…

全网多种方法分析解决HTTP Status 404资源未找到的错误,TCP的3次握手,dns域名解析,发起http请求以及cookie和session的区别

文章目录1. 文章引言2. 简述URL3. http完整请求3.1 DNS域名解析3.2 TCP的3次握手3.3 发起http请求3.4 浏览器解析html代码3.5 浏览器对页面进行渲染呈现给用户4. 解决404错误的方法5. 补充知识点5.1 cookie和session的区别5.2 ChatGPT的介绍1. 文章引言 正赶上最近ChatGPT很火…

将springboot项目生成可依赖的jar,并引入到项目中

1、将springboot项目生成可依赖的jar包的方法 SpringBoot项目默认打包的是可运行jar包,也可以打包成不可运行的jar包。 能打成可运行的jar包是因为,Spring Boot 项目引入了 spring-boot-maven-plugin 依赖包。 spring-boot-maven-plugin具有repackage …

【自学Linux】 Linux文件目录结构

Linux文件目录结构 Linux文件目录结构教程 在 Linux 中,有一个很经典的说法,叫做一切皆文件,因此,我们在系统学习 Linux 之前,首先要了解 Linux 的文件目录结构。Linux 主要的目录有三大类,即根目录(/)&a…

火山引擎 DataTester:A/B 测试,让企业摆脱广告投放“乱烧钱”

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 在广告投放的场景下,一线广告优化师通常会创建多个计划,去测试不同的广告素材效果。这套方法看似科学,实际上却存在诸多问题&…

NJ/NX将数据写入到SD中,保存为CSV文件格式

NJ/NX将数据写入到SD中,保存为CSV文件格式 实验时间:2022.10.31 实验人员:钱少青 实验器材:NJ501-1300(Ver:1.12),HMC-SD291(2G),SysmacStudio(ver:1.52) 实验目的:将Byte、Int、Real、Stri…

3年功能3年自动化,从8k到23k的学习过程

简单的先说一下,坐标杭州,14届本科毕业,算上年前在阿里巴巴的面试,一共有面试了有6家公司(因为不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少)其中成功的有4家&…

ICLR 2022—你不应该错过的 10 篇论文(下)

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 ICLR 2023已经放榜,但是今天我们先来回顾一下去年的ICLR 2022! ICLR 2022将于2022年 4 月 25 日星期一至 4 月 29 日星期五在线举行(连续第三年!&#x…

Java中ThreadLocal类详解

ThreadLocal从名字上我们看出,它叫做本地线程变量,每个线程都有各自的的变量,而不再是我们之前的两个线程共用同一个变量;以这个类创建的变量,在多个线程都用到这个变量时,可以为每一个线程创建一个变量副本…

sql server执行md5加密的时候,字符串前带N和不带N的结果是不一样的

最近因为项目的需要,报表中需要对数据进行MD5加密,结果报表系统得出来的sql语句,字符串前都自动带了N,执行时,发现得到的结果跟在数据库中执行的sql(字符串不带N)得的值不一样,最后自…

RocketMQ高性能原理分析

目录一、读队列与写队列1.概念介绍2.读写队列个数关系分析二、消息持久化1.持久化文件介绍2.持久化结构介绍:三、过期文件删除1.如何判断文件过期2.什么时候删除过期文件四、高效文件写1.零拷贝技术加速文件读写2.文件顺序写3.刷盘机制五、 消息主从复制六、负载均衡…

微服务项目【消息推送(RabbitMQ)】

创建消费者 第1步&#xff1a;基于Spring Initialzr方式创建zmall-rabbitmq消费者模块 第2步&#xff1a;在公共模块中添加rabbitmq相关依赖 <!--rabbitmq--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-bo…

有趣的HTML实例(十三) 咖啡选择(css+js)

一个人追求目标的路途是孤单的&#xff0c;一个人独品辛酸的时候是寂寥的&#xff0c;一个人马不停蹄的追赶着&#xff0c;狂奔着&#xff0c;相信前方是一片光明&#xff0c;我从不放弃希望&#xff0c;就像我对生活的信念&#xff0c;没有人可以动摇。 ——《北京青年》 目录…