基于AlexNet模型的玉米籽粒品质鉴别研究
作者: 陈增旭 尹淑欣
摘 要:玉米是世界上最重要的粮食作物之一,其品质鉴别对农业生产和食品加工具有重要意义。传统的玉米籽粒品质鉴别方法往往需要大量人力和时间成本,并且易受主观因素影响。基于AlexNet模型,提出了一种改进的并且适配于玉米籽粒品质鉴别的AlexNet算法,并针对玉米籽粒数据集进行微调。在微调过程中,采用数据增强、批量归一化、随机失活等技术,以提高模型的性能。经试验,该模型在测试集上的准确率为96.6%,优于原本的AlexNet模型对玉米籽粒品质鉴别性能。该模型的应用有望提供更快速、准确的玉米籽粒品质鉴别方法,有利于玉米籽粒品质把控。
关键词:AlexNet;玉米品质鉴别;批量归一化
中图分类号:S513;TP391.41 文献标志码:A 文章编号:1674-7909-(2023)13-148-3
0 引言
在计算机视觉深度学习领域,AlexNet神经网络算法是最出名的算法之一,被认为是开创性研究之一。然而,随着研究的深入,人们发现AlexNet模型在某些方面存在一些不足之处,如容易出现过拟合、计算复杂度较高等[1]。因此,笔者对AlexNet模型进行一定的改进,以解决其原本存在的问题,并提高模型在玉米籽粒品质鉴别任务中的性能。此外,笔者采用了一些常用的深度学习技术,如数据增强(Data Augmentation)、批量归一化(Batch Normalization)、随机失活(Dropout)等,以提高模型的性能。Data Augmentation技术被广泛应用于图像分类、目标检测、语音识别等领域,可通过对训练集数据进行变换和扰动,扩增训练集的规模,提高模型的泛化能力。应用Batch Normalization技术,可对每一层的输入进行标准化,减少内部协变量移位,提高模型的训练速度和鲁棒性。应用Dropout技术,则可随机将一部分神经元的输出值置为0,以减少过拟合的风险,提高模型的泛化能力。
1 模型改进
1.1 图像预处理
1.1.1 图像尺寸调整
将输入图像的尺寸调整为2 448像素×2 448像素。对于训练集中的每个图像,首先将其在较短的一侧进行调整,然后将其中心区域裁剪为224像素×224像素。
1.1.2 像素值归一化
将输入图像的像素值归一化到[0,1]范围内。具体来说,将每个像素的RGB值除以255即可。
1.1.3 数据增强
在训练过程中,采用Data Augmentation技术,如随机裁剪、随机水平翻转、随机色彩抖动等,以增加训练数据的多样性和泛化能力。
1.1.4 数据标准化
在训练过程中,对输入图像的每个通道进行标准化处理,以便更好地满足模型的输入要求。具体来说,对于每个通道,计算其均值和标准差,然后对输入图像进行标准化处理。
1.2 改进AlexNet模型
相对于Bottleneck,BasicBlock更适合深度较浅的网络。因此,在AlexNet第五层卷积层后面添加一个输入与输出通道数相同的BasicBlock[2-3](见图1)。BasicBlock是ResNet中使用的一种残差块,由2个3×3的卷积层和一个Residual连接组成。在BasicBlock中,输入经过第一个卷积层进行特征提取,然后经过Residual连接进行信息传递,最后经过第二个卷积层得到输出。通过这种方式,减少了梯度消失和梯度爆炸问题,提高了模型的训练速度和准确性。
Batch Normalization是一种在神经网络中用于加速收敛并提高模型训练效果的技术[4-6]。其主要思想是在训练过程中对每一层的输入进行归一化处理,使输入数据在训练过程中具有相同的均值和方差。在下一层卷积层的输入前添加一个Batch Normalization层,该层将每个Batch的输入进行归一化处理,并对其进行缩放和平移操作。这样可以使网络在进行梯度下降时更加稳定,防止出现梯度消失或梯度爆炸的情况,同时能够加速模型的收敛。
为进一步提高模型的泛化能力,应用Dropout技术(见图2)减少过拟合的风险。在训练阶段,对于每个神经元,按照一定的概率P将其输出值置为0,即丢弃该神经元的输出值。概率P通常是在0.2~0.5(此次研究P=0.5)。这样一来,每次训练时都会随机选择不同的神经元进行丢弃,从而产生不同的神经网络结构。通过这种方式,可以让神经网络不依赖于任何一个特定的神经元,而是通过整个神经网络的结构来学习,从而提高模型的泛化能力。
2 试验设计
2.1 试验环境
算法训练和测试环境均是在Windows11下进行,CPU型号为12th Gen Intel(R)Core(TM)i7-12700H 2.30 GHz,内存为16 GB,GPU型号为NVIDIA GeForce RTX 4060 Laptop,采用python3.9+pytorch框架进行编译。
2.2 数据集
采用玉米籽粒品质检测数据集(先采集16个玉米籽粒为一组,然后对每一组玉米籽粒俯瞰拍摄得到图像,再进行分类的数据集),玉米籽粒品质图像试验样本主要有5类,共3 000幅。其中,S级分类600幅,A级分类600幅,B级分类600幅,C级分类600幅,D级分类600幅。试验图片数据采用jpg格式,大小为2 448像素×2 448像素;将数据集按5∶1划分为训练集和测试集。
2.3 试验流程
分别将激活函数Tanh和ReLU进行对比训练和测试,得出数据;在其他条件相同的情况下,将改进后取得最高准确率的算法与原版AlexNet模型算法进行训练测试对比。
2.4 评判标准
为了更好地验证算法性能,笔者采用以下方法计算准确率及损失值。
准确率反映试验分类图片样本集的正确程度,设当前分类任务中正确分类的样本数为NT,当前分类任务中错误分类的样本数为NF,那么此次分类任务的准确率Acc为
损失函数采用交叉熵损失函数[7],设计算在一个批次的训练样本中计算得到的损失函数计算所得的平均数为L,训练样本总数为N,每次迭代样本数为Nb,所得当前分类任务损失值Loss为
3 试验结果与分析
试验样本统一为2 448像素×2 448像素,中心切割为224像素×224像素,每次迭代样本数设置为32,学习率统一为0.000 2,优化器为Adam,迭代次数统一为30次。
统一其他条件,测试不同激活函数对模型的影响。如表1所示,在其他条件不变的情况下(均引入一层BasicBlock),使用ReLU激活函数模型的准确率为96.6%,Tanh激活函数的模型准确率为94.2%。由此可见,ReLU激活函数是优于Tanh激活函数的,所以笔者后续将采用ReLU激活函数进行优化。
通过以上对比,将优化改进过后的AlexNet模型算法与原版模型算法进行对比(见表2),原版AlexNet算法准确率为93.7%,改进后算法准确率为96.6%,其性能提升明显。
利用混淆矩阵对测试集上共计500张样本进行分类,结果如图3所示。由于玉米图片数据背景处理较为干净,因而准确率较为高,错误鉴别占总数的1%左右。
4 结束语
笔者通过对AlexNet模型的归一化、激活函数及算法进行优化,使其泛化性和准确率有所提高,最终准确率达到96.6%,然而还有不足之处需要继续试验改进。
参考文献:
[1]何前,郭峰林,王哲豪,等.基于改进AlexNet的葡萄叶部病害分类算法[J].扬州大学学报(自然科学版),2023(2):52-58.
[2]HE K,ZHANG X,REN S,et al.Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition,2016:770-778.
[3]段宇飞,董庚,孙记委,等.基于SE-ResNet网络的油茶果果壳与茶籽分选模型[J].中国农机化学报,2023(4):89-95.
[4]张百川,赵佰亭.结合批归一化的轻量化卷积神经网络分类算法[J].哈尔滨商业大学学报(自然科学版),2021(3):300-306.
[5]郭永存,张勇,李飞,等.嵌入空洞卷积和批归一化模块的智能煤矸识别算法[J].矿业安全与环保,2022(3):45-50.
[6]刘建伟,赵会丹,罗雄麟,等.深度学习批归一化及其相关算法研究进展[J].自动化学报,2020(6):1090-1120.
[7]曾华福,杨杰,李林红.基于改进ShuffleNet v1的服装图像分类算法[J].现代纺织技术,2023(2):23-35.
作者简介:陈增旭(1996—),男,硕士生,研究方向:机器视觉、机器学习。
通信作者:尹淑欣(1977—),女,博士,副教授,研究方向:图像处理、智能信息识别。