APP下载

基于Faster-RCNN的水书古籍手写文字的检测与识别

2022-04-08汤敏丽谢少敏刘向荣

关键词:手写类别样本

汤敏丽,谢少敏,刘向荣*

(1.厦门大学信息学院,福建 厦门 361005;2.凯里学院大数据工程学院,贵州 凯里 556011;3.厦门大学闽台非遗文化数字化保护与智能处理文化和旅游部重点实验室,福建 厦门 361005)

“水书”是水族用其语言“泐睢”记载水族古代天文历算、原始宗教信仰、道德伦理等诸多内容的文化典籍,是水族民间知识综合记录的反映,它在水族社会中影响深远,具有实用的操作性,广泛运用于民间丧葬嫁娶、娱乐节庆等方面.2006年,水书习俗经国务院批准列入第一批国家级非物质文化遗产名录.随着社会的发展和历史的变迁,同时受外来文化的影响,水书及其传统文化面临着被逐渐边缘化甚至失传的威胁.因此,有必要利用信息数字化技术对水书文化遗产进行保护[1].图1为珍贵水书原件.

图1 水书古籍原件Fig.1 Original of ancient Shuishu

水书通常由水书先生手写并代代相传,只传本族少数男性,目前统计只有300多人能够识读,导致水书文字保护和传承压力巨大.近年来,经水族学者研究,水书文字能够被识读的单字只有500余字,含异体字在内也仅有2 000余字[2].目前针对水书手写文字识别的成果较少,尚没有公开的用于信息数字化技术的水书数据集.杨秀璋等[3]提出了一种改进的图像增强及图像识别方法,并将其应用于水书文字图像中,经过灰度转换、中值滤波去噪、直方图均衡化等处理,之后再通过Sobel算子锐化文字边缘,最终提取了水族刺绣图像及建筑图像中的水书文字,该研究主要是提取图像中的文字图像,并未对文字进行识别.中央民族大学的翁彧等[4]设计了一个轻量级网络结构,在5万个水书字符型样本上进行了分类实验,得到了93.3%的识别准确率,该研究没有涉及页面的水书文字识别,主要是单个水书文字的分类研究.此外,夏春磊[5]提出了一个用于水书识别的卷积神经网络模型,并通过一种基于种群进化的超参数优化算法进行训练,实现水书文字识别任务,但该研究注重的是单字分类,经过训练和测试,该模型只能识别单字,没有研究检测识别文本图像上的小目标文字.赵洪帅等[6]将拉普拉斯金字塔与对抗性神经网络相结合,对水书古籍图像进行数据清晰度处理;再使用基于信息熵的无监督密度聚类算法,研究水书古籍图像文字的自动标注;在6 230 个水书字符样本上进行实验.其结果表明:拉普拉斯金字塔结构的生成对抗网络对水书文字的图像样本具有更高的分辨率,且能增加少量的样本,但自动标注方法存在一些问题,即自动标注的准确率不高,影响了水书文字的识别准确率.丁琼[7]提出采用YOLO(You only look once)[8]模型对水书文字进行识别检测,经测试识别率稳定在98%以上,但其采用的数据样本来源于水书文字和汉字混编的书籍中,并非水书卷本原件图像或影印件图像资料,且未具体介绍所使用的数据集及规模.这些研究中,多数侧重水书单字符的分类,鲜少进行水书古籍页面级的文字检测与识别.

为了解决水书数据集资源匮乏的问题,本文首先建立了一个来源可靠、标注良好、规模较大的水书古籍手写文字数据集;并利用数据扩增的方法进一步解决水书数据集样本不均衡的问题;将Faster-RCNN(faster region-based convolutional neural networks)[9]算法应用到水书古籍手写文字识别研究上,以实现页面级的端到端的水书手写文字的检测与识别,从而为后续水书研究做铺垫,以期实现帮助读者认识水书文字和阅读水书古籍.

1 目标检测算法的选取

1.1 目标检测算法

深度学习方法最大的特点是自主学习特征,无需人工干预.深度学习方法中的目标检测算法能在对输入图像进行分类的同时,检测图像中是否包含特定目标,并对这些目标进行准确识别和定位.目标检测中的热门算法分为两类:一类称为“两步”检测算法,即首先在特征图上抽样产生密集的候选区域,然后对候选区域进行分类及回归,检测精确度高,典型的算法有RCNN (region based convolutional neural networks)[10],Fast-RCNN(fast region based convolutional neural network)[11],Faster-RCNN等;另一类被称为“一步”检测算法,即在多层特征图上直接抽样并回归,一步产生物体的类别概率和位置坐标值并输出,检测速度快,典型算法有SSD(single shot multiBox detector)[12]、YOLO.

