基于改进B-CNN模型的羊绒与羊毛纤维识别
2022-01-10朱耀麟穆婉婉王进美李文雅
朱耀麟,穆婉婉,王进美,李文雅
(1.西安工程大学 电子信息学院,陕西 西安 710048;2.西北工业大学 电子信息学院,陕西 西安 710072;3.西安工程大学 纺织科学与工程学院,陕西 西安 710048)
0 引 言
羊绒与羊毛纤维在外观形态、化学结构和物理性质等方面都非常相似[1-2],两者的鉴别一直是纺织领域的难题。常用的纤维鉴别方法可分为显微镜法[3]、近红外光谱法[4]、DNA分析法[5]、图像处理与计算机视觉技术[6-8],其中,基于图像处理与计算机视觉技术的方法是目前的研究热点。
图像处理技术鉴别羊绒与羊毛纤维的关键在于提取区分性高、鲁棒性强且较为完善的特征。文献[9]将纤维图像转化为投影曲线,使用3种纹理特征提取方法结合3种分类方法选取最佳组合。文献[10]通过计算整根纤维5个不同鳞片的鳞片高度、纤维直径及其比率,使用这3个形态特征的平均值作为最终特征。文献[11]采用形态与纹理2种特征的融合特征表征图像内容,且不同类型特征采用不同的预处理操作。这些方法都基于图像的低级特征,不能表达抽象的语义特征[12],导致识别率不高。文献[13]将空间金字塔词袋模型引入纤维鉴别领域,对尺度不变特征变换特征进行聚类,将其转换为更高层次的特征,取得了不错的效果。上述方法皆使用人工设计特征[14],有用信息往往会过早丢失。深度特征是通过深度学习从图像像素矩阵中学习识别性能特征,通常可以获得比人工设计特征更高的识别率[15-17]。文献[18]借助AlexNet网络,提出一种局部增强整体的网络模型,但需要经过3个层次的训练,耗时长。文献[19]提出2个特征提取器组成的B-CNN模型,在几个标准细粒度分类数据集上都取得了良好的表现,相比单路网络识别率更高。
本文将B-CNN模型引入到纤维细粒度图像识别中,提出一种改进的B-CNN模型用于羊绒和羊毛纤维分类。不同于传统方法使用原始样本图像或处理后的骨架图像进行特征提取,该模型使用两路网络分别提取样本图像和骨架图像特征,并对不同层次特征进行融合,充分表达纤维特征信息,提高识别率。
1 系统模型
羊绒和羊毛纤维鉴别本质上是一种细粒度图像分类[20]任务,对纤维图像进行子分类,如图1所示为羊绒与羊毛纤维原始SEM图像。
(a) 羊绒 (b) 羊毛
从图1可以看出,纤维原始SEM图像存在背景干扰、亮度不匀、噪音等诸多不确定因素,具有较大的类内差异,且羊绒与羊毛纤维形状、纹理相似,类间差异较小,故需要借助局部细微差异进行分类。
针对纤维SEM图像分类的特点和需求,本文给出一种改进的B-CNN模型用于纤维细粒度图像分类。首先,为了尽可能地保留有效信息,将纤维样本图像和骨架图像所含特征进行融合,两者相互补充,从而获得描述性更强的特征;然后,基于不同层次特征所含图像信息不同的理论对B-CNN模型不同层次纤维特征进行融合,以增强特征对局部细微差异的表达能力。本文用于羊绒与羊毛纤维鉴别的双线性卷积神经网络整体结构如图2所示。
图 2 纤维鉴别的双线性卷积神经网络模型结构
原始SEM样本图像去除背景后经匹配滤波分割纤维骨架,再将骨架图像与样本图像分别送入只包含卷积层和池化层的AlexNet和VGG-D网络提取特征。从图2可以看出,为了获取更丰富的特征,本文在融合前将VGG-D的2个卷积模块同维度特征分别相加,接着利用外积和拼接操作对纤维不同层次、不同图像特征进行融合,加强层与层之间、网络与网络之间的联系,融合后的特征即双线性向量通过softmax层进行分类。
2 本文算法
2.1 匹配滤波提取骨架
纤维骨架图是指经过处理后只保留纤维轮廓和鳞片边缘的图像,本文采用匹配滤波[21]的方式提取纤维骨架。
羊绒和羊毛纤维SEM图像鳞片边缘横截面处的灰度值符合高斯分布,鳞片边缘处灰度值高,两边灰度值低。且纤维SEM图像具有以下特点:①鳞片边缘具有较小的曲率,可以用分段线性段表示;②鳞片边缘的细度在小范围内变化,可基本视为不变;③纤维SEM图像亮度不匀,传统方法无法准确提取边缘轮廓。基于以上特点,本文使用高斯曲线来拟合鳞片边缘横截面的灰度变化,设计用于检测鳞片边缘和纤维边缘的的滤波器。将纤维鳞片看做是一段一段相连的线段,在一定长度范围内,如果各鳞片边缘段宽度与高斯曲线尺度相匹配,就会产生较强的输出响应,从而识别鳞片边缘。因此滤波使用的二维高斯核函数定义为
K(x,y)=exp[-x2/(2σ2)],|y|≤L/2
式中:σ为高斯函数的尺度;L为分段鳞片的长度。
当滤波输出大小超过某个阈值,则将该点标记为鳞片边缘的一部分,达到获取纤维骨架的目的。匹配滤波提取纤维骨架减小了非理想环境下错误检测纤维边缘和鳞片边缘的可能性,同时它可以显著抑制噪声引起的响应。经实验,σ=2、L=9、T=100时,滤波效果最好,以羊绒纤维为例进行展示,此时去除背景后的图像如图3(a)所示,经匹配滤波提取的骨架图像如图3(b)所示。
(a) 去除背景 (b) 骨架图像
2.2 特征融合
B-CNN原文两路CNN分别使用VGG-D[22]和VGG-M[23],并指出使用两路不同模型的CNN可以获得比两路相同模型CNN更优越的性能[24]。羊绒和羊毛纤维样本图像为RGB图像,纤维骨架图像为经过处理的二值图像。通常RGB图像包含比二值图像更丰富的信息,且匹配滤波提取纤维骨架时对背景进行了去除,因此训练样本图像的模型比训练骨架图像的模型应该具有更深的深度。本文选择AlexNet[25]网络训练骨架图像,VGG-D训练样本图像。B-CNN网络利用外积对两路网络的特征进行了融合,能更充分的描述图像信息,但同层次特征融合存在表达单一的问题。低层次卷积特征包含目标对象的纹理、细节等信息,高层次特征包含更为抽象的语义、结构等全局信息[26]。不同层次的特征融合具有更强的特征表达能力,从而提高分类的精度。
AlexNet和VGG-D的网络结构相似,都包含5个卷积模块,3个全连接模块,不同的是,VGG-D模型中每个卷积模块包含的不是一个卷积层。若AlexNet为CNN A,VGG-D为CNN B,在改进的B-CNN模型中,将网络B中的conv4和conv5中的每一层通过add操作(图4中⊕)连接为1个conv,即分别提取网络B的conv4_1、conv4_2、conv4_3和conv5_1、conv5_2、conv5_3层的特征向量进行相加。通过对网络A和网络B中conv4与conv5层特征向量分别进行外积操作得到双线性特征,而后通过向量拼接直接连接AlexNet和VGG-D网络的特征实现特征融合,加强网络间的联系。特征融合流程图如图4所示,⊗代表外积。
图 4 特征融合流程
从图4可以看出,若conv4层特征向量为fA,conv5层特征向量为fB,由外积运算表达式可知,fA和fB必须具有相同的特征维度,因此需要对A和B两路网络进行改进。AlexNet网络conv4输出特征图大小为(13,13,384),本文舍弃conv5层后的最大池化层,添加一个含有384个1×1卷积核的卷积层,使其conv5层输出尺寸同样为(13,13,384),外积得到384×384的一维向量。VGG-D网络conv4输出特征图大小为(28,28,512),同样舍弃conv4层后的最大池化层,使其conv5层输出特征尺寸为(28,28,512),外积得到512×512的一维向量。不同卷积层表达信息不同,通过对两路网络不同层次特征进行融合,增强双线性特征表达能力。最后,添加concat拼接层,实现样本图像和骨架图像特征信息互补。
2.3 迁移训练
CNN通常可以获得优秀的分类性能,但需要大量的数据支持,数据收集与标定耗时耗力,迁移学习[27-28]应运而生。在图像分类任务中,CNN浅层网络检测到的是边缘、轮廓等比较低级的特征,这些特征对于其他图像同样适用,因此大规模图像数据集上预训练的权重是可以共享的,有助于目标图像训练模型更快收敛且能进一步提升准确率。本文使用纤维样本数据量较少,采用迁移学习策略训练模型。
ImageNet数据库是目前计算机视觉领域最大的图像数据库,所含图像超过120万幅,数量多,种类广,在其他数据集上具备较好的泛化能力,因此本文选用ImageNet数据库上学习到的参数作为迁移学习的初始值。但羊绒与羊毛纤维SEM图像与ImageNet数据库中图像差别较大,在迁移训练完成后需要使用羊绒与羊毛纤维数据集对模型进行微调,以学习到更适宜纤维分类的参数。首先对模型最后一层全连接层采用Xavier初始化,加载ImageNet数据集上预训练的权重文件,训练且只训练全连接层;接着在本文数据集上使用Adam优化算法进行反向传播,实现对整个模型的微调。
3 结果与分析
本文实验均在处理器为Intel(R) Xeon(R) CPU E5-2618L v3 @ 2.30 GHz、GPU为NVIDIA GeForce GTX1080Ti X4、显存11 GiB的计算平台上进行,使用系统为Ubuntu16.04、IDE为PyCharm,深度学习框架为tensorflow。
实验样本由榆林科技局提供,依据国家标准GB/T 14593—2008《山羊绒、绵羊毛及其混合纤维定量分析方法:扫描电镜法》制样,拍摄仪器为美国FEI公司生产的Quanta 450FEG扫描电子显微镜,放大倍数为1 000倍。采集羊绒纤维SEM图像398张,羊毛纤维SEM图像363张,图像像素大小为224×224。为了提高模型的泛化能力和鲁棒性,防止过拟合,对每幅图像采用旋转、翻转、调整对比度的方式进行数据增强,将数据集扩展到原来的4倍。其中随机选取2 500张图片作为训练集,剩下的544张图片作为验证集。
3.1 参数设置
超参数是一类不能被学习的参数值,在训练开始之前设置。网络中的超参数会影响模型的性能,合理的超参数不仅能够得到更好的效果,还能减小训练时间。为了获取性能优、鲁棒性强的模型,在改进的羊绒与羊毛纤维识别算法中,通过多次实验测试,得到一组最佳数据。optimization algorithm、learning_rate、batch_size、epochs和dropout的值分别为Adam、0.000 1、32、50和0.2。
3.2 CNN网络选取
为了选择合适的网络,分别使用样本图像和骨架图像在AlexNet、VGG-M和VGG-D 3种模型上进行训练,测试它们在验证集中的分类准确率和损失变化曲线。2种图像在3个不同模型的分类准确率和损失值变化曲线如图5所示,图5(a)、(b)为样本图像测试结果,图5(c)、(d)为骨架图像测试结果。
(a) 样本图像不同模型准确率变化曲线
从图5可以看出,随着迭代轮数的增长,3种模型在验证集上的分类准确率不断提升,损失率不断下降,最终都趋于平衡。3条曲线都存在不同幅度的振荡,这是由于本文使用样本数量少造成的。骨架图像所有模型的振幅均大于样本图像对应模型的振幅,造成这种现象的原因是纤维SEM图像在提取骨架时不可避免地存在误检、残缺的情况,导致模型鲁棒性较差。3种模型训练相对稳定后,对于原始样本图像,AlexNet网络准确率变化曲线一直处于最低状态,VGG-D准确率变化曲线一直处于最高状态,VGG-M居于中间位置;对于骨架图像,AlexNet网络准确率变化曲线一直处于最高状态,VGG-D准确率变化曲线一直处于最低状态,VGG-M居于中间位置;损失率曲线变化规则与准确率曲线变化规则正好相反。说明AlexNet模型更适合骨架图像的分类,VGG-D更适合样本图像的分类,虽然VGG-M网络卷积层与AlexNet网络一样只有5层,但其卷积核较大,若同样使用3×3卷积核,VGG-M比AlexNet网络更深,证明了原始样本图像比骨架图像需要更深层次的网络训练模型。另外,纤维骨架图像识别率最高可达94.41%,样本图像识别率最高可达93.75%,说明羊绒和羊毛纤维特征主要集中在骨架部分。
3.3 迁移学习结果分析
为了评估纤维识别分类中迁移学习在CNN上的效果,本文以B-CNN模型为例测试了从模型微调和模型迁移2种方式下的识别率。模型微调:使用ImageNet上预训练的权重作为网络模型的初始值,在本文数据集上进行微调;模型迁移:加载ImageNet数据集上已经训练好的参数进行初始化,固定卷积层参数,仅训练最后一层全连接层。2种训练方式下分类准确率变化如图6所示。
图 6 2种训练方式下分类准确率变化曲线
从图6可以看出,模型迁移曲线的识别率在70%左右,说明ImageNet数据集的特征不能较好地表达羊绒与羊毛纤维特征,这是由于ImageNet数据集与纤维电子显微镜图像数据集差别较大造成的。模型微调曲线的效果最优,识别率可达95%以上,说明模型经过微调后具备了提取纤维特征的能力,比在目标数据集上直接进行训练识别率更高,证明了模型微调的有效性。
3.4 不同模型结果对比
图7为纤维测试集图像在标准AlexNet、VGG-D、B-CNN和改进B-CNN4种不同网络模型上的分类准确率和损失值变化曲线,各模型稳定后(30轮次后)的准确率和损失值的平均值及误差记录在表1中。其中,AlexNet网络所示结果为纤维骨架图像训练分类结果,VGG-D、B-CNN模型所示结果为原始图像训练分类结果,改进B-CNN所示结果为骨架图像和原始图像共同训练分类结果。
(a) 准确率变化曲线 (b) 损失值变化曲线
表 1 不同模型分类结果
从图7可以看出,与AlexNet、VGG-D模型相比,B-CNN模型和改进B-CNN模型的准确率都有所提升,说明双线性网络建模局部特征交互能力更强,描述图像特征时比单神经网络更具代表性。改进B-CNN模型的性能最优,测试集准确率最高可达98.06%,与B-CNN相比,损失值由(0.151±0.062)降低到(0.080±0.033),证明改进B-CNN模型的有效性,纤维SEM图像不同状态、不同层次的融合特征能更准确地描述纤维。由于改进B-CNN模型为提高精度增加了计算量,所以运行时间略高于其他模型。表1最后一列为各模型测试batch_size(32)张图像所耗时间,AlexNet模型结构最简单,运行时间最短,测试batch_size(32)张图像仅需约120 ms,VGG-D、B-CNN分别比AlexNet多消耗1倍、5倍的时间,改进B-CNN消耗时间是AlexNet的8倍,大约1 s的时间,虽时间略长但足以满足纤维鉴别的实时性需求。
4 结 语
本文给出了一种采用B-CNN模型的羊绒羊毛细粒度图像分类方法。该方法对采集的原始纤维SEM图像去除背景后经匹配滤波法分割纤维骨架,针对骨架图像丢失纤维光泽、部分鳞片边缘的问题,分别提取纤维原始样本图像和骨架图像特征进行融合,弥补骨架图像的不足,基于不同层次特征所含图像信息不同的理论对B-CNN模型进行改进。实验结果显示,该方法较传统B-CNN模型识别率更高,50轮次迭代训练最优模型准确率可达98.06%,可用于羊绒羊毛纤维细粒度图像分类。下一阶段的工作是采集更多的样本图像,适当调整网络结构,优化算法。