论文部分内容阅读
随着科技的逐渐发展,计算机逐渐得到普及,现代人逐渐抛弃了对纸笔的使用,而是更习惯于使用计算机来对各种信息内容进行记录、编辑、分类整理,以满足不同情况下的不同使用需求。文字作为人类信息交流最主要的方式之一,与人们的生活密不可分,对于人们的生活有着重要的意义。在这个时代里暴增的信息,以及人们对更高效率的追求,导致了传统手动输入文字的方法已经不能满足人们的需求。如果计算机可以实现对文字的自动识别与输入,那么将可以大大降低人工与时间成本。文字识别在现实生活中拥有广泛的应用空间,如证件识别、金融票据录入、无人驾驶领域、视障人士的辅助阅读等。快速将纸质文字资料存储到计算机中有利于提高人们生活水平与质量,这为文字识别技术的产生与研究提供了广阔的发展空间。越来越多的专家学者对文字识别技术展开了深入研究,在例如汉字、英文、数字的许多方面积累了大量的经验以及丰富的技术。本文一共分为五个部分,第一章为绪论,阐述了研究内容的背景和意义、研究内容的发展历史、研究内容的研究现状,并对本文的主要内容进行了简要的总结。第二章主要对深层神经网络的理论基础,介绍了发展历史,两种类型的神经网络的结构和特点,两种基本网络模型用于本文的算法,并介绍了一种损失函数中使用网络。第三章主要是对中文打印识别及后续翻译的研究。详细介绍了所采用的网络模型的体系结构,并介绍了网络的训练方法和结果。第四章是实验结果,展示了实验中使用的部分网络结构、实验结果和结果分析。第五章为总结与展望,总结了本文的主要工作内容,指出了存在的不足,并提出了改进的方向。汉字作为中华民族文明发展的信息载体,已经拥有了数千年的历史,也是世界上使用人数最多的文字,它记录了中华名族的璀璨文化,展示了东方民族独特的思维与认知方法,因此对中文印刷体识别的研究对社会的发展与进步具有很大的意义。汉字识别一直是文字识别中比较困难的部分,主要是因为中文汉字有类别大、字体多、结构复杂和字形相似等特点,仅靠单一的一种特征是没有办法完成对汉字的准确识别的,如何有效地选取各种特征并将它们进行组合,使它们在识别速度和识别率上都能满足实际需求,成为了整个系统要考虑的关键问题。本文主要对基于深度卷积网络的中文印刷体识别与后续的翻译技术进行了研究,旨在获得效率与准确率都尽可能高的网络。中译英部分主要使用Python自带的翻译模块,而对于文字识别部分,作者主要使用的是CRNN网络作为主要的识别结构。CRNN是一种卷积循环神经网络结构,它主要用于对任意长度的文本序列进行端到端的识别。和传统算法相比,CRNN是对整个文本进行识别,它可以不用关心文本的大小和长度,不需要切割单个文本,只需要将文本识别转换为依赖序列的学习问题,即它是基于图像的序列识别。CRNN的网络结构主要由三个部分组成:卷积层、递归层和转录层。卷积层使用CNN来获取图像的多通道特征映射,循环层使用RNN对特征序列进行预测,并输出相应的概率分布,转录层使用CTC损失函数,将循环层输出的一系列标签分布转化为最终的标签序列。在传统CRNN网络中,一般使用VGG-16作为卷积层部分。VGG的网络结构比较简单,主要由卷积、池化和全连接组成。卷积部分具有较小的卷积核,而小的卷积核可以有效减少网络参数,从而降低模型的复杂度。同时VGG网络也拥有比较小的池化核,可以使网络捕获的信息更加详细。而比VGG网络出现更晚的ResNet也是一种卷积神经网络,与VGGNet相比,ResNet引入了残差网络结构,这种结构可以大大增加网络的层数,实现更好的分类效果。残差模块主要由两个卷积层、一个跳跃结构、一个B atchNormalization和一个激励函数组成。传统的网络只有一条反向传播路径,并且这条路径使用的是乘法,这就导致了网络中出现的梯度消失问题。而残差网络有两条路径,它将乘法转化为求和的形式,从而缓解了梯度消失的问题。考虑到ResNet相对于VGGNet的优势,本文作者在传统CRNN的基础上,使用ResNet替换了卷积层中的VGGNet,并且使用了两种ResNet,分别是ResNet18和ResNet34。经典的ResNet18和ResNet34的网络结构共分为五个阶段。在第一阶段,对输入图像进行处理,输出数据的通道数为64。这一阶段包括一个卷积核为7的卷积,一个BatchNormalization,一个ReLu激活函数,以及一个最大池化结构。后续四个模块都是残差结构,每个残差块都是由两个3×3的卷积组成,这些卷积的卷积核为3,padding为1,对于所使用的两种ResNet,它们在这四个阶段的步长均是[1,2,2,2]。而两种网络的不同之处在于它们在后四层中每一层拥有的残差块数量不一致。ResNet-18中的残差块数的分布为[2,2,2,2],34层ResNet中的残差块数的分布为[3,4,6,3]。四个残差块通过平均池和全连接层进行连接,全连接层用于实现分类功能。由于CRNN中的卷积层只需要提取输入图像的特征映射,所以这部分网络可以删除。在网络的训练阶段,使用的数据集是网络现有合成文本图像。该数据集一共包含了360万幅文本图像,包括中文、英文、数字和常见的标点符号。每幅图像都经过了不同程度的处理,如倾斜和模糊,并且每幅图像都包含真实的语义信息,可以应用于不同的场景。训练中使用的测试集是从数据集中随机选取的36000张图像。实验主要是基于PyTorch深度学习框架,使用Python语言编写。训练中的主要参数包括Batch_size、Epoch、初始学习率以及优化器的选择。其中Batch是指训练集中的一部分样本,用于对模型权重进行一次反向传播的参数更新;而Batch_size是指这一部分样本中包含的样本数量,通常设置为2的n次方,常用的例子有64、128、256,网络规模小时使用256,规模大时使用64。在本论文中,作者使用的size为64。Epoch是指用训练集的所有数据对模型进行一次完整的训练,作者将Epoch设为20,即完整的训练过程为将整个数据集传入网络进行训练20次。在训练过程中,当loss值长时间不下降或accuracy值不上升时,可以提前终止训练,此时获得的loss和accuracy就是所使用网络的最终性能。AdaGrad、Adadelta、RMSProp和Adam都是PyTorch提供的可选择的优化器。其中AdaGrad适合处理稀疏梯度,但它认为深度学习中单调的学习率太过激进,会使训练提前结束。Adadelta是Adagrad的扩展,它经过了计算上的简化。该优化器在训练过程中具有良好的加速效果,且不依赖于全局学习率。RMSProp是一个趋向于AdaGrad和Adadelta之间的AdaGrad升级版,它适合处理非平稳目标。而Adam,本质上是一种带有动量项的RMSProp。利用梯度的一阶矩估计和二阶矩估计,动态调整各参数的学习速率。Adam和Adagrad在处理稀疏梯度方面很在行。在本实验中,作者使用RMSprop作为优化器,它可以抑制振荡并自动调整学习速率,训练时的初始学习速率设置为0.001。通过训练结果可以了解到,使用ResNet作为卷积层的CRNN模型训练后的精度要高于使用VGG-16作为卷积层的CRNN模型,而18层ResNet和34层ResNet的训练结果相差不大。这说明使用ResNet的CRNN网络具有更好的性能,这也反映了在性能方面,ResNet比VGGNet更优秀。通过比较训练得到的loss和accuracy,找到性能较好的模型,使用该模型进行中文印刷体的识别与翻译。由最终的试验结果可以看出,使用不同ResNet的CRNN的性能没有明显差异,网络对单行的文字图像具有较好的识别和翻译效果,但由于训练集的限制,对多行文本的识别效果不够好。本论文通过对CRNN网络进行研究,在传统CRNN的基础上提出了改进的网络结构,并使用改进网络实现了中文印刷体文本图像的识别以及中译英的功能,最终实现了比较良好的试验结果,但针对目前的情况仍然存在一些不足以及需要改进的地方。首先本论文中对网络的训练时使用的训练集包含的都是单行的文本图像,由于受到了训练集的限制,所得到的模型只对单行文本图像具有好的测试结果,但无法识别两行或以上的文字,后期需使用图像种类更丰富的训练集,才能使网络的性能得到提升。其次目前考虑的只是将CRNN卷积层的VGG网络替换成两类ResNet,而卷积神经网络并不只有这两种,后续可以考虑使用其他的卷积神经网络作为卷积层,研究是否可以获得更好的网络性能。同时也可以对循环层部分进行研究,考虑是否还有改进的空间。此外可以将网络的应用范围变得更广泛,不仅仅局限于背景单一的印刷体文本,后续可以探索新的算法,使其可以处理并识别例如含有表格或图像的文本材料,使一个网络具有更多的功能。总之,当前所研究的中文印刷体识别与翻译的算法仍然存在一些值得深刻探索的地方,在今后的工作中可以对已完成工作进行优化和完善。