基于ResNet对花朵分类研究

2023-02-06 06:59廖明霜罗远远
农业与技术 2023年2期
关键词:特征提取花卉残差

廖明霜 罗远远

(塔里木大学信息工程学院,新疆 阿拉尔 843300)

引言

鲜花在生活中很常见[1],中华民族对鲜花的喜爱渊源流长,鲜花承载着中华的文化礼仪,有人喜欢浪漫的玫瑰,有人喜欢誓言满满的紫罗兰,有人喜欢百合的财富与富贵[2],还有很多鲜花[3],大多数人很难区分,需要通过经验人介绍或者上网搜寻对比才能得到答案。随着深度学习的发展[4-6],人工神经网络是近些年研究的前沿课题,同时在生物功能的启发下,模拟神经网络,采用大量的神经元组成,在人脸识别领域、缺陷检测领域得到了较好的应用[7],人工神经网络具有很强的适应性和学习性、非线性的鲁棒能力、纠偏能力。通过深度学习方法自动识别花卉图像信息是一种行之有效的方法。

1 国内外研究现状

国内外开展了很多关于花的识别研究,其方法大多数是基于颜色特征、超声波、人工经验识别。刘浩洲等[8]提出了一种基于K-means聚类算法的猕猴桃花朵识别方法,利用K-means聚类分割得到包含花蕊在内的4个类别图像,并利用CNN网络实现了猕猴桃花朵的检测,检测成功率为92.5%。Shi L等[9]设计了一种基于深度学习的花卉自动识别系统,将花卉图像上传到算法系统进行训练并识别,识别准确率达100%;尚钰莹等基于YOLOv5s深度学习,将自然场景苹果花朵检测中的应用223发送至FLOWERS32数据集上预先训练好的CNN系统进行识别,在测试集上的准确率为95.00%。杨雅静等[10]使用BP网络神经对花朵进行多品种的识别,采用了relu激活函数,准确率为85%。苗芃等[11]提出针对植物图像无法大规模的收集,数据量偏少的情况下,使用迁移学习的方法,不仅降低了训练的规模,而且提升了识别精度。崔明等[12]在草莓花朵识别算法研究中,利用形态学方法和连通管区域特征方式分析提取花朵区域特征。张怡等[13]使用ResNet对植物绿茶进行特征提取,从识别模型的预测能力、收敛速度、模型大小和识别均衡性等角度探索了不同网络深度和不同优化算法的建模效果,为茶叶种类识别提供了一种快捷而高效的新方法。周俊博等[14]使用BP网络神经方法,设计了3层BP神经网络结构,实现了鸢尾花的分类,加入了L1正则化损失防止过拟合的现象,最终得到的效果接近100%,实验表明,使用BP网络能够有效提高植物分类,对植物分类研究具有重要的意义。

本文采用深度学习的方法,在经典的ResNet模型上进行改进,对图像进行增强,也是对图像进行扩充数量,提升模型在复杂场景下具有较高的泛化能力;对原始ResNet模型做改进,主要方法是将大卷积核替换成小卷积核,增加卷积次数,缓和由大卷积核跨度大而带来的特征提取信息丢失;将1×1卷积核替代经典的池化层,因为池化层在一定区域内会丢失信息。通过训练花卉数据模型能够学到不同的花卉特征信息,进而识别花朵。

本文从网络上下载了牛津大学的102类别的花卉数据,在新疆阿拉尔本地采集2类花朵;根据花朵的性质类别,进行分类做标签和分类,并做数据增强,增加了图片数量,在此基础上设计并实现ResNet花卉识别模型。得到花朵识别在836张图片中的测试结果,并给出了各个步骤的分析原因。

2 基于ResNet的图像分类方法

结合花卉的基本情况,为了满足人们对图像识别出花朵种类需求,本文主要在ResNet模型上做改进实验,采用减少参数量并且提升特征的方法,保证花卉识别正常的运行,提升人们对花朵的认知。

2.1 卷积神经网络的基本组成

