论文目录

  • 论文背景
  • 发展现状与趋势
  • 研究方法
    • 模型架构
    • ground truth(GT)生成
      • 合成数据集GT生成
      • 真实数据集GT生成——弱监督学习
      • 整体训练流程
    • 损失函数
    • 后处理——字符级边框变为单词级边框
  • 实验结果
  • 方法优缺点

论文背景

  • 传统的目标检测是使用规则的边框表示目标的位置,但这在自然场景下的文本检测,会面临边框无法完全覆盖文本,或文本倾斜、弯曲、大小不一等现象。
  • 大多数现有的文本数据集都为单词级别的注释,并无单个字符级别注释,获取字符级别的注释成本过高。
    作者基于这两点出发,设计了CRAFT模型,利用弱监督学习将单词级数据标注为字符集数据,再将字符连接作为一个文本,实现了对倾斜弯曲文本的检测。

发展现状与趋势

  1. 基于回归的文本检测器
  • TextBoxes:修改默认边框长宽比以适应文本形状;卷积内核大小从3x3修改为1x5,使其适应大纵横比文本,避免正方形感受野带来的噪声信号。
  • DMPNet:使用四边形滑动窗口对文本定位。
  • RSDD:利用旋转不变形特征来进行检测。
  1. 基于分割的文本检测器
  • FCN、Holistic-prediction、PixelLink:使用实例分割来估计单词边界区域,用以检测文本。
  • SSTD:通过使用注意机制通过减少特征级别的背景干扰来增强文本相关区域。
  • TextSnake :采用弯曲的凸多边形框出内容并复原为矩形。
  1. 端到端的文本检测器
  • FOTS 和EAA :结合了流行的检测和识别方法,并以端到端的方式对它们进行训练,通过利用识别结果来提高检测精度。
  • Mask TextSpotter :利用其统一模型将识别任务视为语义分割问题。
  1. 字符级别的文本检测器
  • MSER:提取的文本块候选的字符级检测器。MSER识别单个字符,限制了它在某些情况下的检测鲁棒性,例如低对比度,曲率和光反射的场景。
  • Seglink:检测小文字块而不是明确的字符级预测,然后将小文字块连接成单词。

研究方法

模型架构

  • 本文灵感来自于WordSup模型的弱监督训练框架,可以在只有文本行和单词级标注的数据集上训练出字符级的检测模型,用以生成伪ground truth(GT)。
  • 网络结构采用VGG16下采样提取深层次语义特征,并且用类似U-Net上采样和浅层特征进行特征拼接的模式,让模型输出两个通道特征图(热力图)作为区域分数(region score)和亲和力分数(affinity score)
  • 使用热力图生成GT,利用后处理方法生成单词级文本框

    左边模型采用VGG16下采样,输出通道为512。倒数两层通道数进行concat拼接后通道数变为1024进行右边模型的输入。通过UpConvBlock输出通道数为256,再经过双线性插值上采样两倍,通道数变为512与左侧VGG16倒数第三层进行拼接。
    但是有一点疑问,拼接后通道数应该为1024,但是代码中此时通道数为512。因此不太理解这里的通道数是怎样变换的,代码中也没有多余的步骤,希望有充分理解该模型结构的朋友可以帮忙解惑。

ground truth(GT)生成

GT的生成分为合成数据集和真实数据集。合成数据集为作者已经标注好的字符级数据集,真实数据集仅有单词级标注和单词长度。

合成数据集GT生成


字符级的框是已经存在的,因此只需得到亲和力框。
亲和框是通过相邻字符框定义的。通过连接每个字符框的对角画出对角线,生成两个三角形(称其成为上下三角形)。对于每对相邻字符框,通过将上下三角形的中心设置为框的角来生成亲和框。
GT生成步骤:1、准备一个二维各向同性高斯映射;2、计算高斯映射区域和每个字符框之间的透视变换;3、把高斯图映射到字符框区域。

真实数据集GT生成——弱监督学习


