基于GoogLeNet深度迁移学习的苹果缺陷检测方法

2020-07-24 05:07王立扬
农业机械学报 2020年7期
关键词:准确率卷积深度

薛 勇 王立扬 张 瑜 沈 群,4

(1.中国农业大学食品科学与营养工程学院, 北京 100083;2.中国农业大学国家果蔬加工工程技术研究中心, 北京 100083;3.中国农业大学信息与电气工程学院, 北京 100083;4.中国农业大学植物蛋白与谷类加工北京市重点实验室, 北京 100083)

0 引言

苹果产业是我国最重要果蔬产业之一,分级加工是其流通的关键环节。苹果缺陷检测是苹果分级的重要指标,在较低成本下实现快速、准确的苹果缺陷检测,是目前国内外研究的热点[1-3]。目前,国内苹果分选仍以人工操作为主,成本高、效率低。随着计算机视觉技术的发展,多种基于机器学习的图像处理技术运用于苹果分级与缺陷检测中,取得良好的效果。BHATT等[4]利用人工神经网络(Artificial neural network,ANN)对苹果进行等级评判,准确率超90%。陈珂等[5]利用苹果形状特征提取与支持向量机(Support vector machine,SVM)结合,对苹果进行成熟度分类,检测速度达0.25 s/个。邱光应等[6]研究了苹果缺陷检测方法,提出决策树、支持向量机算法,实验效果良好。李庆中[7]利用遗传算法进行苹果颜色分级,对苹果外部品质的实时检测进行了研究。VAKILIAN等[8]提取苹果图像纹理特征,并利用人工神经网络对不同品种苹果进行识别,测试集的准确率为75%~90%。传统机器学习需人工提取特征,易导致相关特征不够全面,从而降低识别的准确率。同时,人为的特征工程费时,难以应用于产业化生产。

深度学习卷积神经网络(Convolution neural network,CNN)可有效克服上述弊端。1999年LECUN等[9]提出了LeNet-5经典CNN模型,2012年AlexNet获得当年ImageNet竞赛冠军,深度学习迅速应用于各个领域,并在农业领域获得极大的成效[10-11]。在苹果分选中,深度学习的作用越来越突出。张力超等[12]对LeNet-5架构进行改进,用于苹果种类识别,准确率达93.7%。周兆永等[13]基于深度信念网络(Deep belief network, DBN)对苹果霉心病进行检测,并将其与传统机器学习算法进行对比,发现深度学习效果优于传统算法。

近年来,随着Kaggle等数据挖掘挑战赛热度不断上升,出现了越来越多更深层卷积神经网络(DCNN)[14-15],如VGG16、VGG19、GoogLeNet、ResNet50、ResNet101、ResNet152等。该类算法具有强大的泛化能力和自适应性,被广泛使用。目前,国内苹果缺陷检测主要运用SVM等传统机器学习算法和LeNet-5等浅层CNN算法,有关GoogLeNet等深层CNN算法的应用较少。本研究利用GoogLeNet深度迁移模型对苹果缺陷检测进行研究,并与浅层CNN(AlexNet和改进型LeNet-5)及传统机器学习进行对比,以评估苹果缺陷检测常用算法的性能。

1 材料与方法

1.1 实验材料与系统配置

选用红富士苹果作为实验对象。视觉采集系统由封闭暗箱装置、4根内置长条LED光源(长度0.3 m,功率10 W,中性灯色温4 000 K)以及固定距离的单反相机(Canon EOS 5D Mark Ⅲ型)组成。苹果以梗萼方向垂直果盘的方式置于果盘,以果轴为中心旋转0°、90°、180°、270°,各拍摄一幅图像,共拍摄1 376幅图像,镜头和实物的距离为43.5 cm。根据NY/T 439—2001《红富士苹果分级标准》对数据集进行预判。经对原始图像质量筛选(将人为拍摄失误导致的对焦不准、曝光时间过长等不合格图像剔除)后,最终得到实验图像836幅(包含209个完整样品),其中正常果面561幅,次品果面(包括褐变、腐烂、刀疤等缺陷)275幅。

