基于图像处理与深度学习的苹果检测分级

2022-09-06 12:44项辉宇黄恩浩冷崇杰
食品安全导刊 2022年22期
关键词:像素点算子准确率

项辉宇,黄恩浩,冷崇杰,张 勇

(北京工商大学 人工智能学院,北京 100048)

在苹果的质量检测方面,国外的研究较为先进,可准确检测苹果的外观,并对内部缺陷等问题进行深入研究。国内对于苹果等水果的检测主要采用人工识别的方法,近年来也出现一些运用图像处理自动识别的方法,但不够准确、高效。1984年,Thylor R.W.等提出了用模拟摄像机检测苹果的外部损伤;1989年Rehkugler G.E.和Throop J.A.提出一种基于损伤面积和表面灰度的新算法;Kazuhiro Nakano等通过神经网络对苹果的颜色进行分级。国内的研究者们在21世纪也纷纷投入此项研究中。项辉宇等[1]使用Halcon对苹果的外部与特征进行图像处理的研究,该方法可较好地完成缺陷等外部特征的识别检测;高辉等[2]采用亮度校正与机器视觉结合的方法对苹果的缺陷进行快速检测,该方法较为清晰且准确率较高;周雨帆等[3]采用轻量级卷积神经网络,大幅减少了模型参数和训练时间,对苹果的表面缺陷检测取得了较好的效果。在传统研究方法中,多数学者对检测识别进行了探究,但如何在识别到分级的整个过程中做到完全自动化还没有很好的解决方 案[4-5]。因此,本研究尝试采用卷积神经网络(Convolutional Neural Networks,CNN)与 分 类 器(Support Vector Machine,SVM)相结合的方法,对比图像识别方法的结果,检测其准确率,并为深度学习在其他领域的新应用提供思路与理论基础。

1 材料与方法

1.1 材料与仪器

苹果的来源:放置一段时间的市售红富士苹果;维视视觉检测(MV-BDP200型),维视数字图像技术有限公司。

1.2 方法

1.2.1 苹果特征检测

(1)特征检测整体流程。苹果的大小、颜色、缺陷检测的总体流程如图1所示,其中缺陷检测是3项检测中最重要的,因此也是内容最复杂的。

图1 特征检测流程图

图像增强是将原图像中的感兴趣特征放大,让图像更清晰,更好地达到检测的需要。图像复原是利用模糊函数将图像的模糊部分去除,还原图像。图像灰度处理是将彩色图片转化成灰白图片,为后续图片的其他处理做准备工作。图像二值化是将得到的灰度化图像,通过设定阈值门限进行分割,高于阈值的像素值变为1,低于阈值的像素值变为0,从而使图像只有两个值。图像的平滑处理有3种最主要的方法,即中值滤波法、邻域平均法和高斯滤波法,综合考虑各方法的优缺点,并根据本实验希望得到清晰、平滑、精准的预处理图的目的选择最适合于本次研究的高斯滤波法。高斯滤波法是目前应用最广泛的平滑图像方法,能够非常有效地抑制噪声,达到平滑图像的目的。高斯滤波器输出的是滤波窗口内所有像素的平均值,它的模板系数随着距模板中心的距离增大而减小,这使高斯滤波器具有很大优势,因此它对图像的模糊程度比其他几种滤波器要小。由图2可以看出,经过图像增强以及滤波过后的图片,特征清晰度更高。

图2 图像增强及灰度直方图

(2)大小检测。通过苹果在图像中的面积对整体大小进行检测。利用imfill函数,填充二值图像中的空洞区域bw=imfill(~bw,‘holes’);利用bwarea函数计算面积bwarea(bw)。

(3)颜色检测。在检测水果颜色时,需要找到适合的颜色模板,目前常用的颜色模板有RGB、HIS、HSV和HSB等,本实验选取HSV模型检测苹果的颜色信息。苹果的颜色检测主要通过图像的H分量展示,详见图3。

图3 HSV分量

(4)缺陷检测。苹果的缺陷检测是3项检测中最重要的,也是复杂程度最高的。在实验中主要采用边缘检测求出缺陷的区域从而识别。在图像边缘检测过程中,涉及Sobel算子、Canny算子、Laplacian算子、Prewitt算子和Roberts算子等一系列非常重要的检测算子,其优缺点见表1。

