本文是一篇软件工程硕士论文,软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。(以上内容来自百度百科)今天为大家推荐一篇软件工程硕士论文,供大家参考。
第 1 章 绪论
1.1 研究意义
图像作为信息的一种高级载体,是人们认识世界的主要途径[1]。随着电子拍照设备的普及,人们捕获图像变的更加容易,而互联网的蓬勃发展也为图像的传播和分享提供了便利的条件。统计数据显示,互联网流量大部分是图像和视频。然而,图像在计算机中的存储形式为像素点。依据图像的像素点信息,计算机只能得到颜色、亮度和形状等底层信息,这些底层信息无法准确而清晰的表达图像的具体内容。文字,作为信息的直接反应,相比像素信息能够更好的被计算机理解。图像中的文字描述,能够直观的对图像内容做出解释,并且可以直接应用于图像和视频内容的分析和检索。毫无疑问,对图像中文字信息的识别对图像的理解和分析具有十分重要的科学价值和研究意义。屏幕渲染文本是指经由操作系统和应用程序执行屏幕渲染过程而出现在计算机显示器上的文本。在这个过程中,使用数字字体来渲染二维图形。这类图像在生活中具有广泛的应用,如为盲人或视觉障碍人士增加屏幕阅读工具,从屏幕图像中读取在剪贴板上不可用的 ASCII 文本;识别视频中的低分辨率文本[2];用于纠正由于前景和背景颜色组合不好而导致的网页渲染错误;通过验证具有不同 Unicode 的相似外观字符来验证潜在重要网站的 URL,从而防止网络钓鱼攻击。Adobe Reader提供了一种获取屏幕指定位置文本信息的机制,虽然它向用户提供了非安全文档中的复制和粘贴功能,但是这种机制只在该应用程序下可用,并不是一种全局的方法。在这种情况下,解决方案是捕获屏幕截图,并使用光学字符识别方法来识别屏幕渲染的文本。
..........
1.2 国内外研究现状分析
随着近几年深度学习在技术和理论上的巨大发展,出现了很多立足于深度神经网络尤其是深度卷积神经网络(Deep Convolutional Neural Network, DCNN)和深度循环神经网络(Deep Recurrent Neural Network, DRNN)的优秀成果。OCR 领域也因此涌现了很多优异的工作。如图 1.2 所示,现有的字符或文本行识别方法主要集中在手写中文字符识别[5–12]和场景文本识别[13–21],只有少数方法应用于屏幕渲染图像中的文字识别[22, 23]。然而,由于汉字数量庞大、笔画复杂,并且屏幕渲染文本图像的低分辨率、小字体和低对比度的属性[3, 4],这些方法应用到屏幕渲染文本图像中的中文字符识别时会遇到极大的挑战。基于分割的方法在检测出文本行之后,还需要从文本行图片中提取出单个字符,这一步通常使用垂直投影法等方法完成。检测出字符之后使用机器学习或深度学习方法对字符进行分类,例如支持向量机和卷积神经网络(Convolutional NeuralNetwork, CNN),最后将分类结果连接起来得到识别结果。近年来,基于分割的方法在手写中文字符识别和自然场景文本识别上都已经取得的显著的成果。Ciregan 等人[5]提出一个用于手写中文字符识别的多列深度神经网络。他们的方法对输入图像采用了不同的预处理方式,这些预处理的结果分别作为不同深度神经网络(Deep Neural Network,DNN)的输入,最后对所有 DNN 的输出进行投票来取得最终的识别结果。在此之后,富士通团队[6]提出了一个用于离线手写汉中文字符识别的 CNN 网络,并且在文档分析与模式识别会议(ICDAR)离线手写识别竞赛上取得了第一名,但是他们的模型需要 2.46GB 的存储空间。
...........
第 2 章 深度学习介绍
人工神经网络(Artificial Neural Network,ANN)是由多个功能单一的处理结构(即神经元)相互连接组成的一种网络结构,这些相互连接的神经元在一定程度上模拟了人类的大脑视觉结构。进入大数据时代以后,浅层人工神经网络在特征表达上的缺陷和不足逐渐暴露出来。在 ANN 的基础上,DNN 通过增加隐藏层的形式增强了网络的特征表达能力,在大量数据的情况下表现出了不错的效果。在 DNN的基础上,隐藏层神经元之间连接方式的不同衍生出了不同的深度神经网络,CNN和 RNN 是其中的两个代表性网络。本节将介绍本文所使用的几种网络。
2.1 卷积神经网络
CNN 作为深度学习的一种重要技术,近年来凭借局部连接、权值共享和池化等特性,在图像分类、语义分割和目标检测等领域取得了极大的发展。局部连接是指 CNN 中卷积层的感受野是一个局部感受野,这一设计模拟了人类视觉系统从局部到全局观察物体的过程,后一层的每一个神经元只和前一层某一局部的神经元相连。通过使用多个卷积层,完成局部到全局、低层到高层的特征表达。权值共享是指 CNN 卷积层中每一个特征图对应的卷积核参数的共享的。图像相邻像素之间具有极大的相关性,因此每一个局部区域之间也具有一定的相关性。在当前局部区域适用的滤波器在其相邻局部区域也同样适用。通过权值共享能够极大的降低网络参数。池化层,又称下采样,在 CNN 中被用在在卷积层之后。池化层主要用于对特征进行降维和聚合。池化层分为最大池化和平均池化,最大池化对一个局部区域的值取最大值,平均池化对一个局部区域的值取平均值。池化操作对图像内物体的平移、旋转和形变具有一定的鲁棒性。一个典型的 CNN 网络如图 2.1 所示。一个 CNN 网络一般包含卷积层、激活层、池化层和全连接层。这些网络层的不同组合构成了 CNN 网络的多样性。
.........
2.2 循环神经网络
之前介绍的 ANN、DNN 和 CNN 都不具备存储过去信息的能力。例如,如果网络的输入是“我爱中国”,当到达字符“国”时,网络已经忘记了之前已经学习过的“我爱中”,这种缺陷导致无论网络将数据集学习了多少遍,都很难将下一个字符预测为“国”。和 ANN、DNN 和 CNN 不同,循环神经网络使用一种自循环的结构来处理前后具有一定关联的数据,如语音和连续的文本。图 2.3 显示了一个经典的循环神经网络:从图 2.3 中可以看到,RNN 由输入层、隐藏层和输出层组成,并且在隐藏层中做了循环连接,将 RNN 展开可以得到如图 2.4 所示的网络结构。从图 2.4 中可以看到,除了最开始的时刻,RNN 中当前时刻的输入不仅包含当前时刻的数据输入,还包含上一时刻的输出。这种网络设计在处理时序信息时是非常有效的,例如,在语音识别任务中,每一时刻的输入语音数据都不是独立的,当前时刻的语音必定和之前的语音有一定的语义关系。通过 RNN 的这种循环设计,网络中每一时刻的输入都包含了之前的输出,RNN 最终的输出就是对所有数据的整体体现。
........
3. 基于字符分割方法的屏幕渲染文本检测与识别....15
3.1 框架介绍....15
3.1.1 字符提取.......16
3.1.2 字符识别.......17
3.2 数据集介绍..........19
3.2.1 公开数据集.............19
3.2.2 生成数据集.............20
3.3 实验结果与分析 ...........22
3.3.1 公开数据集实验结果 ......22
3.3.2 生成数据集实验结果 ......23
3.3.3 屏幕渲染图像实验结果 ............24
3.4 本章小结....27
4 基于无分割端到端方法的屏幕渲染文本检测与识别.......28
4.1 框架介绍....29
4.2 数据集介绍..........34
4.2.1 公开数据集.............34
4.2.2 生成数据集.............35
4.3 实验结果与分析 ...........36
4.4 本章小结....41
5. 总结与展望.....42
5.1 本文工作总结......42
5.2 后续工作展望......42
4 基于无分割端到端方法的屏幕渲染文本检测与识别
由于屏幕渲染文本图像的低分辨率、小字体和低对比度等特性,在基于分割的文字识别方法中,字符存在难以分割和分割错误等问题。本章基于 ResNet、RNN和 CTC,提出一种基于无分割端到端方法的屏幕渲染文本检测与识别的方法(本文方法 2)。本文方法 2 首先使用图像处理方法从屏幕渲染图像中提取出文本行,然后使用一个缩减的 ResNet 对每一个文本行进行特征提取,接着,使用双向 RNN 对特征序列进行序列化建模并且预测结果。最后,本文方法 2 使用 CTC 方法对预测结果计算损失并给出最终的结果。本章将介绍提出算法的框架、实现细节以及实验效果。
4.1 框架介绍
如图 4.1 所示,本文方法 2 包含两个阶段:文本提取和文本识别。在文本行提取中,图 4.1(a)显示了一张真实的屏幕渲染图像,红色框中部分如图 4.1(b)所示。本文首先使用 OTSU 二值化算法来对输入的屏幕渲染图像进行预处理,结果如图 4.1(c)所示。随后,如图 4.1(d)所示,使用膨胀和连通域检测操作来获取每行中的文本行候选者。最后,利用连通域融合来保证每行只有一个文本区域,如图 4.1 所示。文本提取步骤中得到的文本行图像直接作为文本识别步骤的输入。在文本识别阶段,本文方法 2 提出了一个无分割的文本行识别网络来对文本行图像进行识别。网络包含三个组件,从左到右依次为 ResNet、双向 GRU 和 CTC。对于每一张文本行图片,本文方法 2 都使用 ResNet 自动的从原始图像中提取特征序列,为了更好的学习图像中文本的上下文关系,在 ResNet 之后,本文方法 2 使用双向 GRU 对特征序列进行建模并且输出预测字符,最后使用标准 CTC 来计算损失和得到最终的结果。
.........
总结
屏幕渲染文本图像的文字识别技术在很多场景都有广泛的应用,如为盲人阅读屏幕提供帮助,为词典等翻译工具提供指导,为自动化测试程序提供帮助等。因此,屏幕渲染图像中的文字识别具有十分重大的研究意义和研究价值。本文分析了现有的字符或文本行识别方法以及屏幕渲染文本图像识别领域的最新研究成果,基于现有字符或文本识别方法在屏幕渲染文本图像应用的难点、现有屏幕渲染文本图像识别方法的不足和屏幕渲染文本图像本身的低分辨率、小字体和低对比度等特点,基于深度学习提出了两种解决方案。由于现有的屏幕渲染图像中的文字识别解决方案均使用传统机器学习方法,这些方法需要手动提取特征,这些方法只能解决单一情况下的屏幕渲染文本图像识别问题,对字符的缩放、噪声和变形等干扰情况不能很好的进行处理。为解决此类问题,本文提出了一种基于字符分割方法的屏幕渲染文字检测与识别方法(本文方法1)和一种基于无分割端到端方法的屏幕渲染文本检测与识别的方法(本文方法 2)。本文方法 1 不需要手动提取特征,直接使用大量数据作为网络的数据,由网络自动从数据中学习到最适合输入数据的特征。本文在公开数据集 CIFAR10 和 ICDAR2013 上证明了本文方法 1 的鲁棒性和有效性。在本文方法 1 中,最终的识别结果很大程度上依赖于字符的提取结果。因此本文方法 2 在本文方法 1 的基础上,基于深度残差网络、循环神经网络和时间序列分类,提出了一种基于无分割端到端方法的屏幕渲染文本检测与识别的方法。在本文方法 2 中,字符提取方法只需要提取出输入图像中的文本行,提取出的文本行图像直接作为网络的输入并由网络给出识别结果。本文使用公开数据集 CVL HDS 和CVL HDS 证明了本文方法 2 的鲁棒性和有效性。
..........
参考文献(略)
提供海量毕业论文,论文格式,论文格式范文,留学生论文,商务报告相关资料检索服务。