实验在Windows 10操作系统上完成,计算机配置为Intel 酷睿 I7-6700HQ CPU,3.5 GHz,内存4 GB。其中,相关编程均在Matlab R2018a中进行。

1.2 研究方法

本研究对采集图像进行预处理,包括数据扩增、图像分割、空间转换以及图像增强等,使之更符合计算机视觉处理的形式。之后分别利用浅层和深层CNN模型对其进行端到端的训练,为验证CNN模型的优越性,实验同时进行传统特征工程与分类器检测。

1.2.1预处理

由于苹果数据种类不平衡,因此在实验前先进行数据扩增。数据扩增是机器学习尤其是深度学习中一种常用的处理手段,它能防止因数据不足而造成的过拟合,也能平衡不同种类数据以获得更佳效果。数据扩增方法包括图像平移、旋转、翻转、随机裁剪等。基于本研究缺陷苹果数量不足的情况,实验前对缺陷苹果进行旋转90°、水平翻转、垂直翻转的处理,对正常苹果进行旋转180°的处理,最终得到2 167幅图像数据。对图像进行批量裁剪,方法为沿果形边缘剪裁以获得最大目标区域。

图像背景分割是为减少周围区域干扰,能有效突出感兴趣区域(Region of interest,RoI),经典的分割算法包括最大类间方差(Otsu)、分水岭、K-means聚类、U-Net分割等[16]。本文采用K-means聚类分割法对苹果图像背景进行分割。Lab空间是色域宽阔的颜色模型,不仅包含RGB、CMYK的所有色域,还能表现它们不能表现的色彩。基于以上优势,本文在预处理时将原始图像RGB模式转换为Lab模式。之后,再对实验材料进行直方图均衡化(Histogram equalization)以增强对比度,设置直方图离散水平为64。图像预处理前后对比如图1所示。

图1 图像预处理前后对比Fig.1 Comparison before and after pre-treatment

1.2.2模型构建

(1)GoogLeNet是将识别错误率降低到6.67%的一种深层CNN模型,共22层。与VGG网络不同的是,GoogLeNet没有使用LeNet及AlexNet的框架,该模型虽有22层,但却比AlexNet和VGG规模都小,而性能却更优越。目前该模型主要运用于医疗影像领域[17],在食品领域鲜见报道。本文以GoogLeNet的经典版本Inception V1为原始模板,将在ImageNet上做预训练后的深度迁移模型作为核心算法,开展苹果缺陷检测的研究。

Inception是GoogLeNet引入的基础模块单元,主要实现多尺度卷积提取多尺度局部特征,并经过优化训练得到最优参数配置(参数量5×106)。Inception基本组成结构分为4部分,包括1×1卷积层(Conv)、3×3卷积层、5×5卷积层、3×3池化层(maxpooling)。本文采用的Inception结构如图2所示。由图2可知,Inception结构在3×3卷积层和5×5卷积层前加入1×1卷积层,在3×3 maxpooling之后加入1×1卷积层,这样先进行降维,从而进一步减少参数量。Inception模块允许前一层输入,然后通过不同尺度和功能分支的并行处理后级联形成 Inception 模块的输出,实现多尺度特征融合[18]。

图2 Inception结构示意图Fig.2 Schematic of Inception structure

最终的Inception V1是由9个Inception 模块堆叠而成。该网络输入图像为224×224×3,Inception模块的所有卷积都用了修正线性单元(ReLU)。GoogLeNet不同于VGG、AlexNet等其他CNN,是因为其采用模块化的结构,方便增添和修改。网络最后采用全局平均池化(Global average pooling,GAP) 来代替全连接层;虽然该模型移除全连接层,但网络中依然使用Dropout层防止过拟合;而且为避免梯度消失,额外增加了2个辅助Softmax用于向前传导梯度。基于以上优势,GoogLeNet模型能在不增加计算量的同时最大程度的优化性能,适用于工厂大规模的高效检测缺陷苹果。