表1 各算子优缺点对比

Roberts算子是最简单的算子之一,是一种使用局部差分算子来寻找边缘的算子。对角线上两个相邻像素之间的差异用于近似梯度幅度以检测边缘。检测垂直边缘的效果优于倾斜边缘,定位精度高,对噪声更敏感,无法抑制噪声的影响。Roberts边缘算子是一个2×2模板,它使用对角线方向上两个相邻像素之间的差异。从图像处理的实际效果来看,边缘定位准确,对噪声敏感。Roberts算子的模板及算法原理如式(1)、式(2)所示,对于输入图像f(x,y),使用Roberts算子后输出的目标图像 为G(x,y)。

Roberts算子是2×2算子模板。式(3)、式(4)所示的2个卷积核形成了Roberts算子。

图像中的每一个点都用这2个核做卷积。Sobel算子对传入的图像像素执行卷积。卷积的本质是求梯度值,或给一个加权平均,权重就是所谓的卷积核;生成新像素的灰度值作阈值计算来确定边缘信息。Sobel算子认为邻域内的像素点对当前像素点的影响是不等价的,因此不同距离的像素点权重不同,对算子结果的影响也不同。一般来说,距离越远,影响越小。运算原理如式(5)、式(6)、式(7)。

其中,Gx是对原图x方向上的卷积,Gy是对原图y方向上的卷积,代入A,则最终得到的G就是(x,y)处的像素值。Sobel算子在两个方向上的检测效果见图4。

图4 Sobel算子边缘检测

在表面效应方面,Canny算法是对Sobel等算子效应的进一步细化和更准确的定位。Canny算法步骤如下。

使用高斯滤波器,以平滑图像,滤除噪声。二维高斯分布公式如下:

计算图像中每个像素点的梯度幅值和方向。此步骤方法与Sobel算子非常类似。运用一对卷积阵列,使用式(9)、式(10)、式(11)计算梯度幅值和方向,梯度幅值近似到4个可能的角度之一(一般为0,45,90和135)。

应用非极大值(Non-Maximum Suppression)抑制,以消除边缘检测带来的杂散响应。这一步也是使Canny算子优于Sobel算子最重要的步骤。

应用双阈值(Double-Threshold)检测来确定真实的和潜在的边缘。

确定出一定是边的像素点,然后遍历这些一定是边的像素点的8邻域,找到是否存在灰度值在minvalue与maxvalue之间可能是边的像素点。如果此像素点可能是边并且又在肯定是边的像素点的8邻域内,则将其标记为一定是边的像素点。将这些一定是边的像素点连接起来就是边缘。

1.2.2 分级系统及基于深度学习的苹果质量自动评级

(1)单项分级。先将检测到的苹果大小、颜色、缺陷进行单项分级。①大小(面积bw)。当bw≥ 30000时显示为A级果;当1000<bw<30000时显示为B级果;当0<bw≤1000时显示为C级果。②颜色(H分量r)。当r>1.0时显示为A级果;当0.8<r<1.0时显示为B级果;当r<0.8时显示为C级果。③缺陷(缺陷面积比Q)。用以下代码将缺陷面积占比Q表示出来。X=imclearborder(bw,4);Q=(bwarea(X)/bwarea(~bw))。当Q<0.05时 显 示 为A级果;当0.05<Q<0.10时显示为B级果;当Q≥0.10时显示为C级果。

(2)设计GUI界面。本实验将原始图像、二值图像、H分量图像、滤波图像、通过3种算子检测的边缘图像以及检测得到的大小、颜色缺陷的结果及评级展示在同一界面上,使该研究结果更清晰明了。设计GUI界面如图5所示。

图5 GUI界面

(3)总体质量评级。通过上述方法,得到苹果的大小、颜色以及缺陷评级A、B、C。本实验将最终评级细化,将三者综合在一起。若三者都是A,则整个苹果质量为A;若三者有两个A、一个B,则整个苹果质量为A-;若三者有一个A、两个B或两个A、一个C,则整个苹果质量为B+;若三者有一个A、一个B、一个C或三者都为B,则整个苹果质量为B;若三者有一个A、两个C或两个B、一个C,则整个苹果质量为B-;若三者有一个B、两个C,则整个苹果质量为C+;若三者都是C,则整个苹果质量为C。该总体评级由简单的条件语句即可完成,总体质量评级表见表2。如图5中该苹果颜色为C、大小为A、缺陷为C,故总体质量为B-。

