王灵敏 蒋 瑜
(1. 桂林理工大学南宁分校,广西 南宁 530001;2. 广西农业职业技术大学,广西 南宁 530007)
传统的香蕉成熟度判别方法是利用肉眼观察香蕉表面颜色[1],此法主观性较强且耗时耗力。随着科学技术的进步,更为科学严谨的方法应运而生——生化指标分析法,如利用半乳糖神经酰胺等敏感材料修饰的4个石英晶体微天平传感器对香蕉7个成熟度进行划分[2];通过检测建立香蕉样本果肉成熟度理化指标的光谱和图像特征分类模型[3];再或者借助色差仪等专业仪器对香蕉的表皮颜色进行检测[4]。但生化指标分析法流程复杂,且对工作人员专业知识及仪器操作技能要求较高,香蕉分级成本偏高。近年来随着计算机视觉的发展,有研究者将其用于香蕉成熟度识别,如张竞超等[5]基于神经网络识别算法建立数学模型判断香蕉的成熟度,但是所建模型主要适用于仓储阶段的香蕉。赵文锋等[6]提出一种改进的MATLAB香蕉成熟度图像处理系统,根据香蕉色素组成检测香蕉所属成熟度范围。Adebayo等[7]利用香蕉光学特性,通过分析吸收系数和有效衰减系数与香蕉不同成熟期的关系建立ANN模型来判断香蕉成熟度。Olaniyi等[8]利用三层人工神经网络香蕉进行两分类,但也需借助香蕉的生化特性或者进行有损检测,此法流程复杂,不适用于低成本的香蕉分拣工作。深度学习已被用于芒果、枣、番茄、柠檬等水果的分级[9-12]。而香蕉成熟期阶段较多,不同成熟期外观变化又很接近,更细化的多阶段分类难度较高,研究拟将迁移学习引入Alexnet、DenseNet121、DenseNet201、GoogLeNet、ResNet50、ResNet101、VGG16、VGG19 8种不同模型,通过引用模型特征提取网络,微调全连接层的方式,找到合适且稳定的香蕉成熟度分类模型,以期为香蕉贮藏、运输、上架售卖及深加工环节的香蕉成熟度自动化判别提供理论依据。
试验所用的香蕉样品购于广西南宁市某批发市场,购买后迅速带回实验室,确保香蕉处于Level 1级成熟度,挑选大小均匀且没有任何机械损伤和虫害等缺陷的香蕉样品,与苹果混合放置在密封箱子中进行常温(20±5) ℃催熟,每间隔1 d定时拍摄取样,直至失去食用价值。研究将香蕉成熟度划分为6个阶段,Level 1级成熟度的香蕉表皮整体呈绿色;Level 2级成熟度的香蕉表皮绿色中略带有淡黄色;Level 3级成熟度的香蕉表皮呈黄绿色;Level 4级成熟度的香蕉表皮黄色中略带有淡绿色;Level 5级成熟度的香蕉表皮整体呈黄色;Level 6级成熟度的香蕉表皮黄色中带有褐色斑点。
图像采集装置如图1所示。为保证香蕉拍摄时光照均匀,光照箱由400 mm × 400 mm×600 mm的白色纸箱改造而成。整个图像采集装置放置于方形木桌上,为避免拍摄时桌面反光,待测样品置于米色绒布进行拍摄。光源支架顶部设有转接头,可安装环形光源和手机支架,光源高度可自由调节。环形光源为色温5 500 K、功率10 W的可调白色环形LED灯管,用以模拟正常室内光照强度环境。拍摄手机为华为NOVA2,置于顶部外侧,透过与摄像头大小相当的预留小孔对样品进行拍摄。
在图片拍摄过程中需要对香蕉进行多次移动和翻转,拍照次数越多、成熟度越高的香蕉在拍摄过程中机械损伤的可能性越大。为保证Level 1级至Level 6级成熟度等级香蕉图片数量的均衡性,从拍摄的图片中挑选出几乎无机械损伤的图片900张,每个成熟度等级图片各150张。香蕉分类任务中图片颜色是很重要的特征,而颜色会受到光照强度影响,考虑到在数据采集时采用可调光模拟不同光照强度,为进一步丰富图片,通过旋转不同角度、水平或垂直旋转等方式对数据集进行扩充。香蕉每个等级图片数量增加到600张,并采用留出法(hold-out)[13],将所得图片数据按照8∶2的比例划分训练集和数据集。
图1 图像采集装置示意图Figure 1 Schematic diagram of image acquisition device
试验平台由计算机硬件和开发平台两部分组成。计算机硬件:处理器(CPU)为Intel(R) Core(TM) i5-8300H CPU @ 2.30GHz,图形处理器(GPU)为NVIDIA GeForce GTX 1050 Ti。开发平台:Windows10操作系统上的Pytorch深度学习框架,配置NVIDIA Toolkit 11.6;集成开发环境为pycharm,编程语言为Python 3.8.0。
Krizhevsky等[14-15]在AlexNet模型基础上进行了一系列关于网络各个层级的可迁移性的试验。由于训练一个新的高性能的卷积神经网络不仅耗时,对硬件设备要求高,而且还需要大量数据。但实际情况时常面临数据集较小不足以训练一个大规模高性能的新网络模型的问题,迁移学习正好可以解决上述问题[16]。
模型参数较多、训练样本较小,训练出来的模型很容易过拟合,通常表现为模型在训练数据上损失函数较小,预测准确率较高;但是在测试数据上损失函数比较大,预测准确率较低。为了防止过拟合,试验采用了L2正则化[17-18]和Dropout[19-20]。
将香蕉按照不同成熟度分为Level 1至Level 6共6个等级,将迁移学习引入Alexnet[14]、GoogLeNet[21]、VGGNet(VGG16、VGG19)[22]、ResNet(ResNet50、ResNet101)[23]、DenseNet(DenseNet121、DenseNet201)[24]8种不同模型,通过引用模型特征提取网络,微调全连接层的方式,从预训练模型开始,更新模型参数。
在ImageNet数据集上进行预训练得到的模型参数文件,然后提取模型的部分权值并冻结,微调全连接层,再对香蕉数据集进行迁移学习训练,最终得到新的最优模型参数文件。为了获得更好的模型,除了利用SGD算法配合0.9动量进行模型优化训练之外,还使用了Adam优化算法进行模型优化,不同网络模型分别采用两种算法时的准确率和损失函数进行50轮训练,结果如图2所示。对比发现,采用Adam优化算法的模型,除了DenseNet121模型之外,其他网络模型的损失函数都下降更快,收敛时间更短;从准确率来看,AlexNet模型和DenseNet201模型提升较明显,GoogLeNet、VGG19模型准确率略微有所下降,其余几种模型无明显变化。综上,迁移学习降低了网络模型训练时间成本,对于模型收敛非常有益。
图2 各模型SGD优化与Adam优化结果Figure 2 Results of SGD optimization and Adam optimization of each model
AlexNet、DenseNet、GoogLeNet、ResNet、VGGNet网络模型在采用SGD进行算法优化10轮训练之后都可以趋于收敛,VGG16模型准确率最高,如图3所示;采用Adam算法收敛更快,在5轮之后模型趋于收敛,AlexNet模型准确率最高,如图4所示。AlexNet模型采用Adam优化算法准确率为95.56%,高于VGG16模型采用SGD优化算法的95%准确率,并且损失函数更陡峭,更快趋于收敛,如图5所示;在同等硬件条件下,VGG16模型下训练时间为4.16 h,AlexNet模型只需要3.78 h。因此,选用AlexNet作为成熟度分类模型。
图3 模型SGD优化结果Figure 3 SGD optimization results of models
图4 模型Adam优化结果Figure 4 Adam optimization results of models
图5 VGG16模型SGD优化结果与AlexNet模型Adam优化结果
AlexNet已经过预训练,直接进行迁移学习,为了避免过拟合,在全连接层运用dropout随机隐藏部分神经元,减少网络整体参数量,提升训练效率[20]。试验时发
现,适当削减全连接层神经元连接层数,不仅可以降低模型复杂度,减少参数数量从而提升训练效率,还可以将训练时长缩短约为0.3 h,提高准确率。为了便于区分,此处将优化后模型设定为AlexNet_1。将全连接层元连接个数由4 096修改为1 024。AlexNet_1网络模型结构示意图如图6所示。AlexNet_1与AlexNet模型训练结果如图7所示。
图6 AlexNet_1网络结构示意图Figure 6 AlexNet_1 network structure diagram
图7 AlexNet_1与AlexNet网络准确率和损失率Figure 7 Accuracy and loss of AlexNet_1 and AlexNet
3.4.1 验证数据采集 为验证模型的实用性,从南宁某批发市场另外采购一批香蕉,使用华为NOVA2采集图像,每个类别分别采集了180张进行等级分类测试,对这些香蕉图片分为Level 1~Level 6。同时香蕉实物留作人工分类用。
3.4.2 模型评估指标 为进一步验证模型在6个不同成熟度等级的判别表现,通过混淆矩阵来分析每一个类别的准确率,矩阵中包含TP,即香蕉实际为某一成熟等级,模型判断出来也为该等级;FN,即香蕉实际属于某一成熟等级,模型判断出来不为该等级;FP,即香蕉实际不属于某一成熟等级,模型判断出来属于该等级;TN,即香蕉实际不属于某一成熟等级,模型判断出来也属于该等级。TP 和TN 是正确预测,FP 和 FN 是错误预测。混淆矩阵结果如图8所示。
为了更好判断模型在不同成熟度香蕉等级分类上的表现,进一步运用了准确率、精确率、召回率、特异度和F1共5个参数去进行验证评估。式(1)为召回率的数学计算式,式(2)为特异度的数学计算式,式(3)为精确率的数学计算式,式(4)为准确率的数学计算式,式(5)为F1的数学计算式。
(1)
(2)
(3)
(4)
(5)
式中:
R——召回率,%;
S——特异度,%;
P——精确率,%;
A——准确率,%;
F1——基于精确率与召回率的调和平均定义的量,%。
由图8及表1可知AlexNet模型整体准确度为95.56%,成熟度等级1和成熟度等级6准确率可以达到100%,成熟度等级3最低,但是也能达到90%;成熟等级1和等级5精确率最高均达到了100%,由于部分等级2和等级4被判别为成熟度等级3,导致成熟度等级3的精确率只有93.1%;召回率是香蕉正确成熟度等级与实际正确成熟度等级的比值,反映了不同等级之间判别灵敏度,成熟度等级1和6最容易被检测出来,成熟度3最不敏感;F1分数为精确率与召回率的调和平均值,其取值在0~1,取值越大性能越好。
图8 AlexNet模型混淆矩阵Figure 8 AlexNet model confusion matrix
表1 AlexNet模型各分类等级性能
3.4.3 人工与模型分级对比 由12名具有香蕉深加工技术经验的食品专业老师和同学组成人工分级小组,分为两组,每组由2名经验丰富师生、2名中等熟练师生及2名新手师生直接对所采集图像的香蕉进行实物分拣,分为组1和组2,其中组1成员在检测过程中每检测30个香蕉休息5 min,共分6次完成;组2成员检测过程中不休息,一次性完成180个香蕉分类。测试结果见表2。两组成员,在检测过程中没有休息的成员准确率略低,长时间的重复分辨,使师生视觉疲劳、体力疲劳从而导致误差增加,而且劳动时长会进一步导致准确率下降;检测过程中有休息的成员,准确率较高,其中经验丰富长期进行香蕉分拣工作的老师和同学准确率可以与模型准确率相比拟,但是需要预留足够时间给检测人员休息调整,减少人为误差,整个过程耗时较长。
表2 香蕉成熟度人工与模型分类结果
3.4.4 模型应用 为了让试验模型更便于应用于香蕉深加工实际生产过程,借助于PyQt5创建一个香蕉等级分类图形化用户展示界面,系统可以通过python程序控制实现摄像头实时调用拍摄香蕉图片或者直接加载给定的香蕉图片进行实时成熟度分类,系统界面如图9所示。
图9 系统界面Figure 9 The system interface
采用多种(Alexnet、DenseNet、GoogLenet、ResNet、VGGNet)神经网络模型进行迁移学习提取香蕉成熟度外部特征,可实现香蕉6个成熟度等级无损分类,这种方式对于缩短训练时长非常有效。经过试验对比发现,AlexNet搭配Adam优化器训练效果最好,香蕉成熟度等级准确率达到95.56%,通过进一步对AlexNet改进,准确率可达96.67%。同时为提升检测模型的实用性,设计了一个简易香蕉成熟度分类实时显示界面系统。香蕉成熟度的准确、快速分类,对香蕉深加工领域香蕉成熟度筛选过程,减少人力、物力、节省时间等方面都有重要价值,研究证明了利用深度卷积网络对香蕉成熟度分类具有可行性,卷积模型可初步满足香蕉深加工在线检测分类的生产需求,对于与香蕉剥皮机搭配构建一整套香蕉深加工自动化系统有一定的可行性。但由于香蕉成熟过程中外形特征是连续变化过程,对处于中期阶段的成熟度较难判断,后期可进一步提升将单个香蕉分类任务扩展到整把香蕉的分类任务。