卷积网络(convolutional neural network,CNN)是一种局部连接、权值共享的前馈式多层神经网络,是为识别二维形状而特殊设计的一种多层感知器,具有对平移、比例缩放、倾斜或其他形式的变形不变性的特点,然而深度学习的最初框架来源于BP神经网络,经过知识的沉淀,学者门研发出基本的深度学习架构:输入层、卷积层、池化层、全链接层、输出层。最重要的是在卷积层不断提取特征的过程,从而得到对某个事件的预测。卷积也叫作特征提取层,就是把卷积核中n×n个元素和原特征图进行相乘然后再做加法,得到新值,在此过程中,不断将重要的信息提取出来,将不重要的信息弱化。全连接层可以包含多个全连接层,实际上就是普通神经网络层的隐藏层部分,全连接层的每个神经节点都和前一层的每个神经节点连接,同一层的神经节点没有连接,每一层的神经节点通过连接线上的权值进行前向传播加权和计算得到下一层神经节点的输入。通过不断的迭代,并且利用损失函数反向传播更新学习,以控制神经网络学习得到本文所期望的特征。

2.2 ResNet的残差模块

ResNet的基本组成是由卷积层、池化层、归一化层组成一个单元模块,浅层的网络难以对复杂背景的花卉进行特征提取以及建立映射关系,深度残差网络ResNet模型在传统的深度学习基础上引入了残差模块,通过多个网络的输入输出,对一个单元模块进行跳跃拼接,在特征提取的同时叠加上一步的信息,该方法很大程度上缓解了因网络深度的增加而出现的梯度消失、网格退化等问题,加深了对目标信息的完整,其深层次的原因是融合了上一层的卷积网络,这样达到的效果在一定程度上不会比原来的差。

2.3 ResNet的残差优化

在深度学习中,大的卷积核虽然能一步提取小卷积核,提取到更复杂的信息,但是存在计算量过大的问题,导致运算时间过长,不适合移动端的花卉识别研究。本文采用小卷积核替换大卷积核,如图1所示,为了尽量减少卷积核过小带来的特征提取下降问题,选择将原始的7×7卷积核换成5×5卷积核,将原始的5×5卷积核替换成3×3卷积核,平衡模型参数和特征提取。以输入256维的数为例,在使用过程中所需参数量为1179648;如果使用改进后的残差结构进行特征提取,所需参数量仅为69632。由数据对比结果可知,本文改进的残差块结构特征提取过程所需的参数量相比原有残差结构降低94%。改进后的残差块结构计算量显著降低,有利于模型训练速度的提高、模型大小的压缩和泛化性能的提高。

图1 网络修改前VS网络修改后

虽然多次的小卷积核在一定程度上减小了感受野,对小目标的特征能力较少,但是残差网络的复用特征方式,在一定程度上减少了感受野变小的影响。对于常见的花朵一般是常规物体,所以小目标提取不是本次的研究点。

2.4 卷积核替换池化层

1×1卷积和池化的本质是压缩特征,在池化的过程中是不断地在丢失非重要的信息,然而池化所保留的特征,不一定是本文想要的特征值,因此需要使用1×1卷积在达到此效果的同时,又保留一些次重要的特征,从而达到充分提取特征的效果。如图2的池化过程从(1,0,2,1)这个小区域中值保留一个最大值特征2,其余的特征直接被丢弃掉,显然不符合这个特征提取的有效性。在图2的1×1卷积核的通道卷积过程中通过卷积不断地训练和反向传播迭代,不断优化原始的卷积核的特征提取,这样得到的效果不容易盲目的丢失,更符合特征提取的有效性。

图2 池化过程VS通道卷积过程

3 实验结果与分析

3.1 数据预处理

本文数据主要来源于牛津大学的102种花卉种类部分图像,如图3所示。另外2种数据来源于新疆阿拉尔地区改良的花朵。采用的设备是OPPO PEQM00型号,摄像头为2420万像素,在晴天、阴天下进行采集,后增图像共1620张。对花卉图像进行预处理操作,按照7∶2∶1的比例分为训练集、测试集、验证集,通过验证集来了解在每次迭代的过程中,训练效果趋势。在测试集中,加载训练集的模型给每张图片做出结果判断,最终得到模型的准确度。

图3 花卉种类示意图

3.2 数据增广

通过水平翻转、旋转90°、随机剪裁,亮度增加、亮度减少、高斯噪点、椒盐噪点等7种方式对所有样本进行数据预处理,见图4。最后将所有图像调整尺寸为224像素×n像素并统一将原图裁剪为224像素×224像素。

