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

论文解析——Character Region Awareness for Text Detection,字符级文本检测CRAFT算法

这篇论文来自CVPR2019,paper地址:Character Region Awareness for Text Detection。
代码:CRAFT-pytorch。

这篇论文主要解决之前的文本检测是基于word-level的检测框,不能识别任意形状的文本的问题。与之前的方法不同,此方法的主要特点是针对文本的检测是字符级的,同时还会学习字符间的affinity(字符间的亲和性,表示字符之间的关系,这种亲和性帮助算法将相邻的字符组合成单词或文本行)。CRAFT 是一种基于字符区域感知的文本检测方法,它不仅关注单个字符的检测,还关注字符之间的关系。这样做的好处在于:使用小感受野也能预测大文本和长文本,只需要关注字符级别的内容而不需要关注整个文本实例。

基于character-level(字符区域)检测有两个难点:

  1. 如何确定哪些字符是连接在一起组成文字的,而哪些字符是分离的;
  2. 数据标注问题,因为当前的数据集都是文字级别(word-level)的标注。

paper主要围绕解决这两个问题展开。

1. 确定哪些字符是连接的

字符检测:本文使用的网络使用了目前关键点检测中常用的网络结构,即采用预测热图的方式来进行检测关键点,那么在这里我们就可以把每个字符当做一个关键点,所以每个字符其实对应着一个热点,只要预测每个文字所对应的热点那么就可检测出每个字符。

字符连接的识别:字符的检测方法有了,要怎么知道哪些字符是组成一个文字的呢?作者也使用热图的方式来表示文字的连接,如果两个字符是相连接的,那么这两个字符之间就有一个热点,利用热点图来确定两个字符是不是一组的。

热点就代表着一个响应,如果图片中的某个地方有热点响应,那么表示这个地方存在我们需要的信息,热点的值的大小就代表着置信度,如果置信度越高,那么越确定。

2. 数据集构造

CRAFT之前,现有的文本数据库,其标注方式基本是基于文本行的(word-level),所以文中提出了利用合成数据加从真实数据中得到chatacter-level的估计GT的弱监督方法。

我们看一下网络的构造。

特征提取的主干网络采用的VGG-16以及batch normalization,解码器部分采用了U-net的方法,采用自顶向下的特征聚合方式,最终输出两个通道:region score map和affinity score map,分别为单字符中心区域的概率和相邻字符区域中心的概率,得到原图大小1/2的预测图。

我们再来看一下数据集的构造。首先是合成数据集的处理。

合成的数据集是通过字符的bounding box和affinity的box来表示的。但是CRAFT是使用热度图来表示信息的。使用热度图来表示信息有如下的好处:对于GT区域不是能够严格框住的场景,使用高斯热度图会更加灵活一些。

从bounding box到高斯热度图的处理过程中,由于我们拍摄的物体,图像的边界框会由于相机的透视投影关系而发生扭曲,因此首先要对其进行矫正。矫正的方法就是如图先使用一个二维各向同性高斯图,然后计算高斯映射区域与各字符框之间的透视变换,最后,利用上一步计算的透视变换,将高斯图变形到字符框所在的区域。这样,即使字符框因为透视效果而扭曲,生成的高斯热度图也能准确地映射到字符的实际区域上。这个变形的高斯图就作为 region score 的真实标注。

上面说的是数据处理中的一部分,合成数据到character-level高斯热度图gt的过程。数据处理的另一部分是使用真实数据集。

请添加图片描述

上图是整个工程的训练流程。其中包括了真实数据集到character-level的高斯热力度的过程。

真实数据集通常都是word-level的标注,就是bounding box都是标注在一整个单词上面的,没有针对一个单词里面每个字符进行标注。因此作者使用弱监督训练的方法,从word-level的真实数据集生成chatacter-level的标注。

模型首先使用前面介绍的合成数据集进行训练,这时候得到一个model,已经具备初步的character-level的识别能力。然后使用这个interim model去预测从word-level的真实数据集到character-level的字符区域。

但是这时候模型只在合成数据集上训练过,因此其预测真实数据集的能力还不够好,其预测的character-level的字符区域有可能不准确,因此作者加上了一个置信度map去评测网络预测真实数据集的结果的可信度。置信度的计算是用网络预测出来的字符个数除以gt的字符个数。(在大多数数据集中,提供了单词的转录,单词的转录信息中包含了字符的个数)。

请添加图片描述