迁移学习是运用已有的知识对不同的相关领域问题进行求解的一种机器学习方法[19]。深度迁移学习具有减小数据依赖性、加快训练速度、提高训练效率等诸多优势。本文利用GoogLeNet模型在ImageNet上进行预训练得到初始化深度模型,在迁移中取代网络的最后3层。最后3层为loss3-classifier、prob和output,包含将网络提取的功能组合为类概率和标签的信息。在层次图中添加fully connected layer、Softmax layer和classification output layer, 将全连接层设置为与新的数据集中类数目相同(本文为2)。为了使添加层比传输层学习更快,增加全连接层的学习因子,最后将网络中最后一个传输层(pool5-drop_7x7_s1)连接到新层。为防止过拟合,本研究通过设置初始层的学习速率为0来“冻结”网络中早期层的权重。

(2)AlexNet模型是ALEX等于2012年提出的新一代卷积神经网络架构。本文利用在ImageNet上预训练好的AlexNet模型进行迁移学习,并与GoogLeNet迁移模型进行对比。初始化AlexNet,包括5个卷积层和3个全连接层,输入层图像尺寸为227×227×3。迁移学习过程中第23层原本是1 000个神经元,用于识别1 000种图像,现改为2个神经元,并更新最后一层。

(3)利用卷积神经网络LeNet-5并加以改进,与深层CNN模型进行对比。该网络具有3个卷积层,每个卷积层后添加下采样层和1个全连接层。将原始LeNet-5中的激活函数改为ReLU,采用Softmax分类器,并设置步长为1,填充为2,初始输入层图像为40×40×3。

1.2.3对比实验

