老哥学习网 - www.lg9.cn 2024年05月21日 07:09 星期二
当前位置 首页 >公文范文 > 公文大全 >

基于改进DenseNet的刺绣图像分类识别的研究

发布时间:2023-06-27 22:25:08 浏览数:

刘羿漩,齐振岭,董苗苗,梁允泉,葛广英

(1.聊城大学 物理科学与信息工程学院 山东省光通信科学与技术重点实验室,山东 聊城 252059;
2.聊城大学 物理科学与信息工程学院,山东 聊城 252059;
3.聊城大学 计算机学院,山东 聊城 252059)

随着计算机与互联网技术的飞速发展,计算机视觉技术的应用在日常生活中无处不在,深度学习算法可以应用于图像分类[1-3]、缺陷检测[4-7]等领域。在非遗文化的数字化保护领域,信息技术可将非遗文化遗产转换、再现或复原成为一种可共享、可再生的数字形态,并以全新的方式加以保存利用。韩美群等[8]对比了近20年内国内外学者在非遗数字化传承方面的研究结果,并且提出在新时代信息技术高速发展的阶段应当增强数字技术在高质量文化供给上的支撑作用。在中国众多非遗文化中,中华传统刺绣可按地区、工艺以及加工特点等标准分为不同种类,进而使用在不同的场合,而区分不同刺绣种类的过程通常相当繁琐复杂且需要大量掌握相关专业知识的人力成本与时间成本,所以可以运用深度学习算法实现刺绣的批量分类。杨蕾等[9]提出一种能够将绣品针法纹样特征进行提取和匹配的方法,构建了一种以导向滤波作为尺度变换函数的特征提取模型,匹配准确率高达88%。周泽聿等[10]通过对Xception模型全连接层的层数和dropout等参数进行微调并探讨了不同参数对结构的影响,提出了一种基于Xception-TD的中华传统刺绣分类模型,该模型的准确率高达96.86%,且在刺绣多分类的问题上准确率也优于基准模型。

图像处理是深度学习算法最早尝试应用的领域,其中卷积神经网络 (convolutional neural network,CNN)[11]是深度学习的代表算法之一。1989年加拿大多伦多大学教授Yann LeCun提出了首个卷积神经网络LeNet。后来随着硬件水平提升。2012年10月,Hinton教授以及他的学生采用更深的卷神经网络模型AlexNet在著名的大规模数据集视觉识别比赛(ImageNet large scale visual recognition challenge,ILSVRC)上取得了第一名且效果远超第二名,AlexNet网络的高性能使得图像识别的领域研究更进一步。随后,VGGNet在2014年的 ILSVRC比赛中,赢得了定位任务的冠军,在分类任务中排名第二。但AlexNet、VGGNet等模型主要通过增加卷积神经网络的深度以达到更好的分类效果,网络层数增加的同时也带来了梯度消失、过拟合、梯度爆炸等问题。2014年面世的GoogleNet网络使用1×1卷积核进行降维以及映射处理,引入了Inception结构以融合不同尺度特征信息[12]。在2015年的ILSVRC比赛中,ResNet利用一种称为Shortcut Connection结构来跳过网络的某些层,以3.57%的top5错误率赢得了冠军[13]。基于ResNet模型训练生成的网络中存在层贡献很少的局限性,Liu等于2017年提出了DenseNet,使用了跨层连接及以前馈方式,每个层都会接受前面所有层作为其额外的输入[14]。相较于ResNet,DenseNet旁路加强了特征的重用且具有更少的参数量。Google公司在2017年提出了MobileNet,它是一种小巧而高效的CNN模型,优点在于提出了深度可分离卷积,降低了计算量和参数量[15],使卷积神经网络更易部署到移动端。2020年,Google公司提出了EfficientNet模型[16],该模型是一个快速高精度模型,它使用了深度(depth)、宽度(width)、输入图片分辨率(resolution)共同调节技术。卷积神经网络的优势在于无需进行人为的特征提取,近些年卷积神经网络推动了很多行业的发展,本文将卷积神经网络算法应用到刺绣分类问题上并对比分析结果。

