1前言
1.1 研究的背景和意义
1.1.1 研究背景
农业是国民经济的基础产业,农产品的智能化识别对于提升农业生产效率、保障食品安全、推动农业现代化具有重要意义。水果作为日常消费品,其种类繁多、外观相似,传统的人工分类方式不仅效率低下,而且容易受到主观因素和疲劳的影响,难以满足大规模、高精度的应用需求。随着计算机视觉和深度学习技术的迅猛发展,基于图像的自动分类方法逐渐成为研究热点。
卷积神经网络(Convolutional Neural Networks, CNN)作为深度学习的代表性模型,在图像识别、目标检测等领域取得了突破性成果。通过层次化的特征学习,CNN能够从原始像素中自动提取边缘、纹理、形状等判别性特征,从而实现对复杂图像的高效分类。将CNN应用于水果图像分类,不仅可以解放人力,还能提高分类的准确性和一致性,为智能农业、超市自动结算、水果质量检测等实际应用提供技术支持。
1.1.2 研究意义
本研究具有重要的理论意义和实际应用价值。从理论层面看,本研究通过构建并训练一个适用于多类别图像分类的卷积神经网络,进一步验证了深度学习在细粒度图像识别任务中的优越性。研究中引入的数据增强策略,如旋转、平移、缩放等,有效提升了模型的泛化能力,为解决小样本图像分类问题提供了可行思路。从实际应用角度看,水果蔬菜的自动识别技术在智能零售、无人售货、农业采摘机器人、 dietary assessment(饮食评估)等场景中具有广泛需求。传统的人工识别方式效率低、成本高,难以满足大规模应用需求。
1.2 国内外研究现状和发展趋势
1.2.1 国内外研究现状
水果图像识别研究大致经历了从传统机器学习向深度学习的技术演进。早期研究多依赖人工特征提取与浅层分类器,如2014年Zhang等人利用计算机视觉结合前馈神经网络实现水果分类。随着深度学习技术的突破,卷积神经网络因其强大的特征自动提取能力,逐渐成为水果识别领域的主流方法。
1.2.2 未来发展趋势
发展趋势上,水果识别研究正朝着三个方向深化:一是轻量化与边缘部署,通过模型压缩、知识蒸馏等技术适配移动端和嵌入式设备;二是注意力机制与多尺度融合,增强复杂背景下的小目标与遮挡目标识别能力;三是多任务学习与跨场景泛化,实现识别、计数、成熟度评估等功能集成,提升模型在真实农业场景中的实用价值。
但仍存在以下挑战:一是多类别识别时类间相似性(如青苹果与青椒)易导致混淆;二是实际应用中的光照、遮挡、复杂背景等问题影响鲁棒性。未来发展趋势包括:模型轻量化以适应移动端部署、多模态融合(如结合光谱信息)、以及细粒度分类技术的应用。
1.3 主要内容与结构
本文围绕水果图像分类任务开展以下工作:
(1)数据探索与预处理:对36类水果蔬菜数据集进行深入的统计分析,包括各类别样本数量分布、图像尺寸一致性检查等。采用多种数据增强技术(随机旋转、平移、缩放、水平翻转、错切)扩充训练集,有效提升模型泛化能力,并通过可视化展示增强效果。
(2)模型构建与优化:设计三种不同复杂度的卷积神经网络模型:浅层CNN作为基线模型,增强型CNN通过加深网络层数、引入批量归一化和Dropout正则化提升特征提取能力,以及基于ResNet50的迁移学习模型。对于迁移学习模型,详细阐述引入动机:利用ImageNet预训练模型已学习的通用视觉特征,通过两阶段微调(先冻结骨干网络训练分类头,再解冻部分高层卷积层联合训练)使模型快速适应水果分类任务,解决训练数据相对有限的问题。
(3)实验验证与分析:在相同数据集上训练和评估三种模型,对比准确率、损失值、参数量和训练时间等指标。通过混淆矩阵和错误案例分析,识别易混淆类别,探讨模型局限性。最终在测试集上验证迁移学习模型的泛化能力,并可视化预测结果。
(4)总结与展望:系统总结研究成果,指出模型在实际应用中可能面临的问题,并提出未来改进方向,包括数据集扩充、轻量化网络设计、细粒度分类等。
2 相关理论基础
2.1 卷积神经网络基本原理
卷积神经网络是深度学习中专门用于处理图像等网格状数据的模型。其最核心的组件是卷积层,卷积层通过多个小型滤波器在图像上滑动进行乘累加运算,从而提取局部特征。与全连接网络不同,卷积层的每个神经元只与输入图像的局部区域相连,这种局部连接模式充分利用了图像像素间的空间相关性,同时通过权值共享让同一个滤波器在整个图像上复用同一组参数,极大减少了模型的参数量,降低过拟合风险。随着网络加深,神经元的感受野逐渐扩大,低层可检测到边缘、角点等简单特征,中层组合出纹理与图案,高层则能识别出物体的部件乃至整体语义,这种层次化的特征学习能力是卷积神经网络在图像任务中表现优异的关键原因。
在卷积层之后通常会接池化层,常用的最大池化在局部窗口内取最大值,从而缩小特征图的尺寸,降低计算量,同时使网络对微小的平移、旋转和缩放具有更好的不变性。激活函数为网络引入非线性,其中ReLU因其计算简单且能有效缓解梯度消失问题而成为默认选择。随着网络加深,为稳定训练并防止过拟合,往往会引入批量归一化------对每一小批量的特征进行归一化,使数据分布更稳定,允许使用更高的学习率;以及Dropout------在训练过程中随机丢弃一部分神经元,强制网络学习冗余特征,显著提升泛化能力。全连接层位于网络末端,将卷积提取的高维特征展平后进行分类。训练这些参数使用基于梯度的反向传播算法,其中卷积层的误差传播需要经过转置卷积运算,而池化层的误差则根据最大值或平均值的位置进行分配。优化器通常选择Adam,它结合了动量法和自适应学习率的优点,能快速稳定地收敛。正是这些精心设计的层结构与正则化策略,使得现代卷积神经网络能在图像分类、目标检测等任务中达到传统方法无法企及的精度。模型结构图如图2.1所示:

图2.1 模型结构图
2.1.1 深度学习
卷积层通过一组可学习的卷积核(滤波器)对输入图像进行特征提取。每个卷积核在输入上滑动,计算点积并加上偏置,生成特征图。
2.1.2 激活函数与全连接层
激活函数引入非线性,使网络能够学习复杂映射。常用激活函数包括Sigmoid、Tanh和ReLU(Rectified Linear Unit)。
2.1.3 损失函数与优化算法
对于多分类问题,常采用交叉熵损失函数
其中 N为批量大小,y{i,k} 为第i个样本的真实标签(one-hot编码), 为预测概率。
Adam优化器(Adaptive Moment Estimation)是一种自适应学习率的优化算法,结合了动量法和RMSProp。
2.2 经典卷积神经网络模型
2.2.1 LeNet-5 与 AlexNet
LeNet-5 是早期的卷积神经网络,由Yann LeCun等人在1998年提出,用于手写数字识别。其结构包含卷积层、池化层和全连接层,奠定了CNN的基本架构。
AlexNet 在2012年ImageNet竞赛中取得突破性成绩,其特点包括使用ReLU激活函数、Dropout正则化、数据增强和GPU并行训练,大幅提升了图像分类性能。
2.2.2 VGGNet 与 ResNet
VGGNet 由牛津大学视觉几何组提出,其核心思想是使用连续的小卷积核(3×3)堆叠来增加网络深度,结构规整,易于迁移。但VGGNet参数量较大,训练较慢。
ResNet(残差网络)通过引入残差连接解决了深层网络梯度消失问题,使得网络深度可达50层以上。ResNet的基本模块为瓶颈结构(Bottleneck),包含三个卷积层(1×1、3×3、1×1),并在输入输出之间添加跳跃连接。
2.3 迁移学习技术
2.3.1 迁移学习原理
迁移学习的核心思想是将一个领域(源领域)中学到的知识迁移到另一个相关但不完全相同的新领域(目标领域)中,从而减少对大规模标注数据的依赖,并加速模型的收敛。在图像分类任务中,源领域通常是大规模通用图像数据集(如ImageNet),其中包含上千万张标注图像和上千个类别;目标领域则是具体应用场景下的数据集,例如本文的水果蔬菜分类数据集。由于不同视觉任务在底层特征上具有高度共通性(边缘、纹理、形状等低级特征在各类图像中普遍存在),因此在大规模数据集上预训练的模型已经具备了良好的特征提取能力。将这些预训练权重作为初始参数,用于目标任务的训练,即使目标数据量较少,也能获得显著优于随机初始化的结果。迁移学习的理论依据在于:深度神经网络的前几层学习到的通用特征可移植性强,而后几层则更偏向于特定任务的语义特征。因此,直接使用预训练权重初始化网络,能够以较少的数据和训练轮次达到较高精度。
2.3.2 预训练模型与微调策略
预训练模型是在大型通用数据集(如ImageNet)上经过充分训练后保存的完整网络权重文件。这些模型通常具有数十层乃至上百层的深度,参数量巨大,从头训练需要大量计算资源和标注数据。借助预训练模型,我们只需在目标数据集上进行微调(Fine-tuning)即可高效地适应新任务。微调的标准流程分为两阶段:第一阶段,冻结骨干网络(即预训练模型除去顶层分类器的部分)的所有参数,仅训练新添加的全连接分类层,让分类头快速学习目标类别的映射关系;第二阶段,解冻骨干网络中的部分高层卷积层(通常是网络最后若干个残差块),并与分类头一起用更低的学习率进行联合训练,使高层特征进一步适应目标数据的特有分布。这种两阶段策略既能保留预训练特征的通用性,又能使模型对特定任务进行精细调整,避免因学习率过高而破坏预训练的优质特征。实践中,第二阶段通常只解冻最后数十层,并采用比第一阶段小一个数量级的学习率,结合早停和学习率衰减回调,有效防止过拟合,最终获得更优的性能。
2.4 图像增强技术
图像增强是一种在训练过程中对原始图像进行随机变换以扩充数据集的有效手段,旨在提高模型的泛化能力和鲁棒性。由于标注数据的采集成本较高,实际应用中往往面临训练样本不足的问题,此时图像增强可以低成本地生成大量新样本,使模型见到更多样化的输入,从而抑制过拟合。常用的增强操作包括:随机旋转,让模型适应不同拍摄角度;宽度和高度平移,模拟目标在图像中的位置偏移;随机缩放,使模型对拍摄距离不敏感;水平翻转,适用于左右对称的水果图像;以及错切变换,模拟视角变化带来的几何失真。为了增强光照变化的鲁棒性,还可以引入亮度调整、对比度变换和色彩抖动等操作。这些变换通常以一定的概率随机施加,且参数在一定范围内均匀采样,保证了样本的多样性。图像增强通常在数据加载时实时进行,不额外占用磁盘空间。在Keras中,可以通过ImageDataGenerator类方便地配置多种增强参数,并设置fill_mode决定变换后空白区域的填充方式,常用的有最近邻填充、反射填充等。需要注意的是,验证集和测试集不应进行数据增强,只需执行缩放和归一化,以确保评估结果的稳定性和可比性。通过合理设计增强策略,即使原始数据集规模有限,模型也能学到更具判别力的特征,在实际应用中表现出更强的适应性。
3 数据集分析与预处理
3.1 数据集介绍
本文使用的水果蔬菜图像数据集共包含36个类别,涵盖日常生活中常见的苹果、香蕉、橙子、草莓、番茄、黄瓜、青椒等水果和蔬菜品种。该数据集总大小约为2GB,图像均为彩色JPEG格式,原始图像尺寸不尽相同,部分图片分辨率较高,部分则相对较低,这为后续预处理提出了统一缩放的要求。数据集的划分遵循了机器学习常规策略:训练集存放于train文件夹,共计3115张图像,用于模型参数的学习;验证集存放于validation文件夹,共计351张图像,用于训练过程中的超参数调优和早停判断;测试集存放于test文件夹,共计359张图像,用于最终模型性能的独立评估。三个子集的图像分布基本保持各类别比例一致,避免了类别不平衡问题。每一类别的样本数量在78到102张之间,整体分布较为均匀,有利于模型稳定训练。数据集中部分水果(如苹果与梨、柠檬与梨)在外观形状和颜色上具有一定相似性,给分类任务带来挑战;同时,同类别内部也存在成熟度、光照条件、拍摄角度等差异,进一步增加了识别难度。这些特点使得本数据集既适合作为分类算法的性能验证基准,也能有效检验模型对类内差异和类间相似性的判别能力。
3.2 数据集统计分析
3.2.1 类别分布
对训练集中每个类别的图像数量进行统计,结果如图3.1所示(条形图)。从图中可以看出,大多数类别图像数量在80~100之间,分布相对均衡,有利于模型训练。