为体现深度卷积神经网络在苹果缺陷检测中的优越性,选取目前主流的传统机器学习方法进行对比。方向梯度直方图(Histogram of oriented gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子,具有几何和光学转换不变性,最早用于静态行人检测[20]。实验提取苹果图像的HOG特征描述子,改变图像分辨率为200像素×200像素,设置单元格为32像素×32像素,划分2×2个单元格为1个区块,并采取重叠方式。因此,每幅图像得到900维的特征向量,将此作为分类器输入量。实验选取SVM、随机森林(Random forest,RF)与K最近邻(K-nearest neighbor,K-NN)作为分类器,采用上述数据集训练并进行五折交叉验证。

2 实验结果与分析

2.1 CNN训练

对建好的GoogLeNet网络进行训练,选取235幅图像作为测试样本(包括135个正样本与100个负样本),其余1 932幅为训练样本(1 032个正样本和900个负样本),训练样本按照4∶1划分为训练集与验证集。经多次实验后依据精度最优原则,设置动量因子为0.9,初始学习率为0.000 1,MaxEpochs为6,同时规定MiniBatchSize为10。大约迭代1 500次后准确率趋于稳定,若再增加迭代次数,则会出现过拟合等情况,因此选取迭代1 500次时的训练结果进行测试。

另外,利用上述训练集、测试集对AlexNet与改进型LeNet-5进行训练,在最优参数下对训练迭代稳定时的模型进行测试。

2.2 CNN测试结果对比

针对上述深度学习训练过程,实验选取测试集准确率和受试者工作特征(Receiver operating characteristic,ROC) 曲线及曲线下面积(Area under curve,AUC)等指标作为模型质量判定标准。上述3种模型经过Softmax分类器进行分类,输出2个神经元,测试结果如表1所示。GoogLeNet迁移学习具有最高的测试准确率,达91.91%,与其接近的是改进型LeNet-5,测试准确率为91.49%。说明深层卷积神经网络具有强大的学习能力,该精度能够满足工厂对苹果缺陷的筛选。

表1 CNN指标评估Tab.1 CNN indicators evaluation

GoogLeNet迁移模型的AUC最大(0.856 5),表明此模型具有很强的泛化能力和鲁棒性。而在该数据集中,AlexNet迁移模型测试准确率最低(86.81%),但AUC达到0.823 4,出现该情况可能原因是准确率所基于的较佳截断值并不是总体分布中的较佳截断值,准确率只是某个随机样本的一个属性指标。而AUC不关注某个截断值的表现,而是综合所有截断值的预测性能,因此二者有时可能出现矛盾。但值得注意,AUC在偏态样本中反映的模型指标更加“稳健”,更能有效且全面地评估模型性能,因此在本实验中AlexNet依然具有较强的学习能力。

综合上述分析,GoogLeNet迁移学习凭借自身模型优势,在实验中表现最佳,其中,对较大训练集的准确率达到100%,测试集准确率达到91.91%,在同类研究中精度较高。同时,深层卷积神经网络实现端到端的学习,减少人工提取特征的时间,操作简便且效率高,利于工厂实现产业化生产。经反复实验发现,用GoogLeNet迁移模型测试235幅苹果图像所需要的时间为18~20 s,完全符合生产需求。

ROC曲线是根据不同的二分类方法(分界值或决定阈)、以真阳性率(灵敏度)为纵坐标、假阳性率(1-特异度)为横坐标绘制的曲线, AUC是衡量机器学习算法的重要指标,图3为3种深度学习算法的ROC曲线。

图3 CNN模型对应的ROC曲线Fig.3 ROC curves corresponding to CNN models

2.3 传统机器学习分析

在提取HOG特征描述子时,利用分类器进行训练与测试,测试结果表明,3种分类器准确率均低于CNN模型。其中,5次实验后的RF表现最好,平均准确率为82.98%,其次是SVM(80.33%)和K-NN(74.87%)。在准确率上,深度学习效果优于传统机器学习,原因为CNN不需人工提取特征,而由机器自主提取,随着网络深度的增加,所学习到的特征更加复杂,所以相比SVM等算法具有更强的泛化能力[12]。

3 讨论

利用目前主流的深度神经网络GoogLeNet进行苹果缺陷检测,经过与苹果检测领域主要算法对比后发现,本文方法优于目前常用的浅层CNN模型和传统机器学习。本文方法能精确地识别缺陷果面。

利用已预训练好的CNN模型进行迁移学习,在确保模型效果的同时极大提升了模型训练速度。深度迁移学习预训练模型具有初始纹理记忆的基本性能,通过在新数据集上添加层或稍微修改预先训练的分类模型即可完成工作[21-22]。这样能减少实验所需的数据,并且让模型具有更强的泛化能力。从苹果分选产业化角度考虑,将深度迁移学习引入苹果缺陷检测的核心算法,能减少构建深度学习模型所需的训练数据和计算能力,从而减少生产成本。

另外,鉴于产业化苹果缺陷在线检测需考虑设备成本及检测效率等问题,深层CNN如GoogLeNet虽在检测准确率等方面优于其他模型,但不可忽视的网络深度带来的训练时长增加与设备要求提高等劣势,也会给工厂化生产带来困扰[23-24]。因此,寻找最优化网络结构、在保证检测效率的同时尽可能的轻化网络、提升训练速度是今后的研究方向。

4 结束语

针对苹果的高精度筛选要求,利用GoogLeNet的深度迁移模型算法对苹果缺陷进行检测。在扩充后的1 932个训练样本中获得训练集识别准确率为100%,在235个测试样本中获得测试集识别准确率为91.91%,高于AlexNet、改进型LeNet-5以及传统机器学习算法,表明本文方法具有较好的泛化能力与鲁棒性。

猜你喜欢
准确率卷积深度
四增四减 深度推进
深度思考之不等式
基于3D-Winograd的快速卷积算法设计及FPGA实现
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
卷积神经网络的分析与设计
从滤波器理解卷积
简约教学 深度学习