上图表达的是从word-level生成character-level字符框的全过程。首先把字符区域从图像中抠出来,然后使用合成数据集训练的模型去预测字符区域的score,然后使用分水岭算法去分割字符区域,然后把字符区域再转换回原图上。

在CRAFT(Character Region Awareness for Text Detection)算法中,使用高斯热度图(Gaussian heatmap)和分水岭算法(Watershed algorithm)来生成字符级别的字符框(character-level bounding boxes),而不是直接从高斯热度图生成字符框,主要有以下几个原因:

  1. 高斯热度图的连续性:高斯热度图提供了一个连续的概率分布,表示字符中心的概率密度。这种连续性使得热度图在表示精确的字符边界时不够明确,因此需要进一步的处理来确定字符的实际边界。

  2. 字符区域的分割:分水岭算法是一种有效的图像分割技术,可以将连续的区域分割成独立的部分。在CRAFT中,分水岭算法用于将高斯热度图中的连续文本区域分割成单独的字符区域,从而生成更精确的字符框。

  3. 处理复杂形状:文本在自然场景中可能出现各种形状和方向,直接从高斯热度图生成字符框可能难以适应这些复杂形状。分水岭算法能够更好地处理这些不规则形状,生成更准确的字符框。

  4. 弱监督学习:CRAFT中使用弱监督学习方法来生成字符级别的标注。分水岭算法生成的字符框可以作为弱标注信息,用于训练和优化模型,尤其是在真实数据集中缺乏精确的字符级标注时。

  5. 提高鲁棒性:分水岭算法能够处理文本区域中的噪声和不连续性,提高生成字符框的鲁棒性。这对于提高文本检测算法在复杂场景中的性能至关重要。

  6. 利用现有标注:在一些数据集中,可能只有单词级别的标注而没有字符级别的标注。通过使用分水岭算法,可以从这些单词级别的标注中生成字符级别的标注,从而扩展数据集的可用性。

  7. 生成高质量的训练数据:生成高质量的训练数据对于训练深度学习模型至关重要。分水岭算法可以帮助生成更准确和一致的字符框,从而提高模型的训练效果。

总之,CRAFT算法中结合使用高斯热度图和分水岭算法,是为了更好地处理文本检测中的复杂性和不确定性,生成更精确和鲁棒的字符框,从而提高文本检测的性能。这种方法在处理不规则文本和缺乏精确标注的数据集时尤其有效。

通过训练过程的图示,在使用弱监督时,由于需要使用估计的GT,如果估计的GT字符的区域不准确,会导致模型的输出有模糊。所以在训练中,需要对估计的GT进行质量评估。

作者使用下面的置信度分数来作为loss对不同质量的估计GT采取不同的权重。

其中,w是训练集中的一个word-level的sample,R(w)是bounding box的区域,l(w)是单词的长度,lc(w)是估计GT的字符长度。如果真实的字符长度与估计的相同,那么Sconf(w)就是1。

完整的loss计算公式为上面的公式。其中Sc§的计算公式如下,只有在使用word-level的真实数据集训练时,才会让Sc§参与权重计算。当使用合成数据集时,由于可以获得准确的GT,所以Sc§一直为1。

Sr§和Sa§分别代表估计GT的region score和affinity map。Sr§和Sa§是模型预测的region score和affinity score。


从客观指标上看,CRAFT算法在文本是规则四边形的数据集和不规则的弯曲形状的数据集上测试,都得到了SOTA的结果。

请添加图片描述

从主观效果上,也是很完美的结果。

相关文章:

论文解析——Character Region Awareness for Text Detection,字符级文本检测CRAFT算法

这篇论文来自CVPR2019,paper地址:Character Region Awareness for Text Detection。 代码:CRAFT-pytorch。 这篇论文主要解决之前的文本检测是基于word-level的检测框,不能识别任意形状的文本的问题。与之前的方法不同&#xff0…...

基于飞腾平台的Kafka移植与安装

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适…...

【Python数据结构与算法】递归----算24

题目:算24 描述 给出4个小于10个正整数,你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式。现在的问题是,是否存在一种方式使得得到的表达式的结果等于24。 这里加减乘除以及括号的运算结果和运算的优先级跟我们平常的定…...

TOSHIBA东芝代理商--芯智雲城,提供订货、报价、选型等服务!

关于东芝 东芝创立于1875年7月,是日本大型半导体制造商,全球知名的综合机电制造商和解决方案提供者,世界大型综合电子电器企业集团。东芝集团原名东京芝浦电气株式会社,在1939年东京电器与芝浦制作所正式合并成为现在的东芝&…...

sdwan