图3.1 各类别训练图像数量条形图
具体统计数据如下:类别数量最多的为"苹果"(102张),最少的为"菠萝"(78张),平均每类约86.5张。这种相对均衡的分布避免了模型对某些类别产生偏见,为后续分类任务提供了良好基础。
3.2.2 图像数量统计
训练集总图像数:3115张。验证集总图像数:351张。测试集总图像数:359张。从整体看,训练、验证、测试集的比例约为8.7:1:1,符合常规划分原则。验证集和测试集数量相当,能够有效评估模型的泛化能力。此外,对图像尺寸进行初步检查,发现原始图像尺寸不一,因此需要统一缩放到224×224像素以适应网络输入。
3.3 图像预处理
3.3.1 图像归一化
所有图像被缩放到 224 ,224 像素,以匹配ResNet50的输入尺寸。像素值除以255归一化到 0,1区间,加速模型收敛。对于基于迁移学习的ResNet50模型,还需要使用preprocess_input函数进行额外的预处理,该函数会根据预训练时使用的数据分布对图像进行通道转换和归一化,确保输入分布与预训练一致,从而更好地利用预训练权重。
3.3.2 数据增强技术实现
数据增强是提升模型泛化能力的有效手段,尤其在训练数据有限的情况下。本文采用Keras的ImageDataGenerator实现以下增强操作:
随机旋转 (rotation_range = 20):在±20度范围内随机旋转图像,模拟不同角度拍摄的水果图像,使模型对旋转更具鲁棒性。
水平平移 (width_shift_range = 0.2) 和 垂直平移 (height_shift_range = 0.2):在水平或垂直方向上随机移动图像,偏移量不超过图像宽/高的20%,用于模拟目标在图像中的位置变化。
随机缩放 (zoom_range = 0.1):在0.9~1.1倍之间随机缩放图像,模拟不同距离拍摄的效果,使模型对尺度变化不敏感。
水平翻转 (horizontal_flip = True):以0.5的概率水平翻转图像,增加样本多样性,尤其适用于左右对称的水果(如苹果、橙子)。
错切变换 (shear_range = 0.1):沿水平方向随机错切,强度为0.1弧度,模拟视角变化。
所有增强操作均在内存中实时进行,不增加磁盘存储负担。对于验证集和测试集,仅进行缩放和归一化,不进行数据增强,以保证评估结果的稳定性。
图3.2-图3.8展示了同一张原图图3.2经过不同增强操作后的效果,包括旋转、平移、缩放、翻转和错切后的图像。可以看到,增强后的图像保留了水果的主体特征,同时引入了合理的变形和变化,有助于模型学习到更具鲁棒性的特征。

