基于神经网络的多字体藏文印刷体字丁识别
2022-11-29三知加贡去卓么才让加卓玛扎西
三知加,贡去卓么,才让加,卓玛扎西
(1. 青海师范大学计算机学院,青海 西宁 810008;2. 青海省藏文信息处理与机器翻译重点实验室,青海 西宁 810008;3. 藏文信息处理教育部重点实验室,青海 西宁 810008;4. 青海省藏文信息处理工程技术研究中心,青海 西宁 810008)
1 引言
藏文文献浩如烟海,国内用藏文记载的文献数量仅次于汉文文献,是中华民族文化宝库中一颗璀璨的明珠[1],这些藏文文献的数字化对传承中华民族优秀文化具有十分重要的意义。本文针对印刷体藏文字丁识别为例对藏文印刷体字丁数据资源的建设、标记、分类和识别进行了研究。
目前,已有一些多字体印刷字符识别的研究工作,在外文字符识别方面,2011年文献[2]和[3]进行了多字体和多字号的印刷体卡纳大语字符识别研究;2013年文献[4]进行了印刷古木基文、英文字符和数字的预分割多字体字符以及数字的脚本识别研究;2017年文献[5]对印刷体泰文字符分割与识别进行了研究,文献[6]针对基于深度学习的手写孟加拉文数字识别进行了研究,两者皆用卷积神经网络方法探索了泰文和孟加拉文数字的自动识别;2017年文献[7]使用卷积网络对40种阿拉伯文计算机字体和阿拉伯文手写体进行了分类预测;同年文献[8-9]以MNIST为基础发表了Fashion-MNIST数据集和EMNIST数字字符数据集;2019年文献[10-11]使用深度学习技术进行了多字体印刷阿姆哈拉文字符图像识别和基于卷积神经网络的多字体大字号信德语印刷体识别研究。
在汉文和国内少数民族文字识别方面,2017年文献[12]进行了基于多池化卷积神经网络的多字体汉文印刷体识别研究;2010年文献[13-14]对多字体印刷蒙古文文档进行了研究;2004年文献[15]针对多字体多字号维吾尔文印刷体字符识别进行了研究。
在多字体藏文字符识别研究方面比英文、汉文等相对滞后,文献[16-21]对藏文字符识别的预处理、文本行的分割、特征选择和分类器进行了初步研究;2003-2004年文献[22-23]利用欧氏距离(EDD)分类器的设计方法对多字体藏文印刷体字符的预处理、归一化进行了研究。2003年,文献[22]利用最近邻分类器对多字体藏文印刷体识别进行了研究;2018年文献[24]利用欧氏距离(EDD)分类器对印刷体藏文字体的识别进行了研究。
以上研究在理论、模型和方法上为多字体藏文印刷体字丁识别提供很好的思路和结果,但从整个多字体藏文印刷体字丁识别方面存在着如下问题:一是训练数据资源的规模较小、缺乏精确度较高的数据资源,无法支撑深度学习对数据规模和精确度的要求;二是目前还没有文献利用深度学习理论和方法探讨藏文多字体识别;三是研究的藏文字体类别单一或较少。
针对以上问题本文提出了一个基于神经网络的多字体藏文印刷体字丁识别方法。本方法主要能较好地解决印刷体藏文字丁粘连和二维布局字丁字体各异的识别问题。而本方法的实现步骤可分为三个阶段性工作:
1)构建了含有90种藏文乌金字体(楷体)和48960张藏文字丁图像的数据集,将其命名为TPCD。并对TPCD进行了较为精确的标记。
2)利用前馈神经网络(Feedforward Neural Network,FNN)和支持向量机(Support Vector Machine,SVM)作为基线模型(系统),利用参数较小的卷积神经网络和(Convolutional Neural Network Small,CNN-Small)、卷积神经网络(Convolutional Neural Network,CNN)模型等模型对TPCD进行实验。
3)通过分析上一阶段所获取的实验结果,将基线系统(FNN、SVM)与CNN-Small或CNN的各个实验结果进行对比。从而证实出本方法的有效性。
2 数据集构建与预处理
图1 藏文音节的分割示意图
图2 藏文字丁的分割示意图
图3 藏文构件的分割示意图
2.1 数据集构建
从图片文字分割任务的角度而言,藏文音节之间的像素特征明显,从而容易分割,但音节数量庞大(理论上藏文音节有18000多个),且藏文字体类别庞杂,给识别任务带了很大困扰并增加了难度。虽然藏文构件只有211个,由于藏文构件之间存在着严重的粘连现象,难以分割,同样对藏文字符识别带来了困难。但藏文字丁之间的粘连现象非常少,基本上不存在相互粘连的现象,且藏文字丁只有544个,减少了分类,同时简化了识别任务,保持了藏文叠字结构,从而减少藏文组字结构在空间上的信息损失,所以,本文选取了藏文字丁为分割单元,构建了TPCD数据集。
2.2 数据预处理
2.2.1 数据采集
本文从4300万字节的藏语语料库中采集了90种藏文字体和544个藏文字丁,并将这90种藏文印刷体字体和544个藏文字丁转换为图片格式,共采集了48960张藏文印刷体字丁图像,基本覆盖了目前国内外所有的藏文印刷体字体。
2.2.2 数据标记
本文在构建TPCD数据集时对数据进行了精确的标记,首先将544字丁标记为数字0到543;然后联合字丁标记将90种字体分别标记为0_0001—543_0090,如0_0001中0表示第一个字丁、0001表示第一个字丁的第一种字体;543_0090中543表示第543个字丁,0090表示第90种字体。
2.2.3 数据归一化处理
对TPDC数据集完成精确标记后,对48960张藏文字丁图片进行格式、背景、像素的统一,将格式统一为PNG,将背景统一为黑色,将像素统一为72×72,即对数据进行归一化处理。归一化处理的目的是为了不影响模型参数梯度的强度,更有利于模型的训练和收敛[2]。
2.2.4 数据二值化处理
为了便于模型的训练和不损失图片的信息,本文对48960张藏文字丁图片进行了二值化处理,首先将图片的RGB通道和透明度通道全部转换为单一的灰度通道,然后进行二值化,当像素值为0时表示黑,像素值为1时表示白,其它数字表示不同的灰度,如图4所示。
图4 藏文字丁的二值化图
3 模型与实验
3.1 基于CNN藏文字丁识别模型
卷积神经网络(CCN)模型包含卷积层(Convolution)、池化层(Pooling)以及全连接层(Fully Connected),是常用的图像识别模型。本文针对藏文字丁识别问题构建了含有五层卷积层、三层池化层和一层全连接层的CNN模型。其流程图如图5所示。
图5 CNN藏文字丁分类器架构
其中首先对藏文字丁图像进行卷积操作,然后进行池化操作,池化操作之后使用ReLu激活函数对池化层进行非线性变换,最后进行全连接操作,然后输出结果。
本文将Softmax交叉熵作为目标函数,其计算公式如下式所示
(1)
(2)
3.2 实验
3.2.1 参数设置
本文使用的深度学习框架为Tensorflow2.2.0;GPU为NVIDIA Quadro P6000。主要参数设置见表1、表2、表3所示。
表1 SVM的主要参数
表1中的rbf表示高斯核函数。
表2 FNN的主要参数
表3 CNN的主要参数
3.2.2 实验结果
本文实验的结果如表4所示。
表4 模型性能的比较
由表4可见,CNN在验证集和测试集上的识别结果都优于基线模型和参数较少的CNN-Small模型。与基线模型相比CNN在测试集上的识别率、召回率和F1值分别提升了7.2%、8.1%和8.1%。
图6为各模型随训练轮数而变化的准确率曲线图。
图6 各模型准确率曲线
由图6可见,CNN与SVM、FNN和CNN-Small相比,在验证集和测试集上的识别率、召回率、F1值和损失值最佳,且收敛快稳定性强。
3.2.3 实验分析
本文将识别率、召回率和F1值作为多字体藏文印刷体字丁识别的评价指标,在训练基线模型SVM、FNN和CNN-Small时,随着训练轮数的增加识别率、召回率和F1值趋于稳定,同样,当训练CNN时其结果同上,但相对于SVM、FNN和CNN-Small模型,CNN模型的效果更佳。
虽然CNN模型在测试集上的识别率、召回率和F1值达到了97%、96.6%和96.6%,但多字体藏文印刷体字丁在印刷过程中存在着字体畸变现象(如图7所示)从而影响了识别率、召回率和F1值。随着字体数目的减小识别率、召回率和F1值增大,即:字体数量与识别率、召回率和F1值成反比关系(如表5所示)。
表5 字体数量与识别率、召回率和F1值的比较
图7 字体畸变和断笔现象
图8 位置异变现象
4 结论
本文围绕藏文多字体印刷体字丁数据资源建设、数据标记、藏文字体分类和识别等问题进行了探讨,构建了藏文印刷体字丁数据集TPCD,并对TPCD进行了精确标记,从而构建了一个规模较大、精确度较高的公开数据集,然后利用深度学习框架对TPCD进行了藏文印刷体字丁识别,尝试解决多字体藏文印刷体字丁识别问题。通过对90种藏文乌金字体(楷体)的544个藏文字丁类别进行了实验,实验结果证明CNN模型在多字体藏文印刷体字丁识别方面具有很强的鲁棒性,在测试集上的识别率、召回率和F1值优于SVM、FNN和CNN-Small,分别达到了97%、96.6%和96.6%,证明了其有效性。但是字体数量、字丁畸变、断笔和位置异变等现象对多字体藏文印刷体字丁的识别率、召回率和F1值有直接影响。