醋醋百科网

Good Luck To You!

农业用上高科技,面对超轻量级作物病害,该如何建立识别网络?

|小彭的灿烂笔记

编辑|小彭的灿烂笔记

前言

传统的作物病害识别主要依靠农民长期积累的经验,病害的症状复杂多样,需要农业生产者具备高水平的专业知识。

并且人工观察和判断疾病类型,可能具有很强的主观性,而且非常耗时,利用现代信息技术实现高效、准确的作物病害识别也因此具有重要意义。

传统的图像处理方法需要人工进行疾病斑点分割、特征提取和分类器构建,在数据预处理方面消耗大量时间,并且受客观条件影响较大,特征提取困难。

在此背景下,需要重新思考作物病害识别模型的设计范式,研究计算效率高、识别精度高的算法,为智慧农业的发展服务,可以建立一种相对较浅和狭窄的轻量级疾病识别网络VLDNet来达成所愿。

VLDNet的基本结构VLDBlock通过1×1卷积提取内在特征,并使用廉价的线性运算来补充冗余特征,提高特征提取效率,在推理过程中,使用重新参数化技术,来减少模型参数和计算成本,并提高推理速度。

VLDNet在自建数据集和公开数据集上,实现了SOTA模型延迟精度权衡,性能与Swin-Tiny的性能相当,分别为0.097MB和0.04GFLOP,同时将参数和FLOP分别减少了297倍和111倍。

在实际测试中的VLDNet每秒可以识别221张图像,远远优于类似精度的模型,有望进一步推动作物病害识别在实际生产中的应用。

植物村数据集

PlantVillage是一个公开可用的数据集,包含54类疾病和健康作物叶子的306,38张图像,这些图像是完整的叶子图像,具有单一背景,不受障碍物或背景因素的任何干扰,这使得PlantVillage数据集成为疾病识别研究的良好数据基础。

有关本数据集涵盖的作物物种和病害类别的信息,可以在相应的表格中查到,而数据集按7:2:1的比例分为训练集、验证集和测试集,应该注意的是由于数据集的巨大规模,没有执行数据增强操作。

图像的分辨率为2456×2058像素,共获得4180张图像,数据集按7:2:1的比例分为训练集、验证集和测试集,这包括六种类型的苹果叶病图像:斑点、褐斑病、花叶、灰斑病、锈病和健康,以及四种类型的猕猴桃叶病图像:褐斑病、花叶、炭疽病和叶枯病。

自建数据集示例

为了扩展数据集,提高模型的识别性能,在训练集中应用了必要的数据增强策略,包括随机裁剪、亮度调整、旋转、翻转,以及添加盐和胡椒噪声和高斯噪声,来模拟拍摄设备对模拟结果的影响。

从增强训练集中共获得了14,600张图像。为我们提供了增强前后每种图像类型的详细信息,为了减少训练时间,数据集中的图像大小从2456×2058调整为224×224。

对PlantVillage数据集进行实验,以初步验证更深,更宽的网络是否可以实现更好的性能,可以选择EfficientNet,PVTv2和ResNet系列模型。

每个模型具有不同的深度和宽度,用于实验得出结果表明,EfficientNet模型之间的识别精度差异不大,其识别精度曲线几乎重叠,相对较小的PVTv2-b1获得了更好的鉴定结果,这证实了我们的假设。

对于ResNet模型,小尺寸模型的识别精度与大尺寸模型基本相同,甚至更高,收敛速度也没有显著差异,这进一步验证了我们的猜想,即更深入和更广泛的模型无法为作物病害识别任务取得更好的结果。

即使更深、更宽的模型可以实现轻微的识别精度优势,但这是以参数大小和计算复杂性增加数倍为代价的,这对于边缘设备来说是不可接受的。


VLDNet

为了进一步研究网络模型宽度、深度和模型性能之间的关系,提出了一种名为VLDNet的轻量级疾病识别模型。

VLDNet的整体结构并不复杂,它包括一个VLDBlock,四个VLDBottlenecks,一个平均池化层和一个全连接层。

VLDBlock基于MobileNet-V1构建块构建,它由一个3×3深度卷积组成,然后是一个1×1逐点卷积,每个操作重复四次,还引入了使用ReLU激活函数的参数化跳过连接和批量归一化(BN)。

VLDBlock在训练和测试期间有两种不同的结构,在训练期间,它有一个分支,具有1×1个逐点卷积和批量归一化,在推理过程中所有参数化分支,都将通过参数化删除。

VLDBlock构成了VLDNet的特征提取网络,提高了特征提取的有效性和效率,基于VLDBlock,提出了遵循ResNet思想的VLDBottlenec。

VLDBottleneck由两个堆叠的VLDBlock组成,第一个VLDBlock用作扩展层以增加通道数,第二个VLDBlock减少了通道数以匹配剩余连接。

在两个VLDBlock的输入和输出之间添加残差连接,每个VLDBlock后面都有一个BN层和ReLU激活函数,除了第二个VLDBlock。

在两个VLDBlock之间插入步幅=2深度卷积以进行下采样,VLDBottleneck用于提取疾病特征,同时减少模型的参数计数。

平均池化层主要旨在减少计算和提取基本特征,全连接层将特征图转换为疾病的矢量表示,并输出疾病类别。

VLDNet的整体架构

VLDBlock是Ghost模块的结构重新参数化,深度卷积神经网络通常由许多卷积层组成,这会导致大量的计算成本。