表2 总体质量评级表

(4)基于深度学习的自动分级。上述方法检测结果非常准确,但不太便捷,需要手动选择苹果图像,检测过程较为烦琐,图像识别运行速度不够迅速,因此本文引入深度学习的方法,与上述方法相结合,通过卷积神经网络,经过图像处理和特征提取,对比预测出最终分级结果并对准确率进行比对。

卷积神经网络是深度学习中在分类识别方面最常见的,由图6可知,它的结构主要包括输入层、卷积层、池化层、全连接层和输出层。卷积神经网络可很好地实现特征提取,而SVM学习的超平面是距离各个类别样本最远的平面,用于分类的可靠性,是机器学习工具中最好的。机器学习的最终目的就是找到一个最优的分类超平面,用这个分类超平面区分开类别不同的图片。本文将CNN卷积层提取的特征向量交给SVM进行分类,这样泛化效果更好。建立整合的卷积神经网络,利用训练数据进行训练,得到卷积层的权重参数,之后将卷积层输出交给SVM,再利用上一步的特征向量对SVM进行训练(将CNN最后一层配置为HingeLoss即可成为SVM分类器)。

在机器学习过程中,分类器的训练是最重要的一部分,不断通过调节参数与训练适配特征向量,得到最适合本次研究的分类器参数。训练分类器的步骤见图7。

图7 训练分类器步骤

SVM模型有两个非常重要的参数C和γ,其中C是惩罚系数,C越高,说明越不容忍出现误差,极易造成过拟合,反之C越小易造成欠拟合。C值过大或过小都会使泛化能力变差。γ是RBF函数自带的参数,它决定了数据映射到新特征空间后的分布,γ越大,支持向量越少,γ越小,支持向量越多,支持向量的个数直接影响训练和预测的速度。使用Cross Validation和GridSearch得 到 最 优 的C和γ。SVM分类器无法一次性预测出总体级别,因此按3个特征的级别给图片贴上标签(即每组特征将每张图片标签),让其进行单项识别与预测,将评级标准按照表2合并,得到总体级别。

1.2.3 准确率判断

本文选取800个苹果样品图片(140个优质果,660个有缺陷果)作为数据集,选取图像检测结果作为评判标准,再对深度学习得到的苹果评级进行准确率判断。在800个样品图片中随机选取400个苹果样品图像进行训练,将剩下400个苹果样品图像作为测试集进行检测。统计测试集的图像检测结果与深度学习检测结果。

2 结果与分析

由表3可知,A级果及A-级果的准确率较低,但其他各级果分类准确率均超过90%,总体分类准确率平均可达91.5%,分类效果比较理想。但是,C类果判断准确而A和A-类果判断略有偏差,这说明判断条件过于苛刻,还需再调整参数,数据集不够充足,导致预测结果准确率有偏差,需补充数据。

表3 图像检测结果与深度学习结果对比

3 结论

本实验采用Matlab对苹果图像进行处理,传统图像识别方法与深度学习相结合,运用卷积神经网络CNN提取特征,支持向量机SVM进行分级预测,分级效果十分显著。通过本实验也验证了支持向量机SVM在分类识别方面确实有着非常优异的表现。这也为卷积神经网络CNN与支持向量机SVM相结合进行分类预测的方法在水果分级领域奠定了基础,也为深度学习在其他领域的应用提供了新的参考和思路。

猜你喜欢
像素点算子准确率
拟微分算子在Hp(ω)上的有界性
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
各向异性次Laplace算子和拟p-次Laplace算子的Picone恒等式及其应用
一类Markov模算子半群与相应的算子值Dirichlet型刻画
基于5×5邻域像素点相关性的划痕修复算法
高速公路车牌识别标识站准确率验证法
基于canvas的前端数据加密
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
Roper-Suffridge延拓算子与Loewner链