图3.2 原图


图3.3 旋转20°


图3.4 宽度偏移(20%)


图3.5 高度偏移(20%)


图3.6 缩放 (10%)


图3.7 水平翻转


图3.8 剪切(0.1 弧度)
3.4 数据生成器构建
为了高效地加载和预处理图像数据,本文采用Keras框架中的ImageDataGenerator配合flow_from_dataframe方法构建数据生成器。数据生成器能够在训练过程中实时对图像进行读取、解码、缩放、归一化及数据增强等操作,避免了一次性将所有图像载入内存所带来的资源压力,尤其适用于图像数量较多或尺寸较大的数据集。具体实现时,首先为训练集创建ImageDataGenerator实例,配置前面章节所述的旋转、平移、缩放、翻转、错切等数据增强参数,并调用flow_from_dataframe方法从包含图像路径和标签信息的DataFrame中生成批次数据。该方法需要指定目标图像尺寸target_size=(224,224),以匹配后续卷积神经网络的输入维度;颜色模式设为color_mode='rgb';分类模式设为categorical以适应36类的多分类任务;批次大小batch_size设为32,该值需综合考虑GPU显存容量和模型收敛稳定性,过小会导致梯度估计不稳定,过大会超出显存限制。对于训练生成器,设置shuffle=True以在每个epoch开始时随机打乱样本顺序,防止模型记忆样本顺序而产生偏差,同时设置随机种子seed=42确保实验可重复。对于验证集和测试集生成器,不使用任何数据增强,仅进行缩放和归一化,并将shuffle=False以保证样本顺序与标签顺序一致,便于后续计算混淆矩阵和各类别准确率等评估指标。此外,对于基于迁移学习的ResNet50模型,需在生成器中设置preprocessing_function=preprocess_input,对输入图像进行与预训练模型一致的通道转换和归一化处理。通过以上配置,数据生成器为模型训练和评估提供了高效、规范的数据流水线,确保实验过程的可复现性和结果的有效性。
3.5 本章小结
本章对数据集进行了详细的统计分析,明确了各类别分布和图像数量;介绍了图像归一化处理及对ResNet50的特定预处理;实现了多种数据增强技术,并通过示例展示了增强效果;最后构建了数据生成器,为后续模型训练准备好数据输入。
4 基于深度卷积神经网络的水果分类模型设计与实现
4.1 模型设计思路概述
本文旨在探索不同复杂度的卷积神经网络在水果图像分类任务上的性能表现,从而找到兼顾精度和效率的解决方案。设计思路如下:
构建一个浅层卷积神经网络作为基线模型,该模型包含两个卷积层和两个全连接层,从头训练,用于评估最基本CNN架构在本任务上的基准性能。该模型结构简单、训练快速,能够快速验证数据流程和超参数设置的合理性。
在基线模型基础上设计增强型卷积神经网络(方案A),通过增加网络深度(卷积层数)、引入批量归一化(Batch Normalization)和Dropout正则化来提升模型的特征提取能力和泛化能力。批量归一化可以加速训练收敛,Dropout则有效防止过拟合。方案A旨在探索在有限数据条件下,通过优化网络结构能否获得显著性能提升。
引入迁移学习策略(方案B),这是本文的核心设计。考虑到本数据集规模相对较小,从头训练深层网络容易过拟合且收敛缓慢,而ImageNet预训练模型已经学习了丰富的通用视觉特征。因此,选择ResNet50作为骨干网络,利用其在ImageNet上学到的特征作为起点,通过两阶段微调适应水果分类任务。迁移学习可以大幅减少训练时间,同时获得更高的准确率,尤其适用于样本量有限的实际场景。方案B的设计动机在于充分利用大规模预训练模型的优势,结合目标数据集的特定分布进行精细调整,以达到最优分类效果。
4.2 基线模型:浅层卷积神经网络
4.2.1 网络结构设计
基线模型结构如下表4.1所示:
表4.1 基线模型结构
|--------------|----------------|------------|
| 类型 | 参数 | 输出尺寸 |
| Conv2D | 32个3×3卷积,ReLU | 224×224×32 |
| MaxPooling2D | 2×2 | 112×112×32 |
| Conv2D | 64个3×3卷积,ReLU | 112×112×64 |
| MaxPooling2D | 2×2 | 56×56×64 |
| Flatten | - | 200704 |
| Dense | 128个神经元,ReLU | 128 |
| Dense | 36个神经元,Softmax | 36 |
该模型参数量约为25.7M,其中全连接层占主导。由于未使用任何正则化技术,模型可能容易过拟合。
4.2.2 训练策略
基线模型采用从头训练方式,优化器选择Adam,初始学习率设为0.001,这是Adam常用的默认值。损失函数为分类交叉熵。训练共进行10个epoch,批次大小为32。训练过程中未使用学习率衰减或早停,仅观察损失和准确率的变化趋势。由于模型较浅,训练速度较快,单轮训练时间约8秒。训练结束后保存验证集上最佳模型用于测试。
4.3 改进模型:增强型卷积神经网络
4.3.1 网络加深与结构优化
为了提升模型表达能力,方案A在基线基础上增加卷积层数量,并引入批量归一化(Batch Normalization)加速收敛。结构如下表4.2所示:
表4.2改进型模型结构
|--------------|-------------------|------------|
| 类型 | 参数 | 输出尺寸 |
| Conv2D | 32个3×3卷积,ReLU,BN | 224×224×32 |
| Conv2D | 32个3×3卷积,ReLU,BN | 224×224×32 |
| MaxPooling2D | 2×2 | 112×112×32 |
| Conv2D | 64个3×3卷积,ReLU,BN | 112×112×64 |
| Conv2D | 64个3×3卷积,ReLU,BN | 112×112×64 |
| MaxPooling2D | 2×2 | 56×56×64 |
| Conv2D | 128个3×3卷积,ReLU,BN | 56×56×128 |
| Conv2D | 128个3×3卷积,ReLU,BN | 56×56×128 |
| MaxPooling2D | 2×2 | 28×28×128 |
| Flatten | - | 100352 |
| Dense | 256个神经元,ReLU | 256 |
| Dropout | 0.5 | 256 |
| Dense | 128个神经元,ReLU | 128 |
| Dropout | 0.5 | 128 |
| Dense | 36个神经元,Softmax | 36 |
4.3.2 Dropout与正则化
为防止增强型卷积神经网络在训练过程中出现过拟合,本节在全连接层后引入了Dropout技术,并借助批量归一化(Batch Normalization)和权重衰减增强正则化效果。Dropout的基本思想是在每次前向传播时以固定概率(本文设为0.5)随机丢弃部分神经元,使其不参与当前迭代的权重更新。这相当于在训练过程中生成了大量不同结构的子网络,并强制神经元之间解耦协作,从而减少复杂的共适应关系,显著提升模型的泛化能力。在全连接层后添加Dropout层时,通常需要同时增加神经元数量以补偿丢弃带来的信息损失,因此我们将第一个全连接层的维度从128提升至256。批量归一化则在每个卷积层后对特征图进行标准化,使其均值为0、方差为1,并引入可学习的缩放和平移参数。这不仅能加速收敛、允许使用更高的学习率,还有一定的正则化效果,可视为隐式的权重约束。此外,还采用了L2权重衰减(在优化器中设置weight_decay参数),通过在损失函数中添加权重的平方和惩罚项,抑制参数值过大,进一步控制模型复杂度。三者结合,使增强型模型在训练后期验证损失保持平稳,未出现显著上升,证明了正则化策略的有效性。
4.3.3 训练策略
方案A同样采用从头训练,优化器选择Adam,初始学习率0.001。训练共20个epoch,批次大小32。引入了学习率衰减回调ReduceLROnPlateau,监测验证损失,当验证损失连续3个epoch不下降时,学习率乘以0.5,最小学习率设为1e-6。同时使用早停回调EarlyStopping,监测验证准确率,当连续5个epoch不提升时停止训练,并恢复最佳权重。这些策略有助于防止过拟合并节省训练时间。
4.4 引入迁移学习的改进模型
4.4.1 引入迁移学习的动机
尽管方案A通过加深网络和正则化取得了一定性能提升,但从头训练深层网络仍面临两大挑战:一是需要大量标注数据才能充分训练深层参数,而本数据集仅3115张训练图像,相对有限;二是训练时间较长,且容易陷入局部最优。迁移学习能够有效解决这些问题:通过在ImageNet等大型数据集上预训练的模型,已经学习到丰富的通用视觉特征(如边缘、纹理、形状等),这些特征可以迁移到水果分类任务中。只需在预训练模型基础上添加适合本任务的分类层,并通过微调(fine-tuning)使高层特征适应目标数据,即可在较少样本下获得高性能模型。此外,迁移学习能显著缩短训练收敛时间,因为大部分网络参数已经接近最优,只需小幅调整即可。
4.4.2 预训练模型选择与迁移学习原理
选择ResNet50作为骨干网络,其在ImageNet上预训练的权重提供了丰富的视觉特征。ResNet50的残差结构允许训练更深的网络而避免梯度消失,使其成为迁移学习中的常用选择。迁移学习通过微调使这些特征适应水果分类任务。
4.4.3 基于ResNet50的模型结构
移除ResNet50的顶层,添加全局平均池化层和全连接层,模型结构如下图4.1所示:

图4.1 模型结构代码
模型总参数量约24.1M,其中骨干网络参数冻结时可训练参数约0.56M。
4.4.4 两阶段训练策略
第一阶段(冻结骨干训练分类头):冻结ResNet50所有层,仅训练新增的全连接层。学习率设为0.001,训练20轮。此阶段让分类头学习到适用于本数据集的映射,同时避免破坏预训练的低层特征。
第二阶段(微调部分层):解冻ResNet50最后50层,使用更低的学习率(1e-5)进行微调,共训练30轮。同时引入ReduceLROnPlateau(监测验证损失,因子0.5,patience 3)和EarlyStopping(监测验证准确率,patience 10)回调,防止过拟合并自动保存最佳模型。
4.4.5 输入数据预处理适配
使用preprocess_input函数对图像进行与ImageNet预训练一致的预处理(归一化、通道转换等),确保输入分布匹配。
4.5 实验环境与评价指标
4.5.1 软硬件环境配置
硬件:Intel Xeon CPU, NVIDIA Tesla T4 GPU (16GB显存)。
软件:Ubuntu 18.04, Python 3.8, TensorFlow 2.6, Keras, CUDA 11.2。
4.5.2 评价指标定义
主要采用准确率(Accuracy)作为评价指标,定义为预测正确的样本数占总样本数的比例。同时记录损失值(Loss)衡量模型拟合程度。
4.6 本章小结
本章详细介绍了三种模型的网络结构设计、训练策略及超参数配置。基线模型作为对比基准,方案A通过加深网络和正则化提升性能,方案B引入迁移学习和两阶段微调期望获得最佳效果,并阐述了引入迁移学习的动机。
5 实验结果与分析
5.1 实验设置与训练过程
5.1.1 超参数配置
各模型超参数已在第四章给出,统一批次大小32,使用Adam优化器,初始学习率根据模型调整。
5.1.2 训练曲线分析
图5.1展示了方案B(ResNet50迁移学习)的完整训练历史曲线(包括两阶段)。

