Character Region Awareness for Text Detection论文学习

news2025/2/27 13:19:39

​1.首先将模型在Synth80k数据集上训练

Synth80k数据集是合成数据集,里面标注是使用单个字符的标注的,也就是这篇文章作者想要的标注的样子,但是大多数数据集是成堆标注的,也就是每行或者一堆字体被整体标注出来,作者想使用这部分数据集

2.对成行标注的数据集来说,先把成行的文字行切出来,然后用在Synth80k数据集上训练得到的模型推理得到Region score然后再用分水岭算法将单个字符的box给画出来,这样的话就得到了单个文字标注的数据,这部分标签被称为伪标签。

3.得到每个字符的box后,下一步就是使用这些字符框获得每个字符框对应的高斯图和两个字符之间间隙的高斯图,它们叫Region Score和Affiniy Score的GT

对于Region Score来说,只要根据字符框生成高斯图就行,这个高斯图就是Region Score的GT,如下图 细的 绿色 实线 箭头所示

对于Affiniy Score来说,对每个字符框画“对角线”,两个相邻的框四个三角形的中点为Affiniy框的四个顶点,这样就能得到Affiniy框,然后再根据Affiniy框的形状生成高斯热图,这个高斯热图就是Affiniy Score的GT,如图粗绿色实线和绿色虚线所示

​4.上面得到的Region Score和Affiniy Score的GT,实际上质量是比较低的,作者使用了一些方法来约束低质量的标注

判断伪标签质量的方法就是根据一行字符框的长度和每个字符框的长度来判断这个伪标签的质量到底怎么样

作者使用置信度来评估标签的质量

l(w):这一行字符的总长度,这个长度不是边界框的物理长度,我觉得应该是字符的个数

lc(w):这个是我们经过字符分割的过程后得到的长度,也就是得到的检测得到字符框个数

这样的话,当一行文本,我们知道这行文本里面有5个字符,然后经过分割过程,如果我们得到了4个字符框,也就是我们得到了4个字符那么这个置信度就是4/5

得到这个置信度之后就要用起来,在这个字符框内的像素置信度得分就是4/5不在的就是1

在计算损失的时候减少低置信度样本损失的权重

其中S∗r(p)和S∗a(p)分别表示GT Region Score和Affiniy Score的GT热图

这样计算之后低置信度的伪标签在损失计算中的权重就会降低,减少错误的伪标签对模型带来的坏处

5.ok了,现在我们就可以在真实数据集上愉快进行弱监督训练了

训练完的模型的推理输出结果就是一个字符一个字符的

可以根据自己需要去合成多个字符

具体的作者的方式如下:

  • 处理的方向是从左向右,黑色箭头代表处理方向
  • 蓝色线是垂直于处理方向的椭圆内的最长的线,也就是说他是和中心点相交且两端到达椭圆边界的线
  • 是用黄色线连接蓝色线的中心点
  • 将蓝色线旋转到椭圆中心线的位置也就是椭圆的最长的位置,用红色箭头表示,注意这里的红色箭头是没有到边界的,因为椭圆的中心线是最长的
  • 红色箭头的端点也就是绿色点就是文本多边形的顶点
  • 最边缘的两个红色线要扩展到高斯椭圆的边界处

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

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

相关文章

AI对齐研究方法:建立一个足够对齐的人工智能系统,可以帮助我们解决所有其他对齐问题。 AI安全

