0 引言
矿物识别是地质研究的重要内容,传统上,人们根据矿物的物理化学性质进行类别判定,但其存在对专业知识依赖度高等问题
[1⇓⇓⇓-5],因此人们开始尝试使用人工智能技术进行矿物识别,如Bayken等
[6]使用神经网络证明了RGB是矿物识别的最佳空间,郭艳军等
[7]以ResNet18为框架对5种偏光显微镜下的矿物进行鉴别并取得了89%的准确率,徐述腾等
[3]基于U-net网络对5种硫化物矿物的显微镜下图像进行识别并取得了90%的准确率。在矿物光谱图像的分类上,Agrawal等
[8]提出一种CNN(卷积神经网络)和LSTM(长短期记忆网络)相结合的模型用于7种矿物分类,并取得了92.16%的准确率。
在直接识别矿物相机图像上,彭伟航等
[9]通过改进InceptionV3网络和损失函数,对16种矿物图像进行识别并取得了86%的准确率,杨彪等
[10]先是设计了一种参数量较少的多尺度密集连接网络,然后设计了一种仅为20 MB的模型
[11],在5种矿物上取得了91.5%的准确率。以上工作,矿物种类和数目都比较少,因此,Zeng等
[12]从Mindat
[13]爬取大量数据并采用EfficientNet-b4对36种矿物共18余万张图像进行分类,得到了78.3%的准确率。
矿物图像具有视觉内容极其相似难以被神经网络区分的特点,可采用计算机视觉中的细粒度视觉分类(Fine-Grained Visual Categorization,FGVC)
[14⇓-16]进行识别。细粒度指的是,子类分类的区分特征相较于普通分类的区分特征粒度更细,即不同子类别的样本之间,其图像传达的视觉内容的差异非常细微。传统神经网络对大规模的矿物图像的分类准确率需要进一步提高,不同矿物的类间差异较小、类内差异较大的特征使得它适用于采用细粒度分类算法进行识别。
细粒度图像分类可采用强监督方法和弱监督方法
[14]:强监督方法需要对象级的物体标注框和部位级的局部标注点,需要对数据进行大量标注,费时费力;而弱监督方法只需要图像级的类别标签,已成为细粒度识别的研究趋势
[15]。弱监督方法又分为定位识别法和端到端特征编码法:定位识别法先定位到有区分性的关键部位,再提取对应部位的特征进行分类;端到端特征编码法是对整张图片进行特征提取然后分类。而矿物本身不存在诸如鸟类的头、爪等固定关键部位,因此本文采用通过设计细粒度特征提取能力强大的模型挖掘更具有区分性的细粒度特征的端到端特征编码法
[16]。
常用的端到端特征编码法有双线性卷积网络(Bilinear Convolutional Neural Network, BCNN)
[17]、注意力成对交互网络(Attentive Pairwise Interaction, API-Net)
[18]、深度双线性变换网络(Deep Bilinear Transform, DBT)
[19]和渐进多粒度训练(Progressive Multi-Granularity Training, PMG)
[20]等。PMG采用渐进式的训练策略来学习不同粒度的信息,并采用一个随机拼图生成器来使不同粒度学习过程关注不同的区域,具有较好的细粒度识别性能且易于在深度模型上部署。近两年,Vision Transformer (ViT)
[21]在计算机视觉上取得了重大进展,但其在实际部署场景中不能像CNN那样高效地执行,为此,文献[
22]提出了Next-ViT,其通过重新设计卷积块和变换块,并将它们巧妙地重复堆叠,在推理速度和准确率之间取得了最优的平衡。
综上,为进一步提高矿物识别的准确率,本文提出基于Next-ViT的矿物细粒度识别模型,即PMG-Next-ViT。该模型在36种矿物数据集上达到了86.5%的top-1准确率,相比Zeng等
[12]的模型EfficientNet-b4,提高了8.2%。
1 矿物细粒度识别
1.1 数据集
本文数据集与Zeng等
[12]的来源一样,是使用爬虫从Mindat网站收集并手工删除非矿物及镜下矿物的相机图像。矿物数据集如
表1所示,共36种矿物、183 688张图像,并将每一种矿物按照10∶1∶1的比例划分为训练集、验证集和测试集。
图1是典型的几种矿物图像。
1.2 基于PMG-Next-ViT的矿物识别
本文采用如
图2所示的渐进多粒度Next-ViT(PMG-Next-ViT)模型进行矿物图像识别。
图2中Next-ViT
[22]模型用于提取矿物图像特征,其中,NCB(Next CNN Block)和NTB(Next Transformer Block)结构如
图3所示。NCB由MHCA(Multi-Head Convolutional Attention,多头卷积注意力)和MLP(Multilayer Perceptron,多层感知机)构建,以更好地捕捉局部特征,具有transformer block性能的同时具有较快的推理速度;NTB首先使用E-MHSA(Extended Multi-Head Self Attention,扩展的多头自注意力)捕捉低频信号,再使用MHCA捕获多频信号,以获得全局特征。将NTB和NCB混合堆叠起来的Next-ViT既可以像CNN一样快速推断,又可以像Transformer一样性能强大,这种堆叠策略改变了以往只在最后两层使用变换块的惯例,更有利于神经网络捕捉全局信号,其结构如
图2所示。考虑到训练Next-ViT所需的GPU内存要求,本文采用Next-ViT-Small模型。
PMG对局部区域最具区分度的粒度进行探索并融合不同粒度之间的信息以提高分类准确率。为获得最具区分性的矿物粒度,采用随机拼块的方式将矿物图像裁剪为原长的1/8、1/4和1/2多个小图块,并各自拼接在一起形成3个新图和原图的4个图像,对PMG-Next-ViT进行4步训练。前3步按从细到粗的粒度输入3个新图,经Next-ViT不同层提取特征后分别经过卷积层Conv得到相同维度的特征图,将这3个特征图使用包含2个全连接层的分类器处理得到前3个输出。最后1步训练时将未拆分的原矿物图像输入Next-ViT,拼接由3个Conv输出的特征图后输入包含2个全连接层的第4个分类器,得到第4个输出,4个输出均为识别矿物种类数36维的向量,相加得到一个结果向量,向量中最大的值即为预测的矿物种类。每一步训练时专注于网络相应阶段的特定粒度信息,从较细粒度开始,逐渐转向较粗粒度,在每步训练结束时将当前训练的参数传递给下一步训练且作为其初始化参数,并通过引入拼块机制在每步训练时形成不同的粒度级别来解决多粒度信息容易集中在相似区域的问题,迫使网络的每个阶段专注于矿物的局部特征而不全是整体图像,从而学习特定给定粒度级别的矿物信息。训练时采用交叉熵损失函数。
2 实验结果及分析
本文使用Python语言实现所提模型PMG-Next-ViT,Python版本是3.7.16;为加速训练,使用加速卡NVIDIA Tesla P100,显存12 GB;深度学习框架使用的是Pytorch,版本是1.13.1。
本文还实现了基于ResNet50、Next-ViT-Small和PMG-ResNet50的矿物识别,并与本文所提的PMG-Next-ViT-Small进行对比,验证所提方法的有效性。各模型均采用(448,448)大小的矿物输入图像,batch大小为16,并加载在ImageNet数据集
[23]上预训练,得到的权重作为初始权重,采用
表1所示的36种矿物图像按照10∶1∶1的比例划分为训练集、验证集和测试集。PMG-Next-ViT-Small训练依据PMG
[20]进行超参数设置,网络主干使用的学习率为0.000 2,分类头使用的学习率为0.002。保存各模型在验证集上的最佳权重,使用模型在测试集上的top1准确率及与Zeng等
[12]所使用的EfficientNet-b4的对比结果如
表2所示。可以看出,使用PMG方法可以有效提升基础模型在矿物分类上的性能,因此选用Next-ViT-Small这种较为强大的基础模型,PMG方法在矿物识别上的性能可以得到更有效的提升。对各矿物使用Next-ViT-Small和PMG-Next-ViT-Small进行识别的结果如
图4所示,可见对Next-ViT-Small使用PMG方法改进后,除红宝石识别精度稍有所下降外,其余矿物的识别精度都得到了提升。对红宝石的图像集研究发现,其往往镶嵌在其他矿物上,占图像面积较小,由此可见,PMG-Next-ViT对于占图像面积更大的矿物更为敏感,局部细节即使特征明显也予以忽略,因此对绝大多数矿物有更好的识别性能。此外,
图4中不同矿物的识别精度差异较大,这种差异和Zeng等
[12]的工作是一致的,这与矿物的具体特征及图像数量的差异有关,也存在同一张图像中包含多种矿物的干扰。
Next-ViT-Small和PMG-Next-ViT-Small在36种矿物识别上的混淆矩阵如
图5所示。可见右侧所示的PMG-Next-ViT-Small混淆矩阵对角线上的网格颜色比左侧所示的Next-ViT-Small深,进一步说明PMG-Next-ViT-Small的准确性高于Next-ViT-Small;右侧所示的PMG-Next-ViT-Small混淆矩阵对角线以外的网格颜色比左侧所示的Next-ViT-Small浅,说明PMG-Next-ViT-Small的错误识别率比Next-ViT-Small低。因此,PMG-Next-ViT-Small的性能好于Next-ViT-Small的性能,具有更高的准确率。
3 结论
本文提出了一种基于Next-ViT-Small的渐进式训练的矿物识别模型,该模型采用随机裁剪并拼接的方式形成包含不同粒度级别的矿物图像,通过Next-ViT-Small提取这些图像的特征并用于分类。该方法有效地提高了矿物识别的准确率,对36种矿物识别的准确率为86.5%。
本文将细粒度识别的方法引入矿物图像识别,实验结果表明细粒度识别方法在矿物相机图像识别上是有效的。针对PMG模型本身,采用更强大的基础模型,可以进一步提升该模型在矿物上的识别精度。
国家科技资源共享服务平台——国家岩矿化石标本资源库子项目(NCSTI-RMF20230107)