本文对比了Googlenet、Resnet、DenseNet、MobileNet以及EfficientNet共5种常用的经典CNN模型在中华传统刺绣分类数据集上的表现后,选择基于DenseNet模型进行改进,采用SPP(spatial pyramid pooling)模块[19]加快损失收敛,稳定算法训练过程,通过修改激活函数提高模型精度,然后采用局部二值模式LBP[17-18]、Canny算子边缘提取以及Gabor滤波等方式提取纹理特征,与原图合并成四至六通道图像作为卷积神经网络的输入进行训练,扩充数据宽度,便于算法提取特征,进一步提升刺绣分类的识别准确率。

1.1 DenseNet模型

DenseNet卷积神经网络模型是由Huang等在2017年提出[14],该网络借鉴了ResNet结构,即建立前面层与后面层的连接,利于梯度反向传播和训练更深层次网络。DenseNet模型能够实现特征重复使用,减轻了梯度消失问题,减少参数量并提高特征的传播率和利用率。DenseNet卷积神经网络模型中的密集连接块DenseBlock比ResNet的连接机制更为激进,所有层之间互相连接,每个层的额外输入包括了前面的所有层,在DenseBlock内特征图大小统一,所有层互相连接以使每一层能够接受前面所有层中的特征,加强特征重用。

假设H(·)“表示卷积神经网络的非线性效应,其中包括卷积、池化以及激活等多种操作的组合。传统CNN网络经过第i层后得到的输出xi的计算方式如式(1)所示:

xi=Hi(xi-1)

(1)

对ResNet卷积神经网络模型来说,第i层的输出xi的计算方式如式(2)所示:

xi=Hi(xi-1)+xi-1

(2)

对DenseNet卷积神经网络模型来说,第i层的输出xi将连接第i层之前所有的层作为输入,则第i层的输出xi的计算方式如式(3)所示:

xi=Hi([xi-1,…,x2,x1,x0])

(3)

式(3)中的非线性效应Hi(·)为归一化(batch normalization,BN)操作。DenseBlock结构连接方式如图1所示。

图1 DenseBlock结构图

由图1可知DenseNet模型的前向传播方式是比ResNet模型更为密集的连接,各个层的特征图在通道维度上连接在一起使整个网络更易训练。

1.2 改进DenseNet模型

1.2.1 SPP结构

为解决图像分类任务中输入图像尺寸限制问题,2015年,He等[20]提出金字塔池化(spatial pyramid pooling,SPP)结构,若要使卷积神经网络适应不同尺寸的输入图片,文献[20]提出了在卷积神经网络结构后面引入SPP结构。

具体操作为最后一层卷积层和全连接层前加入SPP结构,对通过最后一层卷积的多层特征图进行通道调整,本文将每个特征图按16×16,4×4以及1×1不同大小划分为不同尺寸的网格,然后对每个网格进行最大池化(Max pooling)操作,然后经过拼接通道将特征图转化为固定长度的特征向量,使其作为后面全连接层的输入。总体来说,SPP结构就是通过不同大小窗口进行池化,得到分辨率不同的特征图,对每个特征图连接1×1卷积层来压缩调整通道维度。SPP结构图如图2所示。

图2 SPP结构图

1.2.2 激活函数

卷积神经网络中激活函数用于实现网络的非线性映射,DenseNet网络结构中使用的激活函数为ReLU函数,但ReLU函数在输入小于0时无法激活神经元,易使网络训练不收敛,ReLU函数定义如式(4)所示。为解决此问题,Leaky ReLU函数[21]利用较小的权值保留了部分信息,其定义如式(5)所示:

(4)

(5)

本文将Leaky Relu函数中系数∂取值为0.01,有助于扩大ReLU函数的范围,该激活函数将激活函数的整个函数范围定义在负无穷到正无穷上,使x的较小的线性分量作为负输入调整网络中负值的零梯度问题。实验比较了激活函数选择ReLU函数以及Leaky ReLU函数对刺绣图像分类模型性能的影响,实验证明了激活函数选为Leaky ReLU函数能够提升网络的性能。

引入SPP结构以及进行激活函数改进后的DenseNet整体网络结构如图3所示。

图3 改进后的DenseNet网络结构图

其中DenseBlock中的激活函数全部为Leaky ReLU函数。

1.2.3 数据集宽度扩充

1) 局部二值模式(local binary pattern,LBP)是一种用来描述图像局部纹理特征的算子,提取出的特征是图像的局部纹理特征,具有旋转不变性和灰度不变性等优点。具体的计算方式如式(7)所示:

(7)

式(7)中x0表示一个小窗口的中心点像素灰度值,xi表示中心点周围的其他像素点的灰度值,共有8个像素点,F(·)表示将小窗口中心点像素与相邻像素比较得到的二值序列,具体方法为将中心像素点的值与周围像素点的值做对比,若中心像素点的值小于周围像素点的值,则对应周围像素点标记为1,反之,若中心像素点的值大于周围像素点的值,则将对应像素标记为0,将得到的二值序列与二值化后的周围像素点对应相乘后并相加,即得到中心像素值。

根据刺绣图像分类数据集中的RGB图像利用LBP特征提取前后对比如图4所示。

图4 LBP提取特征前后对比图

2)基于Canny算子的边缘检测可以通过高斯滤波、像素梯度计算、非极大值抑制等步骤简化图像,改变图像的表现形式使其更易提取特征。

首先对图像进行高斯滤波,即将一个灰度图像与一个高斯核进行卷积操作,具体计算方式如式(8)所示:

(8)

(9)

然后计算经过高斯滤波后的图像的梯度值与梯度方向,以此观察灰度值变化最大的像素点,梯度值与梯度方向的具体计算方式如式(10)和式(11)所示:

(10)

(11)

其中:Gx为像素点在x方向上的梯度值,Gy为像素点在y方向上的梯度值。然后进行非极大值抑制不是极大值的像素点,过滤非边缘像素点,使边缘宽度尽可能小,接着进行双阈值检测设置一个低阈值和一个高阈值,进一步减少边缘像素点。

根据刺绣图像分类数据集中的RGB图像在经过Canny算子提取边缘的前后对比如图5所示。

图5 Canny算子边缘检测前后对比图

3)Gabor滤波器是边缘提取的线性滤波器,其频率和方向表达与人类视觉系统类似,能够提供良好的方向选择和尺度选择特性,而且对于光照变化不敏感,因此十分适合纹理分析。它的优势体现在Gabor滤波器可以从不同方向和尺度上对物体纹理进行提取特征,并进行随意组合。本文采取二维Gabor滤波器对图像进行滤波,其滤波核可以分为实部和虚部,其具体数学表达式如式(12)所示:

(12)

其中:x′与y′的计算方式如式(13)所示:

(13)

上面两个公式中,参数λ为波长,可影响滤波器滤波尺度;
参数θ为滤波器方向,共有4个,分别为0度,45度,90度以及135度;
参数ψ为相位偏移,取值范围为-180至180;
参数γ为空间纵横比,本文取值为0.5;
参数σ为带宽,本文取值为2π。

对刺绣图像分类数据集中的RGB图像进行二维Gabor滤波前后对比如图6所示。

图6 Gabor滤波前后对比图

1.3 改进DenseNet模型训练流程

本文在已有研究基础上对图像分类网络进行研究改进,根据训练样本图像分类数据集X{x1,x2,…,xn}以及对应的m种类别Y{y1,y2,…,ym},对网络结构f(θ),损失函数l以及学习率LR进行训练,算法训练流程如图7所示。

图7 刺绣分类的训练过程

1) 按预先设定的Batch size从训练集X{x1,x2,…,xn}中选取一个训练批次X1{xa,…,xb}进行归一化预处理,对于训练批次中每张刺绣图像中RGB三通道分别按均值meanr,g,b=[0.485,0.456,0.406],标准差stdr,a,b=[0.229,0.224,0.225]进行如式(14)操作:

(14)

式(1)中Inputr、Inputg、Inputb为未归一化前图像的RGB三通道像素值,Outputr、Outputg、Outputb为归一化后图像的RGB三通道像素值。

Mn=F(M1⊕M2⊕…⊕Mn-1)

(15)

(16)

式(3)中利用损失函数L计算损失l,训练过程的损失函数选用交叉熵损失函数,如式(17)所示:

(17)

式(17)中b-a表示每一训练批次中的样本个数,c表示类别数量共有m种,pic为符号函数,若训练批次中第i个样本的真实类别与类别c相同则取1,反之取0,qic表示预测训练批次中第i个样本属于类别c的概率。

4)计算得到的损失l后向传播更新网络权重θ,如式(18)所示:

θ′=θ-lr×g(l1)

(18)

5)判断整个数据集是否遍历结束,若遍历未结束,选取下一训练批次重复以上步骤,若遍历结束,则保存该轮次的模型权重参数文件并判断是否满足训练轮次。

6)若未满足训练轮次,重复以上步骤,若满足训练轮次则结束模型训练。

1.4 改进DenseNet模型测试流程

本次实验需要对训练所得的神经网络模型进行测试以验证效果,主要采用的评估指标为准确率(accuracy)、精确率(precision)、召回率(recall)和特异度(specificity)以及混淆矩阵。刺绣图像分类模型的测试流程如图8所示。

图8 刺绣分类的测试过程

具体的测试步骤如下:

1)选择训练得到的卷积神经网络模型并加载;

2)从刺绣图像分类数据集中选取待测刺绣图像,进行归一化预处理;

3)将预处理后的刺绣图像送入网络中进行计算并得到识别分类结果;

4)判断测试集中图片是否全部测试完毕,若未完毕,重复以上步骤,若完毕,保存测试结果并计算模型的评估指标。

2.1 数据集采集与扩充

本文数据集样本采集来源于网络,筛选出八类中华传统刺绣,包括中国四大名绣:苏绣、湘绣、粤绣、蜀绣以及少数民族刺绣:哈密刺绣、水族马尾绣、西秦刺绣和其它类别,其中其它类别内的刺绣还包含京绣、鲁绣、盘金绣以及十字绣等。数据集中的部分刺绣图像(随机选取一张)如图9所示。整个数据集按照9:1的比例划分为训练集与验证集,即训练集图像共6 933张,测试集图像共767张。具体类别分布如图10所示。

图9 刺绣图像分类数据集样本

图10 刺绣图像分类数据集类别分布图

2.2 实验环境及参数

本文实验的训练与测试环境相同,均为Windows10操作系统,使用Pytorch深度学习框架来实现整个模型训练与测试过程,实验环境的具体参数如表1所示。

表1 基准模型对比仿真环境

实验选取5个常用的经典卷积神经网络模型进行基准模型对比实验,分别为GoogleNet (Inception V3)、ResNet50、DenseNet-121、MobileNetV2与EfficientNet-B0,然后将这5种模型与本文改进后的模型进行性能对比,这5种模型的详细参数对比分析如表2所示。

表2 卷积神经网络模型对比表

经过反复尝试,本次实验中选定的训练相关超参数值如表3所示。

表3 网络训练超参数

2.3 实验及分析

2.3.1 不同算法实验对比分析

本次实验需要对训练所得的神经网络模型验证效果,主要采用的评估指标为准确率(accuracy)、精确率(precision)、召回率(recall)和特异度(specificity)以及混淆矩阵。

1)混淆矩阵。

混淆矩阵是评判模型优劣的一种指标,常用于评判分类器模型的优劣。表4代表一个二分类示例的混淆矩阵。

表4 二分类混淆矩阵

2)准确率Accuracy。

准确率(ACC)表示模型正确分类样本占总样本数比例(包括所有类别)。计算公式如下:

3)精确率Precision。

精确率(PPV)表示模型预测的所有Positive中预测正确的比例。计算公式如下:

4)召回率Recall。

召回率/灵敏度(TPR)表示在所有真实Positive中,模型预测正确的Positive比例。计算公式如下:

5)特异度Specificity。

特异度(TNR)表示在所有真实Negative中,模型预测正确的Negative比例。计算公式如下:

GoogleNet、ResNet、DenseNet、MobileNet与EfficientNet模型在各个种类上取得的精确率、召回率和特异度如表5所示。

表5 基准模型测试结果

由表5可知,基于DenseNet的刺绣图像分类模型在8个刺绣种类上取得的精确率(precision)、召回率(recall)和特异度(specificity)与其他卷积神经网络模型相比较高且分布更均匀,证明了DenseNet模型较其他卷积网络模型更适用于刺绣图像分类任务。基于DenseNet的刺绣图像分类模型在刺绣图像分类数据集上获得的混淆矩阵如图11所示。

图11 刺绣图像分类数据集中八种刺绣的混淆矩阵