图5.1 训练历史曲线(准确率和损失)
图中灰色虚线表示第一阶段结束(20轮)。可以看出:第一阶段训练准确率快速上升,验证准确率在20轮时达到约91%;第二阶段微调后,验证准确率继续小幅提升,最终稳定在93%左右;训练损失持续下降,验证损失平稳,无明显过拟合。
5.2 各模型性能对比
5.2.1 准确率与损失对比
表5.1给出了三个模型在验证集上的最佳准确率对比。
表5.1 各模型验证集准确率对比
|---------|--------|--------|
| 模型 | 验证准确率 | 验证损失 |
| 基线模型 | 62.10% | 1.2245 |
| 增强模型A | 84.30% | 0.46 |
| 迁移学习模型B | 93.50% | 0.16 |
从表5.1所示的验证集结果可以看出,三种模型的性能呈现明显梯度:基线模型验证准确率仅为62.1%,验证损失为1.2245。这主要是因为浅层卷积网络特征提取能力有限,难以捕获水果图像的细粒度判别信息,且缺乏正则化策略,存在一定过拟合。增强型模型A通过增加网络深度、引入批量归一化和Dropout正则化,验证准确率提升至84.3%,验证损失降至0.46。这表明加深网络能够学习更丰富的特征层次,正则化手段有效抑制了过拟合,但该模型仍从头训练,受限于数据集规模(仅3115张训练图像),其性能尚未达到最优。迁移学习模型B(基于ResNet50)取得了93.5%的验证准确率,验证损失仅0.16,显著优于前两者。这充分验证了ImageNet预训练权重所蕴含的通用视觉特征对水果分类任务的有效迁移能力。两阶段微调策略(先冻结骨干网络训练分类头,再解冻最后50层低学习率联合训练)既保留了底层通用特征,又使高层语义特征适配了特定数据集,从而在有限样本下实现高精度。此外,模型B的训练损失下降平稳,验证损失未出现过拟合反弹,说明正则化策略和早停机制工作良好。综合对比,迁移学习在准确率和收敛稳定性上均具备明显优势,是处理中小规模图像分类任务的理想选择。
5.2.2 模型参数量与训练时间
表5.2对比了各模型的参数量和单轮训练时间(基于T4 GPU)。
表5.2 模型参数量与训练时间
|---------|-------|------------|----------|
| 模型 | 总参数量 | 可训练参数量 | 单轮时间(秒) |
| 基线模型 | 25.7M | 25.7M | 8 |
| 增强模型A | 45.2M | 45.2M | 15 |
| 迁移学习模型B | 24.1M | 0.56M(第一阶) | 130(第一阶) |
| | | 23.6M(第二阶) | 120(第二阶) |
表5.2展示了三个模型的总参数量、可训练参数量以及单轮训练时间(基于NVIDIA T4 GPU)。基线模型总参数量约25.7M,全部可训练,单轮训练约8秒,结构简单且无冻结参数,因此训练速度最快。增强型模型A总参数量增至45.2M,同样全部可训练,但由于网络更深、卷积层数更多,前向与反向计算量增大,单轮训练时间升至15秒。迁移学习模型B总参数量约24.1M,但在第一阶段冻结了ResNet50骨干网络的所有层,仅训练新添加的全连接层(可训练参数量仅0.56M),因此虽然总参数量不大,但由于骨干网络的前向传播仍需计算,单轮训练时间仍达130秒;第二阶段解冻最后50层后,可训练参数量增至23.6M,单轮训练时间约120秒。值得注意的是,模型B虽然单轮训练时间较长,但由于其收敛所需的轮数较少(第一阶段20轮、第二阶段30轮后验证准确率已趋近饱和),且验证准确率(93.5%)远高于前两者,综合考虑训练总耗时与最终性能,迁移学习仍是最优选择。此外,模型A总参数量最大,但未使用预训练,因此训练效率与精度均不及模型B。可见,合理利用预训练与冻结策略,可以在控制总参数量的同时显著提升分类性能。
5.3 测试集评估结果
5.3.1 整体准确率对比
最终在测试集上评估三个模型,结果如表5.3所示。
表5.3 测试集准确率对比
|---------|--------|
| 模型 | 测试准确率 |
| 基线模型 | 60.20% |
| 增强模型A | 83.70% |
| 迁移学习模型B | 93.60% |
在测试集上对三个模型进行最终评估,结果如表5.3所示。基线模型仅取得60.2%的准确率,这主要是由于其网络深度较浅,仅包含两个卷积层,特征提取能力有限,难以应对水果图像中光照变化、角度差异及类间相似性等复杂情况,同时缺少正则化策略,模型对训练集中的噪声和细节过度学习,导致泛化性能不足。增强型模型A通过加深网络结构(增加至六个卷积层)、引入批量归一化和Dropout正则化,测试准确率显著提升至83.7%,较基线模型提高了23.5个百分点,验证了深度网络和正则化在提升特征表达与抑制过拟合方面的有效性。然而,由于训练数据规模(3115张)相对有限,模型A难以充分训练深层参数,性能仍未达到最优。迁移学习模型B(基于ResNet50)在测试集上取得了93.6%的准确率,比模型A高出近10个百分点,达到实际应用可接受的水平。该结果充分证明了ImageNet预训练模型所蕴含的通用视觉特征(边缘、纹理、形状等)能够高效迁移至水果分类任务,结合两阶段微调策略(先冻结骨干网络训练分类头,再解冻最后50层低学习率联合训练),在有限样本下实现了高精度识别。模型B的测试准确率与验证准确率(93.5%)高度一致,说明模型未出现过拟合,泛化能力强,具有良好的实际部署潜力。综合对比可见,迁移学习是解决中小规模图像分类任务的首选方案。
5.3.2 各类别识别效果分析
图5.2展示了迁移学习模型对各类别的分类准确率(混淆矩阵)。