分支互联网络解决方案 - 华为企业业务 分支互联网络解决方案 随着5G、AI、物联网等新兴技术与云紧密结合,企业业务智能化和云化加速。 企业分支WAN流量激增,传统以MPLS专线为主的广域互联网络难以支撑业务发展。SD-WAN成为应对云时代的必然选择。 SD…...

Linux: network: 建立socket以及设置nonblock/opt所需的时间

最近在扩大socket数量的时候发现程序在完成所有的socket创建设置的时间不短。单线程下。 创建socket的步骤是,(调用glibc/system call的接口): socket bind fcntl (sock, F_SETFL, flags); setsockopt 通过测试发现这几个步骤前后…...

git使用及代码规范

参考链接 git flow 简介代码审核的典型问题gitlab工作流...

职业教育大数据实验实训室建设应用案例

大数据作为一种重要的信息技术,对各行各业产生了深远的影响。职业教育作为培养应用型人才的摇篮,建设大数据实验实训室,对于提高学生的数据分析能力和解决实际问题的能力具有重要意义。唯众作为一家专注于教育技术领域的企业,凭借…...

【Academy】反序列化漏洞Insecure deserialization

反序列化漏洞Insecure deserialization 什么是序列化?序列化与反序列化什么是不安全的反序列化?不安全的反序列化漏洞是如何产生的?不安全的反序列化有什么影响?识别不安全的反序列化漏洞PHP序列化格式Java序列化格式 利用不安全的…...

【轨物推荐】康波、世界体系与创新范式:中国如何引爆新一轮产业革命

