基于轻量化模型和迁移学习的花卉识别

2023-11-21 08:08:14王军敏
平顶山学院学报 2023年5期
关键词:花卉残差精度

王军敏,林 辉

(平顶山学院 信息工程学院,河南 平顶山 467036)

0 引言

花卉识别在日常的花卉鉴赏、植物物种研究与保护、园林花圃智能化管理中具有重要的应用价值.传统依靠人工鉴别的方法需要具备丰富的专业知识和经验,因此有必要设计一种快速、准确的花卉识别系统.尤其是随着移动终端设备特别是智能手机的广泛使用,人们可通过智能手机拍摄花卉图像,然后利用手机上的花卉识别系统获取该花卉的类别、栽培、花语等信息.但是,由于花卉种类繁多,并且花卉图像可能存在复杂背景、光照条件和尺度变化等诸多因素的干扰,使得花卉识别成为一项具有挑战性的任务.

传统的机器学习方法主要依靠人工设计的特征描述算子提取花卉的形状、纹理和颜色等特征,计算不同样本之间的特征距离,利用分类器对花卉的类别进行判定.例如,Nilsback和Zisserman[1]722先分割出花卉前景,再提取花卉的花瓣、边缘形状、纹理和颜色等特征并送入分类器,识别精度达到72.80%.Angelova和Zhu[2]811在对花卉图像进行分割的基础上,提取方向梯度直方图特征并送入分类器,识别精度达到80.70%.但是,传统的机器学习方法存在算法设计复杂、泛化能力差和识别精度低等问题.目前,随着深度学习技术的快速发展,基于深度卷积神经网络(Convolutional Neural Network, CNN)的图像识别方法获得了广泛的研究,该类方法可直接将原始图像送入CNN模型获得分类结果,避免了传统机器学习方法中复杂的图像分割和特征提取算法设计.例如,Liu等[3]110设计了一个包含5个卷积层和3个全连接(Fully-Connected, FC)层的CNN模型,在Oxford Flower-102花卉数据集上实现了84.02%的识别精度;Qin等[4]3110将注意力机制和线性判别损失函数相结合设计一种CNN模型,在Oxford Flower-102数据集上获得了87.60%的识别精度;为了抑制复杂背景的干扰,吴迪等[5]55先利用显著性检测方法将花卉区域从背景图像中分割出来,再采用InceptionV3模型和迁移学习方法进行花卉识别,识别精度达到 93.38%.虽然基于深度学习的方法能够取得比传统机器学习方法更好的识别效果,但是现有的深度学习方法存在模型体积大,不方便在移动端或便携式设备上部署,同时识别精度也有待进一步提高的问题.因此,笔者提出一种基于轻量化深度模型和迁移学习的花卉图像识别方法,具有重要的应用价值.

1 轻量化模型的设计

为了实现深度模型的轻量化,笔者采用MobileNetV2模型[6]作为骨干网络,在此基础上设计花卉识别模型.MobileNetV2模型一方面采用深度可分离卷积代替传统的标准卷积,可显著减少深度模型的计算量和参数规模;另一方面借鉴了ResNet模型[7]770的残差结构,通过采用反向残差模块和线性瓶颈单元来提高模型的特征提取能力.反向残差模块先通过1×1的点卷积增大输出通道的个数,再利用3×3的深度卷积提取更加丰富的特征,最后利用1×1的点卷积实现通道降维;线性瓶颈单元主要是去掉每个反向残差模块最后一个ReLU6激活层,以便保留更多的低维和高维信息.笔者设计的花卉识别深度模型结构如表1 所示,主要利用17个反向残差模块提取花卉图像的多层次特征,利用全局平均池化(Global Average Pooling, GAP)层实现特征降维,利用Dropout层提高模型的泛化能力,利用FC层输出当前样本对所有类别的分类得分,并将分类得分最高的类别判定为当前样本的所属类别.

表1 笔者设计的花卉识别深度模型结构

2 迁移学习策略的设计

在现实场景的样本分类问题中,深度学习方法通常面临两个重要的瓶颈问题:1)很多应用场景缺少大规模的训练样本,无法对深度模型进行充分的训练,导致深度模型的识别精度不高;2)对大规模训练样本进行充分训练时,需要高性能的计算平台和很长的训练时间.为了解决上述问题,可采用迁移学习的方法.迁移学习是将在一个源领域学习到的知识迁移应用到另一个不同但相关的目标领域的方法[8],其中,源领域通常具有大规模的训练样本可利用,而目标领域通常存在训练样本数量不足的问题.