图4 数据增广的方式图

3.3 实验参数

本实验为了达到最优的实验效果,在训练过程中取最优的实验参数,基本参数:输入模型的批量尺寸为16,迭代次数epoch=50,学习率配置设置为30、60、90 3个阶段,优化器采用随机梯度下降SGD(Stochastic Gradient Descent),优化器的权重设置为0.00001,在最优的动量基础上选取尺度0.05、0.005、0.0005 3种学习率。在训练过程中将随机杀死神经元的方法设置为0.1,抑制神经元过拟合。工作线程设置为2,在训练进行每迭代1次验证1次,验证的指标为“accuracy”,为防止打标签错误和学习太过呆板,设置平滑标签为0.2。

3.4 实验环境配置

训练的硬件平台:linux操作系统,cpu为Intel(R)Xeon(R)CPU E5-2678 v3@2.50GHz,配备的固态硬盘为512GB和8TB机械硬盘,GPU为GeForce RTX 2080 Ti,python版本为3.7,深度学习框架为Pytorch1.11、CUDA11.6。python库使用Anaconda3进行管理。

3.5 训练曲线分析

改进的ResNet模型在Stage1、Stage2、Stage3、Stage4将大模型替换成5×5卷积或者3×3卷积的方式,并在池化层替换成1×1卷积达到相同的特征传递,见图5。在数据预处阶段加入水平翻转、旋转90°、随机剪裁、亮度增加、亮度减少、高斯噪点、椒盐噪点等数据增强手段。与原始的ResNet模型相比,本文提出的方法有效提升了识别效率。主要是因为数据增强的方式能够使模型具有泛化性,在复杂背景下也能够识别得较好。在小卷积核方面,虽然大卷积核能够一次提取到想要的特征图大小,但是本文使用的小卷积核经过多次的提取特征也能达到想要的特征大小,在此阶段中由于小卷积核迭代次数加深,对一些弱相关的特征进行了保留,这大大加强了特征描述,从而进一步提升网络分类精度。

图5 训练的精度图

3.6 测试结果

为了验证本文方法的有效性,本实验在836张图像上进行测试结果,见表1,并使用accuracy_top1、accuracy_top5、recall 3个评价指标。从表1可以看出,与原始ResNet方法对比,分别提升了7.58%、7.26%、5.51%。改进后的ResNet对照片的识别率会更高。

表1 测试结果图

4 结论

针对花卉识别检测精度低、人工记忆模糊等情况,本文提出一种基于深度学习小卷积核花卉识别算法研究,提升ResNet基础网络模型识别精度。并对图像进行数据增广、提升泛化能力,实验有效提升了花卉分类的精度。主要结论如下。

利用数据增广的方法和对数据进行预处理,如随机剪裁、随机噪点、随机翻转等,同时增加了数据集的数量,在一定程度上增加了模型的泛化能力,提升了模型的训练精度。通过比对图发现,仅利用数据增广,识别精度就分别提升了6.36%、6.16%、3.6%。

将原始7×7的卷积核使用小卷积核5×5卷积核替代,将原始的5×5卷积核使用3×3的卷积核替代,并在池化的过程中,使用1×1卷积核来替代。这些手段主要目的是提升特征提取的能力,缓解特征在提取过程中丢失或者将不重要的噪点信息转换成主要特征的错误倾向。在测试集上,小特征在数据增广的基础上,识别精度分别提升了1.22%、1.1%、1.91%。

本文提出的方法基于数据增广和小卷积核对原始的残差网络进行修改,有效提升了花朵的识别精度,接下来会进一步研究和探讨深度学习网络模型的轻量化方向,以期模型能够更好地在移动端使用。同时,小卷积核造成的网络过深在一定程度上对小目标的特征提取不友好,接下来会继续做增强小目标提取能力的工作,提升其网络使用价值。

猜你喜欢
特征提取花卉残差
李鱓·花卉十二开
基于双向GRU与残差拟合的车辆跟驰建模
三招搞定花卉病虫害
基于残差学习的自适应无人机目标跟踪算法
《花卉之二》
基于递归残差网络的图像超分辨率重建
基于Daubechies(dbN)的飞行器音频特征提取
水晶泥花卉栽培技术
Bagging RCSP脑电特征提取算法
平稳自相关过程的残差累积和控制图