原创 邵宇、陈达飞 新财富 2019年12月31日 22:13 中美关系近两年备受关注,在诸多方面各方都已经形成了共识,但竞争博弈的结局富有争议性。当靠事物太近的时候,反而很难看清楚其面貌,使用康德拉季耶夫周期(简称“康波”…...

[HCTF 2018]admin1

打开题目 尝试登陆 admin,123,直接试出来了 有投机取巧的成分,到github查看源码,也能找到用户名密码...

【Qwen-Audio部署实战】Qwen-Audio-Chat模型之对话机器人部署测试

系列篇章💥 No.文章1【Qwen部署实战】探索Qwen-7B-Chat:阿里云大型语言模型的对话实践2【Qwen2部署实战】Qwen2初体验:用Transformers打造智能聊天机器人3【Qwen2部署实战】探索Qwen2-7B:通过FastApi框架实现API的部署与调用4【Q…...

第一百八十五节 Java XML教程 - Java DOM简介

Java XML教程 - Java DOM简介 DOM是标准的树结构,其中每个节点包含来自XML结构的一个组件。 XML文档中两种最常见的节点类型是元素节点和文本节点。 使用Java DOM API,我们可以创建节点,删除节点,更改其内容,并遍历节…...

一款功能强大且免费的图片查看和管理工具

XnView MP是一款功能强大且免费的图片查看和管理工具,支持多种平台(Windows、Mac和Linux),并基于相同的源代码实现统一的用户界面和体验。它不仅能够查看各种图片格式,还提供了丰富的编辑和管理功能。 图片查看与浏览…...

动手学强化学习 第 11 章 TRPO 算法(TRPOContinuous) 训练代码

基于 Hands-on-RL/第11章-TRPO算法.ipynb at main boyu-ai/Hands-on-RL GitHub 理论 TRPO 算法 修改了警告和报错 运行环境 Debian GNU/Linux 12 Python 3.9.19 torch 2.0.1 gym 0.26.2 运行代码 TRPOContinuous.py #!/usr/bin/env pythonimport torch import numpy a…...

数量关系模块

三年后指的不是现在 选A注意单位 注意单位换算 A 正方形减去扇形 256-X5y 那么小李拿的一定是末尾是1或者是6,所以小李拿的是26,那么y46,那么小王或者小周拿的是92,所以选择三个数之和等于92的,所以选择D 分数 百分数 …...

滑模面、趋近律设计过程详解(滑模控制)

目录 1. 确定系统的状态变量和目标2. 定义滑模面3. 选择滑模面的参数4. 设计控制律5. 验证滑模面设计6. 总结 设计滑模面(Sliding Surface)是滑模控制(Sliding Mode Control,SMC)中的关键步骤。滑模控制是一种鲁棒控制…...

SQL Server 端口配置

目录 默认端口 更改端口 示例:更改 TCP 端口 示例:验证端口设置 远程连接测试 示例:使用 telnet 测试连接 配置防火墙 示例:Windows 防火墙设置 远程连接测试 示例:使用 telnet 测试连接 默认端口 TCP/IP: …...

同一窗口还是新窗口打开链接更利于SEO优化

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…...

kafka 安装

docker安装kafka(KRaft 模式) KRaft模式不再对Zookeeper依赖。 docker run -d --name kafka-kraft \-p 9092:9092 -p 9093:9093 \-e KAFKA_PROCESS_ROLESbroker,controller \-e KAFKA_NODE_ID1 \-e KAFKA_CONTROLLER_QUORUM_VOTERS1127.0.0.1:9093 \-e KAFKA_LISTENERSPLAINTEX…...

DIY电源改造必备:TL594与SG3524 PWM控制器实战对比(附电路图)

DIY电源改造实战:TL594与SG3524 PWM控制器深度对比与电路设计指南 1. 从零认识PWM控制器的核心价值 在电子爱好者的工作台上,电源改造项目总是充满魅力与挑战。无论是将旧电脑电源改造成可调实验室电源,还是为自制音响系统设计高效供电模块&a…...

OpenClaw备份方案:GLM-4.7-Flash自动化任务容灾保护

OpenClaw备份方案:GLM-4.7-Flash自动化任务容灾保护 1. 为什么需要备份OpenClaw自动化任务 去年冬天,我的硬盘突然崩溃,导致辛苦配置的OpenClaw自动化任务全部丢失。那一刻我才意识到,当AI助手成为日常工作的"数字员工&quo…...

OpenClaw多模态探索:Qwen3-32B+RTX4090D镜像截图转报告实践

OpenClaw多模态探索:Qwen3-32BRTX4090D镜像截图转报告实践 1. 为什么选择这个技术组合 上周团队头脑风暴时,我遇到了一个典型痛点:会议室白板上写满了讨论要点,但拍照后整理成电子版纪要需要手动誊写半小时。作为技术负责人&…...

translategemma-27b-it入门必看:Gemma3轻量化设计如何平衡精度与推理速度

translategemma-27b-it入门必看:Gemma3轻量化设计如何平衡精度与推理速度 本文深度解析基于Gemma 3构建的TranslateGemma-27B-IT模型,通过实际部署演示展示其如何在保持翻译精度的同时实现高效推理,为开发者提供完整的入门指南。 1. 认识Tran…...

RK3576/RK3588 Yolo11 目标检测 Demo

前言 以前的大作业,根据rknn_model_zoo和easy eai示例代码修改(缝合),仅供参考 后来我试着模块化一些,方便看,但因为核心代码都是直接用的示例代码,所以有些模块还是耦合(composit…...

OpenClaw语音控制扩展:Qwen3.5-4B-Claude对接Whisper实现声控自动化

OpenClaw语音控制扩展:Qwen3.5-4B-Claude对接Whisper实现声控自动化 1. 为什么需要语音控制自动化 去年冬天的一个深夜,我在赶制项目文档时突发奇想:如果能让AI听懂我的语音指令直接操作电脑,是不是连键盘都不用碰了&#xff1f…...

白城腾讯广告服务商

在白城,有不少企业想借助腾讯广告拓展业务,这就离不开靠谱的腾讯广告服务商。今天就和大家聊聊白城腾讯广告服务商的那些事儿,长春中网互联技术在这一领域表现就相当不错。白城腾讯广告服务商现状行业报告显示,近几年白城地区对腾…...

3月17枚举

package com.fangfa.day05.Enum;public class EnurmerDemo1 {public static void main(String[] args) {//为什么其他类里可以类名.对象名 因为这个对象名被static修饰了//若不修饰不行System.out.println(Season.SPRING);} } class Season{/*** Description* author Mao Ree…...

流注放电,COMSOL放电仿真,等离子体仿真,棒板电极,空气流注,流注放电,需要拿去参考

流注放电,COMSOL放电仿真,等离子体仿真,棒板电极,空气流注,流注放电,需要拿去参考。流注放电这玩意儿在高压设备里常见得跟小区门口的便利店似的。实验室里整了个棒板电极结构,空气里突然窜出条…...

Qwen3.5-4B-Claude-Opus保姆级教程:Web界面响应延迟归因与优化路径

Qwen3.5-4B-Claude-Opus保姆级教程:Web界面响应延迟归因与优化路径 1. 模型与部署环境概览 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF是基于Qwen3.5-4B的推理蒸馏模型,特别强化了结构化分析、分步骤回答以及代码与逻辑类问题的处理能力。该…...