马本学 李 聪 李玉洁 喻国威 李小占 张原嘉
(1.石河子大学机械电气工程学院, 石河子 832003; 2.农业农村部西北农业装备重点实验室, 石河子 832003)
哈密大枣是新疆传统名优特产之一,个大肉厚、食之浓郁、外观紫红且有光泽,是药食同源的滋补食品和药用食品[1]。目前大部分哈密大枣干制后经大小分级机分选后直接流入市场,若不再进行初步的品质分级,缺陷枣流入市场,将影响干制哈密大枣的附加值。
针对红枣的外部品质检测问题,许多学者已经进行了大量的研究。李运志等[2]依据半干枣在病害和非病害区域色调值差异,提出一种基于机器视觉的缺陷识别方法,用提取的病害区域与枣表面积的比作为阈值来确定识别精度,以识别病害和裂痕枣。张萌等[3]针对红枣表面灰度不均匀问题,提出一种表面灰度快速补偿方法,解决了表面缺陷难以快速定位的问题,显著地增强了果面缺陷特征,提高了红枣缺陷检测的准确率。海潮等[4]根据红枣及其表面缺陷的特征,提出一种在颜色空间模型中采用Blob分析算法进行红枣与背景的分离以及红枣表面缺陷的识别方法,可以快速准确地实现破头果、霉变果、浆头果、虫蛀果等典型红枣表面缺陷的识别。施键等[5]利用鲜枣轮廓上两点之间最大距离对鲜枣进行大小分级,准确率达91.7%,单通道分级效率为6个/s。文献[6]通过提取干制哈密大枣的纹理特征和颜色特征,利用支持向量机对干制哈密大枣的3个等级进行分级,准确率达到96.67%。这些手工提取红枣单一外部特征(缺陷、尺寸和纹理等)的方法,分级准确率有限,且无法全面客观地反映人类对红枣外部品质的直观评价。文献[7]提出了一种基于图像边缘检测的红枣分级方法,通过对红枣尺寸、表面轮廓和缺陷进行检测实现红枣分级,准确率可达91.45%。但该方法只能针对破头果这类图像分割后像素面积具有差异性的缺陷枣果。文献[8]利用机器视觉对干制骏枣进行缺陷检测与尺寸分级,尺寸分级正确率可达95.3%,但缺陷识别精度较低,其中鸟啄和药害的识别准确率仅为86.7%和76.7%,表明机器视觉对缺陷枣的识别效果并不理想。文献[9]提出了一种基于深度残差网络对红枣表面缺陷以及纹理识别的分类算法,该分类方法准确率达到了96.11%,检测效率为120个/min,但该方法只针对正常枣与缺陷枣,且未考虑红枣尺寸这一重要品质等级外观指标,故以上研究有很大的局限性。
随着互联网时代大数据技术的发展,深度学习已经广泛应用于人脸识别、语音识别和行人检测等[10-14]。卷积神经网络作为深度学习中最为重要的模型之一,具有强大的特征提取性能,已经在图像识别技术的应用中起到了至关重要的作用[15]。何进荣等[16]针对苹果外部品质分级中准确率较低、鲁棒性较弱等问题,提出一种多卷积神经网络融合DXNet模型的苹果外观分级方法,分级准确率达到了97.84%。傅隆生等[17]针对田间条件下多簇猕猴桃果实识别问题,提出一种基于LeNet卷积神经网络的深度学习模型进行多簇猕猴桃果实图像的识别方法,该识别方法对遮挡果实、重叠果实、相邻果实和独立果实的识别率分别达78.97%、83.11%、91.01%和94.78%。赵德安等[18]针对复杂环境下苹果识别定位问题,提出一种基于YOLO v3深度卷积神经网络的苹果定位方法,采用端到端的整体训练让神经网络自适应地学习不同环境下苹果定位所需要的特征,准确率和召回率分别达97%和90%以上。SARANYA等[19]以苹果、香蕉、石榴和柑橘为研究对象,在公开数据集fruit-360上对传统的机器学习方法和深度学习方法进行了比较,结果表明CNN模型有更好的学习效果。以上研究为卷积神经网络应用于水果识别与分类提供了参考和可行性依据。
为全面客观评价红枣外部品质,本文以干制哈密大枣为研究对象,采用深度学习结合图像处理的方法,对干制哈密大枣的缺陷、尺寸和褶皱进行特征提取,实现干制哈密大枣外部品质综合检测,为进一步开发红枣品质在线检测技术提供理论依据和技术参考。
试验材料为干制哈密大枣,采购自新疆维吾尔自治区哈密市花园乡闪电农产品专业合作社,依据DB 65/T 3460—2012《地理标志产品哈密大枣》[20]中对干制哈密大枣的分级标准,从采购的干制哈密大枣通货(包含各等级正常枣和各种缺陷枣)中,首先挑选出裂纹、鸟啄和霉变3种缺陷枣各150个,并在正常枣中挑选出尺寸2个等级、褶皱2个等级的干制哈密大枣各200个。根据缺陷、尺寸和褶皱3个等级外观指标,本文将干制哈密大枣共划分为一级、二级、三级和等外品(缺陷枣)4个等级,各等级样本图像如图1所示。
机器视觉系统由封闭暗箱装置、LED环形光源、HDMI工业相机(4~12 mm变焦镜头,1 200万像素)和便携式计算机组成。干制哈密大枣枣梗垂直光源方向放置,每个干制哈密大枣正反面各拍摄1幅图像,共拍摄2 500幅图像,镜头与实物的距离为23.5 cm。经对原始图像质量筛选(将人为拍摄失误导致的对焦不准、曝光时间过长以及拍摄表面与标签不一致的图像去除)后,最终得到正常枣图像1 200幅,裂纹、鸟啄和霉变枣图像各200幅。
试验平台由计算机硬件和开发平台两部分组成。计算机硬件:处理器(CPU)为Intel (R) Core (TM) I7-8700 CPU @3.20 GHz,图形处理器(GPU)为NVIDIA GeForce RTX2060。开发平台: Windows 10操作系统上的Pytorch深度学习框架,配置NVIDIA CUDA Toolkit 10.1和深度神经网络加速库NVIDIA CUDNN v 8.0.4。编程语言为Python 3.7.4。
图像分类时,有效的图像数据增强可以进一步提高分类精度[21]。随机挑选200幅正常枣图像与600幅缺陷枣图像组成干制哈密大枣缺陷样本数据集,并将其批量调整为224像素×224像素。鉴于干制哈密大枣更换不同角度观察都不会改变其特征的特点,采用随机翻转、镜像、随机裁剪和高斯噪声4种变换方式对样本数据集进行扩充,得到正常、裂纹、鸟啄和霉变枣图像各1 000幅,共4 000幅干制哈密大枣图像,极大地增加了样本多样性。
1.4.1改进残差网络模型
在深度卷积神经网络训练过程中,通常会出现梯度消失的问题,随着训练的进行,早期层的梯度幅度迅速降低到零。为解决这一问题,文献[22]提出了残差网络(Residual network, ResNet)学习模型。ResNet在网络中引入残差结构,通过捷径连接的方式形成跳跃式结构,为解决深层卷积神经网络模型的错误率不降反升的难题提供了新的方向。
图2为残差模块学习示意图,假设某段神经网络的输入样本是x,期望输出是H(x),以往的卷积神经网络模型都试图通过堆叠不同的层找到可将输入x映射为输出H(x)的函数,然而残差网络的思想是构建公式
F(x)=H(x)-x
(1)
式中F(x) ——堆叠的非线性层
每个ResNet块都包含一系列层,图2中有2个权重层,每一个权重层的输出和堆叠的权重层最终输出计算公式为
F(x)=W2δ(W1x)
(2)
H(x)=W2δ(W1x)+x
(3)
式中δ——激活函数ReLU
W1——第1层的权重
W2——第2层的权重
与常规深度网络最大的差别是,残差网络利用捷径方式连接,通过身份映射操作将堆叠层的输入和输出组合在一起,无需任何附加参数。因此,梯度很容易回流,可以更快地训练更多的层。但传统ResNet由于其面向上千种分类,参数量大,存在冗余参数,降低训练与识别速度[23],考虑到研究对象(正常枣、裂纹枣、鸟啄枣和霉变枣)共有4类,故本文网络模型以ResNet-50网络结构为基础,通过改变网络结构以创建新的网络结构来解决以上问题,并提高了分类的准确率。
ResNet-50网络主体结构由输入主干、4个残差块及最后的输出层组成,模型输出维度为4,分别对应4类干制哈密大枣图像。输入主干由输出通道数为64的7×7卷积核和3×3的最大池化层组成,步长均为2。经输入主干后原始图像尺寸变为原来的1/4,并且通道数从3增加到了64。ResNet-50网络结构从第2个残差块开始,每个残差块输出都经过1个下采样模块,然后是2个残差模块。在下采样模块中分别设有2条路径,分别是主干路径和捷径路径,主干路径包含3个卷积层,其中卷积核大小分别是1×1、3×3以及1×1,用于对输入图像进行特征提取,第1个卷积核的步长为2,可将输入图像尺寸减半,最后1个卷积层的输出通道数是前2个卷积层的4倍,这一结构称为瓶颈结构。捷径路径使用步长为2的1×1卷积核,保证输出图像尺寸与主干路径输出图像尺寸一致,以此对2个路径进行求和输出。
干制哈密大枣缺陷分类模型是在ResNet-50网络结构的基础上进行进一步改进。通过观察ResNet-50网络结构可知,输入主干是由1个7×7的卷积核等组成,其中卷积层的计算成本是卷积核宽度或者卷积核高度的平方,因此1个7×7卷积核的计算量是3个3×3卷积核计算量的5至6倍。本文将输入主干中的7×7卷积核替换成3个3×3的卷积核,其中第1个卷积核步长为2,输出通道数为32,最后1个卷积核输出通道数为64,在保证和原始网络输出主干信息一致的情况下大幅降低了计算成本,同时减少网络模型参数数量。
同时,改变分类模型中下采样模块的通道数。由于原始2个残差块之间先通过1×1卷积升维使得主干路径可以和捷径路径叠加,然后通过1×1卷积降维输出,因此导致残差块之间丢失了大量的输入特征信息。模型通过改变残差块中各卷积核通道数,输入特征信息通过1×1卷积升维后直接进行输出,不仅保证了输入特征信息完整性,而且降低了计算成本。本文分类网络模型的输入结构与下采样结构如图3(图中s为步长)所示。模型具体结构如图4所示。表1列出了改进的ResNet-50网络与原始ResNet-50网络中残差块结构及参数数量。可以看出,改进ResNet-50网络较原始网络的参数量减少约6.9×106。
表1 2种网络卷积结构对比Tab.1 Comparison of two network convolution structures
1.4.2阈值检测方法
红枣尺寸是其分级的重要依据之一[24],本文提出一种阈值检测方法,首先通过阈值分割方法对干制哈密大枣进行图像分割,得到干制哈密大枣感兴趣区域,获取干制哈密大枣感兴趣区域二值图像的像素面积与周长。并对干制哈密大枣感兴趣区域图像进行圆拟合,获取干制哈密大枣图像圆半径。最终得到干制哈密大枣3种尺寸特征,即面积、周长与拟合圆半径,并对3种特征分别建立阈值检测模型,根据样本数据最小方差寻求最佳阈值实现干制哈密大枣的尺寸检测。
干制哈密大枣表面纹理可以反映干制哈密大枣褶皱程度[25]。在拍摄干制哈密大枣图像时可以发现,表面褶皱少时产生的光斑少,表面褶皱多时产生的光斑也会多。基于这种思路,对干制哈密大枣感兴趣区域图像再次采用阈值分割方法,提取干制哈密大枣表面纹理区域图像,并对纹理区域进行二值化、移除小面积对象操作,最终得到纹理区域二值图。对纹理区域二值图的封闭区域进行连通域统计获取纹理数量,建立纹理数量特征阈值检测模型,根据样本数据最小方差寻求最佳阈值实现干制哈密大枣的褶皱检测。
为验证提出的模型在干制哈密大枣缺陷分类上的优越性,按照4∶1的比例将4 000幅图像随机划分为训练集与验证集。在相同条件下试验对比ResNet-50、VGG-19和GoogLeNet Inception v2深度卷积神经网络标准模型对干制哈密大枣缺陷枣的识别分类效果。
VGGNet将2个3×3卷积核的卷积层代替了以往深度学习模型中1个5×5卷积核的卷积层,全部使用3×3小卷积核来加深网络的深度,但VGGNet含有3个全连接层,参数量极大,耗费计算资源更多[26]。GoogLeNet参考VGGNet使用多个小卷积核替代大卷积核的方法,通过引入Inception模块,使用多个尺度的卷积核提取特征。同时,采用批量归一化的方法,使模型更加轻量化,但存在计算次数太多,效率不足的问题[27]。ResNet在VGGNet的基础上引入跨层连接,使用残差模块构造更加复杂的网络。由于使用全局平均池化操作而不是全连接层,所以ResNet模型的参数更少,但传统ResNet面向上千种分类,训练小样本时,存在冗余参数,降低训练与识别速度。本文提出改进的ResNet-50网络结构,将主干网络上的7×7卷积核用3个3×3卷积核代替,同时改变各卷积核的通道数,使残差块输入与输出之间不需要使用1×1滤波器降维,不仅减少了输入特征信息的丢失,而且极大地减少了网络计算成本。综合考虑硬件性能和训练时间,经多次调试后,批大小(Batchsize)设置为32,采用Adam优化器进行模型训练优化,初始学习率设置为0.001,梯度一阶矩衰减系数β1设置为0.9,梯度二阶矩衰减系数β2设置为0.999。在经过200轮训练后,各模型的识别准确率与损失值曲线如图5、6所示。
从图5可以看出,在训练初始阶段,4种深度卷积神经网络模型的识别准确率都出现快速提升,达到80%以上,但不同模型提高程度各有差异。在训练100轮后VGG-19的识别准确率基本稳定在90%。GoogLeNet Inception v2由于使用多个尺度的卷积核提取特征,在训练初始阶段表现出较高的识别准确率,但模型收敛速度较慢。ResNet-50识别准确率与GoogLeNet Inception v2相差不大,但模型更加收敛,且识别准确率都要高于VGG-19。各组训练与测试的结果见表2。从表2可以看出,改进的ResNet-50模型测试准确率可达到97.25%,优于其他3种模型,且较原始ResNet-50模型每轮训练时长减少5.13 s。
表2 试验模型对比结果Tab.2 Comparison results of models
本文提出一种阈值检测方法实现干制哈密大枣尺寸检测。干制哈密大枣图像面积、周长和拟合圆半径3种特征提取过程如图7所示。3种阈值建立的检测模型见图8。干制哈密大枣尺寸检测模型测试结果见表3,从表3可看出,面积阈值的识别精度最高,当面积阈值选择为1.8×106像素时,对于干制哈密大枣尺寸检测80个样本,75个判断正确,总体正确率为93.75%,其中一级和二级的检测精度分别为95.00%和92.50%。综合试验结果,面积阈值模型可满足对干制哈密大枣尺寸检测。
表3 干制哈密大枣尺寸检测模型测试结果Tab.3 Results of size detection model of dried Hami jujube
图9为干制哈密大枣不同褶皱等级表面纹理提取过程,对背景分割后的二值图像采用5×5的滤波器进行腐蚀操作,消除边界影响;对纹理分割后的图像进行删除像素面积操作,删除面积小于80像素的光斑,避免一些极小光斑带来的影响,并对纹理提取后的图像采用8连通域计数,以此对集中与分散的光斑进行计数。从图9中可以看出,干制哈密大枣褶皱处光斑明显。褶皱等级不同的干制哈密大枣图像光斑分布也不一样,果面饱满光滑的干制哈密大枣纹理数量少且光斑集中,果面较褶皱的干制哈密大枣纹理数量多且光斑分散。图10为干制哈密大枣纹理数量特征建立的阈值检测模型。
干制哈密大枣褶皱检测模型测试结果见表4,从表4可看出,当选择纹理数量为特征,阈值设置为36时,对于干制哈密大枣尺寸检测80个样本76个判断正确,总体准确率为93.75%,其中一级和二级的检测精度分别为92.50%和95.00%。综合试验结果,纹理数量阈值模型可满足对干制哈密大枣的褶皱检测。
表4 干制哈密大枣褶皱检测模型测试结果Tab.4 Results of wrinkle detection model for dried Hami jujube
为验证模型的实用性,结合维视图像试验装置开发了一款干制哈密大枣外部品质检测系统并进行试验验证。首先判别干制哈密大枣是否为缺陷枣,若是缺陷枣,则直接输出为等外品,若不是缺陷枣,则通过尺寸与褶皱特征阈值对干制哈密大枣进行检测。其中每个干制哈密大枣的尺寸与褶皱都包含2个等级,一级记为1,二级记为2。若尺寸与褶皱同时输出为1,则记为一级枣;若尺寸与褶皱只有其中一个输出为1,则记为二级枣;若尺寸与褶皱都输出为2,则记为三级枣。具体检测流程如图11所示。
干制哈密大枣外部品质检测界面如图12所示。后台处理通过编写Python语言调用OpenCV打开相机,并通过光电传感器控制相机拍摄获取图像,调用Pytorch深度学习框架实现干制哈密大枣外部品质分级。通过检测分级系统对干制哈密大枣外部品质进行综合判别,通过实时采集图像进行试验验证,一级、二级、三级和等外品的干制哈密大枣样本分别随机挑选40个进行检测,干制哈密大枣外部品质检测系统见图13。
经测试,160个干制哈密大枣样本中,检测正确样本数为149,总体准确率为93.13%。干制哈密大枣检测系统验证的混淆矩阵结果如图14所示。可以看出40个一级枣样本6个被误判为二级枣;40个二级枣样本3个被误判为三级枣,1个被误判为一级枣。表明尺寸和褶皱中有1个阈值特征可能会被错误检测。此外,40个等外品样本全部判断正确,较好地避免了缺陷枣果被误判为正常枣果的危害。结果表明,改进的ResNet-50网络结构能够较好地识别干制哈密大枣缺陷特征。综上所述,本文构建的检测系统可以实现干制哈密大枣外部品质综合检测。
(1)改进的ResNet-50网络结构可以提升干制哈密大枣缺陷的识别准确率,且大大降低了网络的计算成本。与原始ResNet-50网络和经典深度卷积神经网络模型VGG-19、GoogLeNet Inception v2相比较,相同条件下,本文所提模型能更快收敛,缺陷识别测试准确率达97.25%。
(2)提出一种阈值检测方法,通过图像像素面积和纹理数量特征分别建立干制哈密大枣尺寸、褶皱阈值检测模型。试验结果表明,尺寸和褶皱的检测准确率均可达到93.75%,证明了模型的有效性。
(3)为验证检测模型的实用性,结合维视图像试验装置开发了干制哈密大枣外部品质检测系统,综合了缺陷识别模型和尺寸、褶皱检测模型,试验结果表明,外部品质综合检测总体准确率可达93.13%,初步满足干制哈密大枣外部品质在线检测装备的生产需求。