文档章节

大话文本检测经典模型:CTPN

雪饼
 雪饼
发布于 05/10 09:34
字数 2158
阅读 466
收藏 1

文字识别是AI的一项重要应用,例如将包装盒上的文字识别出来、将产品说明书上的文字识别出来、将大街上广告牌的文字识别出来等等,在现实生活中能给我们带来很大的便利,有着非常广泛的应用。

一个简单的文字识别流程如下:

Step 1. 通过手机、摄像机等设备采集含有待识别字符的图像,作为输入;

Step 2. 对图像进行尺寸缩放、明暗调整、去噪等预处理操作;

Step 3. 将图像中的单个字符、或者是连续几个字符所在的区域检测出来;

Step 4. 根据文本检测结果从图像中将文本所在区域分割出来,然后导入到模型中进行文本识别,进而得到图像中的字符信息。

其中,这个流程有两个环节非常关键,一个是文本检测、另一个是文本识别,本文将介绍文本检测的经典模型CTPN,而文本识别模型将在后面另外介绍,敬请关注。

对于印刷字体的检测,由于排版很规范,现在的检测、识别技术已经很成熟了,我们日常使用的微信、QQ里面就有提取图片中文字的功能。而对于自然场景下的文字检测,由于光照环境以及文字存在着很多样的形式,要将文字检测出来则有比较大的难度,例如要检测出大街上广告牌中的文字,如下图: 

本文主要介绍文本检测的经典模型:CTPN,它不仅可以用于检测自然场景下的文字,印刷文字的检测自然也不在话下。

1、文字分布的特点

在了解文字检测之前,先来看一下文字分布的特点。无论是印刷文字,还是自然场景下的文字,一般文字是水平排列,连续字符的长度可变,但高度基本相同,如下图: 

这也是CTPN的基本思路,既然宽度是可变、不确定的,那么就按照固定的高度进行检测,看看图像中有哪些区域是连续出现了一片同样高度特征的区域,并且其边缘符合文字的特点,就将其圈出来。

2、什么是CTPN

CTPN,全称是“Detecting Text in Natural Image with Connectionist Text Proposal Network”(基于连接预选框网络的文本检测)。该模型主要是对图片中的文本行进行准确定位,其基本做法是直接在卷积获得的feature map(特征图)上生成的一系列适当尺寸的文本proposals(预选框)进行文本行的检测。下图可以很好地看出该模型的检测思路(注意:CTPN模型实际上是在feature map上生成proposals,而不是在原图像上生成,以下只是个示意图): 

3CTPN技术原理

CTPN模型利用了RNNCNN的无缝结合来提高检测精度。其中,CNN用来提取深度特征,RNN用于序列的特征识别,二者无缝结合,在检测上性能更好。其中:

1CNN(采用VGG16

CTPN模型通过利用VGG16卷积输出的 feature map(特征图)生成一系列proposals(预选框)进行检测。VGG是卷积神经网络的经典模型,具体原理可详见本公众号之前发布的文章:白话卷积神经网络(VGGNet

2RNN

由于文字信息是由字符、字符的一部分、多字符组成的一个序列,所以文字这个检测目标并不是独立、封闭的,而是有前后关联的,因此在CTPN中采用了RNNRecurrent Neural Networks,循环神经网络)来利用前后文的信息进行文本位置的预测。关于RNN的介绍详见本公众号之前发布的文章:白话循环神经网络(RNN

CTPN模型的网络结构如下图所示: 

整个过程主要分为六个步骤:

第一步:输入3×600(h)×900(w)的图像,使用VGG16进行特征的提取,得到conv5_3VGG5block的第三个卷积层)的特征作为feature map,大小为512×38×57

第二步:在这个feature map上做滑窗,窗口大小是3×3,即512×38×57变为4608×38×575123×3卷积展开);

第三步:将每一行的所有窗口对应的特征输入到RNNBLSTM,双向LSTM)中,每个LSTM层是128个隐层,即57×38×4608变为57×38×128Reverse-LSTM同样得到的是57×38×128,合并后最终得到结果为 256×38×57

第四步:将RNN的结果输入到FC层(全连接层),FC层是一个256×512的矩阵参数,得到512×38×57的结果;

第五步:FC层特征输入到三个分类或者回归层中。第一个2k vertical coordinate和第三个k side-refinement是用来回归kanchor的位置信息(可以简单理解为是要确定字符位置的小的矩形框,上面示意图中的红色小长框,宽度固定,默认为16),第二个2k scores 表示的是kanchor的类别信息(是字符或不是字符);

