基于改进Faster R-CNN的贺兰山岩画检测识别
2023-03-29路梦瑶李春树
路梦瑶,李春树
(宁夏大学物理与电子电气工程学院,宁夏 银川 750021)
1 引言
早在文字产生之前,岩画就已经出现,其是一种重要的记事方式。古代人民使用矿物质颜料、石材工具或金属器具在岩石上绘画或者凿刻来对他们的生产方式、生活内容以及美好的想象和愿景进行描绘和记录[1]。其不仅是人类社会早期的文化现象,还是人类祖先留给后人的宝贵文化遗产。中国是岩画诞生最早、分布最广、内容最丰富的国家之一,而贺兰山又是华夏土地上遗存最集中、题材最广泛、保存最完好的岩画地区之一[2],是我国和世界岩画的重要组成部分,在中国岩画中具有一定的代表性。贺兰山岩画分布在贺兰山东麓诸山口的山壁和山前的岩石上,其历史悠久、数量繁多,真实生动地记载了大量的动物、类人首、狩猎、放牧、战争、舞蹈、劳动、祭祀等图形和场面,再现了远古时期贺兰山地区游牧民族的生存经历、生活习俗、原始观念和审美情趣[3]。然而,由于贺兰山岩画产生历史悠久,且是石材工具、金属器具等制作在裸露的岩壁之上,面临着风吹雨打、盐碱侵蚀等物理、化学破坏。因此,保护工作刻不容缓[4]。
通过对贺兰山岩画进行检测与识别,一方面,可以使其资料更加精准的保存下来,为之后的保护和研究工作提供数据支持,另一方面,可以帮助非专业人士更加便捷、快速、直观的了解岩画的内容,从而使得岩画的学习和传播更为有利。传统的检测识别方法是由相关领域专家通过目视来检测识别,存在受人力影响大、耗时长、特征提取难和检测识别准确率低等限制。因此,为了给保护岩画争取更多的时间,且更广泛更深入的挖掘岩画包含的文化内涵,将深度学习应用于贺兰山岩画检测中,可以更加方便、快速、准确的获取岩画图像中丰富的语义信息。
近些年,随着深度学习良好的发展,目标检测有了很大突破。目标检测主要分为两类:一类是基于候选区域的算法(即两阶段目标检测器),该类算法首先对输入图像选取候选区域,然后对候选区域进行分类和位置回归,从而实现目标检测,如:R-CNN,Fast R-CNN,Faster R-CNN等,另一类是基于回归的算法(即单阶段目标检测器),该类方法省略了候选区域生成步骤,直接将特征提取、目标的分类和位置回归过程都整合到一个卷积神经网络中完成,如:YOLO,SSD,RetinaNet等[5-6]。第一类算法的优点是准确率高,但是该类算法规模较大、计算量较多,导致检测速度较慢;第二类算法可达到实时检测的效果,但是在检测精度上还略逊一筹。
鉴于本实验对物体检测准确率的要求,选取Faster R-CNN作为检测模型。然而,该检测模型只在特征提取网络最后一个特征图上进行后续操作,而这一层由于经过多次下采样导致分辨率较低,从而造成目标在特征图上的有效信息减少,检测性能受到影响。因此提出了一种改进的Faster R-CNN。该模型首先基于ResNet-101网络,结合特征金字塔网络(Feature Pyramid Networks,FPN),将浅层特征和深层特征融合,充分利用了不同层的优势[7];其次在特征提取网络C5层的输出后增加空间金字塔池化(Spatial Pyramid Pooling,SPP),通过多级池化获取物体多尺度特征,之后将池化特征与原始特征进行合并,从而实现了局部特征和全局特征的融合,进一步丰富了特征图的语义信息;最后将改进后的模型应用于贺兰山岩画的目标检测中,以提高准确率。
2 基于改进Faster R-CNN的贺兰山岩画检测与识别方法
Faster R-CNN目标检测网络主要由三部分组成:特征提取网络、区域候选网络(Region Proposal Network,RPN)和Fast R-CNN目标检测网络,如图1所示。
特征提取网络的输入为任意大小的图片,通过一系列的卷积池化操作得到输入图像的特征图,该特征图被后续的区域候选网络和Fast R-CNN目标检测网络共用。区域候选网络对输入的特征图进行候选区域划分,并通过相关处理最终获取有效的感兴趣区域(Region of Interest,RoI)[8]。Fast R-CNN目标检测网络在特征图上提取输入的有效的RoI对应的特征,通过感兴趣区域池化层形成固定维度的矢量特征,最后输入到全连接层进行分类和边界框回归任务。
2.1 改进的特征提取网络
文章采取的特征提取网络是ResNet-101,该网络在增加深度的同时,采用残差连接的方式,将输入信息直接绕道传送给输出,保证了信息完整的同时,还避免了梯度消失或者梯度爆炸导致网络性能退化或者无法训练的情况。ResNet-101各卷积层的结构参数如表1所示。
表1 ResNet-101各卷积层结构参数
为充分利用不同层的特征信息,结合ResNet-101网络构建特征金字塔结构。特征金字塔由三部分组成:自底而上、自顶向下和横向连接[9],如图2所示。自底向上部分是ResNet-101特征提取网络,特征图的分辨率从下到上不断缩小。选取该网络Conv2_x、Conv3_x、Conv4_x、Conv5_x层最后一个残差块的输出作为FPN层的输入,分别计为C2、C3、C4、C5。自顶向下部分采用上采样处理将上一层的特征图放大到和当前层特征图分辨率一致[10],之后使用横向链接,巧妙地将顶层的高级语义特征和底层的高分辨率信息进行相加[11],得到新的特征图计为M2、M3、M4、M5,之后分别采用3×3的卷积核进行卷积操作,解决特征图叠加后特征不连续的问题[12],得到P2、P3、P4、P5,最后将P5进行下采样处理得到P6。
图2 特征金字塔结构
改进的特征提取网络是在C5层输出后加入了空间金字塔池化结构,其目的是提取图像的多尺度特征,提高对不同尺度目标的检测精度[13]。空间金字塔池化结构如图3所示,对C5层输出的特征图进行多级最大池化操作,池化核的大小设置为3、5、7三种尺度,并且为了保证输出特征图大小不变,池化操作的步长设置为1并进行填充操作,之后将池化后的特征与原始特征进行合并[14],从而实现了局部特征与全局特征的融合,进一步丰富了特征图中的语义信息[12]。
图3 空间金字塔池化结构
2.2 区域候选网络
区域候选网络是Faster R-CNN的核心组成,其采用全卷积网络来计算候选区域[15],其结构如图4所示。首先,在特征提取网络最后一层输出的特征图上采用尺寸为n×n大小的滑窗进行卷积操作,每个滑窗以特征点为中心生成k个候选区域(即锚箱),大小为 W×H的卷积特征图(W为特征图的宽度,H为特征图的高度)共有W×H×k个候选区域[8],每次滑动都生成一个固定长度的特征向量;之后,将这些特征向量传送到两个并行的全连接层,该全连接层采用核尺寸为1×1的卷积实现。边界框回归层计算候选区域四个顶点的坐标值,分类层估计候选区域是前景还是背景的概率。因此,两个全连接层的输出个数分别为4×k和2×k。
图4 区域候选网络结构
文章结合特征金字塔后,在各个尺寸上进行单独预测,从而提高模型的多尺度泛化能力。综合考虑贺兰山岩画中目标的信息,P2到P6特征图对应的锚箱尺寸分别设置为{322,642,1282,2562,5122},且每个尺寸的锚箱采取三种不同的长宽比,分别是{1:1,1:2,2:1},最终生成15种不同的锚箱,确保可以涵盖各类岩画目标。
2.3 损失函数
模型预测值和真实值间的差距利用损失函数来进行度量[16],且损失值大小和模型鲁棒性呈负相关,即随着损失值得减小模型鲁棒性增加。文章所提网络模型是一个多任务模型,由目标分类任务和边界框回归任务组成,其定义如下
(1)
分类损失Lcls定义为
(2)
回归损失Lreg定义为
(3)
坐标向量,采用下列公式进行坐标的参数化
(4)
式中,(x,y)示预测框的中心坐标,(xa,ya)示锚箱的中心坐标,(x*,y*)表示标准框的中心坐标,w和h指预测框的宽和高。
3 实验
3.1 数据集制作
鉴于贺兰山岩画没有公开数据集,因此需要自己制作贺兰山岩画数据集。相关图像获取的渠道主要为以下三条:①使用摄影设备到贺兰山岩画景区进行实地拍摄,并且在拍摄过程中,注意相机的对焦、拍摄距离和拍摄角度,以保证图像清晰,便于后期处理与识别;②通过对《贺兰山岩画》第一册和第二册中的图片进行提取。《贺兰山岩画》是西北第二民族学院重要的岩画研究学术成果之一,第一册中收录了多幅岩画彩色照片,第二册中荟萃了岩画拓片,这些岩画资料全面系统的向世人展示了贺兰山岩画的风采全貌和细节信息,是极为珍贵的人文资料;③通过网络搜索对相关图片进行保存。通过上述三种方式获取并进行筛选后共计获得571张图片。对其进行人工分类,主要分为4类,分别是:羊像、人面像、太阳神像和猴面像,其中羊像123张,人面像256张,太阳神像123张,猴面像15张。部分贺兰山岩画图像如图5所示。
图5 部分贺兰山岩画图像
为了得到较好的贺兰山岩画检测与识别模型,使用深度神经网络对数据集进行训练。由于深度神经网络参数较多且存在很多非线性处理,为避免由于数据集过小而导致的过拟合现象[17],基于有限数据利用数据增强技术生成更多等价的数据,丰富训练数据的分布。本实验具体使用的图像增强方法有:裁剪、翻转、归一化和填充等。
为了获取图像中岩画目标的位置和类别信息,采用LabelImg图像标注软件对贺兰山岩画的数据集进行标注[17]。本实验岩画目标标注分为四类,分别用:sheep、monkey_face、sun_spirit和human_face分别表示羊像、猴面像、太阳神像和人面像。整体数据集按照9:1的比例随机分为测试集和训练验证集,训练验证集按照8:2的比例随机分为训练集和验证集。
3.2 实验环境及训练设置
实验环境配置参数如下:GPU为NVIDIA GTX1080Ti 11G显存,操作系统是Ubuntu18.04,使用深度学习框架PyTorch1.4.0,并结合CUDA10.1和cuDNN7.6.3进行加速,代码运行环境为Python3.6。
实验采用随机梯度下降法对网络进行训练,初始学习率为0.01,epoch设置为12,动量因子为0.9,学习率衰减速率为0.0001。在RPN阶段正、负样本阈值分别设置为0.7、0.3,处在两个阈值之间的样本不参与训练。
3.3 数据集数据增强对比实验
本节基于ResNet-101+FPN特征提取网络的Faster R-CNN做对比实验,分别对原始贺兰山岩画数据集和随机数据增强后的贺兰山岩画数据集进行训练,且使用相同的测试集测试模型的识别精度。实验过程中,使用的训练参数保持一致,从而避免除数据集以外的其它因素对结果造成影响。如图6所示,使用增强后的数据集训练,其整体损失函数的损失值随着epoch的增加,波动更小,收敛更快,且最终损失值更低。如表2所示,使用原始数据集训练得到的模型的mAP为30.9%,使用数据增强后的数据集训练得到的模型的mAP为81.4%,并且使用数据增强训练得到的模型的每类贺兰山岩画的AP也比原始数据集训练得到的模型高。由此可见,对数据集进行数据增强能够显著提升网络模型的检测精度,降低因数据量过小对网络模型检测效果的影响。
表2 数据集数据增强前后对比实验
3.4 特征提取网络对比实验
在目标检测与识别领域,将Faster R-CNN中传统的VGG16替换成残差网络可以提高模型性能。为确定贺兰山岩画检测模型中ResNet的最佳层数,选取ResNet-50和ResNet101两种结构,在Faster R-CNN模型上,将两种不同的特征提取网络融合FPN(ResNet-50+FPN和ResNet-101+FPN)进行训练,所有的训练均采用数据增强后的数据集。图7为基于两种不同特征提取网络的Faster R-CNN模型的整体损失函数的损失情况。随着epoch的增加,整体loss值均逐渐降低并逐渐收敛趋于稳定,但是相比ResNet-50+FPN,ResNet-101+FPN网络模型收敛更为迅速,且最终loss值较低。除此之外,由表3可得,使用ResNet50+FPN训练得到的模型的mAP为76.5%,使用ResNet-101+FPN训练得到的模型的mAP为81.4%,并且人面类和羊类的平均精度ResNet101+FPN比ResNet-50+FPN分别高7.9%和11.9%。由此可见,101层的ResNet特征提取网络更适合贺兰山岩画检测模型,其网络更深,从而提取更多目标特征,导致有良好的检测精度。
由表3可知,在特征提取网络ResNet-101+FPN的基础上,引入SPP模块使得模型的mAP由81.4%提升至84.7%,其中人面像和羊像的AP分别提升了3.1%和10.1%。这是因为贺兰山岩画历史悠久,有很多古代少数名族先后在此游牧、狩猎,贺兰山北自石嘴山、南至中卫的十多个山口,其上的岩画内容虽然都是人面或者羊,但是由于作画工具手法不同、人们对同一事物的不同认知以及遭到物理、化学等病害,导致其形态特征有所差异或者不完整,从而在识别上增加了难度。SPP的引入将具有更多高级语义信息特征图中的局部特征与全局特征进行融合,进一步丰富了特征图中所包含的语义信息,从而提高了模型的检测精度。
图6 整体损失曲线
图7 不同特征提取网络的整体损失曲线
图8显示了改进后的Faster R-CNN模型在不同种类贺兰山岩画中的识别结果。
图8 改进Faster R-CNN的部分检测结果
表3 特征提取网络对比实验
4 结论
文章提出了基于改进Faster R-CNN的贺兰山岩画检测与识别方法,采用裁剪、翻转、归一化和填充等方法对数据集进行增强,避免了由于数据集较小而在训练过程中出现过拟合的现象。在特征提取阶段,使用ResNet-101基础网络结构,构建特征金字塔,并在C5层的输出后加入空间金字塔池化模块,提升了模型的特征提取能力,从而提高了贺兰山岩画的检测精度。通过实验证明,文章提出的模型对4类贺兰山岩画检测的平均精度均值可达84.7%,在贺兰山岩画检测方面具有实用价值。