面向植物病害识别的卷积神经网络精简结构Distilled-MobileNet模型
1.
2.
3.
Distilled-MobileNet Model of Convolutional Neural Network Simplified Structure for Plant Disease Recognition
1.
2.
3.
通讯作者: 叶 进(1970-),女,博士,教授,研究方向为计算机软件与系统开发。电话:
收稿日期: 2020-09-29 修回日期: 2020-12-03 网络出版日期: 2021-06-01
基金资助: |
|
Received: 2020-09-29 Revised: 2020-12-03 Online: 2021-06-01
作者简介 About authors
邱文杰(1997-),男,硕士,研究方向为计算机视觉与农业病虫害识别。E-mail:
卷积神经网络(CNN)的发展带来了大量的网络参数和庞大的模型体积,极大地限制了其在小规模计算资源设备上的应用。为将CNN应用在各种小型设备上,研究了一种基于知识蒸馏的结构化模型压缩方法。该方法首先利用VGG16训练了一个识别率较高的教师模型,再将该模型中的知识通过蒸馏的方法迁移到MobileNet,从而大幅减少了模型的参数量。将知识蒸馏后的Distilled-MobileNet模型应用在14种作物的38种常见病害分类中。进行了知识蒸馏在VGG16、AlexNet、GoogleNet和ResNet 4种不同网络结构上的表现测试,结果表明,当VGG16作为教师模型时,模型准确率提升了97.54%;使用单个病害识别率、平均准确率、模型内存、平均识别时间4个指标对训练好的Distilled-MobileNet模型进行真实环境下准确性评估,经测试,模型的平均准确率达到了97.62%,平均识别时间缩短至0.218 s,仅占VGG16模型的13.20%,模型大小压缩仅为19.83 MB,相比于VGG16缩小了93.60%,使其具备了较高的准确性和实时性要求。本方法模型在压缩内存体积和缩短识别时间上较传统神经网络有了明显提高,为内存和计算资源受限设备上的病害识别提供了新的思路。
关键词:
The development of convolutional neural networks(CNN) has brought a large number of network parameters and huge model volumes, which greatly limites the application on devices with small computing resources, such as single-chip microcomputers and mobile devices. In order to solve the problem, a structured model compression method was studied in this research. Its core idea was using knowledge distillation to transfer the knowledge from the complex integrated model to a lightweight small-scale neural network. Firstly, VGG16 was used to train a teacher model with a higher recognition rate, whose volume was much larger than the student model. Then the knowledge in the model was transfered to MobileNet by using distillation. The parameters number of the VGG16 model was greatly reduced. The knowledge-distilled model was named Distilled-MobileNet, and was applied to the classification task of 38 common diseases (powdery mildew, Huanglong disease, etc.) of 14 crops (soybean, cucumber, tomato, etc.). The performance test of knowledge distillation on four different network structures of VGG16, AlexNet, GoogleNet, and ResNet showed that when VGG16 was used as a teacher model, the accuracy of the model was improved to 97.54%. Using single disease recognition rate, average accuracy rate, model memory and average recognition time as 4 indicators to evaluate the accuracy of the trained Distilled-MobileNet model in a real environment, the results showed that, the average accuracy of the model reached 97.62%, and the average recognition time was shortened to 0.218 s, only accounts for 13.20% of the VGG16 model, and the model size was reduced to only 19.83 MB, which was 93.60% smaller than VGG16. Compared with traditional neural networks, distilled-mobile model has a significant improvement in reducing size and shorting recognition time, and can provide a new idea for disease recognition on devices with limited memory and computing resources.
Keywords:
本文引用格式
邱文杰, 叶进, 胡亮青, 杨娟, 李其利, 莫贱友, 易万茂.
QIU Wenjie, YE Jin, HU Liangqing, YANG Juan, LI Qili, MO Jianyou, YI Wanmao.
1 引 言
卷积神经网络(Convolutional Neural Networks,CNN)由于具有自动提取特征和无压力处理高维数据等优势,已经在各个领域都有了非常广泛的应用,在农业病虫害识别方面的应用已经成为了热门的研究方向[1]。例如,Karleka和Seal[2]提出了一种识别大豆病害的方法,将大豆的叶片从复杂的背景中分割出后,通过设计CNN模型SoyNet进行分类;Tetila等[3]对模型中的网络权重进行分析,并使用简单线性迭代聚类(Simple Linear Iterative Clustering,SLIC)方法对图片分割出大豆叶片进行了识别,准确率高达99.04%。Adeel等[4]提出了一种新的识别框架对葡萄病害进行早期检测,通过提取AlexNet和ResNet101经过迁移学习后的特征,使用YEaK技术选择出最好的特征,之后使用并行方法融合这些强特征,最后输入最小二乘支持向量机(Least Squared Support Vector Machine,LSSVM)中进行分类,对从PlantVillage数据集得到的受感染葡萄叶片进行模拟,获得了99%的准确率。Zhang等[5]使用基于深度学习的改进的GoogleLeNet和Cifar-10模型,用于玉米叶片病害的识别,平均识别准确率为98.9%。陈桂芬等[6]使用迁移学习的方法在预训练模型的基础上训练了卷积神经网络,识别准确率达到了96.6%。吴华瑞[7]使用深度残差网络模型,对番茄四种常见病害进行了识别,准确率达到95%以上。上述病害识别方法的准确率均达到了90%以上,由此可见,CNN已经在农业病虫害识别领域有了广泛的应用,并取得了不错的效果。
然而,CNN经过多年的发展,网络结构越来越复杂,网络参数不计其数,需要耗费大量的存储资源跟计算资源。经典的VGG-16图像分类网络包含1.38亿个参数,而最新的ResNet-200仍然包含超过6000万个参数。网络越复杂,消耗的磁盘空间和内存就越大,并且识别速度就越慢。研究表明,在计算资源受限的ARM平台上,单张图片的识别时间达到13.2 s以上[8],远远不能满足用户对于实时性的要求。即使将模型部署在云服务器,也无法从本质上解决复杂神经网络模型内存占用大、识别时间长的问题,且部署在服务器上的模型识别时间易受到网络环境波动的影响,无法在网络受限的环境中使用。因此,如何对复杂的神经网络模型进行压缩,使其满足在终端设备使用时的实时性要求和更低的内存占用限制,是目前神经网络亟待解决的问题。
针对上述情况,近年来有学者提出了不同的模型精简方法。Han等[9]提出了ClipDL模型,通过同时减少模型参数的数量以及减少仅对关键数据的计算来加速深度学习系统运行,将模型训练过程平均加速了2.32倍,模型大小基本保持不变,而准确性损失仅为1.86%。Rahman等[10]针对移动设备提出了一种具有两个阶段的小型CNN模型,该模型在准确率上达到了期望准确率的93.3%,并且具有更小的结构规模,跟VGG16对比,其结构规模减少了99%。Shih等[11]提出了具有扩张卷积和多尺度特征串联的简化区域提议网络(Reduced Region Proposal Network,RRPN),模型的检测准确率相比ZF-Net提高了2.2%~60.2%,相对压缩了ZF-Net网络的81.3%的规模大小。Hc等[12]提出了一种称为块更改学习(Block Change Learning,BCL)的方法,该方法通过更改由“层”组成的“块”来执行局部和全局知识提炼。在专门针对特征提取任务当中,BCL仅表现出约5%的性能下降,而其他方法的模型性能下降约为17%。Wu等[13]提出了用于压缩视频动作识别的框架来对模型进行压缩,压缩后的模型准确率下降了0.35%,但参数量上的压缩率达到2.4倍,计算量减少1.2倍。
2 数据样本集
本研究使用的数据集来自PlantVillage标准数据集和自建数据集两个部分。
2.1 PlantVillage数据集
图1
图1
PlantVillage数据集部分展示
Fig. 1
Part of the samples of the PlantVillage dataset
图2
图2
深度卷积对抗生成网络生成样本
Fig. 2
Samples of deep convolutional generative adversarial network
2.2 自建数据集
图3
表1 试验数据集结构
Table 1
试验样本 | 图片数量/张 |
---|---|
PlantVillage数据集 | 54,305 |
DCGAN样本扩充 | 5861 |
数据增强 | 76,639 |
自建数据集 | 9645 |
3 识别模型训练及其精简结构设计
本研究提出了一种结构化的病害识别方法及轻量级神经网络精简方法,图4为本研究的整体设计,大致分为以下三个步骤。
图4
(1)采用DCGAN产生大量数据样本,实现数据扩充。此外,本研究对扩充后的数据使用了几种常见数据增强方法,包括平移、旋转、缩放、剪裁和翻转等,从而提高了模型的平移、缩放等不变性,有效地防止了模型过拟合。
(2)为了加快模型在训练过程中的收敛速度,本研究使用迁移学习[19]的方法,将不同网络结构在ImageNet数据集上预先训练好的权值迁移到对应的不同网络结构中,在此基础上训练不同神经网络模型。
(3)在训练好的模型上使用知识蒸馏方法,将知识从冗余的集成模型转移到轻量级模型中,并保留复杂网络的性能,从而训练得到精简模型,通过这种方法有效地降低模型体积,提高模型精度。
3.1 识别模型MobileNet的训练
图5
假设神经网络的输入图片维度为
其中,DSC和Std conv分别表示深度可分离卷积和常规卷积操作的参数量;N为逐点卷积核的个数,个;
由
3.2 精简模型Distilled-MobileNet设计
在知识蒸馏的学习过程中,学生模型是通过模仿教师模型在相同样本下的输出来进行训练的,在传统
Hinton等[15]提出,训练有素的教师模型的输出会无限接近于One-Hot编码的真实输出,这就造成有用的类间信息在训练过程中被忽视,进而直接导致学生模型的训练效果不理想,因此,需要使用温度标度“软化”这些概率,如
其中,P、Q分别表示教师模型和学生模型;
由
采用巴氏距离后的
其中,
本研究通过知识蒸馏的方法,结合公式(
图6
同时,在损失函数的设计上,使用两个不同目标函数的加权平均值,其中,损失函数
表2给出了模型在不同
表2
参数
Table 2
单位:% | ||||
---|---|---|---|---|
83.59 | 84.93 | 89.06 | 79.86 | |
2 | 84.37 | 82.81 | 87.50 | 77.34 |
3 | 81.25 | 85.15 | 90.62 | 80.46 |
4 | 75.40 | 82.13 | 85.49 | 83.21 |
4 试验结果及分析
本试验硬件环境包括具有Intel i9-10900X (3.20 GHz) 10核20线程CPU,NVIDIA GeForce RTX2080Ti 11GBx2的服务器。软件环境为64位Windows10系统,CUDA 9.0,CUDNN 7.0,PyCharm 2018.2。用于训练模型的试验框架的前端和后端分别是Keras和Tensorflow。
为确保试验结果的公平性和有效性,本研究对超参数进行了统一化。将学习率设置为0.001,batch size设置为128,L2正则化参数设置为0.0005。
其次,在模型训练中使用了SGD、Adam和Nadam三种不同的优化器,该类优化算法应用在非凸优化问题中有计算高效、所需内存少等诸多优势,三种优化算法超参数的具体参数如表3所示。
表3 使用三种优化器的CNN训练超参数
Table 3
超参数 | SGD | Adam | Nadam |
---|---|---|---|
Batch Size | 32 | 32 | 32 |
Learning Rate | 0.001 | 0.001 | 0.001 |
Momentum | 0.9 | — | — |
Decay | None | None | None |
— | 0.9 | 0.9 | |
— | 0.999 | 0.999 | |
— | 1e-7 | 1e-7 |
4.1 学习模型性能测试
为确定教师和学生网络最佳模型,本研究在128×128大小的3通道RGB图像下对比了VGG16、AlexNet、GoogLeNet、MobileNet和ResNet 5种主流神经网络结构的验证集准确率、损失函数以及参数量的大小。图7给出了迭代过程中验证集准确率与损失函数变化情况。
图7
图7
模型验证集准确率与损失函数变化曲线图
Fig. 7
Model validation accuracy rates and loss function change curves
由图7(a)可以看出,不同模型在迭代过程中验证集准确率变化呈现不同特点。具体来讲,除GoogleNet外,5种模型在迭代过程中其准确率均出现抖动现象,对于MobileNet模型,虽在初始迭代时验证集准确率较低,但随着训练的深入,准确率一直呈现上升趋势,且在75轮后超越了其余5种模型的准确率,说明MobileNet模型相较于其他对比模型具有较高稳定性。
表4给出了5种模型最终验证集准确率的对比情况。可知,VGG16和AlexNet虽准确率较高,但模型内存在128×128的3通道输入下内存占用分别达到了1022.6和443.0 MB,这必然会降低某些设备(如智能手机,物联网设备甚至是计算能力较低的计算机)的运行速度,同时占用大量内存空间。因此,本研究将在上述方法的基础上,使用知识蒸馏方法对模型进行压缩。
表 4 不同网络结构在PlantVillage数据集上的表现
Table 4
网络模型 | 验证集准确率/% | 内存占用/MB |
---|---|---|
ResNet | 94.44 | 181.3 |
AlexNet | 89.97 | 443.0 |
VGG16 | 96.52 | 1022.0 |
MobileNet | 92.05 | 25.1 |
GoogleNet | 76.58 | 58.1 |
结合不同模型的内存占用情况,本研究选用MobileNet作为知识蒸馏的学生网络。此结果与本研究之前的设计相一致。
4.2 知识蒸馏在不同模型上的表现
表5 知识蒸馏在不同教师/学生模型上的表现
Table 5
学生模型 | 教师模型 | 准确率/% | 模型内存/MB | 体积降低/% | 识别时间/ ms | |||
---|---|---|---|---|---|---|---|---|
教师 | 学生 | 教师 | 学生 | 教师 | 学生 | |||
MobileNet | VGG16 | 95.50 | 97.54 | 304.0 | 20.8 | 93.16 | 1635 | 261 |
AlexNet | 93.56 | 94.89 | 356.6 | 21.0 | 94.11 | 490 | 254 | |
GoogleNet | 92.19 | 94.70 | 36.6 | 20.9 | 42.90 | 487 | 260 | |
ResNet | 95.36 | 95.16 | 179.8 | 21.0 | 88.32 | 928 | 249 | |
平均 | —— | —— | —— | —— | 79.62 | —— | —— |
在内存方面,由于学生模型均采用MobileNet,导致不同网络模型经过知识蒸馏后的内存相差不大,但相较于原教师模型内存则出现明显降低,平均降低79.62%,其中AlexNet模型压缩率最高,达到94.11%。总的来说,试验结果表明,知识蒸馏不仅可以加快模型的运行速度,使其满足实时性要求,同时还能减少模型内存。
4.3 真实环境下的性能测试
为评估Distilled-MobileNet模型在真实环境下的表现,本研究在由广西壮族自治区农业科学院提供的真实数据集合上用3.2节所述方法对经过知识蒸馏改进的Distilled-MobileNet模型进行了性能测试。模型训练过程中的准确率和损失函数变化曲线如图8所示。
图8
图8
迭代次数对模型识别准确率的影响
Fig. 8
Effects of iteration times on model recognition accuracy and loss function
从图8中可以看出,在训练过程中,损失函数下降平稳,同时,模型的验证集准确率呈整体上升趋势,且模型的收敛速度很快,在60次迭代后即达到了较好的收敛状态。
使用单个病害识别率、平均准确率、模型内存、平均识别时间4个指标对训练好的Distilled-MobileNet模型进行准确性评估。模型在真实环境下的评估结果见表6。结果表明,模型的平均准确率达到了97.62%,平均识别时间缩短至0.218 s,仅占VGG16模型的13.20%,模型大小压缩仅为19.83 MB,相比于VGG16缩小了93.60%。综上,Distilled-MobileNet模型通过将复杂模型转化为简单的小模型,使其能够部署在单片机、智能手机中,从而能够不受不同应用场景对于模型的内存、时间限制,更能满足不同应用场景的要求,由此证明了本方法的有效性和可行性。
表6 真实环境下的模型性能测试
Table 6
识别模型 | 单个病害识别率/% | 平均准确率/% | 内存占用/MB | 平均识别时间/s | 总识别时间/s | |
---|---|---|---|---|---|---|
芒果白粉病 | 芒果炭疽病 | |||||
VGG16 | 95.68 | 94.55 | 95.15 | 309.98 | 1.652 | 15,636 |
AlexNet | 94.51 | 94.77 | 94.64 | 359.43 | 0.494 | 4675 |
GoogleNet | 94.03 | 95.14 | 94.58 | 37.49 | 0.487 | 4609 |
ResNet | 94.17 | 93.20 | 93.68 | 183.47 | 0.943 | 8925 |
Distilled-MobileNet | 97.59 | 97.65 | 97.62 | 19.83 | 0.218 | 2063 |
5 总 结
本研究针对常规的植物病害识别方法存在的识别效率较低的问题,提出了基于知识蒸馏的结构化压缩模型Distilled-MobileNet,与经典的卷积神经网络模型相比,本方法的优越性是能够在略微提高准确率的同时大幅降低参数内存占用量、缩短识别时间,从而使模型满足更高的实时性要求。本研究对不同模型的性能进行了对比分析,取得的主要试验结果及结论如下。
(1)对比了VGG16,AlexNet,GoogLeNet,MobileNet和ResNet共5种网络结构的准确率及参数内存占用量,结果表明,虽然MobileNet准确率略低于VGG16和ResNet,但网络参数最少,因此,本研究选择MobileNet作为知识蒸馏中的学生模型。
(2)对比了知识蒸馏在不同教师/学生模型上的表现,结果表明,Distilled-MobileNet模型可以在小幅提高准确率同时明显降低模型的参数量内存,加快模型识别速度。
参考文献
A review of the use of convolutional neural networks in agriculture
[J].
SoyNet: Soybean leaf diseases classification
[J].
Automatic recognition of soybean leaf diseases Using UAV images and deep convolutional neural networks
[J].
Entropy controlled deep features selection framework for grape leaf diseases recognition
[J].
Identification of maize leaf diseases using improved deep convolutional neural networks
[J].
基于迁移学习与卷积神经网络的玉米植株病害识别
[J].
Corn plant disease recognition based on migration learning and convolutional neural network
[J].
基于深度残差网络的番茄叶片病害识别方法
[J].
Method of tomato leaf diseases recognition method based on deep residual network
[J].
基于FPGA的卷积神经网络定点加速
[J].
FPGA-based convolutional neural network fixed-point acceleration
[J].
Accelerating deep learning systems via critical set identification and model compression
[J].
Identification and recognition of rice diseases and pests using convolutional neural networks
[EB/OL].
cs
.
Real-time object detection with reduced region proposal network via multi-feature concatenation
[J].
Block change learning for knowledge distillation
[J].
Multi-teacher knowledge distillation for compressed video action recognition based on deep learning
[C]//
An open access repository of images on plant health to enable the development of mobile disease diagnostics
[EB/OL].
CY]
.
Distilling the knowledge in a neural network
[EB/OL].
ML]
.
A survey on image data augmentation for deep learning
[J].
Unsupervised representation learning with deep convolutional generative adversarial networks
[EB/OL].
A secure perceptual hash algorithm for image content authentication
[C]//
A survey on transfer learning
[J].
MobileNets: Efficient convolutional neural networks for mobile vision applications
[EB/OL].
CV]
.
The divergence and Bhattacharyya distance measures in signal selection
[J].
N2N learning: Network to network compression via policy Gradient Reinforcement Learning
[C]// 6th International Conference on Learning Representations,
Distilling knowledge from ensembles of neural networks for speech recognition
[C]//
/
〈 |
|
〉 |
