1.1.研究背景和意义
绪论
随着网络带宽与计算机性能的提升,图像越来越多地出现在各类应用中,如网络上流行的图片搜索和视频分享,移动终端的美白相机,交通行业的违章车辆抓拍,以及最近兴起的机器人行业中的智能视觉等。图像中包括各种不同类型的物体,如人、动物、建筑等。其中,文字作为自然场景图像中的一个重要兴趣点,往往蕴含着场景的关键潜在信息,可以进一步用于场景理解、商品推荐、自动导航与驾驶等。因此,对自然场景图像中的文字定位进行深入研究具有重要的理论意义和实用价值。
研究自然场景图像中的文字主要有以下作用。首先,文字作为人类创造的符号,往往包含丰富的抽象信息。相比自然场景中的其他内容,如物体或者人等信息,文字往往包含着一些关键的信息,例如交通指示牌中的位置,以及行驶的汽车的牌照等。这些信息,无法通过物体识别技术得出,只能通过提取文字分析。其次,文字相比其他信息,具有形状描述相对固定的特征。与一些具有复杂形状或者多种姿态的物体比较,文字往往具有近似的形态以及统一的模式(例如文字是以文字行的形式组织的)。
图像中的文字可以用作许多重要用途,包括:自然场景理解,例如通过场景中的文字对场景进行分析,获取场景的位置、方位、距离等信息,从而更好地为对场景中的物体进行预测建模;图像中的物体信息获取,例如可以对图像中物体的商标或者标签进行阅读,获取商品的相关信息,为用户进行相关商品的推荐,图像中的文字信息还可以用来做图像搜索与匹配;机器的自动驾驶与导航,自动驾驶汽车技术可以通过道路两侧的路牌文字获取方位来指引行驶,机器人则可以使用路标在复杂的街道或者是工厂车间中导航。
相比传统的扫描文档中的文字,自然场景下的文字具有以下特点:背景复杂,传统的文档文字往往具有统一的背景,并且有清晰的光照,因此较易进行定位。自然场景情况下,背景往往非常复杂,较难使用简单的技术将背景与文字进行分离,这方面的算法尚在研究当中;环境因素影响较大,自然场景下的文字所处的位置会有遮挡,模糊,逆光等周边环境的影响,给定位带来了困难;文字样式不一,自然场景下的文字往往具有不同的尺寸、颜色、字体,既有传统的印刷体,同时也有草书和艺术等特殊样式的文字,对定位技术的鲁棒性提出了一个挑战(见图1)。
1图1不同形态的文字
自然场景图像中的文字具有许多潜在的重要作用,其检测、定位与识别等相关研究已成为目前学术界和工业界的热点。自然场景下的文字定位技术是实现机器视觉与智能中必要的一环,相关信息可以与自然语言理解等技术相结合,为机器智能等技术提供助益。
1.2.自然场景文字定位技术研究现状
自然场景文字定位技术主要包括三大类别,分别是:1、基于滑动窗口与机器学习的定位方法,其中常用的机器学习模型包括SVM,AdaBoost等;2、基于连通域的文字定位方法,这里面的代表主要有MSER、SWT等;3、以上两者的混合方法。下面分别说明这几类别。
1.2.1.基于滑动窗口的定位技术
基于滑动窗口的文字定法方法主要使用滑动窗口与低级特征结合,通过机器学习模型去识别可能是字符的区域,并建立一个文本置信图,其代表方法有Pan[1]和Jaderberg[2]。
其中,Pan[1]使用滑动窗口结合Waldboost和HOG特征去建立原始图像的文本置信图。文本置信图接着和一个多层感知机结合,去计算领域图的二值化权值。Pan[1]接着
2使用了CRF(ConditionalRandomField,条件随机场)去过滤领域图中的非文本区域,剩余的文字则使用最小生成树算法来生成文本行。
Jaderberg[2]使用了一个深层的卷积神经网络去进行端到端的文本识别。与传统方法中先识别文字不同,他的方法直接对英文的单词做一个大类(接近9万)的识别。在他的方法中使用了合成数据去扩充机器学习的训练数据。这与本文中对于卷积神经网络的训练方法类似。
基于滑动窗口的定位方法的主要问题是:必须对图像进行多尺度的缩放,只有在多尺度的图像上才能获得较好的结果,带来的结果就是相对大的计算量。滑动窗口的另一个问题就是容易产生较多的误检,这对机器学习的分类器提出了较大的挑战。1.2.2.基于连通域的定位技术
基于连通域的文字定法方法主要是基于以下的观察:大部分英文文字都是联通的,并且具有统一的式样。基于连通域的方法首先提取图像中的连通域,然后使用一个分类器去检测是否是文字。由于连通域的数目相对滑动窗口少很多,因此降低了处理的时间。
大部分的连通域文字定位技术使用的是MSER[3](MaximallyStableExtremalRegions,最大极值稳定区域)算法。这个算法提取的连通域是尺度无关的,从而避免了对图像的多尺度搜索,进一步地降低了处理时间。基于连通域的定位技术往往具有速度快的优势,但对于提取不到的连通域,则为力。
Neumann[4]证明了在ICDAR2011竞赛中,ER算法可以将百分之95的文字区域从多通道图像中提取出来。但是,ER算法提取出的非文字区域相对也较多。Yin[5]提出了一个正则化的variation定义,对于非文字区域的提取有抑制作用,从而提高了抓取真字Sung等人[6]在Yin[5]的基础上,符区域的准确性。提出了一个对ER树划分路径以及裁剪的方法,进一步筛除了大量的非文字区域。
尽管基于MSER的算法可以解决大部分通常的文字,但是面对一些异常的情况,例如光照、模糊等,MSER算法显得很无力。在ICDAR2013的文本定位竞赛[30]中,大部分基于MSER的算法都无法良好的处理这些特殊情况。有的区域因为无法被提取,有的区域因为自身的几何特征而在筛选过程中被抛弃。针对这些式样的文字提出MSER的解决方法,是此类方法亟待解决的问题。1.2.3.混合的定位技术
混合方法是对以上两种方法的混合。这类方法的优势在于既有MSER的效率,同时也有滑动窗口的鲁棒性,其中的代表方法有Zamberletti等人[25]和Huang等人[26]提出的算法。
其中,Zamberletti[25]等人使用一个多尺度的MSER检测方法,这种方法可以较好Huang[26]等人则使用了MSER的解决传统MSER算法不擅长处理的连体字与其他式样。
3与CNN结合的方法,首先用MSER提取初步区域,然后对初步区域使用滑动窗口和CNN检测来建立图像中的文本置信图,最后使用NMS(非极大值抑制)与threshold方法来获取文本区域。
本文中的方法与[26]中的方法类似,都是使用MSER与CNN结合的方法来进行定位。所不同的是本文使用了一个启发式的方法去区分字符和文本,然后对这两类目标使用了不同的CNN模型,从而提高了对部分难解决的文字式样的检测率。
1.3.自然场景文字定位的难点
生活领域中的大部分图像都是在自然场景下获取的。原先的文档OCR系统虽然拥有较高的定位率[27],但是对于使用条件做了严格的。因此,研究自然场景下的文字定位有其重要的现实意义。
自然场景中的文字图像可以是在任何环境下拍摄的,大部分图像不会引入先验知识。一张图片中,文字出现的位置可以是任意的。同时,一张图片中也可以包含若干行文字。每行文字的个数也是任意的,既有十多个字符组成的单词,也有一个字符的,例如停车指示牌中的”P”等。除此之外,自然场景中的文字定位还有如下的困难:
1、背景复杂。自然场景下的文字通常是在街道拍摄的,因此背景中往往具有人群,建筑,植被,护栏,装饰等富含边缘特征的物体。建筑物中的墙壁,往往具有重复出现的图案,例如红砖的形状与方形的字符相似,重复出现后较易被识别为文字行。植被中的草丛,容易与文字中的草书混淆。这两类物体,在图像中大幅出现的话,容易产生较多的误检数目。
图2是两幅自然场景下的图。其中图2(a)的背景是大量的植被,图2(b)中的背景则是红砖墙壁。
图2复杂背景下的文字
42、环境因素影响大。自然场景下的文字可以在任何条件下拍摄,因此易于引入各种容易产生干扰的信息。例如不均匀的光照、模糊以及半透明等效果。光照的不均匀使得文字行中有些部分太亮或者太暗,造成定位的失败。模糊效果使得连通域的算法很难将文字从单词中抠出来。半透明效果会产生较多的漏检。
3、形态不一的字体。除了复杂的背景,环境因素的影响以外,自然场景下的文字还具有形态不一的特征。具体表现为不一样的大小,尺寸,颜色,字体,样式等等。一张图片中既可能有占据全图的大字符,也可能有在一行角落的小文字。文字的样式也不同,既有传统的印刷体,也有手写体,以及艺术体等,这些都给定位带来了困难。
图3是两幅特殊形态字的图。其中图3(a)中的文字是艺术字体,图3(b)中的文字则是手写体。
图3特殊形态的字体
由于自然场景下的文字定位具有以上所说的困难,因此对于算法的鲁棒性就有了较高的要求。
1.4.本文的主要工作
本文主要针对自然图像下的文字定位进行研究,根据传统的文字定位技术进行改进与补充,并结合近年来的深度学习技术,提出一个改进后的自然场景图像中的文字定位方法,即改进的MSER算法去提取字符疑似区域,然后使用卷积神经网络去进行识别。本文的方法主要包含五个部分,分别是图像预处理、MSER提取、文字检测、区域整合,以及文本检测等。本文的方法在标准测试集上进行了测试,结果表明本文方法对部分图片有较好的定位效果。
本文的具体工作包括:
1、对深度学习以及卷积神经网络研究的进展,给出一个较为完整的综述。
52、针对自然场景下的文字定位问题,提出了一个结合MSER提取与CNN检测的综合方法。
3、给出了CNN模型的网络架构,训练方法,以及进行自然场景下的文字检测过程。4、针对ICDAR2015中自然场景文字定位竞赛中的测试集图片进行了测试,验证了方法的可行性与有效性,并讨论了方法的不足。
本文的主要贡献与创新点是:
1、提出了一种新的结合改进MSER算法与深度学习技术的自然场景文字定位方法;
2、针对连体字符,模糊字符等传统MSER不好提取的区域,提出了启发式的规则去处理;
3、通过在多通道的图像空间上进行MSER的提取来增强方法的鲁棒性。
1.5.本文的组织结构
本章对本文的研究目的和背景进行了介绍,说明了当前文字定位研究的现状,以及自然场景下文字定位的困难。本文的章节结构安排如下:
第二章介绍深度学习的产生和发展过程,重点对深度学习中的卷积神经网络进行介绍,包括设计思想、网络结构和训练方法等。
第三章对本文的方法的总体设计进行介绍,包括需求分析、设计目标和设计依据等,最后给出本方法的整体框架。
第四章对本文的主要算法实现进行说明,包括MSER提取、文字检测、合并和文本检测等几个过程。
第五章针对ICDAR2015中自然场景文字定位竞赛中的测试集图片,进行方法的有效性测试,计算了方法的回归率与准确率两个指标,并与竞赛中的基准方法进行了对比。
第六章总结本方法中存在的问题,并提出下一步的研究计划。
6第二章深度学习技术简介
深度学习(DeepLearning)技术是最新兴起的机器学习技术之一[7]。自2012年以来,深度学习的研究与实践呈现出一种火爆现象。这种现象的产生原因跟深度学习相比传统方法的优势离不开关系。
深度学习相对于传统的机器学习方法有两大主要优势:
1.效果优越。经过深度学习训练的模型在各类人工智能领域(计算机视觉,语音识别,自然语言处理等)的效果比原先的机器学习方法提升明显。典型例子就是ImageNet[31]2012年的竞赛,基于深度学习的方法不仅获得了第一名的成绩,更是将错误率下降了接近一半[8];
2.使用方便。传统的机器学习方法对模型的特征依赖较大,而这些特征往往需要由专业的人员不断的调试才能获得较好的结果。深度学习是一种特征学习方法,不需要人工编写特征,它可以自动的从原始数据(图像,音频,文本)中学习特征,而这些特征接下来又可以输入分类器中去进行预测。因此,使用深度学习方法,可以明显的降低机器学习在这些领域中应用的门槛[7]。
深度学习的劣势是训练量大,往往需要比传统方法多得多训练时间。但这个问题随着并行化算法的优化和图形加速卡(GPU)的普及而得以解决,训练时间不再是制约使用的瓶颈,因此更进一步地提升了深度学习使用的普适性。
由于深度学习相比传统机器学习的这些显著不同,因此也把传统的机器学习方法称为“浅层学习”(ShallowLearning),这其中包括SVM、boosting、KNN等。
2.1.特性与发展历史
深度学习一个较大的优势就是非监督的特征学习(unsupervisedfeaturelearning)。传统的机器学习方法大部分都是监督学习,这需要大量的带标签的数据去进行训练才能获得较好的效果,而一般最为稀少的数据就是标签数据。深度学习可以通过非监督的方法从数据中学习到特征,并且可以在标签数据稀少的情况下也能取得不错的预测效果[9]。
深度学习的主要特色是逐层特征学习。通过多层的神经网络,深度学习不断从前一层的表征中抽取到更进一步的特征,从而降低了数据的维度,更易于发现本质特征。以一个四层隐藏层的深度神经网络为例,第一层从原始图像中学习到边缘(edge)的特征,第二层在第一层的边缘之上,学习到图案(motifs)的特征,第三层在图案的基础上,学习到组成(part)的特征,第四层在第三层的组成之上,学习到目标(object)的特征,最后目标的特征输入分类器,去完成识别或检测任务。在整个网络的架构中,后面的每
7层负责对上一层的输入进行抽象,不断学习到更高级的内容。深度学习的这种方法,易于使模型学习到数据中最凝炼的部分,从而改善分类与识别效果。深度神经网络的这种架构是从动物与人的视觉皮层中得到了启发。动物与人的视觉神经也是通过多层的不断抽象的表征来获取信息的[10]。深度神经网络通过模拟这种结构,取得了良好的成果,这也证明了在人工智能领域进行仿生设计的可行性。
传统的神经网络最大的劣势就是训练耗时较多。80年代末期,反向传播算法(backpropagation)[11]的提出大幅降低了神经网络训练的复杂性,使得一个包含三层(1层输入,1层隐藏,1层输出)的网络在可接受的时间内就可以训练结束。但是对三层以上的网络,训练仍然需要较多的时间。这也导致了在相当长一段时间(90年代中期)以内,神经网络算法被主流的机器学习和计算机视觉社区所抛弃[7]。
2006年,这个情况得到了改善。反向传播算法的发明人GeofferyHinton发现:多层神经网络的训练复杂性可以通过逐层初始化(pre-training)的技术得以解决,而逐层初始化可以通过非监督的方式进行学习,这就大幅度的降低了多层神经网络的训练复杂性[12]。其次,Hinton提出,多层的神经网络更容易学习到数据的本质特征[13]。这两项发现,一方面解决了神经网络训练的可行性,另一方面证明了神经网络的有效性。神经网络再一次进入到机器学习界的主流来,并成为研究的关注点。
2012年,Hinton等人在ImageNet[31]竞赛中,用多层的卷积神经网络(Convolutionalneuralnetwork)成功地对包含一千类别的一百万张图片进行了训练,取得了分类错误率15%的好成绩,这个成绩比第二名高了近11个百分点,充分证明了多层神经网络识别效果的优越性[8]。在这之后,关于深度神经网络的研究与应用不断涌现,并在计算机视觉,语音识别,自然语言处理等多个领域取得了比以往机器学习方法提升明显的成绩。
目前,除了多层神经网络(DNN)以外,深度学习的阵营中还包括两个网络架构:CNN以及RNN(Recurrentneuralnetwork,递归神经网络)。CNN在计算机视觉与语音识别领域取得了较好的成绩,RNN则在自然语言处理,语音识别,机器翻译等领域取得了较好的成绩。
本文的方法主要基于CNN,因此本文首先从CNN的主要思想、结构与计算方法等方面对CNN作简要介绍。
2.2.卷积神经网络
卷积神经网络是一种特殊的深度神经网络[14]。其主要特性包含下面几点:局部性,共享性以及平移不变性。体现到设计思想上来说,就是卷积神经网络中的局部感受野、权值共享,以及子采样三个思想。下面分别对这些思想加以介绍。
82.2.1.局部感受野
与传统的神经网络不一样,卷积神经网络中包含有几个特殊的层,这些层并不与它的上一层形成一种全连接的关系,而是形成一种局部连接的关系。层中的每一个节点只与上一层中若干个平面上相邻的节点形成连接。这里是借鉴了视觉神经中感受野的思想。在视觉皮层中,一个神经元只会对其最近的几个神经元产生反应。这是叫做局部感受野(localreceptivefield)的原因。
局部感受野的连接效果见图4[28]。左边的图是全连接的网络,右边的图是局部连接的网络。
图4局部连接[28]局部感受野思想的用意是让网络在图像的局部区域上进行学习。由于自然界的图象是一种具有局部统计特征的信息数据,因此这种方式可以学习到图像中局部的特征。
局部连接方式的另一个好处就是降低了所需要学习的参数的数量,让参数显著性降低。假设一个96*96大小的图像,其与网络中的第一层,也就是感受野层进行连接。感受野层中的节点数量是100,那么在这两层的连接中拥有的参数的数量可以计算为:
96961008400.(1)
倘若让感受野的节点只连接图像中某个8*8的图块(patch)的话,那么感受野层中的每个节点只对应到8*8=的参数数量,相比原先的96*96有了明显的降低。但是这样的连接方式考虑到了图像中一个局部,而没有考虑到其他局部。为了学习到图像上所有局部的特征,需要考虑图像中所有的8*8的图块大小。这个数量通过Eq.2可以计算得出:
(96-81)(96-81).(2)
为了连接所有的图块,需要有同样数量的感受野层的节点,也是*。按照这种方式计算,参数的总量是:
988506944 .参数数量相比原先改变并不大,这是权值共享思想应用的主要原因。2.2.2.权值共享
(3)
卷积神经网络中另一个重要的思想就是权值共享(sharedweights)。权值共享是让所有的感受野的节点数目共享同一个权值。以Eq.3为例,如果权值共享的话,所需要学习的参数数量为:
88.(4)
应用权值共享后,整个网络的参数数量有了104数量级的降低。权值共享的启发来源是自然图像中局部区域上的统计稳定特性。我们可以把在一个图像某个局部中学习到的特征应用到其他局部中。例如,图像中每一个局部都有边缘的信息,因此可以用检索边缘的特征去检索图像中其他区域中的边缘。通过这种方式,实现了目标在图像中的位置无关性。
权值共享的示意见图5[28],其中左图是局部连接但非权值共享的网络,右图是局部连接并且权值共享的网络。
图5权值共享[28]如果把局部感受野和权值共享合在一起看的话,就是一个固定权值的8*8的核遍历图像。从数学上看,就是对图像进行了一次卷积操作,这也是网络被称之为卷积神经网络的原因。卷积神经网络中负责局部感受野和权值共享功能的层也称之为卷积层。
对图像卷积的一个示例可以见图6[15]。其中卷积核内的权值是红色的下标,这些值不是固定给出的,而是通过训练与学习得到的。与Sobel算子等人工设计核的区别是,卷积核的权值是不固定的,随着每次训练的不同而改变,而Sobel算子的核都是人们设计的,是固定给出的。
10图6卷积操作[15]
可以看出,经过卷积计算后形成的节点以二位数组的形式组织,类似于一副缩小的“图像”。这幅“图像”是对原图进行特征过滤后得出的中间图,称之为特征图(featuremap)。
如果让特征图作为下一个卷积层的输入,那么可以得到对应于这个特征图的再一次过滤的特征图。卷积神经网络通过层层过滤的方式,不断从原始图像中抽取更高层的特征,作为最终分类器的输入,这也是深度学习中表征学习(representationlearning)的体现。
2.2.3.子采样
卷积神经网络具有平移不变性,图形中轻微的平移并不影响识别的结果。这个特性与子采样思想是分不开的。
子采样是对卷积层生成的特征图用一个最大核或者平均核进行无重叠的扫过。无重叠意味着核的步长与大小保持一致。最终的结果就像对特征图进行了一次缩放,因此称为子采样(subsample)。最大核取出对应集合中的最大像素值,平均核取对应集合中的平均像素值。子采样也称之为池化(pooling),池化输出的值被传输到池化节点上,全部的池化节点组织的二维数组也称之为特征图。
关于池化技术的示例,可以见图7[15]。
11图7池化操作[15]
池化技术的主要启发来源是为了让神经网络对图像中的位移产生鲁棒性。经过池化技术以后,原始图像的轻微位移不会对输出的特征图产生影响,从而使模型的识别对于平移具有不变性。池化技术的另一个优势是再一次缩减了参数的数量。*的特征图,经过2*2的池化以后,变为45*45的特征图,进一步对表征进行了维度的缩减。
在卷积神经网络中,池化是单独作为一层,放置在卷积层之后。一个卷积层往往和一个池化层配对,形成一次卷积过程。一个卷积神经网络中往往包含若干个卷积过程。
下面对卷积神经网络的具体结构进行说明。
2.3.卷积神经网络的结构
卷积神经网络除了拥有神经网络的全连接层以外,还包含有卷积层,池化层等特殊层。按照数据流向的顺序来说,一个卷积神经网络的架构是:输入层,卷积层,池化层,卷积层(第2个),池化层(第2个),....,卷积层(第n个),池化层(第n个),全连接层(第1个),全连接层(第2个),....,全连接层(第m个),输出层。总共包含的层数如下:
1n2m122nm.(5)
在各层之间,一般有非线性函数作为桥接。例如每个节点的输出会经过非线性函数的转换。非线性函数的作用是让最终模型具有非线性化的区分能力。
12非线性函数阵营中包括传统的sigmod以及tanh等函数,现在的深度学习界最流行的是ReLU函数[16]。ReLU函数的计算公式非常简单,见Eq.6:
ymax(0,x).(6)
这个函数的好处在于:不仅可以让网络呈现稀疏性(更好的模拟人脑的神经工作方式),同时也可以让梯度下降收敛的速度加快。
除了非线性函数以外,卷积神经网络中还可以使用Dropout技术。这个技术是让网络中的某些节点在训练时随机地不工作,从而有效的防止模型的过拟合[18]。
图8是一个经典的卷积网络架构--LeNet5,这个网络是由卷积神经网络的发明者Y.LeCun在[17]提出的。本文中使用的字符识别模型正是基于这个架构的。下面的小结以这个网络为例,来说明卷积神经网络的具体结构。
图8LeNet-5架构[17]
2.3.1.卷积层
卷积层一般是卷积神经网络的第一个隐藏层。它的主要作用是从图像或前一层的特征图中提取局部特征。
卷积层使用一个核来遍历前一层,核中的权值是由训练学习得到的。核的大小则是由使用者决定的。通过卷积过程生成的所有输出节点会形成一个二维的特征图。
生成的特征图的尺寸会比原始图像的小。假设一个M*M大小的图像,使用一个n*n的核去进行卷积操作后生成的特征图的大小可以通过下面的公式计算:
(Mn1)(Mn1).(7)
卷积层可以包含若干个特征图。每个特征图对应一个不同的卷积核。不同的核代表着对图像中不同局部模式的匹配和搜索。若干个特征图都可以看作是对原始图像的不同的表征。卷积层体现了局部感受野和权值共享这两个设计思想。
13在LeNet5架构中,共包含两个卷积层。图9中红色区域标注的地方就是LeNet5架构的第1个卷积层。第1个卷积层通过一个5*5大小的核对原始的32*32大小的图像进行卷积,生成特征图的大小是:
(32-5+1)(32-5+1)=2828.(8)
图9第1个卷积层
第1个卷积层共包含6个特征图。后一层池化层中的6个特征图与前一层中的保持一一对应。2.3.2.池化层
池化层主要是进行子采样过程。通过对图像实现一个无重叠的过滤操作,池化层完成了对特征图的一次维度降低过程。一个2*2的池化操作会使原始特征图的面积缩小到原来的1/4,从而改善学习训练的速度。池化操作通过最大池或者平均池操作对图像的局部位移以及变形进行了平滑,从而使模型对于平移产生了鲁棒性。
同卷积层一样,一个池化层的输出也是特征图。池化层中的特征图的数目与它上层所连接的卷积层中的特征图的数目保持一致,一一对应。在池化层的池化节点的输出上,往往会叠加一个非线性函数,例如ReLU函数,从而让网络的表征具有稀疏性。
在LeNet5架构中,共包含两个池化层。图10中红色区域标注的地方就是LeNet5架构的第1个池化层。第1个池化层通过1个2*2的池化核对前一层的28*2小的特征图进行池化操作,生成一个14*14大小的特征图。
14图10第1个池化层
在第1个池化层后,紧跟着第2个卷积层,也就是图11中所示的C3层(蓝色区域)。C3层使用的核的大小是5*5,所以C3层中每个特征图的大小是:
(14-5+1)(14-5+1)=1010.(9)
图11第2个卷积层
C3层中使用了16个不同的卷积核以生成了16个特征图。每一个卷积核对应前面S2层中特征图的组合。图12[17]说明了这些组合的关系。
图12卷积对应关系[17]
横排是C3层中的特征图的标号,共16个,竖排是S2层中的标号,共6个。2.3.3.全连接层
卷积神经网络中,全连接层往往处在最后的位置,仅在输出层之前。
15全连接层中的每个节点与前一层的所有节点都有连接。每个连接对应一个权重(这里的权重与前面的权值都是参数的意思,不同之处在于全连接层中一般称之为权重,而卷积操作中一般称之为权值)。一个10节点的全连接层,前一层的节点数是20,两层之间的连接与权重的数量是:
1020200.(10)
全连接层与传统神经网络中的作用一致,用来模拟神经元的信号传递与抽象表征作用。全连接层的节点数目一般会呈现逐层递减的关系,从而让后面的层次需要用更少的维度去表达更多的信息,迫使网络对信息进行更高程度的抽象,形成更高层的表征。
全连接层中可以使用Dropout[18]技术来随机地让某些节点在训练的一个迭代阶段不工作,从而让其他节点不会对特定的节点产生依赖,降低各个节点之间的耦合关系,这种方式可以让模型不容易产生过拟合[8]。
图13的红色区域标注的地方就是全连接层。其中C5层既可以理解为卷积层,也可以理解为全连接层。F6层是纯粹的全连接层。OUTPUT层既是输出层,也与前一层保持全连接关系。
图13全连接层
C5层中的每个节点使用一个5*5的核对前一层的特征图进行了卷积。由于前一层的特征图的大小就是5*5,因此正好可以看作全连接关系。F6层以及OUTPUT层与前一层都是全连接的关系。
可以看出C5,F6,OUTPUT三层节点数呈现逐渐减少的关系,从而让网络可以向OUTPUT层是分类层,着不断抽象高级的特征前进。其中节点数目与类别数目保持一致,都是10。
2.4.卷积神经网络的训练
卷积神经网络的训练方式与传统的神经网络一致,都是使用梯度下降和反向传播这两个主要算法。其中,梯度下降用来使网络的权重向着全局的残差(cost)最小前进。而反向传播算法用来计算每次权重应该减小的梯度。
16下面说明这两个算法。2.4.1.梯度下降
机器学习中模型预测结果与实际标签的差距的方程叫做代价函数(costfunction)。机器学习训练的目的是找到一系列的参数,使得对于全部训练数据与类别,代价函数的值最小。对于训练数据有10000的模型,训练目的是使得所有10000数据的预测与实际差距最小;对于有10种类别的分类任务,训练目的是让所有类别的预测与实际差距最小。
在机器学习界,求得使代价函数达到最小值的算法有许多,最常用的算法是梯度下降算法。梯度下降算法每次计算参数在当前的梯度,然后让参数向着梯度的反方向前进一段距离,不断重复,直到梯度接近零时截止。一般这个时候,所有的参数恰好使代价函数达到一个最低值的状态,如图14。
图14梯度下降[15]
在图14中,是一个包含两个参数的代价函数。梯度下降算法首先随机给两个参数赋值,也就是在图中找到一个初始点,然后梯度下降算法计算在这个初始点时两个参数的梯度,也就是对应到x和y方向上的斜率,并且让初始点朝着梯度的反方向前进。前进的幅度是通过一个学习因子alpha给出的,假设当前点的梯度是t,那么每次前进的幅度s由下面的公式给出:
stalpha.(11)
由于无法精准估计点前进到极值点附近所需要的前进次数,梯度下降算法都会让使用者设定一个迭代次数,由这个参数来决定前进的次数。
17梯度下降算法的一个问题就是局部最优解问题。由于在每次下降过程中都是沿着当前点的梯度的反方向前进,倘若函数平面不止包括一个极低值点,且初始位置被随机到非最低的极值点附近,那么梯度下降算法有可能会在这个极值点附近结束,从而让训练得到的是一个非最优的模型。
局部最优解这个问题困扰机器学习界很多年,尤其是对梯度下降算法非常依赖的神经网络。1990年代中期,神经网络受到机器学习界的摒弃的原因除了因为训练困难以外,梯度下降算法的局部最优解问题也是其中之一[7]。
不过,近年来的研究证明,局部最优解问题在大规模网络结构中影响并不大。根据[19]与[20]的发现,大规模神经网络表示的函数平面上含有的极值点中大部分是极大值点,只有很少的部分是极低值点。并且在这些极低值点中,大部分的值都是相同的。因此一个梯度下降算法可以在绝大多数情况下获得一个最优解,从而让模型的性能保持在一个稳定的范围。如今深度学习的火热状况已经证明,梯度下降算法的这个问题并不是制约神经网络的效率瓶颈。
在每次梯度计算过程中,需要计算代价函数对于所有训练样本的残差,当训练样本数量很大时,这样的计算非常费时,制约了梯度计算的应用。随机梯度下降算法(StochasticGradientDescent)是一个解决这个问题的梯度下降算法。它的主要思路是不选择所有样本,而是每次从训练样本中取出一部分样本来计算梯度,这样的计算过程不仅能让解值接近最优值点,同时也大幅度减少了每次残差计算的时间,从而提高了算法的整体效率。
在本文中,使用随机梯度下降算法来训练卷积神经网络模型。2.4.2.反向传播
反向传播算法(BackPropagation,BP)是计算梯度下降算法中每次迭代中的梯度值的算法。在线性模型或者逻辑回归模型中,梯度的计算较为简单,而在神经网络模型中,尤其是深层神经网络中,由于结构复杂,直接计算梯度的代价很大,因此一般使用反向传播算法来计算梯度。反向传播算法包括两个过程,分别是前向传播计算残差,然后是反向传播计算梯度。
前向传播过程中,每个神经元节点会计算其所有连接的节点的加权和,然后对和叠加上一个非线性函数后输出到下一层。依次不断传递,最后在输出层计算输出结果和实际结果的残差。
图15[7]是一个前向传播的示意图,包含1个输入层,2个隐藏层,1个输出层。Z代表加权和的值,Y代表对加权和进行一次非线性变换后的值。这里为了简单,并没有放上偏置节点。
18图15前向传播[7]
在前向传播结束以后,运行反向传播。反向传播的基础原理非常简单,就是函数求导中的链式法则(chainrule)。链式法则的说明可以见Eq.12。
zy,yyyx,xzyzx,yxzzy,xyxz(12)
通过链式法则来计算残差相对前一层的输出的导数,然后再推出相对于权重的导数,也就是梯度。使用反向传播,可以减轻梯度计算的复杂性,让计算量显著降低。
图16[7]是一个反向传播的具体示意图。
19图16反向传播[7]
卷积神经网络与普通的神经网络一样,也是通过反向传播算法来计算每次迭代的梯度。尽管卷积神经网络中包含一些特殊的层,如卷积层,但是对于推导梯度的计算来说,链式法则的应用仍然非常直观。本文中的方法使用反向传播算法来计算卷积神经网络的梯度。
2.5.本章小结
本章介绍了深度学习的主要特性和相对于传统机器学习的主要区别,并介绍了深度学习发展的历史。除此之外,本章重点介绍了卷积神经网络,包括卷积神经网络的思想,即局部感受野、权值共享、子采样这三个重要思想。本章以LeNet为例介绍了卷积神经网络的结构,包括卷积层、池化层、全连接层。最后,本章说明了神经网络的训练方法,即梯度下降算法和反向传播算法。
20第三章基于深度学习的自然场景文字定位方法的设计
前面两个章节介绍了自然场景文字定位研究的目的和价值,文字定位方法研究的现状,并重点介绍了本文的核心技术--深度学习与卷积神经网络的思想,结构及训练方法。本章对本文方法的总体需求进行分析,说明本方法的主要目标,设计思想以及依据,并介绍本方法的整体框架。
3.1.自然场景文字定位方法的需求分析
本文的主要目的是利用深度学习技术设计一个自然场景文本的自动定位方法,以实现高鲁棒性地自然场景下的文字定位。具体说来,本方法需要满足以下的功能需求、非功能需求以及接口需求。3.1.1.功能性需求
本方法是一个在自然场景下的高鲁棒性文字定位方法。针对一般情况,本方法需要保证对绝大多数的文字能够定位。针对复杂情况,如场景背景复杂、成像质量低、具有不寻常样式的字体时,本方法需要保证大部分的文字能够定位。具体来说,本方法要满足以下两点需求:
1、高鲁棒性。本方法能够应对各种复杂的背景,如人群、街道、植被、墙壁等等;本方法对于环境的变换有一定的鲁棒性,不容易受到模糊、变形、倾斜等的影响;本方法能够识别各种不同类型的文字,包括不同的大小、字形、字体、颜色等等。
2、高正确率。本方法能够不受一些与文字相似的物体的影响,不会造成过多的误检。本方法对于与文字相似的标志、图案等有一定的区分能力。本方法检测到的正确的文字数量至少应该占所有检测数量的80%以上。3.1.2.非功能性需求
除了以上的功能性需求以外,本方法也要尽可能满足非功能性需求。非功能性需求包括:处理时间的需求、内存的要求,以及健壮性的需求等等。具体来说,包括以下几点:
1、高效率。本方法应该在可以接受的时间范围内完成文字的定位任务。如果一张图片定位的时间超过一定的界限,就失去了本方法的使用价值。本方法应该在保证鲁棒性,正确率的前提下,在尽可能短的时间内完成定位工作。
2、低存储。本方法应该在确保功能的前提下,对内存的需求保持在一个合理的范围。本方法不应该占用过多的内存。本方法可以使用图形加速卡进行加速,但是同理,不应该占用过高的显存。
213、健壮性。本方法应该具有一定的健壮性。健壮性表现为:本方法对于错误的输入,如非图片文件能够跳过而不是处理后报错;对于资源消耗过大,可能造成溢出的图片,能够有错误提示,而不是抛出异常code。
除了以上三点非功能需求以外,本方法还应该尽可能满足可读性,以及移植性等特点。本方法使用的代码应该满足代码规范,代码应该尽可能使用可移植或者跨平台的库,例如OpenCV等。3.1.3.接口需求
本方法需要满足以下的接口需求。本方法的一次正确使用的流程定义如下:使用者输入文件夹名,本方法读取文件夹下的所有图片,对图片依次处理。每读取一张图片,本方法会依次执行颜色空间变换、MSER提取、字符检测、区域组成和文本检测共5个步骤,最后输出图像中文本的位置。
本方法不应该输出字符的位置,而是将文本的位置输出。本方法中仅考虑英文文本的定位,不考虑中文文本的定位。
每当一张图片处理结束后,本方法应该将检测到的文本位置,以矩形框坐标的形式输出到使用者规定的结果文件中。除此之外,使用者还可以设定是否需要实时显示定位结果。如果需要,本方法在处理完一张图片后,将定位到的信息以矩形框的形式标注在原图上并显示给使用者。
在使用本方法时,需满足如下约定:使用者需要用C++语言进行调用,并安装OpenCV3.0和Caffe[24]这两个图像处理与深度学习库。
3.2.设计目标
根据以上功能性与非功能性需求,在设计本方法时,需要实现以下各项指标。1、鲁棒性:本方法在定位普通图片中的文字时,有90%以上的回归率。在面对复杂困难的图片,例如ICDAR2015自然场景文字定位集里的图片时,应该保持平均60%以上的回归率。
2、正确性:本方法在定位普通图片中的文字时,有85%以上的正确率。在面对复杂困难的图片,例如ICDAR2015自然场景文字定位集里的图片时,应该保持平均55%以上的正确率。
3、性能:本方法在处理一张0*480的图片时,处理时间不超过1s。在处理一张大图片(例如3880*2592时),处理时间不超过5秒。
4、存储:本方法在运行时,消耗的内存应该不超过500MB,在使用图形加速卡时,所消耗的显存应该不超过250MB。
22除了以上目标以外,本方法还应该满足健壮性,可读性,易于移植等特点。
3.3.设计思想与依据
为了达成以上的目标,本文探索了结合MSER提取与CNN检测的一种自然图像下文字定位方法。
本文的方法的主要设计思想是:1、探索一种结合MSER提取与深度特征结合的高准确率定位方法;2、针对连体字符,模糊字符等传统MSER不好提取的区域,使用启发式的规则去分类解决;3、通过使用多通道的提取策略来解决透明背景图像等较难定位处理的图像。
3.3.1.MSER与深度特征
MSER算法具有速度快,不依赖尺度,定位较为精准等优势,但是MSER会造成较高的误检率,需要用一个高准确率的机器学习模型去识别其中的负样本。CNN模型是一个包含特征提取与分类的机器学习模型,其对目标特征的表达能力使其具有较高的识别准确率。传统上基于CNN的检测算法会结合滑动窗口来探索可能的文字区域,这样的方法的主要问题是计算量较大,同时也有可能检测到的区域不是最佳匹配。
将MSER算法和CNN进行结合可以有效解决以上两个问题。本方法首先使用MSER算法来提取初步区域,然后对初步区域进行CNN检测。CNN检测的最大好处是可以充分利用字符数据的深度特征,通过使用多个层叠的卷积层去学习图像的特征,并利用这些特征进行分类,可以带来较高的检测与识别率。
初步区域通过CNN进行判断以后,非字符被抛弃,余下的真字符组合成文本行,最后对文本行使用一个文本CNN识别模型区进行判断。通过两阶段结合的CNN过滤,可以提升方法整体的准确率。3.3.2.连体字符处理
MSER算法的另一个问题是面对连体字时,无法进行分割。从而造成连体字符中的所有字符都无法处理。经过实验发现,连体字符可以被MSER区域截取为一个完整区域,因此可以先用MSER提取初步区域,将普通字符与连体字符区分开后再分别处理。普通区域使用CNN进行字符检测,而连体字符留待后面的步骤处理。由于连体字符与普通字符在在宽高比上的明显差异,因此可以用宽高比作为连体字符和普通字符的区分条件。
连体字符留作和文本一起进入文本CNN模型进行判断。这是由于连体字符本身就是文本。本方法对文本检测使用的CNN架构与字符检测不同。字符检测使用的是LeNet[17]模型的改进结构。而文本检测使用的是AlexNet[8]卷积网络。
23连体字符的检测方法的另一个好处是可以解决模糊的字符。模糊的字符是由于摄像头或者变焦问题导致的不清晰字符行。在这种情况下,不连接的字符通过模糊效应后在图像上连接在了一起。模糊字符可以被看作另一种形式的连体字符,因此可以使用同一个方式去处理解决。3.3.3.多通道检测
为了达到足够高的鲁棒性,本文使用了多通道检测法。根据[6]里的结论,使用Y,Cr,Cb空间可以改善基于改进MSER算法的鲁棒性。尤其是在背景透明的图像上,MSER算法在Cr,Cb空间上的效果远好于灰度空间上的结果。同时,根据[29]里的分析,使用L,a,b空间能够改善使用canny算子进行边缘提取文字的效果。
综合以上两个想法,本文同时使用Y,Cr,Cb空间和L,a,b空间进行MSER的提取。实验证明,多通道的检测效果远好于单通道的效果,从而证明了这个设计思路的正确性。
3.4.自然场景文字定位方法的总体框架
本文主要针对自然图像下的文字定位方法进行研究,根据传统的文字定位技术进行改进与补充,并结合近年来的深度学习技术,提出了一个综合的自然场景下文字定位方法,并在标准测试集上进行了测试。
本方法主要包含五个部分,分别是图像预处理,MSER提取,文字检测,区域整合,以及文本检测。针对以上各部分的介绍如下:
1、图像预处理:针对原始图像,首先提取出图像的灰度信息,再进行颜色空间变换,分别变换到YCrCb与Lab空间,然后在Cr,Cb和a,b四个通道内分别进行后续算法的处理。
2、MSER提取:本文基于一个改良的MSER提取方法[6],使用MSER子路径分割以及正则化variation定位这两个新策略,从图像中提取出初步的MSER区域。针对提取的MSER区域,使用启发式规则将其划分为候选字符与候选连体字符。候选连体字符保留到后面步骤处理,将候选字符输入文字检测部分。
3、文字检测:本文使用深度学习模型中的卷积神经网络进行字符的识别。本文对传统的文字识别CNN模型LeNet-5的架构进行了改进,将其用于自然场景下的文字检测。本文使用合成数据生成方法,在现有的训练数据集上进行合成,从而扩大了整体训练的数据量,降低了模型过拟合的可能性。
4、区域合成:在经过文字检测以后,保留下来的真字符经过区域合成算法进行组合,生成文本行。本方法使用了区域间的空间与几何相似性作为区域整合的判断条件。在组合成文本行后,本方法使用一个简单的划分算法,将文本行划分出若干文本单词。
245、文本检测:区域合成生成的文本单词与MSER提取产生的连体字符被送入文本检测模型中。本方法使用了AlexNet模型进行文本的检测。为了增大系统的识别率,本文使用了额外的数据来进行训练[2]。
本方法的主要步骤见图17,其中每个步骤的设计说明如下:
1、将图像的颜色空间转换为YCrCb和Lab,并分别使用Cr,Cb,a,b以及gray共5个通道来进行MSER的提取;
2、利用一个改良的MSER算法去提取MSER区域;
3、使用启发式规则将MSER区域划分为两个类别:候选字符(charactercandidate)以及候选连体单词(linked-wordcandidate)。用LeNet模型去检测候选字符,将候选连体单词保留到后面步骤处理;
4、分类后的字符被组合成文本行,然后将文本行划分为候选单词(wordcandidates);5、将步骤3中保留下的候选连体单词和候选单词一并用AlexNet模型进行检测。
图17本方法的处理步骤
3.5.本章小结
本章节对本方法的功能性、非功能性,以及接口需求做了分析,并给出了本方法的设计目标。针对设计目标,本章介绍了本文方法的设计依据和思想。本章最后详细说明了本方法的各组成部分,以及处理步骤。
25第四章
行具体的说明。
基于深度学习的自然场景文字定位关键算法的实现
前一章节说明了本方法的主要框架,本章对方法框架下的各个关键子算法的设计进
4.1.颜色空间变换
一般来说,我们只在灰度通道中进行MSER操作。经过实验发现,某些图片(例如透明图像)在YCrCb通道以及Lab通道上的提取效果远好于灰度通道。因此在本论文中的方法中我们结合了五个通道来进行操作。这五个通道分别是Gray、Cr、Cb、a和b。这样的组合在自然场景情况下能够获得较高的回归率。
图18多通道效果图
18(a)是原图,18(b)是在灰度通道下的检测结果,图18说明了这种情况的两个例子。18(c)是综合了5个通道后的检测结果。
但是这种方法带来的问题就是计算量的增加。假设在灰度通道中我们进行MSER操作的时间为T,则结合了五个通道的操作时间可能等于5T。
一个较好的解决方法是在进行识别前,先将一些重复检测到的区域进行去重。我们使用90%作为判断的阈值,这样可以降低很大一部分进入到识别阶段中的候选区域。同时,我们使用的OpenCV3.0里的MSER算法里实现了线性时间的MSER[21],这样也可以降低一部分计算量。在实际测试中,计算量的问题并不是很大。
2.2.MSER算法定位
我们使用一个改良的MSER算法[5]去进行字符的选取,这个算法主要包含三个主要的步骤:1.ER树的构建;2.子路径划分与裁剪;3.候选字符挑选。4.2.1.ER树构建
一个灰度图像I可以通过一个阈值g定义为一个二值图像B,方法如下:
(a)g,1ifIBg(a)0otherwise,在这里,a代表图像I中的位置索引,一般来说是坐标。
(13)
图19说明了一个灰度图像在阈值改变时得到的不同二值图像。图19(a)是原始灰度图像,19(b)到19(h)则是阈值g分别取不同值时的二值化图像。
图19极值区域图[22]
一个极值区域Rt定义如下:如果一个连通区域满足以下条件,B(p)>B(q),在所有的内在点p和边界点q上都符合,则称之为ER。
27通过阈值的改变,一个灰度图像可以包含很多的ER,这些ER可以被构建为一个树型的组织,称之为ER树。通过ER树,我们可以定义ER的一个稳定性值variation,这个值是通过Eq.14给出的。在一个ER树的全路径上,我们把variation值最小的ER称之为最稳定的ER。
var(Rt)Rt-deltaRtdelta,Rt(14)
delta是一个参数,根据应用的不同需要加以选择。在本文中,设delta为5,这个值保证了对候选字符提取的数量不会太大,也不会太小。在实际应用中,我们可以忽略面积小于minArea和大于maxArea的ER。这两个值在本文中都是自适应选取,其中minArea设为图像面积与0.00005的乘积,而maxArea设为图像面积的一半。这两个值确保了我们可以抓取到尺寸范围足够宽的文字。
图20[22]是通过图19中多个阈值图像构建成的ER树。
图20ER树[22]
4.2.2.子路径分割和裁剪
原始的MSER算法是一个通用性的检测算子,不能很好的适用于文字等特别领域。因此,对其改良使其更好的适合文字检测就是文字定位算法的主要任务。
[6]中提出的算法就是针对传统MSER算法的缺陷,对其进行了优化的结果。其算法中的核心思想有两条:1、子路径分割;2、子路径裁剪。
子路径分割的思想源自MSER提取的最稳定区域针对的是ER的全路径,而在通常情况,ER的全路径上稳定最小的区域往往不是文字,这是由于各个不同尺寸和位置的
28ER混合比较的结果。[6]的主要贡献就是把这些ER加以分割,以子路径的形式加以划分,同时选出子路径中最稳定的区域作为最小稳定区域提取出来,这样做的结果就是提升了对字符提取的准确率。
图21ER树[6]
图21(a)说明了这种全路径下variation最小但却不是字符区域。21(b)是使用了子路径后的算法效果。
一个路径被划分为子路径的依据是两个相邻的ER之间的一个度量--similarity,这个值由Eq.15来定义。
29S(Rt,Rt1)A(Rt)A(Rt1),A(Rt)A(Rt1)(15)
当在路径上两个相邻的ER之间的similarity值小于某个阈值时,我们就将其划分为两个子路径。在本文中,这个值设定为0.7。
形成子路径以后,我们会进一步的裁剪掉路径长度不够的子路径。这个决策的依据来源是对于大部分的字符区域,其子路径长度一般都会大于某个阈值。我们在这里将这个阈值设定为7,从而将长度小于7的子路径排除,进一步对待处理ER做了筛选。4.2.3.正则化
原始的variation的定义并不太适合带有不同尺寸的ER之间的比较。我们使用一个正则化因子去“惩罚”那些带有过高或者过低的宽高比的ER,称为regularizedvariation,具体的公式在Eq.16里。
vartheta1(aamax)ifaamaxvarvartheta2(amina)ifaamin,varotherwise(16)
我们根据[5]里的结论,将amin设为0.3,amax设为1.2,theta1设为0.01,theta2设为0.35。
在MSER提取结束以后,大部分带有清晰边界的字符区域会被提取出来。但是仍然有一些MSER不适合处理的情况。这里面主要的就是连体字。
图22ER提取结果
图22是单体字符和连体字符的样例,22(a)和22(b)是单个字符,22(c)和22(d)是连体字符。
30MSER是一个连通区域算法。所以这些连体字无法以单个字符的形式被提取出来,也就无法用字符检测过程去处理。幸运的是,通过实验发现,大部分的连体字都可以被MSER算法以一个完整的区域提取出来。由于连体字和单个字符存在较大的差异性,因此我们不使用同一个检测过程去检测它们。下个章节会说明用于区分连体字和单个字符的启发式规则。
4.3.字符检测
我们使用一个启发式的规则去将MSER提取的区域划分为两类:单体字符和连体字符(也可以称之为连体单词,因为大部分这种情况下连体的字符组成的是一个单词)。一个简单并且直观的区别点就是两者的宽高比,对于单体字符来讲,宽高比的范围一般是[0.5,2],而连体字符则一般含有2个以上的字符,宽高比一般大于3。于是我们可以使用一个比较区域宽高比和阈值的规则,如果大于这个阈值,则认为其是连体字符,如果小于这个阈值,则认为其是单体字符。本文中,这个阈值被设为3。
在划分结束以后,连体字符被保留下来留待后面的步骤处理。下面主要是除去单体字符中的负样本。我们使用一个卷积神经网络去检测这些单体字符,将其分类为真字符区域或非字符区域。4.3.1.数据准备
在开始分类前,我们首先需要训练一个字符分类的模型。我们使用ICDAR预先提供的groundtruth去截取真字符样本,用MSER算法去提取非字符样本。然后将这些字符通过一个统一的过程去归一到一个32*32大小的图块(patch)中。
归一化图块的过程是源于这样一个事实:使用MSER提取的区域会正好吻合所有的轮廓。也就是说,不会有任何的多余部分,例如I这个字符,MSER截取后就是一个竖直的长条矩形,如果这个I字符是一个纯色的字符。而同时又有另外一些的区域,例如窗体,墙缝等被MSER截取出来,再统一到相同的尺寸后,是很难区分的。所以我们需要在MSER截取的区域上做一个扩充,左右上下各增加2个像素来提取,这样提取后的I字符区域就是包括了白边背景的,易于区分。
其次,如果我们对所有的区域都使用拉伸的方法缩放到32*32的话,那么会存在一个混淆的问题。这个过程对于宽高比为1的字符没有太多影响。但是仍然考虑I这个字符,如果被拉升为32*32,则它的宽会被拉升,最后成为一个正方形。倘若此时MSER恰好截取了一个正方形,通过这种方式很难区分这两者。“-”这个字符也会同样被拉升为正方形,再次跟I字符产生混淆。因此不能直接使用拉升放大的方法。而是应该使用等比例缩放的方法。为了保持图块中周围有一定的缝隙,我们把字符区域缩放到一个稍微小于32的值,在本文里取值为28,然后把字符区域再放置到一个32*32的背景图块上。
31图23归一化过程
图23说明了处理过程。首先我们用MSER获取图块的基本位置,这时候把MSER截取的矩形框进行稍微的放大,从而获取文字周围的一部分像素信息,最后,用最外围像素的平均值作为等比例缩放后放置到的背景图像上的灰度值。
等比例缩放的规则是计算字符区域中较长的一边与28的比例,然后将宽高比同时按这个比例进行缩放。例如宽24,高112的I字符,较长的边是高。高与28的比例是4,于是宽除以4得到6。于是I字符被等比例缩放为宽4,高28的图块,然后按照中心对称的方法放置到32*32的背景图块上。
由于规则化到的图块是一个灰度图块,因此需要决定背景图块中的那些没有被字符区域覆盖地方的值是0到255之间的哪个值。这里需要注意的是字符区域包含两种字符区域,分别是白底黑字或者黑底白字,背景值无论选择哪一个固定值都会不太适合。这里我们选择的方法是,由于我们对MSER区域截取时四周都扩大了2个像素去截取,而这些区域的值一般是这个字符的背景色。我们取截取后的图块的所有四周像素的值的平均值作为背景图块的值。
最终归一化的效果见图24。
32图24归一化效果
4.3.2.人工合成
通过上面的方式收集的真字符图块只有5000个左右,对于深度神经网络的模型来说数据量不太够。为了“喂给”LeNet模型足够的数据,需要使用数据合成的方法来产生一些人造数据。这里我们根据[2]里的方法,分别使用旋转、缩放、拉伸、仿射、高斯噪声、高斯模糊六种方法对数据进行合成。
具体的合成方式是先产生1-6的随机数字,根据这个数字给原始图像固定产生某种“噪声”效果,接着再产生一个大的随机数字,分别根据这个值模几个固定数的余数来判断是否要混合叠加“噪声”。例如旋转效果是模2为0,而高斯噪声是模3为0,当随机数值为6的倍数时,就会同时产生旋转和高斯噪声两种效果。第一个随机数值是确保了每个合成图像必须至少有一个噪声效果,而后一个随机数值则是确保了合成图像的噪声效果不仅仅唯一,而是多种效果合成的。
在具体的每个效果之中,改变的程度也是随机的。例如旋转的角度,是随机地在-30到+30之间,以0.1度为最小单位,而缩放效果,则是随机地在0.7到0.95之间,以0.01为间隔。通过这种方式确保了即便对一副图像合成效果一样,但是改变程度不一样,所以是两幅图像。多样化的噪声效果提升了数据的丰富性,可以便于卷积神经网络更好的学习到数据的本质特征。
这里我们把合成数据的程序称之为合成引擎,下面在运行前只需要把数据投入到引擎中,设定需要的数据,让它循环迭代数次即可。假设我们有5000的数据,我们需要100000的数据量,则只要让合成引擎运行20次循环即可。
33在具体投入到合成引擎前,还需要对数据进行一次挑选,以选择足够具有代表性的字符图块,并且保证每种类型的数量足够均匀,不让模型偏向于学习到某种特定类型中。
数据挑选过程的一个核心对象是负样本,因为负样本我们不需要进行合成,因此只需要从原始的MSER提取的区域块中挑选即可。为了确保负样本足够具有代表性,因此应该选择足够有代表性的负样本,并且保证数量均匀,从而让模型能够不偏向任一特定类型中。
通过数据合成引擎生成的字符数据效果如图25里所示。
图25合成的数据
4.3.3.模型架构
最后我们获得了10万左右的真字符图块,其中包含少量的原始字符图块,其余大部分是合成字符图块。负样本的图块稍微多一些,有16万左右。两者的比例是1:1.6左右,这样做的原因是为了让模型适应真实的场景。在真实的场景下,负样本的数量是远大于正样本的,因此本学习任务也可以理解为是一个正负样本非常不均衡的学习过程,但是如果让训练的正样本跟负样本保持真实场景下的比例,会让学习非常不均衡,最后学到的模型没有抓取到数据的本质特征。
总共26万的图块数据,统一转换成32*32的大小。接着我们使用一个开源的深度模型学习工具Caffe[24]对这些数据进行训练。我们使用的网络结构是经过调整后的LeNet网络,增加了两个卷积和池化层,并且增加了一个全连接网络层,通过这个网络架构训练到的模型在validationset上获得了99.28%的识别率。
34下图是我们改进后的LeNet网络结构。其中conv前两个数字代表卷积核的大小,最后一个代表特征图的数目。每个pool都是2*2的最大池。全连接网络中的每个层之间通过ReLU函数转换。
图26LeNet模型架构
模型训练结束以后,我们使用训练好的模型去预测我们的单个候选字符。如果预测为真,我们保留下来做后续处理,如果预测为假,则丢弃。尽管我们的模型在validationset取得了很高的识别率,但是在testset里仍然存在一部分识别错误的区域。这就是我们仍然需要一个过程去除去这些误判区域的主要原因。
4.4.区域整合
真字符区域随后根据它们的相对位置和大小组合成文字行,我们使用类似[6]中的启发式规则去组合字符,但是做一些略微的调整。
在原先的方法中,两个字符矩形的尺寸的比较仅仅考虑了它们之间的宽度的比例。在我们的方法中,同时考虑字符之间的宽比和高度比。如果两个字符矩形的高的比例的范围是[0.5,2],同时它们的宽的比例的范围落在[0.3,3]的话,我们认为这两个字符矩形在尺寸上是相似的。4.4.1.组合方法
如果两个字符矩形的中心点的垂直方向的距离不大于它们平均高度的1.2/3,并且它们中心点的水平距离不大于它们两个平均宽度的3倍,我们认为这两个字符矩形在位置上是相近的,具体定义可以见Eq.5。
35width(R1)width(R2).21.2height(R1)height(R2)vd.32hd3(17)
当两个字符矩形同时满足尺寸相似和位置相近时,我们认为它们属于同一个类别。然后我们使用UnionFind算法去把同一类的字符矩形进行合并。
由于在一个词中若干个字符之间的距离可能是不定的,因此很难定义一个自适应的值去适应所有情况。所以我们选择了3这个值作为水平距离的比例判断阈值。这样的选择会导致一些词会合到同一个类中,并且形成一个文字行。所以我们需要另外一个处理过程去解决这种情况。我们使用一个算法去将文字行切分成词。4.4.2.切分方法
我们首先把同一个单词行里的字符按照从左到右的顺序排序。然后从最左边第一个开始,依次计算它与后面一个字符矩形的距离。如果我们发现某个距离极大于前一个(2.5倍)字符距离,则认为我们发现了两个单词之间的间隔,于是我们将字符组从这个间隔处划分开。继续这个过程直到最后最后一个字符。
通过这种方式我们将一个文字行切分成若干个单词。
图27说明了被切分以后的单词。图27(a)是切分前的文本行,图27(b)是切分后的文本单词。
36图27切分后的单词
4.5.文本检测
在最终结果输出前,这些经过组合与切分的单词仍然需要被识别为真正的文本。这个阶段我们需要处理前面步骤3中保存下来的连体字符。由于单词与连体字符的相似性,它们可以用同一个模型去分类。
我们的模型是基于AlexNet模型的卷积神经网络。在输入预测前,我们将图块区域转为成宽100,高32的尺寸,然后输入模型中去处理。
AlexNet模型的架构可以见图28[8],这里我们没有使用两个GPU去分别训练,而是直接使用一个GPU训练所有的参数。
37图28Alex模型架构[8]
4.5.1.数据准备
在训练前,我们根据ICADR2015的trainingset里收集了3000个正样本和4000个负样本。由于训练集的数据量对于模型的架构来说过于小,因此我们使用了[2]里的合成数据。在这个数据集里,有近百万张经过合成的单词图片。我们从中挑选10万张作为正样本数据,而负样本则通过随机的方式从原始图像中截取得到。4.5.2.检测过程
模型预测的方式跟字符模型预测的效果类似。我们的方法可以较好的处理连体的字符,以及模糊场景下的字符,这是我们的方法相对传统方法的一个改良。
图29(a)是传统的MSER算法不好处理的连体字符,图29(b)是模糊字符。可以看出,本文的方法对其进行了较好的定位。
图29文本预测效果
4.6.本章小结
本章对本方法的主要步骤做了介绍,并详细说明了各个步骤的设计方法。其中包括:颜色空间变换的具体实现方式;MSER算法定位的主要思想和实现方法,ER树的构建方法,子路径分割的判断准则,裁减路径的设计依据,以及正则化的定义公式;针对字符检测部分,本章节重点介绍了数据准备的处理内容,人工合成数据的实现方法,以及网络模型架构的设计;在区域整合部分中,本章节介绍了组合方法的判断准则,以及切分方法的实现方式;最后,本章节介绍了文本检测算法的数据准备,以及检测过程的实现。
38第五章实验结果及讨论
本章介绍本方法的实验效果与讨论。具体说来,本方法在ICDAR2015的数据集上进行了测试,本章的主要内容包括测试的数据、环境以及结果。另外,本章给出了本方法的关键代码。
5.1.实验数据
ICDAR2015RobustReadingcompetition是一个文字定位与识别的国际性竞赛。这个竞赛包括四个分赛,其中第二个分赛是“自然场景文字”(FocusedSceneText),同时也是本文方法所应对的场景。这个分赛中提供的数据集包括一个训练集(trainingset),一个测试集(testingset),以及两个集合对应的groundtruth文件。
其中训练集有229张图片,图片的尺寸大小从422*102到3888*2592不等,测试集有233张图片,图片的尺寸大小从355*200到3888*2592不等。训练集中的图片用来生成分类器以及测试方法的效果,测试集中的图片用来验证算法的效果。
训练集和测试集的图片可以见图30和图31。
图30训练集图片(部分)
39图31测试集图片(部分)
我们测试的是本方法在文字定位方面的效果。文字定位方法的评测方法是计算定位到的文字框与实际的文字框的偏差。本文使用的是ICDAR2015的官方评价方法DetEval[23]。这个方法相比传统的评价方法综合考虑了多种定位效果的因素。传统的定位评价方法可能只会看矩形框一对一的情况,而这个方法考虑到了定位方法中可能会出现的多次定位情况,例如一对一的情况,一对多,多对一等。除此之外,DetEval方法还考虑了像素级的匹配效果,因此使得评价结果更为综合与全面。
图片中的文字框的标准位置是由groundtruth文件给出的。在进行训练集中图片测试时,可以使用groundtruth进行方法效果的比对。同时,ICDAR2015还提供了每个图片中字符的位置,可以使用这些位置在训练集中的图片进行字符的截取,作为字符分类器的正样本。
文字定位方法的评价指标由三个参数给出,分别是回归率(recall),正确率(precise),以及综合两者的FScore值。回归率代表着图片中真实的文本框被检索出的比例,正确率代表方法定位出的文本框是正确的定位的比例。
FScore值综合了回归率与正确率的结果,它的计算公式如下:
Fscore2recallprecise.recallprecise(18)
FScore值受回归率与正确率中两者中较小的影响,因此对两个值进行了权衡。只有同时提高回归率与正确率,才能获得一个较好的结果。单一的提升某个,而忽视另一个,只会对FScore值的提升有负面效果。
405.2.实验环境
由于本文中的方法需要使用深度学习技术,因此对计算性能要求较高。本文中的实验使用了GPU来加快训练与识别过程。本文中的方法部署在一台Linux服务器上。具体的机器配置如下:
表1实验环境与配置
设备1234CPU内存显卡硬盘配置Intel(R)Xeon(R)CPUE5-2620v2@2.10GHz6颗12核GBNVIDIA(QuadroK2000)2GB1T本文中的方法全部使用C++编写,图像处理的库使用了OpenCV最新的3.0beta版,深度学习的库使用了Berkeley视觉计算组维护的Caffe[24]。在服务器上运行,平均定位一张图片需要1秒左右的时间。
5.3.实验结果与分析
5.3.1.ICDAR2015结果
本文的方法分别在ICDAR2015的的训练集和测试集上进行了测试。图32到33是本方法在标准图片上的运行结果。可以看出本方法对各种类型的图片都能较好的进行定处理。
训练集上的图片定位效果可以见图32。
41图32训练集图片定位效果
测试集上的一些图片的定位效果可以见图33。
图33测试集图片定位效果
42为了测试本方法对于一些比较复杂的情况的定位效果。下面分几个部分进行测试与说明。
1.复杂背景。通过实验效果可以发现,本方法对包含墙壁与图案等复杂背景的图像有一定的鲁棒性。定位效果见图34。
图34复杂背景
图34(a)是背景中带有与字体相似的墙壁的图片。图34(b)的背景是复杂的不均匀图案。
2.环境影响。在训练集与测试集中,包含有很多光照不均匀的图片,本方法可以对光照改变在可接受范围内的图片有定位效果。见图35。
图35光照影响
图35(a)中间的文字有明显的光照变换。图35(b)的左边文字有光照不均匀的现象。
433.不同式样文字。本方法对不同式样(字体,颜色,模式)的文字的定位效果见图36。可以发现,本方法对于不同式样的文字的定位有一定的鲁棒性。
图36不同式样
4.字体的大小。本方法针对不同大小的字体的测试可以见图37。
图37不同大小字体
44图37(a)中的字体占据图中大部分位置,图37(b)中的字体则在图中相对较小。5.连体字。本方法对于连体字有较好的定位效果,见图38。
图38连体字符
通过实验效果可以看出,本定位方法可以较好的解决传统MSER不适合解决的连体字符的定位问题。
最后的综合定位效果,使用DetEval方法进行评价。在ICDAR2015RobustReadingcompetition自然场景文字定位测试集上的结果如下:
表2测试集上综合指标
序号123指标RecallPreciseF-Scorebaseline35.07%60.95%44.52%本文的方法65.66%63.26%.44%45测试集的基准方法(baseline)的指标是:Reccall,35.07%;Precise,60.95%;F-Score,44.52%。本方法的各项指标是Reccall,65.66%;Precise,63.26%;F-Score,.44%。可以看出,本方法的各项指标全面优于基准方法。同时,本方法的Recall比基准方法高了30个百分点,证明了本方法的鲁棒性。最终的F-Score值相比测试集的baseline提升了近20个百分点,说明了本方法的有效性。
本方法相比目前已有的几个方法[5][6],仍然还存在很多不足。相关算法以及模型还有待改进的空间,在未来的研究和试验中会对本方法进行有针对性的改善。5.3.2.处理不好的情况
下面的图片是本方法没有处理好的一些情况。可以看出,图像逆光影响占了处理失败的大部分。其次,多余的线条与复杂的背景也会对定位成功产生干扰。
图39失败情况
图39(a)和(b)中的图片都是因为光照的影响导致了部分区域没有被定位到。图39(c)中的箭头和圆圈图案被识别成了文字,导致了误检。而图39(d)中的图片则由于文字样式的特殊导致了没有检测到。
465.4.实验代码
下面,给出本方法的代码。由于篇幅,本文只给出一些核心的实现部分。完整的代码可以通过访问作者的Github主页获取(地址见本文后面的作者简介)。5.4.1.MSER算法
此部分是本文中实现的改进MSER[6]算法的代码。本方法是在OpenCV3.0提供的MSER类的基础上修改的,OpenCV的MSER实现部分就不给出,仅给出本方法对OpenCV修改的部分。
1.子路径划分与裁剪:
voidcheckAndCapture(WParams&wp){....if(child_){CompHistory*c=child_;for(;c!=0;c=c->next_){sub_path_length=0;if(wp.p.subPath){Rectrect_inter=rect&c->rect;Rectrect_union=rect|c->rect;floatarea_inter=float(rect_inter.area());floatarea_union=float(rect_union.area());floatsimilty=area_inter/area_union;if(similty if(wp.p.useOpt){floatwidth=(float)rect.width;floatheight=(float)rect.height;floataspect=width/height;floattheta_1=0.01f;floattheta_2=0.35f;floata_max=1.2f;floata_min=0.3f;if(aspect>a_max){var=var+theta_1*(aspect-a_max);}elseif(aspect 1.字符识别: stringmodel_file=\"model/char/char_deploy.prototxt\";stringtrained_file=\"model/char/char_network.caffemodel\";48stringmean_filestringlabel_file=\"model/char/char_mean.binaryproto\";=\"model/char/char_labels.txt\";Classifierclassifier_char(model_file,trained_file,mean_file,label_file);vector stringtext_model_file=\"model/text/text_deploy.prototxt\";stringtext_trained_file=\"model/text/text_network.caffemodel\";stringtext_mean_filestringtext_label_file=\"model/text/text_mean.binaryproto\";=\"model/text/text_labels.txt\";Classifierclassifier_text(text_model_file,text_trained_file,text_mean_file,text_label_file);vector 下面给出本方法中的区域合并与分割算法的代码: booluseSplit=true;if(1){size_trect_size=vecERRemove.size();if(rect_size==0)continue;49vector 本章描述了本方法使用的实验数据,对实验环境进行了介绍,重点对实验的结果进行了分析,讨论了实验的不足与待改进的地方。最后本章节给出了本方法的部分核心代码。 51第六章 6.1.本文总结 总结与展望 定位文字是所有识别与分析文字工作的第一步,同时也是相对复杂的一个步骤。相对传统的文档文字定位,自然场景下的文字定位具有背景复杂,影响因素多,形态不一等特性。本文根据传统的文字定位技术进行改进与补充,并结合近年来的深度学习技术,提出一个改进后的自然场景下文字定位方法, 本文的主要工作包括以下几个方面: 1、对深度学习以及卷积神经网络研究的进展,给出一个较为完整的综述。2、针对自然场景下的文字定位问题,提出了一个结合MSER提取与CNN检测的综合方法,方法首先进行MSER的提取,降低了后面进行CNN检测的备选文字,同时将连体字等特殊情况加以区分,使用两个不同的CNN进行检测识别,提升了方法整体的鲁棒性与准确率。 3、介绍了CNN的主要思想,网络结构,训练方法等。并针对本文中使用的两个CNN模型,给出了网络架构,训练方法,以及检测过程。 4、针对ICDAR2015中自然场景文字定位竞赛中的测试集图片进行了测试,验证了本方法的可行性与有效性,并讨论了本方法的不足。 本文的主要贡献与创新点是: 1、提出了一种新的结合改进MSER算法与深度学习技术的自然场景文字定位方法; 2、针对连体字符,模糊字符等传统MSER不好提取的区域,提出了启发式的规则去处理; 3、通过在多通道的图像空间上进行MSER的提取来增强方法的鲁棒性。 6.2.下一步工作 虽然我们对自然场景下的文字定位做出了很多工作,并取得了一定的成果。但是,仍然存在一些不足,有待进一步解决。 1.方法中的鲁棒性仍然不足,由于MSER算法对于背景,光照的敏感性,一些带有背光的图片中的文字没有被MSER提取到,也就造成后续的所有处理步骤无法作用。因此,改善MSER方法对光照的敏感性是后面研究的工作重点。 522.本方法中在进行文字检测时,舍弃了文字的笔画等信息,因此造成了文字检测的CNN在训练时,准确率不高。同时,没有使用预先初始化的非监督训练方法以提高CNN的特征抽取能力,影响了CNN检测的效果。 3.本方法在定位时,会产生较多的负样本,例如墙壁,草丛等等,在后续的进一步工作中,会考虑加大这些负样本的权重,从而更好地排除类似的误检物体。 53参考文献 [1]Pan,Y.F.,Hou,X.,Liu,C.L.:Textlocalizationinnaturalsceneimagesbasedonconditionalrandomfield.In:Proc.ICDAR.(2009) [2]JADERBERG,M.,SIMONYAN,K.,VEDALDI,A.,ANDZISSERMAN,A.2014.Readingtextinthewildwithconvolutionalneuralnetworks.arXivpreprintarXiv:1412.1842.[3]J.Matas,O.Chum,M.Urban,andT.Pajdla,“RobustWideBaselineStereofromMaximallyStableExtremalRegions,”Proc.BritishMachineVisionConf.,pp.384-393,2002. [4]Neumann,L.,Matas,J.:Real-timescenetextlocalizationandrecognition.In:Proc.CVPR.(2012). [5]X.-C.Yin,X.Yin,K.Huang,andH.-W.Hao,“Robusttextdetectioninnaturalsceneimages,”PatternAnalysisandMachineIntelligence,IEEETransactionson,vol.36,no.5,pp.970–983,May2014. [6]M.-C.Sung,B.Jun,H.ChoandD.Kim,“SceneTextDetectionwithRobustCharacterCandidateExtractionMethod”In:Proc.ICDAR.(2015). [7]YannLeCun,YoshuaBengio&GeoffreyHinton,Deeplearningdoi:10.1038/nature14539 [8]Krizhevsky,A.,Sutskever,I.&Hinton,G.ImageNetclassificationwithdeepconvolutionalneuralnetworks.InProc.AdvancesinNeuralInformationProcessingSystems251090–1098(2012). [9]Bengio,Y.,Lamblin,P.,Popovici,D.&Larochelle,H.Greedylayer-wisetrainingofdeepnetworks.InProc.AdvancesinNeuralInformationProcessingSystems19153–160(2006).[10]Hubel,D.H.&Wiesel,T.N.Receptivefields,binocularinteraction,andfunctionalarchitectureinthecat’svisualcortex.J.Physiol.160,106–1(1962). [11]Rumelhart,D.E.,Hinton,G.E.&Williams,R.J.Learningrepresentationsbyback-propagatingerrors.Nature323,533–536(1986). [12]Hinton,G.E.,Osindero,S.&Teh,Y.-W.Afastlearningalgorithmfordeepbeliefnets.NeuralComp.18,1527–15(2006). [13]Hinton,G.E.&Salakhutdinov,R.Reducingthedimensionalityofdatawithneuralnetworks.Science313,504–507(2006). [14]LeCun,Y.etal.Handwrittendigitrecognitionwithaback-propagationnetwork.InProc.AdvancesinNeuralInformationProcessingSystems396–404(1990). [15]AndrewNg.etal.UnsupervisedFeatureLearningandDeepLearningTutorialhttp://ufldl.stanford.edu/tutorial/. [16]Glorot,X.,Bordes,A.&Bengio.Y.Deepsparserectifierneuralnetworks.InProc.14thInternationalConferenceonArtificialIntelligenceandStatistics315–323(2011).[17]LeCun,Y.,Bottou,L.,Bengio,Y.&Haffner,P.Gradient-basedlearningappliedtodocumentrecognition.Proc.IEEE86,2278–2324(1998). [18]Srivastava,N.,Hinton,G.,Krizhevsky,A.,Sutskever,I.&Salakhutdinov,R.Dropout:asimplewaytopreventneuralnetworksfromoverfitting.J.MachineLearningRes.15,1929–1958(2014). [19]Dauphin,Y.etal.Identifyingandattackingthesaddlepointprobleminhigh-dimensionalnon-convexoptimization.InProc.AdvancesinNeuralInformationProcessingSystems272933–2941(2014). [20]Choromanska,A.,Henaff,M.,Mathieu,M.,Arous,G.B.&LeCun,Y.Thelosssurfaceofmultilayernetworks.InProc.ConferenceonAIandStatisticshttp://arxiv.org/abs/1412.0233(2014). [21]DavidNist´erandHenrikStew´enius.LinearTimeMaximallyStableExtremalRegions.In:Proc.ECCV.(2008). [22]MichaelD.andHorstB.,EfficientMaximallyStableExtremalRegion(MSER)Tracking.In:Proc.CVPR.(2006). [23]ChristianWolfandJean-MichelJolion.Objectcount/AreaGraphsfortheEvaluationofObjectDetectionandSegmentationAlgorithms,In:Proc.ICDAR.(2006). 55[24]Jia,YangqingandShelhamer,Evan.etal.Caffe:ConvolutionalArchitectureforFastFeatureEmbedding.arXivpreprintarXiv:1408.5093 [25]AlessandroZamberletti,LuciaNoce,andIgnazioGallo.TextLocalizationbasedonFastFeaturePyramidsandMulti-resolutionMaximallyStableExtremalRegions.In:Proc.ICDAR.(2015). [26]WeilinHuang,YuQiao,andXiaoouTang.RobustSceneTextDetectionwithConvolutionNeuralNetworkInducedMSERTrees.In:Proc.ECCV.(2014).[27]M.Ranzato,Y.Boureau,andY.LeCun.“Sparsefeaturelearningfordeepbeliefnetworks,”inNeuralInformationProcessingSystems,2007. [28]Marc'AurelioRanzato.“NEURALNETSFORVISIONCVPR2012TutorialonDeepLearningPartIII”.Google. [29]AnnaZhu,GuoyouWang,YangboDong.Detectingnaturalscenestextviaautoimagepartition,two-stagegroupingandtwo-layerclassification.InPatternRecognitionLetters,2015. [30]D.Karatzas,F.Shafait,S.Uchida,M.Iwamura,L.Gomez,S.Robles,J.Mas,D.Fernandez,J.Almazan,L.P.delasHeras,\"ICDAR2013RobustReadingCompetition\InProc.12thInternationalConferenceofDocumentAnalysisandRecognition,2013,IEEECPS,pp.1115-1124. [31]JiaDeng,WeiDong,RichardSocher,Li-JiaLi,KaiLiandLiFei-Fei,\"ImageNet:ALarge-ScaleHierarchicalImageDatabase\InProc.CVPR.(2009). [32]马然.基于深度学习的自然场景文本识别系统的设计与实现[D].吉林大学.(2015).[33]李嘉.基于卷积神经网络的自然场景下的车牌检测[D].郑州大学.(2012). 56 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- nryq.cn 版权所有 赣ICP备2024042798号-6
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务