-
家蚕是一种极具经济价值的昆虫,主要用于生产蚕丝,在我国各地广泛被养殖.为了提升蚕丝的产量和家蚕的抗病能力,品种杂交是一种重要的方法[1].进行杂交试验时,需要同时饲养多个不同品种的家蚕,确保品种的纯净度是杂交试验正确进行的前提[2].但在养蚕过程中,难免出现不同品种的家蚕相互混杂,对杂交试验形成不利影响.现有的品种识别方法主要是在养蚕过程中人工筛查出混杂的家蚕幼虫,存在效率低、可靠性差且需要较强的专业实践经验等问题.对此,根据不同品种的家蚕在幼虫生长后期会表现出不同的视觉特征,以及深度学习技术在视觉任务中展现出的优异性能,提出使用卷积神经网络方法进行家蚕幼虫的品种识别研究.
图像识别技术在农业领域有广泛的应用,识别对象主要集中在农作物种类、作物种子、叶片病害以及田间害虫的类别上[3].在早期的研究中,主要采用模式识别算法进行研究,取得了一定的识别效果[4-6].近年来,随着计算机视觉技术的快速发展,涌现出一大批优秀的卷积神经网络,例如:AlexNet、ResNet、GoogLeNet等,推动了图像识别领域的高速发展.卷积神经网络能够自动提取图像特征,识别效果十分显著,训练的模型也能够轻易地移植到各种智能装备上实现端到端的识别.因此,越来越受到研究人员的青睐. Li等[7]调查了5种经典卷积神经网络对作物叶片病害的识别效果,结果显示经过微调的GoogLeNet的准确率最高. Thenmozhi等[8]设计了一种改进的AlexNet网络模型,包含了6个卷积层和5个最大值池化层,在3个公开数据集(NBAIR,Xie1,Xie2)上的识别准确率分别为96.75%,97.47%和95.97%.刘洋等[9]对MobileNet和Inception Ⅴ32种轻量级卷积神经网络模型进行迁移学习,通过对比2种模型在PlantVillage上识别的准确率、模型内存大小、平均计算时间等指标,得出了MobileNet更适合移植到应用端.房若民等[10]将MobileNet嵌入到树莓派中,开发了一种嵌入式农业病虫害识别系统,测试准确率达92.6%.
综上所述,卷积神经网络已经在农业领域得到广泛地应用.然而,通过文献检索尚未有关于使用卷积神经网络进行家蚕幼虫品种识别的文献报道.同时,为了便于将训练的模型嵌入到养蚕设备上,本文选择轻量级的卷积神经网络MobileNet进行家蚕幼虫品种的识别研究.
全文HTML
-
数据集决定了卷积神经网络的识别效果,现有的研究大多基于公开数据集,例如Plant Village,NBAIR或使用搜索引擎下载的图像.公开数据集上的图像大多经过预处理或多次上传与下载,与真实环境下存在着显著差异,使用公开数据集开发的模型应用能力差[11].因此,为了确保模型在实际环境下的应用前景,首先在养蚕环境下进行了图像采集.
采集时间为2020年5月6日和5月12日,也是10个家蚕幼虫生长的4龄第3 d和5龄第3 d,地点为四川省农业科学院蚕业研究所,位于四川省南充市顺庆区,环境为蚕房内自然光照.如图 1所示,共采集10个家蚕品种在4龄第3 d和5龄第3 d的幼虫图像10 000张.
图像采集设备为智能移动手机,型号包括:HUAWEIP20,HUAWEINova2,HUAWEINova2 plus,HUAWEIP30,HUAWEIP9,OPPO r11s,iPhone 6.采集方法是使用一个三脚架将采集设备固定,镜头竖直向下,蚕体保持自然姿态.为了使图像缩放后,家蚕形状不发生变化,将采集设备的屏幕长宽比设置成1:1,焦距设置成屏幕能够涵盖完整蚕体的距离.每一个家蚕品种至少由2个型号的设备完成采集,以确保数据的多样性.
-
完成图像采集后,将图像尺寸裁剪成224×224像素,除此之外,未采用任何的图像预处理方法,分别构建4龄和5龄家蚕幼虫图像数据集,家蚕品种及其编号如表 1所示,并随机从数据集中挑选图像,数量按照6:2:2的比例将两个数据集各自拆分成训练集、验证集和测试集.
数据增强是训练卷积神经网络模型时常用的方法,目的是提升网络训练的稳定性和模型的泛化能力以及防止过拟合.本文使用到的数据增强方法包括图像旋转、宽度和高度随机偏移以及水平翻转.
-
对于长宽分别为W和H的图像,进行旋转操作时,需要先将坐标原点从左上角移动到图像中心位置,移位矩阵为
$\left[ {\begin{array}{*{20}{c}} 1&0&0\\ 0&1&0\\ {\frac{W}{2} + 0.5}&{\frac{H}{2} + 0.5}&1 \end{array}} \right]$ ,旋转角度α定义的旋转矩阵为$\left[ {\begin{array}{*{20}{c}} {\cos \alpha }&{ - \sin \alpha }&0\\ {\sin \alpha }&{\cos \alpha }&0\\ 0&0&1 \end{array}} \right]$ ,再将原点从图像中心复位到图像左上角的复位矩阵为$\left[ {\begin{array}{*{20}{c}} 1&0&0\\ 0&1&0\\ { - \left( {\frac{W}{2} + 0.5} \right)}&{ - \left( {\frac{H}{2} + 0.5} \right)}&1 \end{array}} \right]$ .因此,原图像上任一点(X0,Y0)旋转后的坐标(X1,Y1)可用以下关系式计算:图像旋转操作结果示例如图 2所示.
-
对图像进行偏移操作时,建立变换矩阵为
$\left[ {\begin{array}{*{20}{c}} 1&0&0\\ 0&1&0\\ {tx}&{ty}&1 \end{array}} \right]$ ,原图像上任一点(X0,Y0),偏移后的坐标(X1,Y1)可用如下关系式计算:式中,tx为宽偏移系数,ty为高偏移系数,进行图像随机偏移的结果示例如图 3所示.
-
宽度为W的图像进行水平翻转时,建立的变换矩阵为
$\left[ {\begin{array}{*{20}{c}} { - 1}&0&0\\ 0&1&0\\ W&0&1 \end{array}} \right]$ ,图像上任一点(X0,Y0),翻转后的坐标(X1,Y1)可用如下关系式计算:图像进行水平翻转后的结果示例如图 4所示.
在模型训练时随机对训练集的部分图像进行旋转、偏移和水平翻转操作,训练集的图像数量不增加.参数设定如表 2所示,将旋转角度α设定为(-45°,45°)之间的随机数,将tx,ty分别设定为(-0.2×W,0.2×W)和(-0.2×H,0.2×H)之间的随机数,使用最近邻域插值法填充图像旋转和偏移后超出边界以及空白的像素点.
数据增强的结果如图 5所示,由于参数设定为某个范围内的随机数,使得增强后会出现不同的结果.但对于任意原图像(a),在不同次数的迭代时,会随机使用增强后图(b)中一张图像代替原图像用于模型训练.
-
MobileNet是Google团队在2017年发布的轻量级卷积神经网络,其最大特点是使用了分离卷积运算,能有效减少网络学习参数和训练中的计算量,使得模型内存消耗小,可以便捷地植入到各种便携式移动设备上.
深度可分离卷积的计算流程如图 6(a-c)所示,其特点是输入特征图的单个通道上各由1个卷积核进行卷积运算,即分离卷积; 再对每个通道上的特征值进行Batch Norm运算,并使用ReLU函数进行特征值激活; 然后使用尺寸1×1的卷积核进行多通道特征融合; 最后再次进行Batch Norm运算和ReLU激活.
MobileNet的网络结构如图 6(d)所示,图中:Conv代表常规卷积运算,Convdw代表深度可分离卷积运算,S为卷积运算步长,Avg-pool代表全局平均池化. Classifier是分类器,“5×”意味着该部分重复5次运算. MobileNet的输入图像尺寸为224×224×3,进行运算时,首先用32个尺寸为3×3的卷积核以步长为2对输入图像进行常规卷积; 然后进行多次深度可分离卷积,并且通过将卷积步长设定为2来降低特征图的维度,而并非采用池化运算; 完成卷积运算后,使用尺寸7×7的池化核用平均值池化方法将特征图的维度降低为1×1×1024;最后使用Softmax分类器输出识别结果.
1.1. 图像采集
1.2. 数据集与数据增强
1.2.1. 图像旋转
1.2.2. 图像偏移
1.2.3. 水平翻转
1.3. MobileNet网络结构
-
试验使用的硬件设备为Dell Precision 5820工作站,处理器型号是Intel(R) Core(TM) i7-9800X,设备内存大小为32G,显卡型号为RTX2080Ti,显存为11G,图像处理运算平台为cuda-10.0,操作系统为Windows 10专业版.深度学习框架为Tensorflow-gpu 1.14,编程软件为Jupyter notebook,编程语言为Python 3.
使用Jupyter notebook和Python语言进行卷积网络模型训练界面如图 7所示,在每一次迭代时会显示出单步迭代时间、训练集损失值(loss)、训练集上的准确率(accuracy)、验证集上的损失值(val_loss)和验证集上的准确率(val_accuracy).
-
卷积神经网络能够自动实现图像特征的提取,无需使用背景祛除、滤波去噪、颜色通道转换等图像预处理方法.为了检验卷积神经网络对家蚕幼虫图像特征提取效果,本节将MobileNet网络中第一个卷积层分别在第1次迭代和第100次迭代的前8个卷积核运算结果输出.
输出结果如图 8所示,从左至右分别为卷积运算、Batch Norm和ReLU激活运算.从输出结果中可以看出,在第1次迭代时,网络在第一个卷积层提取到的特征非常少,在ReLU激活后,前8个卷积核中只有2个提取到图像有效特征.但是,当经过100次迭代后,前8个卷积核基本都能提取到一些图像特征,验证了卷积神经网络能够自动进行图像特征提取.
-
卷积神经网络模型训练时的参数包括学习率、mini batch size、损失函数和优化器等,不同的参数会对网络的训练过程和结果产生影响.根据使用不同的超参数在4龄家蚕图像数据集上进行训练,以模型在测试集上的准确率为评价依据,将网络训练时的学习率设定成动态学习率,即将初始学习率设为0.01,在训练的过程中,损失值超过3次迭代不下降,就将学习率乘以0.8,这样能够在训练初期时使用较大的学习率加速收敛,训练后期时使用较小的学习率避免模型出现较大的波动.多分类的损失函数一般选择为交叉熵(cross entropy),优化器选择为Adam,经过测试mini batch size为32时,在验证集上的准确率波动幅度最小,迭代次数为300次.采用的准确率(η)的计算公式为
-
使用MobileNet网络进行家蚕幼虫品种图像识别的训练过程如图 9所示,图(a)是两个模型在4龄和5龄幼虫图像的训练集和验证集上准确率变化过程,图(b)是模型在4龄和5龄幼虫图像数据集上的损失值下降过程,从中可以看出,在4龄家蚕幼虫图像数据集上,大致经过100次迭代,模型就处于相对稳定的状态,5龄家蚕幼虫图像数据集上,大致经过120次迭代,模型就处于相对稳定的状态,并且两个模型在训练集上的准确率均在99%以上.在验证集上,4龄幼虫图像的识别准确率保持在98%左右,5龄幼虫图像保持在96%以上,表明了卷积神经网络能够准确高效进行家蚕幼虫品种识别.
-
完成训练后,分别在4龄和5龄幼虫图像的测试集上进行测试,输出测试结果的混淆矩阵,如图 10所示,标签0~9分别代表了10个家蚕幼虫品种,具体的对应关系可由表 1得.从图中可得:模型对4龄家蚕幼虫图像识别的平均准确率高达98.9%,错误识别主要发生在将2张“湘辉”图像识别成为“9211”,2张“夏芳”图像误认为“9211”,其余发生错误识别的图像数量仅为1张.
模型对5龄的家蚕幼虫图像识别的平均准确率为96%,错误识别主要发生在将3张“秋白”图像识别成为“9211”,2张识别成为“夏芳”; 将3张“994”图像误识别成“0802”; 将3张“0802”识别成“994”; 将4张“湘辉”图像识别成“秋白”,2张识别成“994”,2张识别成“0802”; 将2张“夏芳”图像识别成为“9211”; 将2张“923”图像识别成“夏芳”.
造成5龄图像数据集上的平均识别率低于4龄数据集的主要原因在于:(1)在每两个龄期之间,家蚕会完成一次蜕皮,部分家蚕品种的显著外表特征会在5龄时消失,造成识别的难度增大. (2)在使用移动手机进行图像采集时,设备的性能之间的差异、不同的拍摄位置、以及拍摄者的习惯等使图像的质量存在差异,会对识别的结果形成一定的影响.
图 11是在测试集上识别结果示例,利用卷积神经网络进行多分类时,在输出层使用Softmax作为分类器输出图像属于每一个类别的概率,取其中的最大值的索引代表的种类为网络的识别结果,例如:在图 11(a)中,第一张图的识别结果最大值索引为2,概率值为0.999,即代表识别结果为品种“9211”.在图 11(b)中,第一张图像的识别结果最大值索引为8,概率值为0.6648,即代表识别结果为品种“923”,但其在数据集中标记为品种“秋白”.
-
目前,我国主要用于杂交育种的家蚕品种多达数百种,对每一个家蚕品种都采集大量的图像是难以实现的.在图像数量较小时,因为网络无法提取到足够的特征导致模型难以训练,在此情况下,利用预训练的权重进行迁移学习是一种十分有效的方法.然而,当前许多公开数据集上均未涵盖不同品种的家蚕幼虫图像,所以目前公开的权重文件大多不适宜进行家蚕幼虫图像分类识别.因此,为了验证本文训练的权重应用到其他品种的家蚕幼虫图像时的模型训练效果,使用MobileNet网络和上一节在4龄图像数据集上训练的权重文件进行迁移学习,对另外5个家蚕品种幼虫的4龄生长图像进行模型训练,并与不使用任何预训练权重的MobileNet网络进行对比,记录模型的训练过程. 5个家蚕品种的名称分别是“川58”、“限82”、“781”、“0801”、“925”,其4龄生长图像如图 12所示.
训练时,每个家蚕品种采集的图像数量为100张,将其中80张进行训练,20张用于验证,均为4龄第3 d的生长图像.由于数量较少,模型训练时将mini batch size设置为8,迭代次数为100次,学习率仍为动态学习率,损失函数为交叉熵,使用Adam优化器.加载预训练权重的MobileNet网络,只对其最后5层的权重进行训练,其它层的权重冻结,分别记录网络的训练过程,模型训练结果如图 13所示.
使用预训练权重的网络在验证集上的准确率相对稳定,但不使用预训练权重的网络在验证集上的准确率出现较大幅度的波动,稳定性差,这是由于图像数量较少,特征提取不够完整造成的.结果验证了本文训练的权重文件具有较好的应用能力,有助于在图像数量较小时进行家蚕幼虫品种识别的模型训练.
2.1. 试验环境
2.2. 卷积运算结果可视化
2.3. 模型训练与测试
2.3.1. 参数选择
2.3.2. 模型训练
2.3.3. 模型测试
2.4. 模型的应用试验
-
品种杂交能够培育出蚕丝产量高和抗病能力强的家蚕新品种,为了确保杂交试验的正确开展,使用卷积神经网络对不同品种的家蚕幼虫图像进行了识别研究.首先,在真实养蚕环境下完成了图像采集,共采集了10个家蚕幼虫品种分别在4龄第3 d和5龄第3 d的生长图像,总数达到10 000张.其次,使用轻量级卷积神经网络MobileNet进行了识别试验,在测试集上的准确率分别达到98.90%和96%.最后,为了验证训练的模型权重适宜于进行家蚕幼虫品种分类识别,使用本文训练出的网络权重和迁移学习方法对另外5个品种的家蚕幼虫的图像进行了模型训练,并与未使用预训练权重网络进行对比,结果显示,使用本文训练出的权重文件的网络在收敛速度和稳定性上都优于未使用预训练的权重的网络.本文结果证实了卷积神经网络能够准确高效地进行家蚕幼虫的品种识别,并且由于使用的图像全部来源于真实养蚕环境下,训练的模型具有很好的应用前景,可以为开发家蚕幼虫品种图像识别应用软件提供参考.