1、目录第一章 绪论.11.1. 研究背景和意义.11.2. 自然场景文字定位技术研究现状.21.2.1. 基于滑动窗口的定位技术.21.2.2. 基于连通域的定位技术.31.2.3. 混合的定位技术.31.3. 自然场景文字定位的难点.41.4. 本文的主要工作.51.5. 本文的组织结构.6第二章 深度学习技术简介.72.1. 特性与发展历史.72.2. 卷积神经网络.82.2.1. 局部感受野.92.2.2. 权值共享.102.2.3. 子采样.112.3. 卷积神经网络的结构.122.3.1. 卷积层.132.3.2. 池化层.142.3.3. 全连接层.152.4. 卷积神经网络的训练.
2、162.4.1. 梯度下降.172.4.2. 反向传播.182.5. 本章小结.20第三章 基于深度学习的自然场景文字定位方法的设计.203.1. 自然场景文字定位方法的需求分析.213.1.1. 功能性需求.213.1.2. 非功能性需求.213.1.3. 接口需求.223.2. 设计目标.223.3. 设计思想与依据.233.3.1. MSER与深度特征.233.3.2. 连体字符处理.233.3.3. 多通道检测.243.4. 自然场景文字定位方法的总体框架.243.5. 本章小结.25第四章 基于深度学习的自然场景文字定位关键算法的实现.254.1. 颜色空间变换.264.2. MSE
3、R算法定位.274.2.1. ER树构建.274.2.2. 子路径分割和裁剪.284.2.3. 正则化.304.3. 字符检测.314.3.1. 数据准备.314.3.2. 人工合成.334.3.3. 模型架构.344.4. 区域整合.354.4.1. 组合方法.354.4.2. 切分方法.364.5. 文本检测.374.5.1. 数据准备.384.5.2. 检测过程.384.6. 本章小结.38第五章 实验结果及讨论.385.1. 实验数据.395.2. 实验环境.415.3. 实验结果与分析.415.3.1. ICDAR2015结果415.3.2. 处理不好的情况.465.4. 实验代码.
4、475.4.1. MSER算法.475.4.2. CNN识别. 485.4.3. 合并与分割.495.5. 本章小结.51第六章 总结与展望.516.1. 本文总结.526.2. 下一步工作.52参考文献541第一章 绪论1.1.研究背景和意义随着网络带宽与计算机性能的提升,图像越来越多地出现在各类应用中,如网络上流行的图片搜索和视频分享,移动终端的美白相机,交通行业的违章车辆抓拍,以及最近兴起的机器人行业中的智能视觉等。图像中包括各种不同类型的物体,如人、动物、建筑等。其中,文字作为自然场景图像中的一个重要兴趣点,往往蕴含着场景的关键潜在信息,可以进一步用于场景理解、商品推荐、自动导航与驾驶
5、等。因此,对自然场景图像中的文字定位进行深入研究具有重要的理论意义和实用价值。研究自然场景图像中的文字主要有以下作用。首先,文字作为人类创造的符号,往往包含丰富的抽象信息。相比自然场景中的其他内容,如物体或者人等信息,文字往往包含着一些关键的信息,例如交通指示牌中的位置,以及行驶的汽车的牌照等。这些信息,无法通过物体识别技术得出,只能通过提取文字分析。其次,文字相比其他信息,具有形状描述相对固定的特征。与一些具有复杂形状或者多种姿态的物体比较,文字往往具有近似的形态以及统一的模式(例如文字是以文字行的形式组织的)。图像中的文字可以用作许多重要用途,包括:自然场景理解,例如通过场景中的文字对场景
6、进行分析,获取场景的位置、方位、距离等信息,从而更好地为对场景中的物体进行预测建模;图像中的物体信息获取,例如可以对图像中物体的商标或者标签进行阅读,获取商品的相关信息,为用户进行相关商品的推荐,图像中的文字信息还可以用来做图像搜索与匹配;机器的自动驾驶与导航,自动驾驶汽车技术可以通过道路两侧的路牌文字获取方位来指引行驶,机器人则可以使用路标在复杂的街道或者是工厂车间中导航。相比传统的扫描文档中的文字,自然场景下的文字具有以下特点:背景复杂,传统的文档文字往往具有统一的背景,并且有清晰的光照,因此较易进行定位。自然场景情况下,背景往往非常复杂,较难使用简单的技术将背景与文字进行分离,这方面的算
7、法尚在研究当中;环境因素影响较大,自然场景下的文字所处的位置会有遮挡,模糊,逆光等周边环境的影响,给定位带来了困难;文字样式不一,自然场景下的文字往往具有不同的尺寸、颜色、字体,既有传统的印刷体,同时也有草书和艺术等特殊样式的文字,对定位技术的鲁棒性提出了一个挑战(见图1)。2图1 不同形态的文字自然场景图像中的文字具有许多潜在的重要作用,其检测、定位与识别等相关研究已成为目前学术界和工业界的热点。自然场景下的文字定位技术是实现机器视觉与智能中必要的一环,相关信息可以与自然语言理解等技术相结合,为机器智能等技术提供助益。1.2.自然场景文字定位技术研究现状自然场景文字定位技术主要包括三大类别,
8、分别是:1、基于滑动窗口与机器学习的定位方法,其中常用的机器学习模型包括SVM,AdaBoost等;2、基于连通域的文字定位方法,这里面的代表主要有MSER、SWT等;3、以上两者的混合方法。下面分别说明这几类别。1.2.1.基于滑动窗口的定位技术基于滑动窗口的文字定法方法主要使用滑动窗口与低级特征结合,通过机器学习模型去识别可能是字符的区域,并建立一个文本置信图,其代表方法有 Pan1和Jaderberg2。其中,Pan1使用滑动窗口结合Waldboost和HOG特征去建立原始图像的文本置信图。文本置信图接着和一个多层感知机结合,去计算领域图的二值化权值。Pan1接着3使用了CRF(Cond
9、itionalRandomField,条件随机场)去过滤领域图中的非文本区域,剩余的文字则使用最小生成树算法来生成文本行。Jaderberg2使用了一个深层的卷积神经网络去进行端到端的文本识别。与传统方法中先识别文字不同,他的方法直接对英文的单词做一个大类(接近9万)的识别。在他的方法中使用了合成数据去扩充机器学习的训练数据。这与本文中对于卷积神经网络的训练方法类似。基于滑动窗口的定位方法的主要问题是:必须对图像进行多尺度的缩放,只有在多尺度的图像上才能获得较好的结果,带来的结果就是相对大的计算量。滑动窗口的另一个问题就是容易产生较多的误检,这对机器学习的分类器提出了较大的挑战。1.2.2.基
10、于连通域的定位技术基于连通域的文字定法方法主要是基于以下的观察:大部分英文文字都是联通的,并且具有统一的式样。基于连通域的方法首先提取图像中的连通域,然后使用一个分类器去检测是否是文字。由于连通域的数目相对滑动窗口少很多,因此降低了处理的时间。大部分的连通域文字定位技术使用的是 MSER3(Maximally Stable ExtremalRegions,最大极值稳定区域)算法。这个算法提取的连通域是尺度无关的,从而避免了对图像的多尺度搜索,进一步地降低了处理时间。基于连通域的定位技术往往具有速度快的优势,但对于提取不到的连通域,则无能为力。Neumann4证明了在ICDAR2011竞赛中,E
11、R算法可以将百分之95的文字区域从多通道图像中提取出来。但是,ER算法提取出的非文字区域相对也较多。Yin5提出了一个正则化的variation定义,对于非文字区域的提取有抑制作用,从而提高了抓取真字符区域的准确性。Sung等人6在Yin5的基础上,提出了一个对ER树划分路径以及裁剪的方法,进一步筛除了大量的非文字区域。尽管基于MSER的算法可以解决大部分通常的文字,但是面对一些异常的情况,例如光照、模糊等,MSER算法显得很无力。在ICDAR2013的文本定位竞赛30中,大部分基于MSER的算法都无法良好的处理这些特殊情况。有的区域因为无法被提取,有的区域因为自身的几何特征而在筛选过程中被抛
12、弃。针对这些式样的文字提出MSER的解决方法,是此类方法亟待解决的问题。1.2.3.混合的定位技术混合方法是对以上两种方法的混合。这类方法的优势在于既有MSER的效率,同时也有滑动窗口的鲁棒性,其中的代表方法有Zamberletti等人25和Huang等人26提出的算法。其中,Zamberletti25等人使用一个多尺度的MSER检测方法,这种方法可以较好的解决传统MSER算法不擅长处理的连体字与其他式样。Huang26等人则使用了MSER4与CNN结合的方法,首先用MSER提取初步区域,然后对初步区域使用滑动窗口和CNN检测来建立图像中的文本置信图,最后使用NMS(非极大值抑制)与thres
13、hold方法来获取文本区域。本文中的方法与26中的方法类似,都是使用MSER与CNN结合的方法来进行定位。所不同的是本文使用了一个启发式的方法去区分字符和文本,然后对这两类目标使用了不同的CNN模型,从而提高了对部分难解决的文字式样的检测率。1.3.自然场景文字定位的难点生活领域中的大部分图像都是在自然场景下获取的。原先的文档OCR系统虽然拥有较高的定位率27,但是对于使用条件做了严格的限制。因此,研究自然场景下的文字定位有其重要的现实意义。自然场景中的文字图像可以是在任何环境下拍摄的,大部分图像不会引入先验知识。一张图片中,文字出现的位置可以是任意的。同时,一张图片中也可以包含若干行文字。每
14、行文字的个数也是任意的,既有十多个字符组成的单词,也有一个字符的,例如停车指示牌中的”P”等。除此之外,自然场景中的文字定位还有如下的困难:1、背景复杂。自然场景下的文字通常是在街道拍摄的,因此背景中往往具有人群,建筑,植被,护栏,装饰等富含边缘特征的物体。建筑物中的墙壁,往往具有重复出现的图案,例如红砖的形状与方形的字符相似,重复出现后较易被识别为文字行。植被中的草丛,容易与文字中的草书混淆。这两类物体,在图像中大幅出现的话,容易产生较多的误检数目。图2是两幅自然场景下的图。其中图2(a)的背景是大量的植被,图2(b)中的背景则是红砖墙壁。图2 复杂背景下的文字52、环境因素影响大。自然场景
15、下的文字可以在任何条件下拍摄,因此易于引入各种容易产生干扰的信息。例如不均匀的光照、模糊以及半透明等效果。光照的不均匀使得文字行中有些部分太亮或者太暗,造成定位的失败。模糊效果使得连通域的算法很难将文字从单词中抠出来。半透明效果会产生较多的漏检。3、形态不一的字体。除了复杂的背景,环境因素的影响以外,自然场景下的文字还具有形态不一的特征。具体表现为不一样的大小,尺寸,颜色,字体,样式等等。一张图片中既可能有占据全图的大字符,也可能有在一行角落的小文字。文字的样式也不同,既有传统的印刷体,也有手写体,以及艺术体等,这些都给定位带来了困难。图3是两幅特殊形态字的图。其中图3(a)中的文字是艺术字体
16、,图3(b)中的文字则是手写体。图3 特殊形态的字体由于自然场景下的文字定位具有以上所说的困难,因此对于算法的鲁棒性就有了较高的要求。1.4.本文的主要工作本文主要针对自然图像下的文字定位进行研究,根据传统的文字定位技术进行改进与补充,并结合近年来的深度学习技术,提出一个改进后的自然场景图像中的文字定位方法,即改进的MSER算法去提取字符疑似区域,然后使用卷积神经网络去进行识别。本文的方法主要包含五个部分,分别是图像预处理、MSER提取、文字检测、区域整合,以及文本检测等。本文的方法在标准测试集上进行了测试,结果表明本文方法对部分图片有较好的定位效果。本文的具体工作包括:1、对深度学习以及卷积
17、神经网络研究的进展,给出一个较为完整的综述。62、针对自然场景下的文字定位问题,提出了一个结合MSER提取与CNN检测的综合方法。3、给出了CNN模型的网络架构,训练方法,以及进行自然场景下的文字检测过程。4、针对ICDAR2015中自然场景文字定位竞赛中的测试集图片进行了测试,验证了方法的可行性与有效性,并讨论了方法的不足。本文的主要贡献与创新点是:1、提出了一种新的结合改进MSER算法与深度学习技术的自然场景文字定位方法;2、针对连体字符,模糊字符等传统MSER不好提取的区域,提出了启发式的规则去处理;3、通过在多通道的图像空间上进行MSER的提取来增强方法的鲁棒性。1.5.本文的组织结构
18、本章对本文的研究目的和背景进行了介绍,说明了当前文字定位研究的现状,以及自然场景下文字定位的困难。本文的章节结构安排如下:第二章介绍深度学习的产生和发展过程,重点对深度学习中的卷积神经网络进行介绍,包括设计思想、网络结构和训练方法等。第三章对本文的方法的总体设计进行介绍,包括需求分析、设计目标和设计依据等,最后给出本方法的整体框架。第四章对本文的主要算法实现进行说明,包括MSER提取、文字检测、合并和文本检测等几个过程。第五章针对ICDAR2015中自然场景文字定位竞赛中的测试集图片,进行方法的有效性测试,计算了方法的回归率与准确率两个指标,并与竞赛中的基准方法进行了对比。第六章总结本方法中存
19、在的问题,并提出下一步的研究计划。7第二章 深度学习技术简介深度学习(DeepLearning)技术是最新兴起的机器学习技术之一7。自2012年以来,深度学习的研究与实践呈现出一种火爆现象。这种现象的产生原因跟深度学习相比传统方法的优势离不开关系。深度学习相对于传统的机器学习方法有两大主要优势:1.效果优越。经过深度学习训练的模型在各类人工智能领域(计算机视觉,语音识别,自然语言处理等)的效果比原先的机器学习方法提升明显。典型例子就是ImageNet312012年的竞赛,基于深度学习的方法不仅获得了第一名的成绩,更是将错误率下降了接近一半8;2.使用方便。传统的机器学习方法对模型的特征依赖较大
20、,而这些特征往往需要由专业的人员不断的调试才能获得较好的结果。深度学习是一种特征学习方法,不需要人工编写特征,它可以自动的从原始数据(图像,音频,文本)中学习特征,而这些特征接下来又可以输入分类器中去进行预测。因此,使用深度学习方法,可以明显的降低机器学习在这些领域中应用的门槛7。深度学习的劣势是训练量大,往往需要比传统方法多得多训练时间。但这个问题随着并行化算法的优化和图形加速卡(GPU)的普及而得以解决,训练时间不再是制约使用的瓶颈,因此更进一步地提升了深度学习使用的普适性。由于深度学习相比传统机器学习的这些显著不同,因此也把传统的机器学习方法称为“浅层学习”(ShallowLearnin
21、g),这其中包括SVM、boosting、KNN等。2.1.特性与发展历史深度学习一个较大的优势就是非监督的特征学习(unsupervisedfeaturelearning)。传统的机器学习方法大部分都是监督学习,这需要大量的带标签的数据去进行训练才能获得较好的效果,而一般最为稀少的数据就是标签数据。深度学习可以通过非监督的方法从数据中学习到特征,并且可以在标签数据稀少的情况下也能取得不错的预测效果9。深度学习的主要特色是逐层特征学习。通过多层的神经网络,深度学习不断从前一层的表征中抽取到更进一步的特征,从而降低了数据的维度,更易于发现本质特征。以一个四层隐藏层的深度神经网络为例,第一层从原始
22、图像中学习到边缘(edge)的特征,第二层在第一层的边缘之上,学习到图案(motifs)的特征,第三层在图案的基础上,学习到组成(part)的特征,第四层在第三层的组成之上,学习到目标(object)的特征,最后目标的特征输入分类器,去完成识别或检测任务。在整个网络的架构中,后面的每8层负责对上一层的输入进行抽象,不断学习到更高级的内容。深度学习的这种方法,易于使模型学习到数据中最凝炼的部分,从而改善分类与识别效果。深度神经网络的这种架构是从动物与人的视觉皮层中得到了启发。动物与人的视觉神经也是通过多层的不断抽象的表征来获取信息的10。深度神经网络通过模拟这种结构,取得了良好的成果,这也证明了
23、在人工智能领域进行仿生设计的可行性。传统的神经网络最大的劣势就是训练耗时较多。80年代末期,反向传播算法(backpropagation)11的提出大幅降低了神经网络训练的复杂性,使得一个包含三层(1层输入,1层隐藏,1层输出)的网络在可接受的时间内就可以训练结束。但是对三层以上的网络,训练仍然需要较多的时间。这也导致了在相当长一段时间(90年代中期)以内,神经网络算法被主流的机器学习和计算机视觉社区所抛弃7。2006年,这个情况得到了改善。反向传播算法的发明人GeofferyHinton发现:多层神经网络的训练复杂性可以通过逐层初始化(pre-training)的技术得以解决,而逐层初始化可
24、以通过非监督的方式进行学习,这就大幅度的降低了多层神经网络的训练复杂性12。其次,Hinton提出,多层的神经网络更容易学习到数据的本质特征13。这两项发现,一方面解决了神经网络训练的可行性,另一方面证明了神经网络的有效性。神经网络再一次进入到机器学习界的主流来,并成为研究的关注点。2012年,Hinton等人在ImageNet31竞赛中,用多层的卷积神经网络(Convolutionalneuralnetwork)成功地对包含一千类别的一百万张图片进行了训练,取得了分类错误率15%的好成绩,这个成绩比第二名高了近11个百分点,充分证明了多层神经网络识别效果的优越性8。在这之后,关于深度神经网络
25、的研究与应用不断涌现,并在计算机视觉,语音识别,自然语言处理等多个领域取得了比以往机器学习方法提升明显的成绩。目前,除了多层神经网络(DNN)以外,深度学习的阵营中还包括两个网络架构:CNN以及RNN(Recurrentneuralnetwork,递归神经网络)。CNN在计算机视觉与语音识别领域取得了较好的成绩,RNN则在自然语言处理,语音识别,机器翻译等领域取得了较好的成绩。本文的方法主要基于CNN,因此本文首先从CNN的主要思想、结构与计算方法等方面对CNN作简要介绍。2.2.卷积神经网络卷积神经网络是一种特殊的深度神经网络14。其主要特性包含下面几点:局部性,共享性以及平移不变性。体现到
26、设计思想上来说,就是卷积神经网络中的局部感受野、权值共享,以及子采样三个思想。下面分别对这些思想加以介绍。92.2.1.局部感受野与传统的神经网络不一样,卷积神经网络中包含有几个特殊的层,这些层并不与它的上一层形成一种全连接的关系,而是形成一种局部连接的关系。层中的每一个节点只与上一层中若干个平面上相邻的节点形成连接。这里是借鉴了视觉神经中感受野的思想。在视觉皮层中,一个神经元只会对其最近的几个神经元产生反应。这是叫做局部感受野(localreceptivefield)的原因。局部感受野的连接效果见图428。左边的图是全连接的网络,右边的图是局部连接的网络。图4 局部连接28局部感受野思想的用
27、意是让网络在图像的局部区域上进行学习。由于自然界的图象是一种具有局部统计特征的信息数据,因此这种方式可以学习到图像中局部的特征。局部连接方式的另一个好处就是降低了所需要学习的参数的数量,让参数显著性降低。假设一个96*96大小的图像,其与网络中的第一层,也就是感受野层进行连接。感受野层中的节点数量是100,那么在这两层的连接中拥有的参数的数量可以计算为:846400.1009696 (1)倘若让感受野的节点只连接图像中某个8*8的图块(patch)的话,那么感受野层中的每个节点只对应到8*8=64的参数数量,相比原先的96*96有了明显的降低。但是这样的连接方式考虑到了图像中一个局部,而没有考
28、虑到其他局部。为了学习到图像上所有局部的特征,需要考虑图像中所有的8*8的图块大小。这个数量通过Eq.2可以计算得出: .898918-9618-96 )()( (2)为了连接所有的图块,需要有同样数量的感受野层的节点,也是89*89。按照这种方式计算,参数的总量是:10. 506944898988 (3)参数数量相比原先改变并不大,这是权值共享思想应用的主要原因。2.2.2.权值共享卷积神经网络中另一个重要的思想就是权值共享(sharedweights)。权值共享是让所有的感受野的节点数目共享同一个权值。以Eq.3为例,如果权值共享的话,所需要学习的参数数量为: .6488 (4)应用权值共
29、享后,整个网络的参数数量有了104数量级的降低。权值共享的启发来源是自然图像中局部区域上的统计稳定特性。我们可以把在一个图像某个局部中学习到的特征应用到其他局部中。例如,图像中每一个局部都有边缘的信息,因此可以用检索边缘的特征去检索图像中其他区域中的边缘。通过这种方式,实现了目标在图像中的位置无关性。权值共享的示意见图528,其中左图是局部连接但非权值共享的网络,右图是局部连接并且权值共享的网络。图5 权值共享28如果把局部感受野和权值共享合在一起看的话,就是一个固定权值的8*8的核遍历图像。从数学上看,就是对图像进行了一次卷积操作,这也是网络被称之为卷积神经网络的原因。卷积神经网络中负责局部
30、感受野和权值共享功能的层也称之为卷积层。对图像卷积的一个示例可以见图615。其中卷积核内的权值是红色的下标,这些值不是固定给出的,而是通过训练与学习得到的。与Sobel算子等人工设计核的区别是,卷积核的权值是不固定的,随着每次训练的不同而改变,而Sobel算子的核都是人们设计的,是固定给出的。11图6 卷积操作15可以看出,经过卷积计算后形成的节点以二位数组的形式组织,类似于一副缩小的“图像”。这幅“图像”是对原图进行特征过滤后得出的中间图,称之为特征图(featuremap)。如果让特征图作为下一个卷积层的输入,那么可以得到对应于这个特征图的再一次过滤的特征图。卷积神经网络通过层层过滤的方式
31、,不断从原始图像中抽取更高层的特征,作为最终分类器的输入,这也是深度学习中表征学习(representationlearning)的体现。2.2.3.子采样卷积神经网络具有平移不变性,图形中轻微的平移并不影响识别的结果。这个特性与子采样思想是分不开的。子采样是对卷积层生成的特征图用一个最大核或者平均核进行无重叠的扫过。无重叠意味着核的步长与大小保持一致。最终的结果就像对特征图进行了一次缩放,因此称为子采样(subsample)。最大核取出对应集合中的最大像素值,平均核取对应集合中的平均像素值。子采样也称之为池化(pooling),池化输出的值被传输到池化节点上,全部的池化节点组织的二维数组也称
32、之为特征图。关于池化技术的示例,可以见图715。12图7 池化操作15池化技术的主要启发来源是为了让神经网络对图像中的位移产生鲁棒性。经过池化技术以后,原始图像的轻微位移不会对输出的特征图产生影响,从而使模型的识别对于平移具有不变性。池化技术的另一个优势是再一次缩减了参数的数量。89*89的特征图,经过2*2的池化以后,变为45*45的特征图,进一步对表征进行了维度的缩减。在卷积神经网络中,池化是单独作为一层,放置在卷积层之后。一个卷积层往往和一个池化层配对,形成一次卷积过程。一个卷积神经网络中往往包含若干个卷积过程。下面对卷积神经网络的具体结构进行说明。2.3.卷积神经网络的结构卷积神经网络
33、除了拥有神经网络的全连接层以外,还包含有卷积层,池化层等特殊层。按照数据流向的顺序来说,一个卷积神经网络的架构是:输入层,卷积层,池化层,卷积层(第2个),池化层(第2个),卷积层(第n个),池化层(第n个),全连接层(第1个),全连接层(第2个),全连接层(第m个),输出层。总共包含的层数如下: m.2n21m2n1 (5)在各层之间,一般有非线性函数作为桥接。例如每个节点的输出会经过非线性函数的转换。非线性函数的作用是让最终模型具有非线性化的区分能力。13非线性函数阵营中包括传统的sigmod以及tanh等函数,现在的深度学习界最流行的是ReLU函数16。ReLU函数的计算公式非常简单,见
34、Eq.6:).,0max(y x (6)这个函数的好处在于:不仅可以让网络呈现稀疏性(更好的模拟人脑的神经工作方式),同时也可以让梯度下降收敛的速度加快。除了非线性函数以外,卷积神经网络中还可以使用Dropout技术。这个技术是让网络中的某些节点在训练时随机地不工作,从而有效的防止模型的过拟合18。图8是一个经典的卷积网络架构-LeNet5,这个网络是由卷积神经网络的发明者Y.LeCun在17提出的。本文中使用的字符识别模型正是基于这个架构的。下面的小结以这个网络为例,来说明卷积神经网络的具体结构。图8 LeNet-5架构172.3.1.卷积层卷积层一般是卷积神经网络的第一个隐藏层。它的主要作
35、用是从图像或前一层的特征图中提取局部特征。卷积层使用一个核来遍历前一层,核中的权值是由训练学习得到的。核的大小则是由使用者决定的。通过卷积过程生成的所有输出节点会形成一个二维的特征图。生成的特征图的尺寸会比原始图像的小。假设一个M*M大小的图像,使用一个n*n的核去进行卷积操作后生成的特征图的大小可以通过下面的公式计算:).1()1( nMnM (7)卷积层可以包含若干个特征图。每个特征图对应一个不同的卷积核。不同的核代表着对图像中不同局部模式的匹配和搜索。若干个特征图都可以看作是对原始图像的不同的表征。卷积层体现了局部感受野和权值共享这两个设计思想。14在LeNet5架构中,共包含两个卷积层
36、。图9中红色区域标注的地方就是LeNet5架构的第1个卷积层。第1个卷积层通过一个5*5大小的核对原始的32*32大小的图像进行卷积,生成特征图的大小是: 28.28=1)+5-(321)+5-(32 (8)图9 第1个卷积层第1个卷积层共包含6个特征图。后一层池化层中的6个特征图与前一层中的保持一一对应。2.3.2.池化层池化层主要是进行子采样过程。通过对图像实现一个无重叠的过滤操作,池化层完成了对特征图的一次维度降低过程。一个2*2的池化操作会使原始特征图的面积缩小到原来的1/4,从而改善学习训练的速度。池化操作通过最大池或者平均池操作对图像的局部位移以及变形进行了平滑,从而使模型对于平移
37、产生了鲁棒性。同卷积层一样,一个池化层的输出也是特征图。池化层中的特征图的数目与它上层所连接的卷积层中的特征图的数目保持一致,一一对应。在池化层的池化节点的输出上,往往会叠加一个非线性函数,例如ReLU函数,从而让网络的表征具有稀疏性。在LeNet5架构中,共包含两个池化层。图10中红色区域标注的地方就是LeNet5架构的第1个池化层。第1个池化层通过1个2*2的池化核对前一层的28*28大小的特征图进行池化操作,生成一个14*14大小的特征图。15图10 第1个池化层在第1个池化层后,紧跟着第2个卷积层,也就是图11中所示的C3层(蓝色区域)。C3层使用的核的大小是5*5,所以C3层中每个特
38、征图的大小是:10.10=1)+5-(141)+5-(14 (9)图11 第2个卷积层C3层中使用了16个不同的卷积核以生成了16个特征图。每一个卷积核对应前面S2层中特征图的组合。图1217说明了这些组合的关系。图12 卷积对应关系17横排是C3层中的特征图的标号,共16个,竖排是S2层中的标号,共6个。2.3.3.全连接层卷积神经网络中,全连接层往往处在最后的位置,仅在输出层之前。16全连接层中的每个节点与前一层的所有节点都有连接。每个连接对应一个权重(这里的权重与前面的权值都是参数的意思,不同之处在于全连接层中一般称之为权重,而卷积操作中一般称之为权值)。一个10节点的全连接层,前一层的
39、节点数是20,两层之间的连接与权重的数量是: .2002010 (10)全连接层与传统神经网络中的作用一致,用来模拟神经元的信号传递与抽象表征作用。全连接层的节点数目一般会呈现逐层递减的关系,从而让后面的层次需要用更少的维度去表达更多的信息,迫使网络对信息进行更高程度的抽象,形成更高层的表征。全连接层中可以使用Dropout18技术来随机地让某些节点在训练的一个迭代阶段不工作,从而让其他节点不会对特定的节点产生依赖,降低各个节点之间的耦合关系,这种方式可以让模型不容易产生过拟合8。图13的红色区域标注的地方就是全连接层。其中C5层既可以理解为卷积层,也可以理解为全连接层。F6层是纯粹的全连接层
40、。OUTPUT层既是输出层,也与前一层保持全连接关系。图13 全连接层C5层中的每个节点使用一个5*5的核对前一层的特征图进行了卷积。由于前一层的特征图的大小就是5*5,因此正好可以看作全连接关系。F6层以及OUTPUT层与前一层都是全连接的关系。可以看出C5,F6,OUTPUT三层节点数呈现逐渐减少的关系,从而让网络可以向着不断抽象高级的特征前进。OUTPUT层是分类层,其中节点数目与类别数目保持一致,都是10。2.4.卷积神经网络的训练卷积神经网络的训练方式与传统的神经网络一致,都是使用梯度下降和反向传播这两个主要算法。其中,梯度下降用来使网络的权重向着全局的残差(cost)最小前进。而反
41、向传播算法用来计算每次权重应该减小的梯度。17下面说明这两个算法。2.4.1.梯度下降机器学习中模型预测结果与实际标签的差距的方程叫做代价函数(costfunction)。机器学习训练的目的是找到一系列的参数,使得对于全部训练数据与类别,代价函数的值最小。对于训练数据有10000的模型,训练目的是使得所有10000数据的预测与实际差距最小;对于有10种类别的分类任务,训练目的是让所有类别的预测与实际差距最小。在机器学习界,求得使代价函数达到最小值的算法有许多,最常用的算法是梯度下降算法。梯度下降算法每次计算参数在当前的梯度,然后让参数向着梯度的反方向前进一段距离,不断重复,直到梯度接近零时截止
42、。一般这个时候,所有的参数恰好使代价函数达到一个最低值的状态,如图14。图14 梯度下降15在图14中,是一个包含两个参数的代价函数。梯度下降算法首先随机给两个参数赋值,也就是在图中找到一个初始点,然后梯度下降算法计算在这个初始点时两个参数的梯度,也就是对应到x和y方向上的斜率,并且让初始点朝着梯度的反方向前进。前进的幅度是通过一个学习因子alpha给出的,假设当前点的梯度是t,那么每次前进的幅度s由下面的公式给出: .s alphat (11)由于无法精准估计点前进到极值点附近所需要的前进次数,梯度下降算法都会让使用者设定一个迭代次数,由这个参数来决定前进的次数。18梯度下降算法的一个问题就
43、是局部最优解问题。由于在每次下降过程中都是沿着当前点的梯度的反方向前进,倘若函数平面不止包括一个极低值点,且初始位置被随机到非最低的极值点附近,那么梯度下降算法有可能会在这个极值点附近结束,从而让训练得到的是一个非最优的模型。局部最优解这个问题困扰机器学习界很多年,尤其是对梯度下降算法非常依赖的神经网络。1990年代中期,神经网络受到机器学习界的摒弃的原因除了因为训练困难以外,梯度下降算法的局部最优解问题也是其中之一7。不过,近年来的研究证明,局部最优解问题在大规模网络结构中影响并不大。根据19与20的发现,大规模神经网络表示的函数平面上含有的极值点中大部分是极大值点,只有很少的部分是极低值点
44、。并且在这些极低值点中,大部分的值都是相同的。因此一个梯度下降算法可以在绝大多数情况下获得一个最优解,从而让模型的性能保持在一个稳定的范围。如今深度学习的火热状况已经证明,梯度下降算法的这个问题并不是制约神经网络的效率瓶颈。在每次梯度计算过程中,需要计算代价函数对于所有训练样本的残差,当训练样本数量很大时,这样的计算非常费时,制约了梯度计算的应用。随机梯度下降算法(StochasticGradientDescent)是一个解决这个问题的梯度下降算法。它的主要思路是不选择所有样本,而是每次从训练样本中取出一部分样本来计算梯度,这样的计算过程不仅能让解值接近最优值点,同时也大幅度减少了每次残差计算
45、的时间,从而提高了算法的整体效率。在本文中,使用随机梯度下降算法来训练卷积神经网络模型。2.4.2.反向传播反向传播算法(BackPropagation,BP)是计算梯度下降算法中每次迭代中的梯度值的算法。在线性模型或者逻辑回归模型中,梯度的计算较为简单,而在神经网络模型中,尤其是深层神经网络中,由于结构复杂,直接计算梯度的代价很大,因此一般使用反向传播算法来计算梯度。反向传播算法包括两个过程,分别是前向传播计算残差,然后是反向传播计算梯度。前向传播过程中,每个神经元节点会计算其所有连接的节点的加权和,然后对和叠加上一个非线性函数后输出到下一层。依次不断传递,最后在输出层计算输出结果和实际结果
46、的残差。图157是一个前向传播的示意图,包含1个输入层,2个隐藏层,1个输出层。Z代表加权和的值,Y代表对加权和进行一次非线性变换后的值。这里为了简单,并没有放上偏置节点。19图15 前向传播7在前向传播结束以后,运行反向传播。反向传播的基础原理非常简单,就是函数求导中的链式法则(chainrule)。链式法则的说明可以见Eq.12。, ,xyyzxz xxyyzz xxyy yyzz (12)通过链式法则来计算残差相对前一层的输出的导数,然后再推出相对于权重的导数,也就是梯度。使用反向传播,可以减轻梯度计算的复杂性,让计算量显著降低。图167是一个反向传播的具体示意图。20图16 反向传播7
47、卷积神经网络与普通的神经网络一样,也是通过反向传播算法来计算每次迭代的梯度。尽管卷积神经网络中包含一些特殊的层,如卷积层,但是对于推导梯度的计算来说,链式法则的应用仍然非常直观。本文中的方法使用反向传播算法来计算卷积神经网络的梯度。2.5.本章小结本章介绍了深度学习的主要特性和相对于传统机器学习的主要区别,并介绍了深度学习发展的历史。除此之外,本章重点介绍了卷积神经网络,包括卷积神经网络的思想,即局部感受野、权值共享、子采样这三个重要思想。本章以LeNet为例介绍了卷积神经网络的结构,包括卷积层、池化层、全连接层。最后,本章说明了神经网络的训练方法,即梯度下降算法和反向传播算法。21第三章 基
48、于深度学习的自然场景文字定位方法的设计前面两个章节介绍了自然场景文字定位研究的目的和价值,文字定位方法研究的现状,并重点介绍了本文的核心技术-深度学习与卷积神经网络的思想,结构及训练方法。本章对本文方法的总体需求进行分析,说明本方法的主要目标,设计思想以及依据,并介绍本方法的整体框架。3.1.自然场景文字定位方法的需求分析本文的主要目的是利用深度学习技术设计一个自然场景文本的自动定位方法,以实现高鲁棒性地自然场景下的文字定位。具体说来,本方法需要满足以下的功能需求、非功能需求以及接口需求。3.1.1.功能性需求本方法是一个在自然场景下的高鲁棒性文字定位方法。针对一般情况,本方法需要保证对绝大多
49、数的文字能够定位。针对复杂情况,如场景背景复杂、成像质量低、具有不寻常样式的字体时,本方法需要保证大部分的文字能够定位。具体来说,本方法要满足以下两点需求:1、高鲁棒性。本方法能够应对各种复杂的背景,如人群、街道、植被、墙壁等等;本方法对于环境的变换有一定的鲁棒性,不容易受到模糊、变形、倾斜等的影响;本方法能够识别各种不同类型的文字,包括不同的大小、字形、字体、颜色等等。2、高正确率。本方法能够不受一些与文字相似的物体的影响,不会造成过多的误检。本方法对于与文字相似的标志、图案等有一定的区分能力。本方法检测到的正确的文字数量至少应该占所有检测数量的80%以上。3.1.2.非功能性需求除了以上的功能性需求以外,本方法也要尽可能满足非功能性需求。非功能性需求包括:处理时间的需求、内存的要求,以及健壮性的需求等等。具体来说,包括以下几点:1、高效率。本方法应该在可以接受的时间范围内完成文字的定位任务。如果一张图片定位的时间