针对花卉图像识别问题,如果从零开始训练深度模型,需要收集大规模的花卉图像训练样本,并且需要高性能的计算平台和很长的训练时间,不利于深度学习方法的落地应用;同时,考虑到ImageNet数据集是含有大规模样本的通用图像数据集,该数据集也含有大量的花卉图像.因此在该数据集上训练后的模型已经具备了初步的花卉图像特征提取能力,可利用迁移学习方法将ImageNet数据集上训练后的深度模型参数迁移应用到花卉识别领域,从而有效解决将深度学习方法应用于花卉识别时的瓶颈问题.

笔者设计的迁移学习策略为:

1)将在ImageNet数据集上预先训练好的MobileNetV2模型参数值迁移应用于笔者设计的花卉识别深度模型骨干网络,使模型具备良好的初始花卉特征提取和识别能力,避免对大规模训练样本、高性能训练平台和长时间训练的要求.

2)冻结花卉识别深度模型的特征提取模块(即表1中的第0~20号模块),利用现有的花卉图像数据集对模型最后的FC层进行微调训练,使FC层获得较好的初始化参数值.

3)对花卉识别深度模型的17个反向残差模块进行逐个冻结,利用现有的花卉图像数据集对FC层和可训练的反向残差模块进行微调训练,使模型获得最佳的花卉图像识别能力.

3 实验及结果分析

3.1 实验数据

实验采用牛津大学Visual Geometry Group小组搜集整理的花卉图像数据集Oxford flower-102,该数据集一共包含102类花卉图像,属于大规模的花卉图像数据集,每个花卉类别的样本数量为40~258张,该数据集中的花卉图像种类繁多,并且包含不同的照明条件和视角变化,存在复杂的背景干扰和形态、颜色变化等因素,使其成为一个极具挑战性的花卉图像识别数据集.笔者从每个类别选择10个样本加入验证集,每类10个样本加入测试集,即最终构建的验证集包含1 020个样本,测试集包含1 020个样本,其他样本均作为训练集.

3.2 实验环境与超参数设置

实验采用的硬件环境为一台计算机(Intel Core i5 CPU@3.10 GHz,16 GB RAM),显卡Nvidia RTX2070S GPU, 软件环境为Python 3.5, Pytorch 1.8.1.

超参数的设置如下:1)训练深度模型时,采用性能较好且收敛速度快的Adam优化器,损失函数选择适用于多分类的交叉熵损失函数.2)最大的训练轮数设为50个Epoch.3)关于学习率的设置,考虑到如果学习率过大,可能会越过最优值;反之,如果学习率太小,则优化效率太低,可能导致模型长时间无法收敛.因此,笔者采用动态变化的学习率,即在训练初期采用较大的学习率,以便加快模型的训练和收敛;当靠近最优解时采用较小的学习率,以便更精确地收敛到最优解.具体设置为前30个Epoch设学习率为0.001,随后每经过10个Epoch学习率变为上次的0.1倍.4)批尺寸设为32,即每次将一批(32个)花卉图像样本送入模型进行训练和验证.5)Dropout层的随机连接概率设为p=0.2.

3.3 实验步骤

本文方法的具体实现步骤如下所述.

Step1 图像的预处理和数据增强.首先,对输入图像进行随机的左右翻转、上下翻转,增加训练样本的数量;然后,将图像尺寸统一调整到 224×224像素;最后,将图像数据归一化为均值为0,标准差为1.

Step2 模型参数迁移.将在ImageNet数据集上预先训练好的深度模型参数值根据参数匹配原则迁移到笔者设计的花卉识别深度模型骨干网络.

Step3 训练FC层.先冻结本文模型的第0~20号模块,根据设置的优化器、损失函数、训练轮数Epoch、动态学习率、批尺寸等超参数,对模型最后的FC层进行5轮训练,使FC层获得合理的初始化参数值.

Step4 逐级训练反向残差模块.先冻结本文模型的全部反向残差模块,将17个反向残差模块从后向前逐个解冻(即设为可训练),利用设定的超参数和数据增强后的花卉图像数据集对整个模型进行微调训练.