近年来,目标检测算法也被用于一些文本检测中.2018年,Julca-Aguilar等[13]提出采用Faster-RCNN 作为检测手写图形中符号的方法,在图表和数学表达式数据集上进行了实验评估,结果表明Faster-RCNN 可以有效地用于手写符号的识别.2019年,杨宏志等[14]提出一种改进Faster-RCNN的自然场景文字检测算法,经实验测试发现该模型对小目标文字的检测效果有所提升.本文关注的重点在于能否精确地定位和识别水书古籍页面中出现的多类别、小目标文字,所以目标检测算法较为适合应用到本研究中.

1.2 “两步”检测算法

RCNN由Girshick等[10]于2014年首次提出,是最早将深度学习技术应用于目标检测的算法.RCNN先用选择性搜索算法在每个网格上依次提取1 000~2 000个候选区域,使用卷积神经网络在其中依次提取每一个候选区域的特征后,用支持向量机来对这些候选区域的数据特征进行综合分类.对比之前目标检测的一些传统算法,RCNN用深度神经网络替换了特征提取部分,在准确率、速度等方面都有着突破性的进展.但是,该方法计算量过大,是以大量的资源和运行时长为代价换取准确率的提升.

Fast-RCNN是RCNN的升级版本.Fast-RCNN在卷积神经网络的最后一层卷积层后增加了ROI池化层(region of interest pooling),使得网络的每一个输入图像可以是任意尺寸,并且对每一个图像只进行一次特征提取,大大提高了效率.此外,Fast-RCNN采用Softmax代替支持向量机进行多任务的分类,使得目标检测的效率再次得到大幅提升,但是存在选取候选区域耗时大的问题.

Faster-RCNN的主要特点是改变了候选区域的提取方法,即使用了候选区域网络RPN(region proposal networks),使得卷积神经网络直接产生候选区域,而放弃之前使用的选择性搜索方法.Faster-RCNN的架构相当于是“RPN+Fast-RCNN”,RPN可以快速有效地自动提取候选区域,采用RPN和Fast-RCNN交替训练的方式,可以在大大缩短目标检测耗时的同时,有效提高目标检测的准确率.

平均精度均值(mean average precision,mAP)是评估目标检测性能的重要指标,将在后续3.3节详细描述.采用VOC2007数据集[15]对RCNN、Fast-RCNN以及Faster-RCNN模型进行实验评估,结果如表1所示,经对比,Faster-RCNN的目标检测性能最优.

表1 3种模型的评估实验结果Tab.1 Evaluation experiment results of 3 models

1.3 “一步”检测算法

YOLO和SSD为常用的“一步”检测算法,因此本研究比较了两者在页面级水书手写文字的识别与检测中的应用效果.对比发现:

YOLO的训练和检测均在一个单独网络中进行,待检测图像仅需经过一次图像预测,便能得到该预测图像中所有置信目标的类别、位置、相应置信概率,计算速度快且有较高的准确率.但是,YOLO算法直接将图像分割为若干区域,需要提前设定候选区域,当多个类别同时落在一个区域上时,无法将其区分,只会取置信度最高的一类.因此,该算法对于小目标或目标密集的检测精度较差.

SSD结合了Faster-RCNN和YOLO的部分思想,对图像不同位置的多种尺度的区域的不同特征进行回归,对这些特征进行分层提取和分析,并依次进行边框的尺度回归和特征分类等计算操作,最终完成对多种不同尺度区域目标的训练、检测任务.SSD算法在不影响速度的同时,提高了目标检测准确率,但是该算法的默认框形状、网格尺寸都是预先设定的,因此对小目标的检测效果仍然不够理想.

1.4 针对水书文字检测与识别的模型选择

对Faster-RCNN、YOLO、SSD进行优缺点对比,总结[16]如表2所示.

表2 Faster-RCNN、YOLO和SSD优缺点对比Tab.2 The advantages and disadvantages comparison of Faster-RCNN,YOLO and SSD

