为了将VGG-16模型和迁移学习方法相结合来实现纹理图像识别,需要对原有的VGG-16模型结构进行修改,从而构建新的迁移学习模型。首先,因为VGG-16模型前面的5个卷积模块主要用于输入提取的图像特征,并且这些卷积模块的参数已经在大规模ImageNet图像数据集上经过了充分的预训练,已经具备了较好的特征提取能力,所以对这5个卷积模块进行保留,将其作为新构建的迁移学习模型的特征提取器。......
2023-06-29
由于深度CNN模型具有大规模的参数数量,要使CNN模型具备好的识别能力,必须利用海量的带标签的训练样本对CNN模型进行充分的训练,如果缺乏足够的训练样本,对模型的训练不充分,则很容易产生过拟合现象。过拟合现象是指模型在训练集上能获得好的性能,但应用于测试集时效果较差。所以,要求最终训练的CNN模型不仅在训练集上有好的表现,在测试集上也有好的性能,即具有较好的泛化能力。
虽然预先训练的VGG-16模型已经在ImageNet大规模图像数据集上经过了充分的训练,但是ImageNet不是专门的纹理图像数据库,无法充分体现纹理图像的多样性和复杂性,并且目前也不存在大规模的专用的纹理图像训练数据集,而在现实场景中能获取的纹理图像样本数量也非常有限。因此,为了对新构建的迁移学习模型进行充分的训练,并且防止模型过拟合现象的发生,可首先采用数据增强(Data Augmentation)的方法对有限的训练样本进行某些基本的变换操作,从而生成更多数量的训练样本。有效的数据增强不仅能扩充训练样本的数量,还能增加训练样本的多样性,从而提高CNN模型的识别性能和泛化能力。
常用的数据增强方法有图像缩放、左右/上下翻转、平移变换、图像旋转、随机裁剪、增加噪声、模糊处理等,在执行上述操作时还可以设置图像缩放的程度、图像旋转的角度、平移的距离等参数,通过将上述不同的操作方法和参数值进行组合使用,可以将训练样本的数量扩充至原有数量的几十倍甚至上百倍。图6-10展示了图像旋转的效果,图6-11展示了图像左右翻转和上下翻转的效果,图6-12展示了图像在水平和垂直方向平移的效果,图6-13展示了图像剪切变换(shear transformation)的效果,在上述图像中,最左侧的子图像是一幅原始图像,可以看出,通过执行数据增强操作可以使一幅原始图像生成更多数量的图像,扩充了训练样本集,可用于对深度CNN模型进行充分训练。由于人眼的识别能力非常高,并且已经在长期的生活中见识过了多种场景的图像变换,人眼很容易识别利用数据增强方法产生的图像,但对于识别能力比较有限的机器来说,它的初始识别能力和“阅历”都远不及人眼的识别能力,所以利用数据增强方法产生的大量图像能让机器“见识”到更多种变换场景的图像,提高机器对该类图像的“阅历”,从而进一步提高机器的识别能力。
图6-10 数据增强:图像旋转
图6-11 数据增强:水平和垂直翻转
图6-12 数据增强:图像平移
图6-13 数据增强:剪切变换
在针对某个具体的识别任务时,不一定需要使用所有的数据增强操作,这时应该充分考虑数据集的性质和待识别问题的特点,从而选择合适的数据增强方法,同时要保持数据增强前后样本的对应类别标签不能改变。在本章的实验中,采用随机缩放、左右翻转和图像旋转这三种数据增强的操作组合,在对训练样本进行数据增强时,设最大的缩放因子为0.2倍,最大的旋转角度为60度。
本实验采用Python 3.5、Tensorflow 1.15.0、Keras 2.0.8构建软件仿真平台,硬件平台为CPU和GPU双处理器,Windows 10操作系统,内存为16 GB。CNN模型具有庞大的参数数量,并且需要对大规模的训练样本进行学习,这使训练过程中数据的读取、特征的提取、梯度的反向传播及权值的更新都需要强大的计算能力,而图形处理单元(Graphics Processing Unit,GPU)能够实现对图像数据的加速并行运算,可显著提高CNN模型的训练速度,因此采用基于Nvidia 公司高性能的RTX系列GPU加速CNN模型的训练。同时,训练CNN模型的优化方法选为Adam算法,最大训练轮数为50轮,损失函数设为分类交叉熵函数,每次送入CNN模型进行训练的批量样本数为10个,即批尺寸batchSize=10。
本节首先在KTH-TIPS纹理库上开展实验,为了和其他纹理图像识别方法的结果进行比较,本章采用相同的训练样本个数,即每类选择一半样本作为训练数据集,具体的样本划分如下:在KTH-TIPS纹理库上,每类的40个样本作为训练集,10个样本作为验证集,31个样本作为测试集。
为了获得稳定的实验结果,在KTH-TIPS纹理库上开展实验时,独立进行10次实验并记录实验结果,计算这10次实验结果的平均值,将其作为最终的纹理识别结果。
本章方法的具体实现步骤可总结如下:
(1)对图像进行预处理。因为所使用的预训练模型是基于ImageNet数据集训练出来的,所以为了适应模型的输入要求,需将输入图像红、绿、蓝三个通道的数据分别减去ImageNet数据集对应三个通道的均值(103.939,116.779, 123.680),同时将输入图像的分辨率调整为224×224。
(2)对训练样本进行数据增强。由于纹理图像的训练样本数量较少,为了抑制模型的过拟合,对每个样本进行随机缩放和旋转,利用随机生成的样本来扩充训练样本集的数量。
(3)设计本章的迁移学习模型。首先,载入预训练的VGG-16模型,去掉最后的FC层等,将剩下的部分作为特征提取器;其次,设计后面的分类器模块,包括一个全局平均池化(Global Average Pooling, GAP)层、一个FC层和一个Softmax分类概率输出层。将特征提取模块和分类器模块级联,即为本章设计的迁移学习模型。
(4)设置模型训练的超参数值。主要包括指定优化器、损失函数、批尺寸、初始学习率、最大训练轮数等超参数的值。
(5)对分类器模块进行初步训练。因为分类器模块的参数值是随机初始化的,在开始训练时会产生较大的梯度更新,这会破坏特征提取模块已经预先训练好的参数值,所以在对整个迁移学习模型进行微调训练之前,需要先对分类器模块进行初步的训练,即先冻结特征提取模块的参数,仅将分类器模块的参数设为可训练,然后利用现有的纹理图像训练样本对模型进行较少次数的训练,从而使分类器模块获得较好的初步训练参数值。在初步训练分类器模块时,设置学习率为0.001,初步训练的轮数设为两轮。
(6)对整个模型进行微调训练。根据模型的结构特征,随机指定模型中需要冻结的层数和可训练的层数,然后利用训练集对整个模型进行训练,即不断调节可训练层的参数值,每完成一轮训练,就利用验证数据集对训练的模型进行验证。以验证数据集上的损失值为监测指标,当验证损失进入平台期时,可将学习率调低到原来的一半继续进行训练,最后保存验证损失最小的模型作为当前的优选模型。
(7)对当前的优选模型进行测试。在测试数据集上运行上述第(6)步保存的当前优选模型,计算在测试集上的识别精度。
(8)获得最佳的模型。为了确定最合适的冻结层数,逐步调节模型中需要冻结的层数和可训练的层数,重复上述(5)~(6)的训练和测试过程,当测试集上的识别精度最高时,冻结层数和可训练层数为最佳,此时的模型可作为最佳的深度CNN模型。
图6-14展示了当冻结层数等于15时,迁移学习模型在KTH-TIPS纹理库的训练数据集和验证数据集上的损失函数值变化情况,图6-15展示了当冻结层数等于15时模型在KTH-TIPS纹理库的训练数据集和验证数据集上的识别精度变化情况。通过逐层实验可得,当冻结层数等于10,即冻结本章迁移学习模型的前三个卷积模块时,所获得的CNN模型具有最好的识别性能,因此本章设置迁移学习模型的冻结层数为10。
图6-14 当冻结层数为15时的训练损失曲线和验证损失曲线
图6-15 当冻结层数为15时的训练识别精度和验证识别精度
有关纹理图像的特征提取和识别的文章
为了将VGG-16模型和迁移学习方法相结合来实现纹理图像识别,需要对原有的VGG-16模型结构进行修改,从而构建新的迁移学习模型。首先,因为VGG-16模型前面的5个卷积模块主要用于输入提取的图像特征,并且这些卷积模块的参数已经在大规模ImageNet图像数据集上经过了充分的预训练,已经具备了较好的特征提取能力,所以对这5个卷积模块进行保留,将其作为新构建的迁移学习模型的特征提取器。......
2023-06-29
表6-4MobileNet模型中一个DSC模块的结构2.顶端模块设计顶端模块的主要作用是对基端模块提取的纹理图像特征进行降维,并计算当前样本对所有类别的归属概率,最后根据归属概率的大小判断输入样本的类别标签。表6-5本节构造的基于MobileNet的迁移学习模型......
2023-06-29
模型用于待建工程计算前,应进行天然河道率定。最大输沙率计算值为0.16615kg/s,发生在7920s,沙峰试验值较计算值滞后。最大输沙率试验值与计算值之比1.69。验证计算结果见图9-25。......
2023-06-22
针对本章构建的迁移学习模型,根据上述实验设置的超参数值和最佳冻结层数,分别在KTH-TIPS和UMD纹理库上开展实验,对本章构建的迁移学习模型进行最终的测试,以便获得在测试集上的纹理识别精度。对UMD纹理库进行划分,其中每类的20个样本作为训练集,10个样本作为验证集,10个样本作为测试集。......
2023-06-29
表13-2模型与原型悬移质泥沙及床沙中径对照表4.泥沙级配验证表13-2为小浪底至花园口河段模型验证时段悬移质泥沙及床沙中径的模拟结果。水槽试验及小浪底库区模型试验基本符合异重流潜入的一般规律。......
2023-06-23
图10-1#1模型布置 10.3.2.1潮位验证在5个模型上进行大潮和中潮验证。图10-9中潮中浪各模型初始波高过程线10.3.2.4含沙量验证在#1、#2、#3、#4和#5模型上进行含沙量验证。......
2023-06-22
焦耳热不仅会增加焊料凸点的温度,从而增加电迁移速率,还可能在焊料凸点上产生小的温度差,从而导致热迁移。热迁移将在第12章中讨论。焊料接头中另一个非常独特和重要的电迁移行为是它有两个反应界面。图1.16所示为阴极接触界面处电迁移导致的失效的SEM横截面照片,其中额定电流密度约为2×104 A/cm2,试验温度为100℃。图1.16一组由倒装芯片焊料接头阴极处的电流拥挤造成的14μm厚的金属Cu的UBM层溶解导致的电迁移失效SEM照片......
2023-06-20
5.4.3.2杭州湾不恒定流及泥沙计算图5-73用平面二维泥沙数学模型计算三峡坝区泥沙浓度和泥沙淤积情况平面二维泥沙数学模型在计算三峡坝区泥沙浓度收敛过程 ;平面二维数学模型计算三峡坝区泥沙淤积时,比较沿程断面流量守恒情况图5-75杭州湾不恒定流水位、流速和泥沙浓度验证情况5.4.3.3葛洲坝三江上下游引航道的不恒定流验证图5-74杭州湾地理位置和计算区域示意图杭州湾位于钱塘江出海口,如图5-74所示,是一个强潮型河口。......
2023-06-22
相关推荐