图5.2 各类别分类准确率混淆矩阵
从图中可以看出,大多数类别准确率超过90%,少数易混淆类别(如青苹果与青椒)准确率略低,需进一步优化。基于迁移学习模型B的预测结果,统计了36个类别的分类准确率。大多数类别识别准确率超过90%,说明模型对主流水果蔬菜具有良好判别能力。然而,部分易混淆类别准确率相对较低。例如,青苹果与青椒在外观颜色和形状上较为相似,两者在测试集中存在一定程度的误判;柠檬与梨也因颜色接近、轮廓相似而导致少量混淆。此外,同一类别内部因成熟度不同、光照差异以及拍摄角度变化,也会影响识别效果。这些误判表明,虽然迁移学习模型整体性能优异,但在细粒度区分上仍有提升空间。未来可通过增加易混淆类别的训练样本、引入注意力机制或多尺度特征融合来进一步优化。总体而言,模型在大多数类别上的分类效果令人满意,具备实际应用潜力。
5.4 测试集评估结果
5.4.1 随机样本预测展示
从测试集中随机选取部分样本,使用迁移学习模型进行预测,结果如图5.3所示。每张图像上方显示真实标签和预测标签。



图5.3 随机样本预测示例
模型对清晰、特征明显的图像预测准确;对于模糊或遮挡的图像可能出现错误。
5.4.2 错误案例分析与讨论
图5.4展示了部分错误分类的样本。

图5.4 部分错误分类的样本
分析发现错误原因主要包括:
光照过暗或过亮导致颜色失真;
图像模糊或部分遮挡;
不同类别外观相似(如青苹果与青椒、柠檬与梨)。
5.5 测试集评估结果
从实验结果看,迁移学习模型取得了最佳性能,验证了预训练+微调策略的有效性。数据增强显著提升了模型泛化能力,尤其是在训练样本有限的情况下。错误案例揭示了模型的局限性,未来可通过增加训练样本、引入注意力机制或多尺度特征融合来改进