Step5 验证模型.利用花卉图像的验证集对训练好的模型进行验证,当验证精度最高时,表明模型获得了最佳的花卉图像识别能力,保存此时的模型,将其作为最佳的花卉识别模型.

Step6 测试模型.利用花卉图像的测试集对保存的最佳花卉识别模型进行测试,获得测试识别精度.

3.4 实验结果及分析

3.4.1 模型的训练和验证效果

根据笔者设计的花卉识别深度模型和迁移学习策略,利用花卉图像训练集和验证集对模型进行训练和验证,对应的训练和验证损失曲线、识别精度曲线分别如图1和图2所示.从图1的损失曲线可以看出,训练和验证的损失值很小,并且能够快速下降到0.4以下,表明模型具有较快的收敛速度;从图2的识别精度曲线可以看出,模型的训练和验证识别精度较高,并且能够快速提升到90%以上,表明模型具有较好的花卉识别能力.

图1 训练和验证阶段的损失曲线

图2 训练和验证阶段的识别精度曲线

3.4.2 冻结不同反向残差模块的影响

根据笔者设计的花卉识别深度模型和迁移学习策略,通过冻结不同的反向残差模块可获得不同的迁移学习效果,表2给出了冻结不同反向残差模块个数N时本文模型在花卉图像测试集上的识别精度.从表2可以看出,当冻结全部反向残差模块(N=17)时,模型的识别精度不够理想,这是因为此时反向残差模块的参数值均来自ImageNet数据集预先训练的模型参数,缺乏针对花卉图像的识别能力;当冻结N=12个反向残差模块时,模型的识别精度达到最高的97.76%,此时模型具有最佳的花卉图像识别能力;当冻结反向残差模块的个数N逐渐减少时,模型的识别精度总体呈下降趋势,这是因为现有的花卉图像数据集样本个数较少,无法对深度模型进行充分训练.所以,最终确定冻结N=12个反向残差模块,使本文模型具有最佳的花卉识别精度.

表2 冻结不同反向残差模块个数N的测试精度

3.4.3 不同方法的识别精度对比

为了展示本文方法的识别性能,将笔者提出的方法与其他先进的方法进行对比,它们在Oxford flower-102花卉图像数据集上的识别精度如表3所示.

表3 不同方法的识别精度对比

从表3可以看出,笔者提出的方法取得了最高的识别精度(97.76%),一致超过了其他方法(包括传统的机器学习方法和目前先进的深度学习方法)的识别精度,这表明笔者设计的深度模型结构和迁移学习策略能够更有效地提取富有鉴别力的花卉图像特征,从而有效解决了现有方法识别精度不高的问题.

此外,笔者设计的花卉识别深度模型具有轻量化的特点,模型体积只有9.2 MB,与VGG-16模型的528 MB、VGG-19模型的549 MB、ResNet152模型的232 MB、InceptionResNetV2模型的215 MB相比,笔者设计的深度模型更适合在存储空间和计算能力有限的嵌入式或移动设备上部署和使用.

4 结论

笔者提出了一种基于MobileNetV2模型和迁移学习策略的花卉图像识别方法,该方法能够获得良好的花卉识别精度,有效解决了将深度学习方法应用于花卉识别领域时面临的瓶颈问题,不再需要大规模的花卉图像训练样本、高性能的计算平台和很长的训练时间;同时,笔者构建的花卉识别模型更加轻量化,模型体积只有9.2 MB,有利于在嵌入式或移动设备上部署,具有重要的应用价值.

猜你喜欢
花卉残差精度
李鱓·花卉十二开
读者欣赏(2022年12期)2023-01-10 02:52:08
基于双向GRU与残差拟合的车辆跟驰建模
三招搞定花卉病虫害
中老年保健(2021年5期)2021-08-24 07:08:52
基于残差学习的自适应无人机目标跟踪算法
《花卉之二》
基于递归残差网络的图像超分辨率重建
自动化学报(2019年6期)2019-07-23 01:18:32
基于DSPIC33F微处理器的采集精度的提高
电子制作(2018年11期)2018-08-04 03:25:38
水晶泥花卉栽培技术
现代园艺(2017年11期)2017-06-28 11:32:37
GPS/GLONASS/BDS组合PPP精度分析
平稳自相关过程的残差累积和控制图
河南科技(2015年8期)2015-03-11 16:23:52