尽管最近的技术,如MobileNet和ShuffleNet引入了深度卷积或洗牌操作,以使用较小的卷积内核,构建高效的卷积神经网络,但剩余的1×1卷积层,仍然消耗大量的内存和参数。

在计算特征图期间,生成冗余对于网络性能是必要的,其中有许多类似的特征图,但是没有必要使用大量参数和FLOP逐个生成这些冗余特征图。

内在特征图和冗余特征图共同构成特征图,生成m个固有特征图的过程,可以通过下面公式理解,固有特征图是从总特征图中减去冗余特征图后的剩余特征图。

此过程由初级卷积生成,卷积核参数与上面公式中的参数相同,这里表示使用的卷积内核,使用廉价的线性变换,从m个固有特征图生成n个冗余特征图的过程,能够通过下面公式表达

这里是用于生成特征映射的线性变换,在每个通道上运行,其计算成本远低于普通卷积,线性变换的结构比较清晰。

尽管减少FLOP和参数可能会降低模型的计算复杂性,但相关数据表明这些指标与模型的效率没有很好的相关性,这是因为FLOP等指标,没有考虑内存访问成本和并行性,这可能会对推理期间的延迟,产生重大影响。

因此这里提出对结构进行重新参数化,构建VLDNet的基本结构VLDBlock,以进一步降低模型的成本和推理时间。

结构重参数化技术是一种有效的神经网络技术,它将训练和推理解耦,极大地促进了深度神经网络,在实际应用中的部署。

在训练期间,对于给定的主干网络,结构重新参数化技术,通过向主干网络添加具有各种神经网络组件的多个分支,或特定层来提高模型的表征能力。

在推理过程中添加的分支或层,可以通过等效变换合并到骨干网络的参数中,从而在不影响性能的情况下,显著减少参数数量或计算成本,加速推理。

评价指标

使用的评估指标包括准确度、平衡准确度、召回率、精度、F1分数、几何平均值、参数和FLOP,其算法也不难理解。

该实验是在Ubuntu20.04上进行的,配备IntelCorei910900X处理器,48GBRAM和两个GeForceRTX3090GPU,使用的深度学习框架是PyTorch,训练是使用Cuda11.1进行的

为了验证提出的VLDNet模型的有效性,在PlantVillage数据集上进行了实验,并将结果与最近的研究进行了比较,所反映出的模型实现了令人印象深刻的99.26%的识别准确率,远远超过了一系列大型模型。

例如与之前的报告的VGG27相比,VLDNet的精度提高了17.43%,参数计数几乎可以忽略不计,与在该数据集上实现最高识别精度的DECA-ResNet18相比,模型的识别准确率仅低0.64%,但模型的参数数减少了499倍。

这证明了VLDNet在模型轻量化方面的优势,VLDNet实现了高识别精度和更少的参数,使其能成为部署在资源有限的边缘设备上的理想选择。

为了进一步验证VLDNet模型的性能,在自建数据集上进行了实验,所反映出的VLDNet的识别精度为98.32%,优于MobilenetV2(96.17%)、MobilenetV3(96.70%)等一系列广泛使用的轻量级CNN,识别精度分别比它们高2.15%和1.62%的同时,模型尺寸也更小。

与识别准确率最高的Swin-Tiny(98.77%)相比,VLDNet的识别准确率仅低0.45%,而其参数和FLOP分别减少了297倍和111倍,这再次证明了VLDNet在轻量化方面的优势。

与最小的MobileViT-XXS(97.97%)相比,VLDNet的识别精度提高了0.35%,但其参数计数和FLOP分别仅为7.6%和16%,可以看出VLDNet在模型的计算效率和识别精度之间取得了很好的平衡。

提出的模型与重量级SOTA的比较

VLDNet与自建数据集上其他重量级SOTA模型的比较实验结果,可以看到即使面对参数和计算复杂度大得多的模型,VLDNet的识别性能仍然具有竞争力。

例如它比一系列大型模型(如ViT-base,PVTV2-b5,ConViT-Base等)实现了更高的识别精度,这验证了我们的假设,即更深和更广泛的网络结构不一定能在作物病害识别任务中取得更好的结果。

与性能最佳的型号VGG16相比,VLDNet的识别精度仅低1.06%,但它的资源消耗和计算成本非常高,这对于边缘设备来说是不可接受的,然而VLDNet以很少的资源消耗实现了很高的识别精度,这对边缘设备非常友好。

为了进一步验证VLDNet的性能,对自建数据集进行了五重交叉验证,实验参数设置为之前表格提供的默认值,总共进行了50个时期的实验。

通过得出的实验数据,可以观察到使用不同验证集训练的模型,收敛速度很快,最终鉴定准确率始终在98%以上,与之前的实验结果基本一致,这证明了VLDNet的卓越性能。

结语

我们在这里提出一种基于深度学习的作物病害识别模型设计范式的重新思考,通过实验验证了疾病识别模型的深度和宽度设计与其性能之间,存在不严格的相关性。

基于此而设计了VLDNet,这是一种轻量级的疾病识别模型,在效率和性能之间实现了良好的平衡,VLDNet在公共和自建数据集上都表现良好,这一发现对于模型的高效设计至关重要,尤其是在智能农业的边缘设备上部署基于深度学习的识别方法。

未来的研究方向是将结构重参数化技术应用于视觉变压器,这是因为视觉转化具有更强的表现力,有可能进一步提高基于深度学习的疾病识别任务的性能,将继续探索高效的模型设计方法,改进和优化VLDNet,以此来更好地服务智慧农业的发展。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言