采用弱监督学习的目的是为了将单词级数据裁剪为字符集数据。其中预测区域的分,即通过模型训练得到。
通过弱监督学习得到字符级标注后,再通过之前合成数据集生成GT的过程来生成真实数据集的GT。
但由于真实数据集字符级的标注不一定准确,所以得到的GT其实是伪GT。

整体训练流程

蓝线为合成数据集训练过程,红线为真实数据集字符集分割过程即弱监督学习,绿线为真实数据采集训练过程。
第一阶段:在合成数据集SynthText上迭代50k次,采用每个基准数据集微调模型。
第二阶段:真实数据集使用弱监督学习生成伪GT,与合成数据集1:5进行相同训练。

损失函数

当使用弱监督训练模型时,我们被迫训练不完整的伪GT。 如果使用不准确的区域分数训练模型,则输出可能在字符区域内模糊。为了防止这种情况,作者衡量模型生成的每个伪GT的质量。文本注释中有一个非常有用的线索,即单词长度。 在大多数数据集中,提供了单词的转录,并且单词的长度可用于评估伪GT的置信度。
对于训练数据的单词级注释样本w,置信度sconf (w)为:

l(w)为样本w的字长, lc(w)为估计的字符长度。
一张图像的像素级置信度Sc( p)为:

R(w)为样本w的边界框区域, p 代表在区域 R ( w ) 中的像素。
整体损失函数计算过程:

S∗r( p)和 S∗a( p)分别代表区域得分和亲和力得分的伪GT, Sr§和Sa§ 分别表示预测的区域得分和亲和力得分。

图为训练时的字符区域得分图。在训练的早期阶段,对于自然图像中不熟悉的文本,区域得分相对较低。随着训练的进行,CRAFT模型可以更准确地预测字符,置信度评分sconf (w)也逐渐增加。
如果置信度很低,那说明模型预测出来的文字框的个数和真实文字的个数相差很大,原因可能是模型还很弱或者是这个文本之前没见过。置信度的话就直接给个0.5去训练。

后处理——字符级边框变为单词级边框

常规四边形处理:
1、对得到的区域得分图和亲和力得分图分别进行取二值化阈值计算,将两张图求并集得到一张图。
2、使用连通组件标记CCL进行区域连接。
3、最后使用opencv的MinAreaRect去框出最小的四边形区域。
非常规四边形:
1、沿扫描方向找到字符区域的局部最大值线,蓝线。
2、连接全部局部最大线的中点的线作为中心线,黄线。
3、旋转局部最大线以垂直于中心线,反映字符的倾斜角度,红线。
4、局部最大值线的端点是文本多边形的控制点的候选点,绿点。
5、沿着局部最大中心线向外移动两个最外边的倾斜的局部最大值线,形成最终控制点,绿点。

实验结果

在四边形数据集上的结果:
在多边形数据集上的结果:

方法优缺点

优点:

  • 具有较好的鲁棒性:作者在文本大小多样化的数据集上进行实验,因为方法是基于定位单个字符而不是整个文本,因此在尺度变化方面具有较好的鲁棒性。
  • 比端到端方法更优:
  • 具有强大的泛化能力。
    缺点:
  • 由于孟加拉语和阿拉伯语字符很难分割成单独的字符,因此模型不好区分该类字体。