第六步:使用文本构造的算法,将得到的细长的矩形框,将其合并成文本的序列框。其中文本构造算法的主要的思路为:每两个相近的候选区组成一个pair,合并不同的pair直到无法再合并为止。

以上就是CTPN主要原理的介绍,使用CTPN模型对自然场景下的文字进行检测,结果如下图所示: 

4、小结

综上,CTPN模型最大的亮点是引入RNN来进行检测。先用CNN得到深度特征,然后用固定宽度的anchor(固定宽度的,细长的矩形框)来检测文本区域,将同一行anchor对应的特征串成序列,然后输入到RNN当中,再用全连接层来做分类或回归,最后将小的候选框进行合并,从而得到了文本所在的完整区域。这种把RNNCNN无缝结合的方法有效地提高了检测精度。

 

墙裂建议

2016年,Zhi Tian 等人发表了关于CTPN的经典论文《Detecting Text in Natural Image with Connectionist Text Proposal Network》,在论文中详细介绍了CTPN的思想和技术原理,建议阅读该论文以进一步了解该模型。

关注本人公众号“大数据与人工智能Lab”(BigdataAILab),然后回复“论文”关键字可在线阅读经典论文的内容

 

推荐相关阅读

© 著作权归作者所有

雪饼

雪饼

粉丝 409
博文 61
码字总数 134328
作品 0
广州
私信 提问
【AI实战】手把手教你深度学习文字识别(文字检测篇:基于MSER, CTPN, SegLink, EAST等方法)

文字检测是文字识别过程中的一个非常重要的环节,文字检测的主要目标是将图片中的文字区域位置检测出来,以便于进行后面的文字识别,只有找到了文本所在区域,才能对其内容进行识别。 文字检...

雪饼
05/27
3.5K
6
【AI实战】手把手教你文字识别(检测篇二:AdvancedEAST、PixelLink方法)

自然场景下的文字检测是深度学习的重要应用,在之前的文章中已经介绍过了在简单场景、复杂场景下的文字检测方法,包括MSER+NMS、CTPN、SegLink、EAST等方法,详见文章: 【AI实战】手把手教你...

雪饼
06/24
3.1K
8
【AI实战】手把手教你文字识别(识别篇:LSTM+CTC, CRNN, chineseocr方法)

文字识别是AI的一个重要应用场景,文字识别过程一般由图像输入、预处理、文本检测、文本识别、结果输出等环节组成。 其中,文本检测、文本识别是最核心的环节。文本检测方面,在前面的文章中...

雪饼
07/07
5.4K
8
【图解AI:动图】各种类型的卷积,你认全了吗?

卷积(convolution)是深度学习中非常有用的计算操作,主要用于提取图像的特征。在近几年来深度学习快速发展的过程中,卷积从标准卷积演变出了反卷积、可分离卷积、分组卷积等各种类型,以适...

雪饼
06/20
345
0
lovaster/text_detection

ICPR 文本区域检测 业界现在物体识别领域用的最多的是proposal region方法,即通过筛选出候选区域,然后对候选区域进行二分类(object/ no object), 同时还要对对bound box进行回归,这是一般...

lovaster
2018/05/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式协调服务zookeeper

ps.本文为《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之一 ZooKeeper ZooKeeper曾是Apache Hadoop的一个子项目,是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它...

ls_cherish
55分钟前
3
0
redis 学习2

网站 启动 服务端 启动redis 服务端 在redis 安装目录下 src 里面 ./redis-server & 可以指定 配置文件或者端口 客户端 在 redis 的安装目录里面的 src 里面 ./redis-cli 可以指定 指定 连接...

之渊
昨天
2
0
Spring boot 静态资源访问

0. 两个配置 spring.mvc.static-path-patternspring.resources.static-locations 1. application中需要先行的两个配置项 1.1 spring.mvc.static-path-pattern 这个配置项是告诉springboo......

moon888
昨天
4
0
hash slot(虚拟桶)

在分布式集群中,如何保证相同请求落到相同的机器上,并且后面的集群机器可以尽可能的均分请求,并且当扩容或down机的情况下能对原有集群影响最小。 round robin算法:是把数据mod后直接映射...

李朝强
昨天
4
0
Kafka 原理和实战

本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/bV8AhqAjQp4a_iXRfobkCQ 作者简介:郑志彬,毕业于华南理工大学计算机科学与技术(双语班)。先后从事过电子商务、开放平...

vivo互联网技术
昨天
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部