王林柏,刘景艳,周玉宏,张君,李兴旺,范晓飞
(河北农业大学机电工程学院,河北保定,071000)
玉米是世界上重要的粮食之一,全世界大约有三分之一的人口以玉米为口粮,因此种子质量问题尤为重要。玉米种子在储存和运输过程中很容易受到破损和发霉问题的影响[1],而表型缺陷是种子质量评价的重要指标。当前种子的质量检测还是依靠以人工为主的传统识别方法,效率低且具有主观性,因此将较为先进的目标检测技术应用到种子筛选当中具有重要的意义。
近年来,许多学者将机器视觉应用到种子质量检测当中并且取得了一定的研究成果[2-5]。其中,闫彬等提出了一种利用机器视觉和数字图像处理技术自动提取玉米籽粒并进行裂纹识别的方法,该方法对玉米籽粒胚面和胚乳面裂纹检测的平均准确率为90.6%。孟繁佳等[6]根据霉变玉米种子与正常玉米种子表面颜色的差异,设计了一种基于HSV颜色空间划分的霉变玉米种子识别算法,实现了玉米种子的精确分选,该算法从图像中提取种子的颜色、纹理、形态等特征参数,然后利用分类器进行种子缺陷的鉴别,比人工为主的检测效率有明显的提升。
随着深度卷积神经网络(DCNN)的应用与发展,目标检测与识别技术逐步被应用于农业生产当中[7-10]。目前,深度学习算法已在农作物的果实识别和杂草识别方面获得了较好的效果。闫建伟等[11]运用改进的Faster-RCNN进行刺梨果的识别,该算法对自然条件下刺梨果实的识别具有较高的正确率和实时性。赵德安等[12]提出了基于YOLO v3的深度卷积神经网络的苹果定位方法,实现了在全天候的不同光线环境下对遮挡、粘连和套袋等多种情况下的果实识别定位。张思雨等[13]提出了一种基于机器视觉与自适应卷积神经网络的花生质量检测方法,该方法对花生缺陷的平均识别率达99.7%,但是只是对单个目标进行检测。祝诗平等[14]为了快速、准确识别小麦籽粒的完整粒和破损粒,设计了基于卷积神经网络的小麦籽粒完整性图像检测系统,并成功应用于实际检测中,但是对于粘连小麦籽粒并没有进行处理。
为了解决在玉米种子缺陷自动识别过程中所面临的籽粒之间相互粘连及目标检测定位的问题,本文以不同质量的玉米种子作为研究对象,首次提出利用分水岭算法结合改进的InceptionV3卷积神经网络对玉米种子进行缺陷检测,同时对比了VGG16、ResNet50两种卷积神经网络模型和传统的机器学习目标检测方法。
本试验以不同质量的玉米种子作为研究对象进行检测试验,相机采用JAI的CCD彩色相机进行数据采集,图像的分辨率为1296像素×964像素,所有图像均为JPG格式。每个颜色通道的像素深度为8位,并采用白色LED环形光源和增强图像对比度的白色背光源。
(a)原始图像
试验共采集图像300张,其中将270张图像用于训练,30张图像用于模型的验证。种子分为两种类别,其中所有单粒玉米种子中外观良好无任何缺陷的有1 013粒,带有缺陷的玉米种子有1 188粒。试验条件为:windows10、64位操作系统,Cuda版本为10.0,采用基于python编程语言的Tensorflow与Keras深度学习框架。采用的电脑配置为:GeForce GTX 1660显卡,6G显存;Intel(R)Core(TM)i5-9400F处理器,主频2.90 GHz。
为了进一步扩大数据样本,利用亮度调整、旋转、加入高斯噪声等图像增强方式将单粒种子图像的数量进行扩增,以此提升模型的性能。最终外观良好的籽粒图像有3 784张,带有缺陷的有3 350张。在训练过程中按4∶1的比例进行划分,其中5 708张图像用于训练,1 426张图像用于测试。
对于本试验,需要检测的图像中玉米种子之间存在着相互粘连的问题,形状相对比较规则,而且颜色大致相同,所以通过分水岭分割算法[15]在图像中分割出每一个单粒种子作为特征提取的候选区域用于模型的训练和检测。本文使用OpenCV库中的函数来进行粘连种子的分割,首先将原始图像转换为灰度图,然后使用OSTU算法得到种子大概轮廓的二值图像,并通过形态开运算去除图像中存在的小的黑白噪声。将得到的二值图像进行膨胀操作,此时真实种子的图像为膨胀后图像的子集,使用距离变换算法得到了每粒种子的中心区域,然后把膨胀之后的图像减去中心区域就是不确定的种子边缘区域,创建一个掩码图像使每粒种子的中心区域图像拥有自己的标号,使用不同的颜色表示每粒种子的编号,最后利用分水岭算法得到每粒种子边缘的确切位置。根据每粒种子的像素点坐标,获取种子在图像中的位置,将单粒种子分割出来,同时去掉相邻种子。图像分割过程及分割结果如图2所示。
(a)分割过程
目前典型的卷积神经网络主要包含卷积层、池化层和全连接层。VGG16模型的实质是AlexNet结构的增强版,它侧重强调卷积神经网络设计中的深度。VGG结构共有五个卷积层,并且每个卷积层之后都有一个池化层。VGG网络用了更小的3×3的卷积核,使得参数量变小,节省了计算资源,将资源留给后面的更深层次的网络,由于层数较多,卷积核比较小,这样使得整个网络有比较好的特征提取效果。ResNet50模型解决了由于网络深度与宽度的增加,使实际效果变差的问题。而ResNet模型增加了残差结构,使网络不再是简单的堆叠结构,解决了梯度消失的问题,这样的简单叠加并没有给网络增加额外的参数及计算量,同时也提高了网络训练的效果与效率。
InceptionV3[16]模型是GoogLeNet的第三代模型,本文将对InceptionV3模型进行了改进,在原来模块的基础上再增加了bolck1、bolck2、bolck3,其结构如图3所示,通过网络深度的增加,可以提取更有效的特征。模块一(bolck1)如图4(a)是Inception引入的基础模块单元,该网络的特点是对层与层之间的卷积运算进行了扩展,通过使用多尺度的卷积核对不同大小的感受野进行卷积,从而提取不同尺度的特征,最终将不同尺度特征进行融合。模块二(bolck2)和模块三(bolck3)如图4(b)和图4(c)所示,使用1×7和7×1的卷积代替7×7的卷积和使用1×3和3×1的卷积代替3×3的卷积,这种方法使较大的二维卷积变成两个较小的一维卷积增加了空间特征的多样性,同时减少计算量提高训练效率。
图3 改进型InceptionV3模型结构Fig.3 Improved InceptionV3 model structure
同时所有模块的卷积中都用了修正线性单元(ReLU)和批量标准化(Batch Normalization),这样可以规范每一层的输出,使输入输出满足同一正太分布,提升特征提取的能力,提高网络性能。网络最后使用全局平均池化(Global Average Pooling)、全连接层和Dropout层,经过Softmax函数来进行分类。
卷积神经网络模型均采用Softmax函数计算分类的概率,计算公式如式(1)所示。
(1)
式中:yim——第i个样本属于第m类的预测概率;
k——类数;
zim——第i个样本的输出向量与第m类参数向量的乘积;
zik——第i个样本的输出向量与第k类参数向量的乘积。
模型均以分类交叉熵(Categorical cross entropy)作为模型的损失函数,计算公式如式(2)所示。
(2)
(a)模块一
本文共使用5种传统机器学习的方法,对分水岭分割后的单粒种子进行特征提取,然后通过SVM分类器进行质量分类。
1)MC(Morphological Characteristics,形态特征)特征是将每粒种子进行二值化处理,提取图像的周长与面积之比;区域面积相同的圆的直径;椭圆离心率;长轴与短轴之比;区域面积和边界外接框面积的比率;区域和外接框之间填充的像素点总数与区域内像素点总数之比;区域周长与区域面积相同的圆的直径之比,共7个形态特征作为特征向量。
2)Color颜色特征对图像的大小和位置的依赖性小,本文提取(RGB)颜色直方图作为特征向量。
3)HOG(Histogram Of Gradient,方向梯度直方图)[19]能较好的捕捉到局部形状信息,而且对几何以及光学的变化有很好的不变性,本文提取图像的梯度信息作为特征向量。
4)GLCM(Gray-level Co-occurrence Matrix,灰度共生矩阵)是一种基于统计的纹理特征提取的方法。本文构建的统计量有角二阶矩;对比度;相关性;熵;协同性;差异性共6个特征参数作为特征向量。
5)LBP(Local Binary Pattern,局部二值模式)特征具有灰度不变性和旋转不变性等显著优点,同时纹理特征维度低,计算速度快。本文提取图像的LBP值,并用这个值来代表该区域的纹理信息。最终采用LBP特征值的统计直方图作为特征向量用于分类识别。
为了评估训练模型对种子质量识别的准确性和稳定性,本文使用准确率P(precision),召回率R(recall)两项指标进行模型的评价,同时引入F1值[17]作为调和的平均评价。
(3)
(4)
(5)
式中:nTP——正确识别玉米种子目标的数目;
nFP——错误识别玉米种子目标的数目;
nFN——未识别玉米种子目标的数目。
本文对改进型InceptionV3卷积神经网络模型对分割出的单个籽粒进行了训练,同时对比了VGG16、ResNet50两种模型,其中模型的训练批尺寸设为16,卷积神经网络的迭代次数设为100,使用Adam作为优化算法,初始学习率设为0.001,当测试集的损失值在10次迭代不下降时,学习率下降5倍,学习率最小设为0.000 001。三种模型的模型验证集准确率随迭代次数的变化曲线如图5(a)所示,从图5(a)中可以看出在40次迭代后三种模型趋于稳定,其中改进型InceptionV3模型的测试集准确率最高为97.40%,其次ResNet50的测试集准确率为96.29%,VGG16的测试集准确率为91.17%。因此最终选取改进型InceptionV3为最终的分类模型,其训练过程中的准确率与损失值曲线如图5(b)和图5(c)所示,从图5(b)中可以看出其模型在50次迭代后趋于稳定,准确率达到较高的水平。
(a)三种模型的训练集准确率曲线
本文使用分水岭分割算法将图像分割成单粒种子图像,并获取单粒种子的位置坐标,然后利用卷积神经网络模型建立单粒种子图像的质量分类模型,最后通过位置坐标将每粒种子在原图中框出,并将检测结果进行标注。本试验将验证集的30张图像(单粒种子有350粒)在分水岭结合改进型InceptionV3模型中进行检测,两种类别种子的平均准确率为94.18%,平均召回率为94.61%。同时对比了其他两种卷积神经网络模型和原始模型,结果如表1所示,改进型InceptionV3模型的F1值最高为94.39%,其中每检测一粒种子消耗87.34 ms。模型测试结果如图6所示,改进型InceptionV3模型的籽粒分类准确率达到了较高的值,因为改进型InceptionV3对每个模块进行了增加,加深了网络结构,提高了提取特征的能力。其中每个模块为稀疏连接,克服了参数量多的问题,同时将1个卷积层拆成2个卷积层(将7×7分解成两个一维的卷积1×7,7×1),使得网络深度进一步增加,增加了网络的非线性,同时分水岭算法的应用,可以准确的对目标画框标注,所以表现出较好检测效果。
表1 分水岭算法结合卷积神经网络的目标检测结果Tab.1 Object detection results of watershed algorithm combined with convolutional neural network
图6 目标检测结果
Fig.6 Object detection results
在分水岭算法结合传统机器学习目标检测试验中,使用Sklearn库中的SVM分类器对每种方法提取的特征进行训练,SVM的参数中惩罚系数设为1,核函数类型设为高斯核函数,停止训练的误差精度为0.001,其他值设为默认值。
利用训练完成的模型进行分类试验,试验结果如表2所示,其中检测效果最好的LBP+SVM方法的结果如图7所示。
表2 分水岭算法结合机器学习的目标检测结果Tab.2 Object detection results of watershed algorithm combined with machine learning
图7 LBP+SVM传统机器学习检测结果Fig.7 Detection results of traditional machine learning
从表2中可以看出,虽然利用分水岭算法结合机器学习的目标检测模型检测每张图片的耗时较短,但是准确率、召回率及F1值普遍低于分水岭算法结合深度学习的目标检测结果,其中LBP+SVM方法的F1值为74.00%低于分水岭+改进型InceptionV3模型20.39%。
由此说明,在与分水岭算法结合进行目标检测上面,深度学习要明显优于机器学习,而随着网络层数增加能够提取到更丰富的特征,在鲁棒性和准确性上也会表现出更强的优势。
1)本文提出了分水岭算法结合卷积神经网络的目标检测方法,该方法通过分水岭算法将粘连的单粒玉米子进行分割,获取种子的位置坐标,然后通过卷积神经网络对种子质量进行分类,最后通过位置坐标将每粒种子在原图中框出,并将检测结果进行标注,实现玉米种子质量的检测。
2)为了证明本文方法的性能,同时对比了不同的卷积神经网络模型和传统机器学习的方法,试验结果证明改进型InceptionV3模型对种子质量分类效果最好,其F1值为94.39%,平均检测一粒种子需要87.34 ms,卷积神经网络的检测效果明显优于传统机器学习方法。
3)相较于目前主流的目标检测算法如Faster-RCNN、YOLO(You Only Look Once)等,使用分水岭算法,无需在训练前对每张图像中每粒种子进行画框标注,无需通过回归寻找边框,降低了模型训练的复杂度,同时也降低了对硬件系统的要求。由于在种子检测定位中,使用分水岭算法对目标定位更准确,因此在实际应用中也更有利于对有缺陷种子的剔除。