CRAFT:Character Region Awareness for Text Detection 论文详解相关推荐

  1. CRAFT: Character Region Awareness for Text Detection ---- 论文阅读笔记

    基于字符区域感知的文本检测 论文地址:https://arxiv.org/abs/1904.01941 论文翻译:https://blog.csdn.net/m0_38007695/article/d ...

  2. character-level OCR之Character Region Awareness for Text Detection(CRAFT) 论文阅读

    Character Region Awareness for Text Detection 论文阅读 论文地址(arXiv) ,pytorch版本代码地址 最近在看一些OCR的问题,CRAFT是在场景 ...

  3. YOLO v1论文详解

    YOLO v1:一体化的,实时物体检测 声明:笔者翻译论文仅为学习研究,如有侵权请联系作者删除博文,谢谢! 源论文地址:https://arxiv.org/pdf/1506.02640.pdf 注:文 ...

  4. ShuffleNetv2论文详解

    ShuffleNet v2 论文详解 近期在研究轻量级 backbone 网络,我们所熟悉和工业界能部署的网络有 MobileNet V2.ShuffleNet V2.RepVGG 等,本篇博客是对 ...

  5. GeniePath:Graph Neural Networks with Adaptive Receptive Paths 论文详解 AAAI2019

    文章目录 1 相关介绍 1.1 感受野的定义 贡献 2 图卷积网络GCN GCN.GraphSAGE.GAT Discussions 3 GeniePath 3.1 Permutation Invar ...

  6. 论文详解 + TCN 篇知识点补充: Receptive Field_感受野

    此篇延伸补充的源头文章链接: 深度学习 + 论文详解: TCN_时间卷积网络_原理与优势 相关主题推荐文章 A guide to receptive field arithmetic for Conv ...

  7. Scale-Transferrable Object Detection算法详解(基于多尺寸目标检测)

    Scale-Transferrable Object Detection算法详解 论文背景 算法背景 算法简介 算法对比 算法详解 网络结构 DenseNet STM Object Localizat ...

  8. [3D检测系列-PV-RCNN] PV-RCNN论文详解、PV-RCNN代码复现、包含官网PV-RCNN预训练权重及报错问题

    [3D检测系列-PV-RCNN] PV-RCNN论文详解.PV-RCNN代码复现 一.论文详解 1.3D voxel CNN 2.体素到关键点场景编码 2.1.关键点抽样 2.2.体素抽象 3.VSA ...

  9. 智能城市dqn算法交通信号灯调度_博客 | 滴滴 KDD 2018 论文详解:基于强化学习技术的智能派单模型...

    原标题:博客 | 滴滴 KDD 2018 论文详解:基于强化学习技术的智能派单模型 国际数据挖掘领域的顶级会议 KDD 2018 在伦敦举行,今年 KDD 吸引了全球范围内共 1480 篇论文投递,共 ...

最新文章

  1. 遥控窗帘c语言程序,使用AT89C2051的红外遥控窗帘
  2. Win10命令行激活 电脑组装
  3. 在CSDN中如何转载别人的博客
  4. python 爬虫 学习笔记(一)Scrapy框架入门
  5. [LeetCode]*105.Construct Binary Tree from Preorder and Inorder Traversal
  6. leetcode 1293. Shortest Path in a Grid with Obstacles Elimination | 1293. 网格中的最短路径(BFS)
  7. linux命令查询邮件发送状态,Linux发邮件之mail命令详解
  8. psql切换schema_PostgreSQL教程(二):模式Schema详解
  9. mysql optimize 参数查看_Mysql High Performance:Optimize Setting
  10. Linux网络协议栈:用eBPF写TCP拥塞控制算法
  11. Python中真的是能使用元组的地方尽量不使用列表吗?
  12. Google在东京召开了一场AI座谈会
  13. php 点击选择图片上传,微信小程序图片选择、上传到服务器、预览(PHP)实现实例...
  14. Spring+Stomp+ActiveMq实现websocket长连接
  15. 阶段3 1.Mybatis_07.Mybatis的连接池及事务_6 mybatis中的事务原理和自动提交设置
  16. Luogu5607 [Ynoi2013] 无力回天 NOI2017
  17. Service: 三、小窗口(浮窗) 播放视频
  18. 数据结构(54) B树、B+树
  19. 【300+精选大厂面试题持续分享】大数据运维尖刀面试题专栏(八)
  20. 现在是经济的寒冬吗?

热门文章

  1. AI机器人源码,电话机器人源码和系统部署运行环境freeswitch
  2. EAS运行期license过期的解决办法。
  3. Java 8实战(一)- Java 8基础知识
  4. xcode8继续愉快的使用插件
  5. linux查看系统日志命令
  6. haproxy 绑定vip问题
  7. Micro:bit 趣味学习套件 图形化编程开发板STEM创客教育
  8. 免费的图片识别接口,百度ocr的SDK使用java版
  9. java catch中抛出异常_简单了解Java编程中抛出异常的方法
  10. Vayo-Gerber View安装教程