基于深度学习的在线字临摹分析系统设计∗
张承强1ꎬ张永爱1ꎬ顾兴权2
(1.福州大学物理与信息工程学院ꎬ福建福州350116ꎻ
2.西安电子科技大学通信工程学院ꎬ陕西西安710000)
摘㊀要:为方便和快速地进行字体临摹分析ꎬ该系统将纸面手写字名人真迹字进行相似度比较ꎬ使用残差网络Res ̄Net50模型和新的字相似度算法对手写字进行高精度识别并与名人真迹字快速地进行相似度计算ꎮ将自制的名人书法字数据集和普通中文数据集合在一起训练ResNet50模型ꎬ最后结合Web网站和Android开发了一个实时在线手写字与各名人书法字进行相似度比较的系统ꎮAndroid端主要用来上传纸面手写字照片和展示处理的结果ꎬ搭建的Web网站用来对图片进行识别和相似度的计算与分析ꎮ
关键词:ResNet50模型ꎻ字相似度算法ꎻ中文数据集ꎻ在线比较系统
中图分类号:TP391㊀㊀㊀㊀㊀㊀文献标识码:A㊀㊀㊀㊀㊀㊀DOI:10.19358/j.issn.2096 ̄5133.2020.02.008
引用格式:张承强ꎬ张永爱ꎬ顾兴权.基于深度学习的在线字临摹分析系统设计[J].信息技术与网络安全ꎬ2020ꎬ39(2):40 ̄44ꎬ56.
Designofonlinewordcopyinganalysissystembasedondeeplearning
在线图片处理
ZhangChengqiang1ꎬZhangYongai1ꎬGuXingquan2
(1.CollegeofPhysicsandInformationEngineeringꎬFuzhouUniversityꎬFuzhou350116ꎬChinaꎻ
2.CollegeofCommunicationsEngineeringꎬXidianUniversityꎬXiᶄan710000ꎬChina)
Abstract:Inordertoexpedientlyandquicklyanalysethefontcopyingꎬthesystemcomparesthesimilaritybetweenthehand ̄writtencharactersonpaperandtheoriginalcharactersoffamouspeople.UsingtheresidualsnetworkResNet50modelandanewwordsimilarity
algorithmtorecognizethehandwrittenwordswithhighaccuracyandcalculatethesimilarityquicklywiththefamoushandwrittenwords.ResNet50modelistrainedbycombiningself ̄madefamouscalligraphycharacterdatasetandcommonChinesedataset.Atlastꎬareal ̄timeonlinehandwrittenwordsimilaritycomparisonsystemisdevelopedwiththecombinationofwebsiteandAndroid.Androidmainlyuploadsphotosofhandwrittenwordsonpaperanddisplaystheprocessingresultsꎬandthebuiltwebsiteisusedtoidentifyimagesandcalculateandanalyzethesimilarityofpictures.
Keywords:ResNet50modelꎻwordsimilarityalgorithmꎻChinesedatasetꎻonlinecomparisonsystem
0㊀引言
在我国的各种古代艺术门类中ꎬ最具标志性ꎬ最
能集中地㊁典型地㊁鲜明地㊁持续而广泛地表现民族精
神和时代精神的艺术ꎬ非书法莫属[1]ꎮ数字化的书法字体临摹成为了很多大众的爱好ꎬ数字化的手写字识
别往往和深度学习相结合ꎮ深度学习是新兴的机器
学习研究领域ꎬ旨在研究怎样从数据中自动地更好地
提取多层特征表示ꎬ其核心思想是通过数据驱动的方式ꎬ采用一系列的非线性(如激活函数)变换ꎬ从原始数据中提取由低层到高层㊁由具体到抽象㊁由一般到特定语义的特征[2]ꎮResNet(ResidualNeuralNet ̄work)是由微软研究院的HeKaiming等四名华人提
出的强大深度学习网络[3 ̄4]ꎬ在ILSVRC2015比赛中取得冠军ꎬResNet的结构可以极快地加速神经网络[5 ̄6]的训练ꎬ模型的准确率也有比较大的提升ꎬ本文的深度学习网络采用的就是ResNet网络ꎮ
目前ꎬ在线的名人书法临摹基本上都是照着某名人的书法临摹再比较相似度ꎬ且都是触屏书写[7 ̄8]ꎮ触屏书写存在灵敏度强弱㊁屏幕大小和数
∗基金项目:国家自然科学基金(61775038)ꎻ福建省自然科学基金(2017J01758)
字量化等因素而导致的手写字细节丢失问题ꎬ而本文的系统平台是在现实的纸等实物上进行书写后再拍照进行上传ꎬ有很多的细节能够保留且很方便ꎬ只要制作的名人书法字越精细ꎬ对细节的比较就越充分ꎮ此外ꎬ现今的在线名人书法临摹也限制了用户书写行为ꎬ只能对着名人的字进行临摹ꎬ本文的系统平台除此之外ꎬ还可以把日常的手写字与多位名人字进行比较ꎬ再展示与其最相似的名人真迹字并分析其结果ꎮ本文的平台可以面向大众娱乐ꎬ方便快捷地将自己的手写字与名人字比较ꎮ
1㊀深度学习
1.1㊀ResNet原理
ResNet借鉴了以往网络结构的优点ꎬ使用残差学习方法解决了在信息传递时出现的信息丢失㊁损耗等问题ꎬ整个网络只需要学习输入与输出不同的那一部分ꎬ使得网络学习的目标和难度得到简化ꎮ与传统的卷积神经网络相比ꎬResNet提出了两种映射ꎬ恒等映射(identitymapping)和残差映射(residualmapping)ꎮ图1是一个简单的ResidualBlockꎬ恒等映射就是图1中的曲线(ShortcutConnection)跳过2层权重(层数是可变的ꎬ也可以是3层)后把X直接送到2层后的ReLU层的映射ꎬ之所以称为恒等ꎬ是因为X跳过了权重层ꎬ没有经过任何计算ꎬ即G(X)=Xꎻ残差映射指普通网络原来的部分ꎮ
图1㊀ResidualBlock
曲线部分使得每一个残差块很容易地学习到恒等映射结果ꎬ并且在反向传播时可以使梯度直接传播到更浅的层ꎮ在传统卷积神经网络上多次使用ResidualBlockꎬ就形成了残差网络(ResidualNet ̄workꎬResNet)ꎮ残差网络解决了传统极深网络的退化问题ꎬ让训练极深的网络成为可能[9]ꎮ残差网络最常见的层数有50层和101层等ꎮ1.2㊀ResNet50模型
ResNet50即共50层的残差网络ꎬ如图2所示ꎬ包括conv1ꎬconv2.xꎬconv3.xꎬconv4.x和conv5.x卷积层ꎬ以及输出层ꎮ每个卷积层包含有7ˑ7ꎬ3ˑ3和1ˑ1大小的数量不等的卷积核ꎬ以及池化(pool)层和激活(ReLU)层ꎮ
图2㊀ResNet50网络配置
2㊀ResNet50模型训练与测试
本文的ResNet50网络使用目前流行的深度学习库TensorFlow搭建ꎬ首先需要对数据进行预处理ꎬ本文自制了名人书法字数据集并将其与普通中文字数据集合在一起ꎬ以增加模型训练的数据量ꎻ为了增强模型的泛化能力以提高准确率ꎬ本文将数据集进行数据增强ꎬ接着对图片进行大小尺寸的调整ꎬ本实验将图片尺寸调整为224ˑ224的大小ꎻTensorFlow官方推荐的训练数据标准格式是tfrecord格式ꎬ此格式能够将图片数据和标签一起存储成二进制文件ꎬ能够在TensorFlow中实现快速地复制㊁移动㊁读取和存储操作ꎬ由于本文使用TensorFlow库进行模型
搭建ꎬ可再将上述的数据集制作成tfrecord格式[10]ꎮ
数据预处理完成后ꎬ就开始搭建ResNet50网络ꎬ导入TensorFlow库和加载预训练模型ꎬ设置batch_size㊁学习率和网络输入的大小ꎬ指定模型保存路径ꎬ损失函数选择sigmoid交叉熵ꎬ优化器选择Adamꎬ并设置其他相关参数[11]ꎮ
设置完所有的参数后ꎬ对模型进行训练ꎬ如图3和图4所示ꎬ分别是模型训练过程中的精度曲线和损失值(loss)曲线ꎮ
图3㊀迭代次数与准确率的关系图
图4㊀迭代次数与损失值的关系图
3 字相似度算法
本文的字相似度算法比现有的传统字相似度算法简单ꎬ且符合直观感受ꎬ有易理解和计算量小等特点ꎮ
该算法分为以下几步ꎬ为便于论述ꎬ将手写字图片和名人书法字图片分别设为图片A和图片Bꎮ
(1)将图片A和图片B灰度化ꎮ最初的图片是三通道的彩图ꎬ需要将其灰度化为单通道图片以便下面只在单通道上二值化ꎮ
(2)自定义二值化ꎮ将图片A和图片B中的每个像素值大于设定的阈值(比如100)的像素点全部设为255ꎬ否则设为0ꎮ对于白纸黑字的手写字ꎬ经过实验得出阈值取100能有很好的二值图ꎬ即小斑点和划痕相对较少ꎮ
(3)处理图片A和B中的细小斑点㊁小划痕㊁孤立点和噪音等像素ꎬ将其全部设为255(此步骤是为了下一步截字精确)ꎮ
(4)分别将图片A和B中的字恰好截取出来ꎬ得到图片A1和B1ꎮ精确截字是为了在计算字之间的相似度时减少背景的影响ꎮ得到图片A2和B1ꎮ同尺寸后才能用步骤(7)中算法进行相似度的计算ꎮ名人书法字的尺寸不作改变是为了要保持其字的形状不变ꎬ所以将手写字设为与其同尺寸ꎮ
(6)分别将图片A2和B1颜取反ꎬ得到图片A3和B2ꎮ取反之后的图片变成了白字黑背景的图片ꎬ因为像素值为255表示白ꎬ0表示黑ꎬ所以白字黑背景进行相似度计算时才是对字进行相似度比较ꎬ不然黑字白背景其实是对背景进行相似度计算ꎮ(7)将图片A3和B2采用修改的均方误差算法[12](即PMSE)进行相似度计算ꎬ原理如式(1)ꎬ得到的计算结果就是图片A和B的相似度值ꎮ㊀PMSE=1-12552mnðm-1i=0ðn-1j=0[I(iꎬj)-K(iꎬj)]2
(1)其中ꎬm为图片的宽ꎬn为图片的高ꎬI(iꎬj)和K(iꎬj)分别表示两张不同图片在(iꎬj)点的像素值ꎮ改进的均方误差算法的Python代码实现如下:defPmse(imageAꎬimageB):
err=np.sum((imageA.astype("float") ̄imageB.astype("float"))∗∗2)
err/=float(imageA.shape[0]∗imageA.shape[1]∗255∗255)
return1 ̄err
相似度算法的实际实现过程如图5所示ꎮ不过一般名人书法字最终的反二值图会预先制作好存放在数据库中ꎬ这样做一方面是为了减少系统平台处理时间ꎬ另一方面名人书法字由于岁月的侵蚀可能会出现一些非理性的脏点ꎬ需要人工处理好再存于数据库中ꎮ
字相似度算法在不同手写字与不同名人真迹字之间的实际比较效果如图6所示ꎬ其中的名人真迹字和手写字是经过上述步骤(1)~(6)处理后的ꎬ组别1和组别2中的名人真迹字是相同的真迹字ꎬ手写字是不同的ꎬ从相似值的大小来看组别1更相似ꎬ也更符合人的主观感受ꎻ组别2和组别3的名人真迹字是不同的ꎬ手写字是相同的ꎬ从相似值的结果看组别3更相似ꎬ也更符合人的主观感受ꎻ组别4中的名人真迹字与手写字主观感受上看起来很像ꎬ但由于名人真迹字边缘过于粗糙而使相似度的值没有超过0.9ꎮ通过实验认为相似度的值超过0.88
图5㊀字相似度计算实例流程图
图6㊀字相似度算法效果
㊀㊀本文的字相似度算法比书法字骨架提取㊁骨架相似度计算和点化形态相似度计算等综合性算法显然更简单和计算量更小ꎬ具有代码易实现㊁实时性明显和通用性(其他文字亦可)等特点ꎬ效果直观上无区别ꎬ优势明显ꎮ4㊀在线Android平台开发
本文开发的基于深度学习的在线手写字与名
人书法字相似度比较Android平台ꎬ将Android㊁Web服务器㊁深度学习和字相似度算法结合在一起ꎮ整个平台有四大模块ꎬ分别为Android应用的图片上传模块[13]㊁识别模块㊁字相似度计算模块和Android应用显示结果模块ꎮAndroid应用的图片上传模块:用户可以进行本地相册的图片上传或对手写字拍照后再上传ꎻ识别模块:上传的图片被Web网站接
收并预处理后ꎬ通过已训练好的文字深度学习模型(即ResNet50模型)识别用户提交的图片ꎬ成功识别为某字ꎻ字相似度计算模块:在成功识别后ꎬWeb网站[14]会将上传的图片与数据库中各名人书法字的该字图片进行相似度的计算ꎬ并返回结果ꎻAndroid应用显示结果模块:显示内容包括用户提交的图片㊁最相似的名人真迹图片㊁相似值和分析结果等信息ꎮ在线Android平台结构如图7所示ꎮ
图7㊀在线Android系统平台
㊀㊀Android应用的图片上传模块的显示界面如图8所示ꎬ这是一个用HTML+CSS+Javascript技术简单设计的网页页面[15]ꎬAndroid应用是一个定制的浏览器ꎬWebview方法已经设置了指定的Web服务器网址ꎬ在打开Android应用时会访问指定的Web网站ꎬWeb网站将会响应设计好的网页页面代码ꎬ通过HTTP协议将代码发送到Android端ꎬ定制的浏览器会解析页面代码进行页面渲染ꎮAndroid应用的显示界面也可以做成小程序等界面[16]ꎮ
图8㊀Android应用已选定图片的界面
Android应用显示结果模块的显示界面如图9所示ꎬ图8上传手写字到Web服务器之后ꎬ服务器处理完成后会将处理结果返回给Android端ꎬAn ̄droid界面会展示返回的处理结果ꎬ该界面展示的信息有识别到的手写字㊁相似度计算的结果㊁手写字图片和最相似的名人字图片以及简单评价等ꎮ
图9㊀后台处理结果展示
5 结束语
本文将自制的名人真迹字数据集和普通中文数据集合在一起训练了ResNet50模型ꎬ训练好的R
esNet50网络对手写汉字的识别精度非常高ꎻ改进的字相似度算法对手写字与名人真迹字的相似度计算的结果完全符合人的主观感受且计算量不大ꎬ适合做Android端与服务器端的在线相似度识别计算任务ꎻ最后将训练好的ResNet50模型和字相似度算法放在搭建好的Web网站上ꎬ再与Android应用相结合ꎬ实现了一个实时在线手写字与名人真迹字的相似度比较系统ꎮ此外本平台若增加钢笔字和水笔等字的数据集ꎬ也可对钢笔和水笔的名人真迹字进行相似度的计算ꎮ
参考文献
[1]汤大民.中国书法简史[M].南京:南京师范大学出版社ꎬ2012.
[2]张军阳ꎬ王慧丽ꎬ郭阳ꎬ等.深度学习相关研究综述[J].
计算机应用研究ꎬ2018ꎬ35(7):1921 ̄1928. [3]HeKaimingꎬZhangXiangyuꎬRenShangqingꎬetal.Deepre ̄siduallearningforimagerecognition[C].ProceedingsofIEEEInternationalConferenceonComputerVisionandPat ̄ternRecongnitionꎬ2016:770 ̄778.
[4]XIESNꎬGIRSHICKRꎬDOLLARPꎬetal.Aggregatedre ̄sid
ualtransformationsfordeepneuralnatwork[C].Pro ̄ceedingsofIEEEConferenceonComputerVisionandPat ̄ternRecognitionꎬ2017:5987 ̄5995.
[5]ALBAWIS.MOHAMMEDTA.Understandingofaconvo ̄lutionalneuralnetwork[C].TheInternationalConferenceonEngineeringandTechnologyꎬ2017:1 ̄6. [6]NGUYENKꎬFOOKESCꎬSRIDHARANS.Improvingdeepconvolutionalneuralnetworkswithunsupervisedfeaturelearning[C].ProceedingsofIEEEInternationalConfer ̄enceonImageProcessingꎬ2015:2270 ̄2274. [7]常涛涛.一种可变贴临摹练字装置:中国ꎬ201821088134.3[P].2019 ̄10 ̄29.
[8]广东欧珀移动通信有限公司.在智能终端实现触屏笔画构造的方法及智能终端:中国ꎬ201310070640.5[P].2016 ̄03 ̄09.
[9]SZEGEDYCꎬLIUWꎬJIAYQꎬetal.Goingdeeperwithconvolutions[C].ProceedingsofInternationalConference
onComputerVisionandPatternRecognitionꎬ2015:1 ̄9. [10]SEETALAKꎬBIRDSONGWꎬREDDYYB.Imageclassi ̄ficationusingtensorflow[M].SpringerInternationalPub ̄lishingꎬ2019.
[11]李河伟.一种移动式TensorFlow平台的卷积神经网络设计方法[J].电脑知识与技术ꎬ2017ꎬ13(22):179 ̄182.
[12]LEDIGCꎬTHEISLꎬHUSZARFꎬetal.Photo ̄realisticsin ̄gleimagesuper ̄resolutionusingagenerativeadversarialnetwork[C].ProceedingsofIEEEConferenceonCom ̄puterVisionandPatternRecognition.PiscatawayꎬNJ:IEEEꎬ2017:105 ̄114.
(下转第56页)