页面级的水书古籍手写文字识别可归属于小目标多类别的目标检测问题,本文关注的重点在于能否精确地检测和识别各类别水书古籍手写文字,对模型的运行速度无高要求,所以在后续研究中采用Faster RCNN对水书古籍手写文字进行检测识别.

2 数据集

2.1 原始数据集的建立

本文使用的水书古籍图像来源于《九星卷》《九喷卷》《阴阳五行卷》《寅申卷》《八探卷》《正七卷》等多卷水书影印卷本,对其中80个类别的水书文字进行人工标注后,得到原始图像数据集,包含水书古籍手写文字图像1 734张,均存储为“.jpg”格式,图像的平均宽×高为1 943×2 924(单位为像素,下同),共计49 875个带标签的水书手写字符.

2.2 数据扩增

在水书手写文字原始数据集中,各水书文字类别的样本数量呈现极大的不均衡性,例如:水书文字“”的样本数量最多,有5 684个;水书文字“”的样本数量最少,仅有1个,为水书生僻字.因此,为提高模型的鲁棒性和扩展能力,需要对水书原始图像数据集进行有针对性的数据扩增,考虑采用人工手写、图像合成以及图像裁剪等方式进行扩增.

首先,对样本数量低于300个的水书文字类别进行人工手写数据扩增,经过8个笔迹不同志愿者的手写扩增,获得39张水书手写文字图像,共计37个类别的水书文字12 021个字符样本.人工手写扩增方式虽然简单,但其存在效率低、成本高等缺点.

采用图像合成方式扩增数据,在确定目标样本在文字方向变换后无歧义出现的情况下,对原始图像中的60个样本数量低于500的水书文字类别进行单字切片操作.之后,对字符切片进行二值化、旋转、翻转、添加噪声等处理.最后,将经过上述处理的字符切片以随机的方式进行组合.经图像合成操作,共获得图像1 600张,图像的平均宽×高为1 200×1 800,共计37 363个字符样本,这些字符样本包含了各种场景,例如不同的文字方向或者各种噪声等,使数据呈现多样性,可以增强模型的泛化能力,防止过拟合.

采用图像裁剪方式扩增数据,目标对象是1 734张水书原始数据集图像和39张人工手写扩增的水书文字图像,对这些图像进行上、下、左、右及中心裁剪,最终获得水书文字图像9 053张,图像的平均宽×高为989×1 459,共计73 247个字符样本.

3 实 验

3.1 实验设计

为验证Faster-RCNN模型对水书手写字符的检测与识别效果,以及2.2节中的3种数据扩增方式对水书文字识别效果的影响,采用不同组合的数据集进行了消融实验.其中,实验一采用原始数据集,实验二采用原始数据集加上人工手写扩增的数据,实验三的数据集为实验二的数据集加上图像合成扩增的数据,实验四的数据集采用的是剪裁后的数据加上图像合成扩增的数据.各实验的数据集规模如表3所示.

表3 各实验的数据集规模Tab.3 Dataset size of each experiment

3.2 实验平台及超参数设置

实验采用的硬件平台为Intel Core i7-8700K六核3.7 GHz的CPU,NVIDIAGeForce GTX 1080Ti 11 GB的GPU,内存为32 GB.软件平台的操作系统为Ubuntu 18.04,深度学习工具采用TensorFlow、Pytorch,编程语言为Python.

实验采用Faster-RCNN模型进行训练和测试,使用VGG16(visual graphics generator 16)[17]作为其框架中提取图像特征的基础网络.按8∶2的比例将数据集划分为训练集和测试集进行实验,初始学习率设置为0.001,训练60 000轮次,在10 000轮次之后学习率衰减为0.000 1.权重衰减和动量分别设置为0.000 1 和0.9.由于图像的平均宽高为1 000以上,训练时将图像缩放的宽高设置为900~2 200,以避免图像被缩放过多,导致图像信息的损失.考虑到一张图像的文字数量比较多,将RPN的batch size设置为512,提供更多的样本用于Fast-RCNN的训练,在测试时,将非极大值抑制后的候选区域设置为400个.针对数据集中待检测字符较小的问题,实验中将锚框大小设置为(2,4,8).为了避免初始值太大,导致不收敛或者收敛缓慢,将所有样本图像按照对应通道减去通道均值进行颜色均值统计,通道均值统计结果为(B,G,R)=(186.529 54, 193.935 09, 197.773 97).