与人类价值观保持一致,并遵循人类的意图。 找到一个无限可扩展的解决方案可能非常困难。相反,我们的目标是一种更务实的方法:建立和调整一个系统,该系统可以比人类更快、更好地调整研究进展。 使通用人工智能(AGI&am…

2024年社会发展与城市规划国际会议(SDUP 2024)

2024年社会发展与城市规划国际会议(SDUP 2024) 2024 International Conference on Social Development and Urban Planning 【重要信息】 大会地点:杭州 大会官网:http://www.iacsdup.com 投稿邮箱:iacsdupsub-conf.co…

灾备建设中虚拟机细粒度恢复的含义及技术使用

灾备建设中为了考虑虚拟机恢复的效率与实际的用途,在恢复上出了普通的恢复虚拟机,也有其余的恢复功能,比如瞬时恢复,细粒度恢复等。这里谈的就是细粒度恢复。 首先细粒度恢复是什么,这个恢复可以恢复单个备份下来的文…

HCIA-Datacom H12-811 题库

LDP 邻居发现有不同的实现机制和规定,下面关于LDP 邻居发现的描述错误的是: A:LDP发现机制包括LDP基本发现机制和LDP扩展发现机制 B:LDP基本发现机制可以自动发现直连在同条链路上的LDP Peers C:LDP扩展发现机制够发现…

Golang:使用时会遇到的错误及解决方法详解

Go语言使用时常常会遇到的一些错误及解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下 1、go: go.mod file not found in current directory or any parent directory go mod init name 2、Failed to build the application: main.go:4:2:…

请求headers处理

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 有时在请求一个网页内容时,发现无论通过GET或者是POST以及其他请求方式,都会出现403错误。产生这种错误是由于该网页为了防止…

基于Pytorch框架的深度学习ConvNext神经网络宠物猫识别分类系统源码

第一步:准备数据 12种宠物猫类数据:self.class_indict ["阿比西尼猫", "豹猫", "伯曼猫", "孟买猫", "英国短毛猫", "埃及猫", "缅因猫", "波斯猫", "布偶猫&q…

ARM单片机使用CAN总线部署BootLoader

1.引言 1.1.单片机开发BootLoader意义 单片机开发BootLoader的原因主要与其在嵌入式系统中的关键作用有关。BootLoader是硬件启动的引导程序,它在操作系统内核或用户应用程序运行之前执行。以下是单片机开发BootLoader的主要原因: 初始化硬件设备&…

2024年春季学期《算法分析与设计》练习13

A:菱形图案 题目描述 KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的菱形图案。 输入 多组输入,一个整数(2~20)。 输出 针对每行输入,输出用“*”组成的菱形,…

Java 18新特性概览与解读

随着技术的不断进步,Java作为最流行的编程语言之一,也在持续地进行版本更新,为开发人员提供更强大、更高效的工具和特性。Java 18作为最新的稳定版本,引入了一系列引人注目的新特性和改进。以下是对Java 18中一些主要新特性的详细…

Petalinux由于网络原因产生的编译错误(3)-qemu-xilinx-system-native 失败

1 获取qemu-xilinx-system-native 失败 编译时遇到qemu-xilinx-system-native 包获取失败,如下图所示: 解决这种错误方法如下: 进入Petalinux 工程,编辑工程下的 project-spec/meta-user/conf/petalinuxbsp.conf 文件&#xff0…

什么是DMZ?路由器上如何使用DMZ?

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 DMZ 📒🚀 DMZ的应用场景💡 路由器设置DMZ🎈 注意事项 🎈⚓️ 相关链接 ⚓️📖 介绍 📖 在网络管理中,DMZ(Demilitarized Zone,隔离区)是一个特殊的网络区域,常用于将公共访问和内部网络隔离开来。DMZ功能允许…

关联规则延伸之协同过滤

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一、协同过滤1、含义2、策略 二、基于用户的协同过滤1、寻找相似偏好的用户2、欧式距离及系数3、皮尔逊系数4、其他系数5、算法步骤6、局限性 三、基于物品的协同过滤1、…

php实现一个简单的MySQL分页

一、案例演示: 二、php 代码 <?php $servername = "localhost"; // MySQL服务器名称或IP地址 $username = "root"; // MySQL用户名 $password = "123456"; // MySQL密码 $dbname = "test"; // 要连接的数据…

外盘黄金期货需要注意什么?

为大家整理了关于黄金做单的五大原则&#xff0c;相信对于新手投资者来说肯定会产生一定的帮助。  1、看多空&#xff1a;主要有两种方法&#xff0c;基本面判断和技术面判断&#xff0c;基本面判断&#xff0c;主要是借助基本信息面&#xff0c;如政策。供需&#xff0c;产量…

文字不换行了

单行文字不换行 添加... .line1Text {overflow: hidden;text-overflow: ellipsis;white-space: nowrap;cursor: pointer; } 双行文字换行添加... .line2Text {overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;text-overflow: e…

向量化在人工智能领域的深度实践:技术革新与效率提升

在人工智能&#xff08;AI&#xff09;的飞速发展中&#xff0c;向量化技术作为一种基础且关键的数据处理手段&#xff0c;正日益受到广泛关注。向量化是将文本、图像、声音等数据转换为数值向量的过程&#xff0c;这些向量能够表示原始数据的特征和语义信息&#xff0c;为深度…

【gtest】 C++ 的测试框架之使用 gtest 编写单元测试

目录 &#x1f30a;前言 &#x1f30a;使用 cmake 启动并运行 gtest &#x1f30d;1. 设置项目 &#x1f30d;2. 创建并运行二进制文件 &#x1f30a;1. gtest 入门 &#x1f30d;1.1 断言&#xff08;assertions&#xff09; &#x1f30d;1.2 简单测试 &#x1f30d;…

进程(Processes)

在 Elixir 中&#xff0c;所有代码都在进程内运行。进程彼此隔离&#xff0c;彼此并发运行并通过消息传递进行通信。进程不仅是 Elixir 中并发的基础&#xff0c;而且还提供了构建分布式和容错程序的方法。 Elixir 的进程不应与操作系统进程混淆。Elixir 中的进程在内存和 CPU…

如何使用CCS9.3打开CCS3.0工程

如何使用CCS9.3打开CCS3.0工程 点菜单栏上的project&#xff0c;选择Import Legacy CCSv3.3 Porjects…&#xff0c;弹出对话框&#xff0c;通过Browse…按钮导入一个3.3版本的工程项目&#xff1b; 选择.pjt文件&#xff0c;选择Copy projects into worlkspace 右击选择P…