从图11中可以看出在刺绣分类数据集中基于DenseNet的中华传统刺绣分类模型在水族马尾绣种类上识别率最高,而在粤绣种类上准确率最低。由混淆矩阵可知各类别识别正确概率均在80%以上,说明基于DenseNet的刺绣图像分类模型对数据集中存在的噪声和带有遮挡与具有相似特征的刺绣图像,有较强的鲁棒性。

因此选择基于DenseNet网络结构进行改进优化,在模型中引入SPP结构并进行激活函数优化,改进后的算法与其他算法在训练过程中的损失收敛对比过程如图12所示。

图12 各算法损失收敛对比图

由图12可得本文方法在刺绣图像分类识别数据集上的损失收敛速度比其他算法的损失收敛速度更快。

为验证改进后的算法的优越性有效性,在刺绣图像测试集上与其它算法进行对比,各算法取得的准确率如表6所示,利用本文方法改进后的算法在刺绣图像测试集上取得的准确率远远高于其他基准卷积神经网络算法和改进前的DenseNet算法,进一步证明了本文提出方法的有效性。

表6 算法取得的准确率对比

2.3.2 数据集宽度扩充消融实验

通过组合刺绣图像分类数据集中的RGB三通道原图及以上所介绍的4种方法得到的特征图,分别组合得到8种不同方案,分别为RGB、RGB+LBP、RGB+ Canny、RGB+Gabor、RGB+LBP+Canny、RGB+ LBP+Gabor、RGB+Canny+Gabor以及RGB+ LBP+Canny+Cabor。从准确率与预测时间2个方面对比数据集宽度扩充前后基于改进DenseNet的刺绣图像分类模型性能的差异,如表7所示。

表7 数据集宽度扩充消融试验结果分析

将数据集按照8种不同宽度扩充方案送入改进后的刺绣图像分类模型进行训练,经过Savitzky-Golay滤波平滑处理后,得到8种不同方案的分类模型的损失收敛对比图如图13所示,在刺绣图像分类数据集上的取得的准确率对比图如图14所示。

图13 数据集宽度扩充消融试验损失收敛对比图

图14 数据集宽度扩充消融试验准确率对比图

在通道数增加至四通道时,刺绣图像分类模型的准确率明显提高,达到了97.39%,但方案4预测时间比方案2多了0.1 s,准确率并未显著提升。综合预测时间与模型在刺绣图像分类测试集上达到的准确率两方面综合来看应选择方案2,即将RGB图像与LBP提取的特征图合并为四通道图像数据作为网络输入。

为提升刺绣分类效果,构造了刺绣图像分类数据集,研究了基于卷积神经网络的刺绣图像分类模型,并基于DenseNet模型提出引入SPP算法以及替换激活函数优化网络结构,提出不同扩充数据集宽度方法并进行消融实验,确定最佳输入网络数据集应为RGB图像与LBP提取的特征图合并的四通道图像数据,改进后的刺绣图像分类模型与基准模型相比,准确率提高了8.1%,高达97.39%,平均分类识别时间为72.7 ms,验证了改进后算法具有较高的识别精度与较快识别速度,提升了刺绣图像分类效果。

本文进行的刺绣图像分类数据集类别有限且大部分来源于网络,未来可进一步收集更丰富的刺绣类别对模型进行训练,提升识别分类效果。

猜你喜欢像素点刺绣卷积贵州剑河 多彩刺绣添技增收今日农业(2021年21期)2021-11-26基于3D-Winograd的快速卷积算法设计及FPGA实现北京航空航天大学学报(2021年9期)2021-11-02基于局部相似性的特征匹配筛选算法现代电子技术(2021年1期)2021-01-17卷积神经网络的分析与设计电子制作(2019年13期)2020-01-14清新唯美的刺绣少年漫画(艺术创想)(2019年3期)2019-07-23从滤波器理解卷积电子制作(2019年11期)2019-07-04基于5×5邻域像素点相关性的划痕修复算法上海大学学报(自然科学版)(2018年5期)2018-11-02基于傅里叶域卷积表示的目标跟踪算法北京航空航天大学学报(2018年1期)2018-04-20基于canvas的前端数据加密电脑知识与技术(2018年35期)2018-02-27李雅华:精美的石头能“刺绣”海峡姐妹(2017年12期)2018-01-31

推荐访问:刺绣 识别 图像

相关文章:

Top