3.3 评价指标

实验结果的评价采用各自收敛轮数的mAP进行比较.mAP用于评价模型的好坏,是目标检测中的重要评估指标,其公式如下:

(1)

(2)

其中,P(i)为能识别出的第i类别的准确率,Δr(i)为能识别出的第i类别的召回率.

3.4 实验结果与分析

4次实验获得的mAP值如表4所示,具体分析如下:

1) 实验一的mAP并不高,仅为62.21%.其中,单个类别字符样本数量在30以下的mAP值为0,具体的水书文字如表5所示;单个类别字符样本数量在(30,100]区间的mAP值为29.12%;单个类别字符样本数在(100,500]区间的mAP值为57.39%;单个类别字符样本数量在(500,1 000]区间的mAP值为85.39%;单个类别字符样本数在1 000以上的mAP值为88.97%.由此可知,识别准确率低的症结在于样本数大小,而非模型.

表4 各实验的mAP值Tab.4 mAP value of each experiment

表5 未被识别的水书文字类别Tab.5 Unrecognized classes of Shuishu characters

2) 实验二在实验一的基础上增加了人工手写扩增的数据,使得37个类别的水书文字的数据量得到了不同程度的增加,包含表5内的10个类别,平均增加了300个左右的字符样本,获得的mAP较实验一提升了2.26个百分点.其中,未能识别的水书文字类别减少为8个.仍存在目标样本无法识别的原因在于人工扩增的数据量仍然较少,一旦通过该方式获得更多的样本,水书文字的识别精度必然得到进一步的提升.虽然实验二获得的识别率的提升幅度较小,但是该结果证明了人工手写方式进行数据扩增能有效提高识别率.

3) 实验三在实验二的基础上增加了图像合成的数据,使得水书文字样本的数据量得到进一步的增加,生僻字类别与常用字类别的数据量差距逐渐减小,获得的mAP较实验二提升了18.52个百分点,能够识别出全部80个类别的水书文字.实验一中未能被识别的10个类别的生僻字,经过数据扩增,在实验三中获得的最高识别准确率为90.91%,最低识别准确率为71.54%.识别率获得大幅提升得益于数据量的大幅增加,通过图像合成增加了37 363个水书字符样本,平均到60个类别上,相当于每类文字在之前的基础上再增加了600个左右的样本.此外,合成的图像中的字符样本包含了各种场景,即其中的字符具有多样性,增强了模型的泛化能力,这也是识别精度得以提高的原因之一.

4) 实验四采用的是裁剪后的数据图像,即先将原始数据集的图像与人工手写增加的图像进行裁剪,之后与图像合成的数据组成数据集,包含80个类别共计110 610个字符样本,较实验三的数据集增加了11 351个字符样本.最终,实验四获得了91.95%的mAP,较实验三增加了8.96个百分点,证明图像裁剪的方式也能有效提升水书手写文字的识别率.利用实验四训练的模型进行图像测试,其检测与识别效果如图2所示.

图2 水书文字检测和识别的结果Fig.2 Detecting and recognizing results of Shuishu characters

实验结果表明,将Faster RCNN模型应用于水书手写文字的检测与识别是可行的,且本文采用的数据扩增方式能明显提升水书手写文字的识别率,在全部80个目标类别上获得的mAP为91.95%,能准确检测到测试图像中的水书文字并正确识别出来.

4 结 论

本文建立了水书手写文字数据集,探讨了几种数据扩增的方式,利用Faster-RCNN模型实现了页面级的水书古籍文字的检测与识别,为后续移动端水书识别系统的构建奠定了基础,为水书文化的保护和传承提供了新的思路,对于解决实际应用场景中的水书文字识别问题具有重要意义.尽管水书文字的识别取得了上述进展,但相关研究仍需进一步的深入,考虑从数据集和模型两个方面着手后续研究,一是收集更多的原始数据,深入研究半监督或无监督的数据标注方法,降低标注成本,或者探索更有效率的数据扩增方式,进一步实现数据均衡;二是寻求模型上的改进和创新.

猜你喜欢

手写类别样本
我手写我心
一起去图书馆吧
我手写我意
规划·样本
简析基于概率预测的网络数学模型建构
人大专题询问之“方城样本”
随机微分方程的样本Lyapunov二次型估计
6万字的情书
网络时代更需要手写的温暖
“官员写作”的四个样本