杨 云, 史雯倩, 宋清漪
(陕西科技大学 电子信息与人工智能学院, 陕西 西安 710021)
古陶瓷器型是判断古陶瓷年代来源的重要特征之一,鉴定专家也通常以器型作为鉴定的重点考量因素,但是各个朝代、窑口所烧制古陶瓷器型的类别之间差别较小,例如瓶、罐、尊等,需要考量多方面因素,才能准确分辨古陶瓷器型类别.
对于古陶瓷器型识别分类,翁政魁等[1]通过机器学习手段,提取古陶瓷器形的边缘信息,再利用差分链码[2]获取器形结构以及特征.罗宏杰等[3]采用多元统计分析方法分析古陶瓷的结构信息,实现器形分类,但实验参数对最终结果影响十分大.Juan Wu等[4]利用曲线拟合方法提取器形的边缘信息,但是准确度不够高.还有其他学者将统计学习方法应用到了器型分类中[5-7].
以上所提均是提取古陶瓷器型的外形特征,像器形高度、器形口径、器形的边缘信息等,但是这类特征比较简单,不能很好的描述古陶瓷的器形特征,对于多种多样的古陶瓷外形结构没有办法全面的描述,并且传统方法学习特征过程中参数调节对分类结果影响较大.而深度学习可以对图像数据进行整体性特征学习,从大量的数据集样本中学习得到更深层次的、更加丰富的数据集特征表示矩阵,对数据的表达更加高效准确,近些年来,深度学习也逐渐成为医学[8]、人脸[9]、工业[10]等图像识别领域中重要的方法之一,应用十分广泛.
因此,为构建基于器型的古陶瓷主要成分-结构-工艺-功能等信息对比展示的特色古陶瓷多元信息管理体系,提出将深度学习图像分类算法应用于古陶瓷文物保护领域,尝试利用卷积神经网络实现古陶瓷器型分类,研究适用于古陶瓷数据集分类的卷积神经网络模型,最终实现基于器形的古陶瓷多元信息管理体系入库按器形自动分类.
古陶瓷器型分类应用于古陶瓷多元信息管理体系中,选择基础算法要求在节约计算成本的条件下,分类准确率尽可能高,其次网络模型不宜过深,AlexNet[11]、NIN[12]、ENet[13]、GoogLeNet[14]、ResNet-18[15]网络模型相对简单,并且计算量以及参数利用率高.但是AlexNet和NIN 分类准确率相对较低,ENet、ResNet-18、GoogLeNet中GoogLeNet静态参数分配和相应内存小.结合各网络参数量、分类准确率、参数利用率、内存占用、操作数量、推理时间、功耗等各方面因素,参考实验对比[16],选取GoogLeNet算法作为基础分类网络.
2014年Google公司,打破常规卷积神经网络的堆叠卷积层的结构,提出22层的GoogLeNet[14]网络结构,从增加网络的宽度,而不是增加网络深度出发来构建网络模型.利用逐层构建的思想,并在每层嵌入具有高相关性的单元组Inception块,块内结构如图1所示.
图1 Inception结构图
Inception块内部考虑到网络方便对齐,卷积之后可以得到相同维度的特征,采用1×1、3×3和5×5大小的卷积核和3×3池化.块内各通道设置不同大小的感受野,由于块内存在大卷积核,考虑到计算成本,采用1×1卷积核来进行降维,以输入28×28×192为例(此处参数量计算忽略偏置值),若第三条支路为5×5卷积,则所需参数量为5×5×192×32=153 600,而加入1×1卷积进行降维后,所需参数量为1×1×192×16+5×5×16×32=158 72,极大的减少了参数数量,加快了计算速度.最后四条支路进行拼接操作,使不同尺度特征相融合.
2017年,Momenta公司在图像分类大赛上提出了SENet[17],通过设计压缩与激励机制,来提升网络模型对通道特征的敏感性,其原理如图2所示.
图2 压缩与激励机制原理图
首先,通过已经给定的映射条件Ftr,将输入特征X映射到U,其中X∈R(H1×W1×C1),U∈R(H×W×C).然后,将特征U经过压缩(Squeeze)操作Fsq和激励(Excitation)操作Fex,生成特征图像每个通道的权重集合,得到输出S,S∈R(H×W×C).最后,将输出S应用于U,即Fscale操作,生成SE块的输出,其可直接后向反馈给网络的后续层.
考虑到输出特征图中各通道特征数量的关系,由于每个通道的卷积核各自拥有不同的感受野,从而输出不同数据单元的特征信息,数据单元以外的信息未被很好的利用.因此,加入压缩操作.过滤器在输出特征中的每个通道上进行操作,利用通道之间的依赖关系,让U的每个单元更好的利用输入输出信息,利用压缩操作将全局信息进行压缩.统计信息Z∈Rc由压缩U实现,具体计算如式(1)所示.
(1)
压缩操作后,特征图中不同位置的特征信息相互融合,用其统计数据来表现整个图像,池化操作使用全局池化,实现最后特征信息统计.
s=Fex(z,W)=σ(g(z,W))=σ(W2δ(W1z))
(2)
Fscale(uc,sc)=scuc
(3)
2015年图像分类大赛中,何凯明提出ResNet网络结构,利用残差结构,减轻了由于网络层数加深和权重矩阵退化导致的网络退化问题.在残差结构中,使用非线性变化函数来描述一个网络的输入输出,图3为残差结构原理图,其中F(x)中包括卷积、激活等操作.
图3 残差结构原理图
图4为加入压缩与激励机制后的网络结构.将其称为SE-Inception块,和原有Inception块相比,从两方面对其进行改进:
图4 SE-Inception结构图
第一部分为Inception块内结构调整,在新的Inception块中,原Inception块内第三条支路中,第一层1×1降维卷积保持不变,第二层5×5大卷积核,将其替换为3×3卷积核[18],以此简化计算.池化部分采用最大池化方式,网络宽度得以增加,优化后Inception块内网络结构,当输入图像尺度变化时,训练网络计算复杂度降低,在提取特征的同时,节约计算成本.
第二部分加入压缩与激励机制,在上述调整Inception块内结构后加入压缩与激励机制,提取更深层古陶瓷图像特征,具体结构为全局池化层后面连接两个全连接层:第一个全连接层为1×1×c/r,使用激活函数为Relu函数,此处r值取16时网络模型训练效果最好,r取值对模型训练结果的影响分析见后续实验部分;第二个全连接层为1×1×c,使用激活函数为Sigmoid函数.
在Inception块后加入压缩与激励机制能够提取更深层次特征信息,但是加入挤压与激励机制,即加入SE block后,得到的SE-Inception块相较调整后Inception block网络层数有所增加.网络层数增加带来的问题就是信息损失和梯度损失加大,而残差思想却可以很好地缓解这些问题.因此,提出在各SE-Inception块间添加跳线,在性能相同的前提下,添加层间的旁路,将SE-Inception上一层特征信息和本层特征输出进行线性叠加,减轻训练深度神经网络时权重矩阵的退化,具体连接方式如图5所示.另外,在各层进行残差连接时,可以根据实际各层输入输出图像大小,添加不同数量的1×1卷积核对输入输出特征图进行调整.
图5 SE-Res-Inception结构图
最终改进后的SRG(SE-Res-GoogLeNet)网络结构如图6所示,网络结构在GoogLeNet的基础上对其Inception块内结构进行调整,另外,在Inception块后加入压缩与激励机制,提取更高层次特征信息,用SE-Inception块,替换掉原本网络中部分Inception块.其次,为更大程度上减弱网络退化,参考残差思想,在SE-Inception块和Inception块间增加残差连接.
图6第一部分为网络初始输入Input block,保持原网络结构不变,7×7卷积层提取输入图像整体特征图,池化层简化参数矩阵的尺寸,后接1×1和3×3卷积核,在池化层和3×3卷积核后接归一化层,统一输入数据分布性.
图6 SE-Res-GoogLeNet网络结构图
第二部分为调整Inception块内结构后并加入残差连接的Res-Inception block,在调整后Inception块间增加残差连接,实现特征线性叠加,增强模型特征提取能力.
第三部分为SE-Res-Inception block,以加入压缩与激励机制后的SE-Inception块为基础,并加入残差连接,提取深层特征,减轻权重矩阵的退化问题.
第四部分为输出部分Output block,保持原网络不变.分别为平均池化层,后接7×7全连接层,最后为SoftMax层.
古陶瓷特征图像实验数据集为自制数据集,考虑到文物信息缺失等其他情况,古陶瓷文物图像数据集数量较少,为了提高模型泛化能力和模型训练效果,测试数据集以及实验数据集来源若仅包含数据库中存储的古陶瓷文物图像样本,在进行网络训练的时候模型很可能很快就会出现过拟合的情况.因此,采用数据增强操作扩充已有古陶瓷图像数据集.
实验使用自制古陶瓷器型图像数据集,提取该数据集中古陶瓷器型生活类的器型图片,包含瓶、碗、盘、壶、罐、盆、杯、炉、洗、尊十类古陶瓷器型JPG格式图像.原始数据集包含杯、罐、壶、炉、盘、盆、瓶、碗、洗、尊各353、332、422、251、450、297、391、415、262、250张,总计3 423张,对该原始数据集进行扩充.
采用数据增强扩充数据集,包括翻转、旋转、随机颜色、对比度增强、亮度增强、颜色增强、椒盐噪声、高斯模糊共计八种处理方法,为保证数据集各类样本数量均衡,对各类随机选取数据增强操作中的6、6、5、8、5、7、5、5、8、8种处理方法对十类原始数据集进行处理,去除扩充数据集过程中出现损坏的图片数量,得到包含总图像数20 623张的古陶瓷器形数据集.按照6∶1比例划分训练集和测试集图像,其中训练集包括古陶瓷图像17 678张,测试集2 945张,样本数量统计如表1所示.
表1 古陶瓷数据集各类样本数量统计
在调整训练深度神经网络时,学习速率是十分重要的超参数.使用周期性学习率而不是固定值的学习率训练网络,可以提高分类精度和网络收敛速度.经过实验调参,本次实验使用的超参数如下:
参数空间中存在的大多是鞍点或者表现较差的极小值点,前者会严重影响模型的学习效率,后者会使得模型的最终表现变差[19].因此,本次实验中使用循环学习率(Cyclical Learning Rates)[20]中triangular2方法,使学习率在合理的边值之间周期性地变化.初始学习率设置为0.008,最大学习率设置为0.01,使用循环学习率之后,学习率变化曲线如图7所示.
图7 循环学习率变化曲线图
实验使用TF_Slim深度学习框架,数据预处理使用批量归一化处理数据集图片,生成train.tfrecords和val.tfrecords数据格式文件,进行网络训练,并测试最终结果.
SRG算法从调整Inception块内结构、加入压缩与激励机制、加入残差连接三方面进行改进.GoogLeNet原网络结构为重复的Inception块的组合,因此实验对比各类型Inception块的参数量(params)以及计算量(ops),便可以得出最终改进后的SRG网络和原GoogLeNet网络的参数量和计算量变化情况.
将输入分别为28×28×192和28×28×256的Inception块参数进行对比,数据对比如表2所示.由表2可以看出,调整后Inception块参数量和计算量明显减少,加入压缩与激励机制后,虽然参数量和计算量有所增加,但和原Inception块相比仍然相对较小.因此,SRG网络模型内采用SE-Inception块,可以在提高特征提取能力的同时,节省计算成本.
表2 各类Inception参数量分析
SE-Inception块内第三条支路卷积核大小由5×5调整为3×3时的训练结果对比如表3所示.由表3可以看出,修改卷积块大小后,训练总时长明显减少,分类准确率变化不大,因此,模型综合考虑训练时长和训练分类准确率两方面因素,最终使用3×3卷积核.
表3 SE-Inception块内卷积核大小对训练结果的影响对比
SRG算法中加入压缩与激励机制,在第一层全连接层,特征压缩时选择1×1×c/r全连接层,实验针对此处r分别取四个不同的值,测试SRG网络在古陶瓷数据集上的分类准确率,其结果如表4所示.由表4可以看出,r取16时,SRG网络在古陶瓷数据集上表现较好.
表4 r取值对模型的影响分析
对SRG网络模型进行训练时,分别采用不变的学习率和循环学习率进行对比,统计训练集损失变化数据,实验结果如图8所示.由图8可以看出,网络训练采用循环学习率时,模型收敛速度加快.因此,SRG网络模型超参数最终决定采用循环学习率方法.
图8 学习率对训练模型的影响对比
现在对各分类网络结构的分类准确率进行对比.第一部分为原GoogLeNet网络;第二部分中将原GoogLeNet网络内部的Inception块替换为SE-Inception块,更改后的网络称为SE-GoogLeNet网络;第三部分为在SE-GoogLeNet网络的基础上,在其Inception块和SE-Inception块间加入残差连接后的SRG网络.
将制作好的tfrecords格式古陶瓷数据集进行训练,计算最终分类准确率和错误率.表5为各网络Top1和Top5的错误率对比分析.图9为各网络的测试集分类准确率和网络训练迭代次数的准确率变化曲线图.
表5 分类错误率分析
由表5和图9实验结果可以看出,SRG网络模型在古陶瓷器型数据集上分类表现最好,最终测试集Top5分类准确率可达到95.15%.另外,在上述实验部分,经过各类型Inception块的参数量和计算量对比,得出SRG网络模型内采用SE-Inception块时,可以节省计算成本.因此,SRG网络在分类精度和计算成本两方面都可以满足古陶瓷器形分类需求.
图9 测试集准确率变化曲线图
针对GoogLeNet网络在古陶瓷器型数据集上的分类问题,提出基于压缩与激励机制和残差连接的改进SRG算法,实现古陶瓷器型分类,得到结论如下:
通过加入压缩与激励机制,得到SE-Inception块,可以更好的提升网络对图像特征的深层特征提取能力.经过实验,SRG算法在古陶瓷数据集上得到95.15%的Top-5分类准确率,效果优于GoogLeNet和SE-GoogLeNet.从计算成本考虑,SRG网络也表现最佳,成本最小,达到分类要求.在古陶瓷器型识别问题上,SRG网络适用性更佳.