基于纹理和梯度特征的苹果伤痕与果梗/花萼在线识别

2018-12-04 09:04彭彦昆李永玉
农业机械学报 2018年11期
关键词:花萼伤痕正确率

李 龙 彭彦昆 李永玉 王 凡 张 捷

(1.中国农业大学工学院, 北京 100083; 2.国家农产品加工技术装备研发分中心, 北京 100083;3.北京出入境检验检疫局检验检疫技术中心, 北京 100026)

0 引言

2016年中国苹果产量已经达到了4.3×107t[1]。随着生活水平的提高,人们对苹果的品质要求越来越高,但传统的苹果外观品质分级主要依靠人工挑拣,存在耗时、准确率低,耗费人工的缺点。机器视觉技术几十年的发展,在农产品检测中发挥出巨大的优势,具有检测速度快、准确、智能化程度高的优点。机器视觉技术可对苹果的外观品质做出评判,主要包括伤痕、颜色和大小[2-6],其中苹果的颜色和大小检测已经比较成熟的应用于生产之中[7],但由于苹果的表面伤痕具有与果梗/花萼相似的特征,导致在实际生产中难以对苹果的果梗/花萼和伤痕进行区分,所以解决苹果果梗/花萼和伤痕的区分问题成为检测苹果伤痕的前提。

针对苹果的外部伤痕检测,国内外学者进行了大量的研究。THROOP等[8]利用自行设计的苹果定向结构,使得苹果的果梗/花萼不在相机视场之内,但定向结构复杂且成本较高。田有文等[9]利用高光谱成像技术结合纹理特征实现了对苹果的缺陷和果梗/花萼的识别,结果表明,采用径向基核函数所建立的SVM模型总体正确率为97.8%,但高光谱系统检测速度较慢,不能满足在线检测苹果外部品质的需要。ZOU等[10]利用3个相机实现了对苹果整个表面的信息获取,并以此完成了苹果外部伤痕的检测,但未提及果梗/花萼对伤痕检测的影响。ZHANG等[11]利用进化构造(Evolutionary constructed,ECO)特征实现了苹果果梗/花萼和外部伤痕的区分,区分的正确率达到94%。邱光应[12]利用纹理特征的方法实现了苹果外部伤痕和果梗/花萼的区分,但未对其应用范围作出规定。

针对目前苹果外部伤痕检测中存在的检测结构复杂、成本高和适用范围不广的问题,本文首先对苹果外部伤痕的等级进行区分,对于早中期的苹果伤痕,采用纹理特征的方法与果梗/花萼进行区分。而对于后期的苹果伤痕,采用边缘梯度特征的方法予以区分。再利用自行设计的苹果外部品质检测系统对算法进行试验验证。

1 材料与方法

1.1 试验材料

试验所用材料购于北京美廉美超市,为产自山东省栖霞市的红富士苹果,共150个样本,其中有外部伤痕的样本为100个。鉴于碰伤是苹果中最常见的伤痕类型,首先利用钢制小球撞击出50个碰伤苹果样本,同时在超市中选购带有虫蛀和划伤的样本各25个。小球的直径为20 mm,质量为200 g,每次从500 mm的高度落下,样本可形成直径为10 mm的碰痕,之后将所制作的碰伤苹果和选购的样本置于室温(20℃)2 h后用于分析。为了探究纹理特征和边缘梯度特征对不同时期伤痕的适用性,将形成伤痕24 h之内的规定为早期伤痕样本,早期伤痕的样本褐变较轻微,表皮有褐变但未发黑,将形成伤痕24~48 h之内的规定为中期伤痕,中期伤痕褐变较早期伤痕严重,果皮颜色为褐色。将形成伤痕48 h以上的规定为后期伤痕样本,后期伤痕的样本褐变严重,并且表皮发黑凹陷,与无伤痕果皮对比明显,图1为不同样本的早期伤痕、中期伤痕和后期伤痕的对比图。

图1 早期伤痕、中期伤痕和后期伤痕样本对比Fig.1 Comparison of early mid-term and late scars from different samples

1.2 机器视觉图像采集系统

图2 机器视觉检测系统结构图Fig.2 Structure diagram of machine vision inspection system1.相机 2.上光源 3.滚子 4.胶带传动模块 5.下光源 6.支架

本文所采用的机器视觉图像采集系统主要由相机、条形光源、支架、胶带传动模块以及滚子组成。其总体结构如图2所示。其中,为了更好地照亮苹果,光源分为4个上光源和4个下光源,上光源主要用于照亮苹果的上部,下光源用于照亮苹果的四周。为了增大苹果有伤痕部分和无伤痕部分以及背景的对比度,光源选择波长为730 nm的红色光源[13]。相机采用的是大恒图像公司生产的水星系列MER-130-30UM型相机,用于图像采集并向计算机传输数据。滚子主要起到支撑苹果向前运动,并在胶带传动模块的带动下带动苹果自转的作用。其中两个滚子组成1个工位,苹果每自转1次便向前运动1个工位,单个苹果可采集3幅不同运动状态的图像。

1.3 自动分割合成算法

相机所采集到的每幅图像共包含3个不同样本的图像,其中单个样本每前进1个工位被采集1次。为了将原图像中单个苹果样本的外观信息综合成1幅图像,利用OpenCV库设计了自动分割合成算法,将单个样本的3个不同运动状态下的分割图像合成为1幅图像,用于后续分析。图3为自动分割合成过程图。分割过程包括:首先利用cvRect函数记录每个工位的位置和大小,再将原图像利用cvDrawRect函数进行区域分割和标记,最终利用cvSetImageROI函数将原图像中不同样本的单个运动状态图像分割出来。合成过程包括:首先利用标志位a记录相机每次采集的图像编号,同时利用标志位b记录每个工位下的图像编号,b的取值分别为1、2、3,分别代表了第1、2、3工位。再利用hconcat函数对分割后的图像进行合成,最后利用合成后的图像进行进一步处理分析。

图3 自动分割合成过程Fig.3 Diagram of automatic segmentation synthesis process

1.4 感兴趣区域提取算法

相机所采集到的图像尺寸为954像素×430像素,由于研究的目的是对伤痕以及果梗/花萼进行区分,而原图像中的无用信息较多会降低纹理特征以及边缘梯度特征的差异性,故需要将感兴趣区域(即果梗/花萼和伤痕区域)提取出来,以此设计了感兴趣区域提取算法。算法利用OpenCV库函数,首先对原图像进行Otsu二值化[14-15],之后利用boundingRect函数拟合伤痕以及果梗/花萼区域,最终利用所得到的矩形大小和位置将原图像中的感兴趣区域提取出来。感兴趣区域提取过程如图4所示。

图4 感兴趣区域提取过程Fig.4 Extraction process of region of interest

1.5 纹理特征的提取

1.5.1灰度共生矩阵

灰度共生矩阵(Gray level co-occurrence matrix, GLCM)是一种常用的反映纹理特征的图像分析方法。由于纹理是灰度分布在空间位置上反复出现的结果,故在一幅灰度图像上,任意2个像素点之间存在一定的灰度关联性质[16]。灰度共生矩阵是涉及像素点距离和角度的矩阵函数[17-18],通过计算感兴趣区域图像中一定角度和距离的两点灰度之间的关联性,来反映图像在间隔、方向、变化幅度和快慢上的综合纹理信息。灰度共生矩阵的计算方法为

P(i,j,d,θ)=[(x,y)(x+D,y+D)|{f(x,y)=i;
f(x+D,y+D)=j}]

(1)

式中P——灰度共生矩阵

(x,y)——原图像中任意点的像素坐标

i——位于(x,y)处像素点的灰度

j——位于(x+D,y+D)处像素点的灰度

θ、D——(x+D,y+D)和(x,y)像素点之间偏移的角度和距离

f(x,y)——图像中坐标为(x,y)的灰度

d——灰度共生矩阵的步长,取1

其中角度一般选取为0°、90°、135°和180°,在实际计算中,为了使得参数具有旋转不变性,将4个角度所计算出的特征值取平均值。

1.5.2纹理特征参数的提取

由于原始图像中的灰度为255,共生矩阵的计算量较大,会导致检测速度变慢且不适用于在线检测,故在计算灰度共生矩阵之前,先将灰度进行降维,使其在保留原有纹理特征的基础上简化计算,之后通过式(1)计算得出图像的灰度共生矩阵。再基于所得矩阵计算其二次统计特征值,本文选择具有代表性的4种特征值进行后续分析,分别为能量/角二阶矩(Angular second moment, ASM)、对比度(Contrast, CON)、逆差矩(Inverse different moment, IDM)和熵值(Entropy, ENT)。4种特征量的计算方法为

(2)

式中A——能量/角二阶矩

p(i,j)——灰度共生矩阵元素值

k——灰度共生矩阵的维数

能量/角二阶矩主要反映了图像灰度分布均匀的程度和纹理的粗细程度。

(3)

式中C——对比度

其反映了某个像素点与领域像素点亮度的对比情况,主要用于反映图像的清晰程度和纹理的深浅程度。纹理越清晰,对比度越大,反之对比度则越小。

(4)

式中E——熵值

熵值是一个随机性的度量,当灰度共生矩阵的元素取值具有较大的随机性,则熵值也随之较大。熵值表示了原图像灰度分布的复杂程度,原图像越复杂则熵值也就越大。

(5)

式中I——逆差矩

逆差矩用于度量局部纹理变化的情况,逆差距越大则表明原图像中的纹理特征越缺少变化,局部越均匀,反之则局部差异越大。

通过灰度共生矩阵提取上述4个特征参数,通过对比早期伤痕、中期伤痕、后期伤痕以及果梗/花萼纹理特征参数,发现果梗/花萼的纹理特征参数与后期伤痕较为相似,但早中期伤痕与果梗/花萼的纹理差异明显。表1为苹果伤痕以及果梗/花萼纹理特征变量的统计结果,其中熵值和能量/角二阶矩最能反映果梗/花萼与早中期伤痕的纹理特点,故在后续分析中,采用能量/角二阶矩和熵值作为纹理特征变量参与建模。

表1 苹果伤痕纹理特征统计结果Tab.1 Statistical results of apple scar texture feature

1.6 边缘梯度特征的提取

1.6.1边缘梯度特征曲线的获取

边缘梯度特征值用于表征伤痕或果梗/花萼边缘变化的规律。在获得边缘梯度特征值之前,需提取苹果伤痕和果梗/花萼的边缘梯度特征曲线。边缘梯度特征曲线的提取过程如图5所示,首先对原图像进行Otsu二值化,利用所提取处的伤痕或果梗/花萼轮廓进行椭圆拟合并提取其中心坐标与椭圆的长轴长,由于果梗/花萼二值化处理后提取的轮廓较小,椭圆拟合之后长轴长不会超过80个像素点,故当长轴长大于80个像素点时,即实际尺寸超过5 cm,可直接判断该轮廓为伤痕轮廓,再提取其余图像椭圆拟合中心坐标正方向上80个像素点的灰度保存在double类型的数组中。其中由于原图像中存在噪声,故对得到的特征曲线进行S-G多项式拟合平滑,并以平滑后的曲线作为边缘梯度特征曲线。

图5 边缘梯度特征曲线提取方法Fig.5 Edge gradient feature curve extraction method

1.6.2边缘梯度特征参数的提取

由于不同样本之间果梗/花萼的大小和灰度规律比较相近[19],从图6b所示的果梗/花萼的边缘梯度特征曲线来看,其曲线的趋势和规律性基本一致。与果梗/花萼的边缘梯度特征曲线相比,后期伤痕由于颜色较深,曲线从伤痕部分过渡到无伤痕果皮部分时,边缘梯度特征曲线的斜率较大。其中果梗/花萼中心点的灰度与后期伤痕较为接近,一般为0~58,无伤痕果皮部分的灰度为200~250。

图6 边缘梯度特征曲线Fig.6 Characteristic curves of edge gradient

图7 求取一阶导数后边缘梯度特征曲线Fig.7 Characteristic curves of edge gradient after the first derivative was obtained

为了进一步突出果梗/花萼与后期伤痕之间的边缘梯度特征曲线的差异性,对图6所示的边缘梯度特征曲线进行多项式拟合求导,其中多项式选择为2阶,拟合的窗口数选择为11。图7为求取一阶导数后的边缘梯度特征曲线。从图7反映的边缘梯度特征规律来看,对于果梗/花萼,其一阶导数曲线特征比较明显,在距椭圆中心点20像素左右会出现一个特征峰,相比后期伤痕其特征峰出现的位置较为随机。且后期伤痕特征峰的峰强明显要高于果梗/花萼。故在后续的建模分析中,提取一阶导数处理后边缘梯度特征曲线中的峰位置和峰强度两个边缘梯度特征变量,进行后续建模分析。表2为苹果果梗/花萼与后期伤痕的边缘梯度特征值的统计结果。

表2 苹果伤痕边缘梯度特征统计结果Tab.2 Statistical results of apple scar edge gradient feature

2 结果与讨论

2.1 支持向量机建模

支持向量机算法(Support vector machine,SVM)是建立在统计学理论基础上的一种机器学习算法,已经在定性和定量判别方面有较多应用[20-24]。本文首先利用上述所提取出的6个特征变量分别建立支持向量机模型,再对变量建模结果进行比较,确定不同特征变量的适用范围。

2.1.1早中期伤痕

利用所提取到的纹理特征建立SVM模型。由于果梗/花萼的纹理特征比早中期伤痕复杂,导致果梗/花萼的熵偏大,能量值偏小,故能量/角二阶矩和熵反映果梗/花萼和早中期伤痕之间的差异效果较好。并且从表3所示的苹果早中期伤痕纹理特征的建模效果来看,熵值和能量组合所建立的支持向量机模型正确率可达到97%。但若将所提取到的边缘梯度特征参与到早中期伤痕的建模,其判别正确率仅有72%,故纹理特征可以满足果梗/花萼与早中期伤痕的识别。图8为采用线性建模的方式所建立的SVM模型结果。

表3 苹果早中期伤痕检测结果Tab.3 Apple early and mid-term scar test results

图8 纹理特征SVM建模结果Fig.8 SVM modeling results of texture feature

2.1.2后期伤痕

苹果伤痕破坏了表皮下细胞组织结构的完整性,使得本应区域化分布而被分隔开的多酚氧化酶(Polyphenol oxidase,PPO)和酚类物质接触,诱发了酶促褐变反应[25-26]。而后期伤痕由于酶促褐变反应的时间较长,苹果伤痕处果肉失水严重导致伤痕处会形成凹陷,且伤痕处已经发黑,造成伤痕部分的纹理特征与果梗/花萼相近。故在利用纹理特征去辨识果梗/花萼与此类伤痕时效果较差,但由于伤痕发黑严重,图像的灰度从伤痕部分过渡到无伤痕部分时的梯度较为明显,所以利用提取到的边缘梯度特征变量辨识的效果较好。图9为后期伤痕和果梗/花萼感兴趣区域提取图像对比。

图9 典型样本后期伤痕和果梗/花萼感兴趣区域提取图像对比Fig.9 Comparison of apple’s late bruised and stems/calyxes in typical sample

利用所提取到的峰强度和峰位置2个边缘梯度特征变量建立线性SVM模型,其中果梗/花萼的判别正确率为94%,伤痕的判别正确率为98%,总体的判断正确率为96%。表4为后期伤痕的SVM建模效果,从图10所示的SVM线性判别模型的建模结果来看,果梗/花萼的边缘梯度特征值的分布较为集中,这与图7b所示的果梗/花萼的一阶导数处理后的边缘梯度特征曲线的规律一致。

表4 苹果后期伤痕检测结果Tab.4 Verification results of apple late scar detection algorithm

图10 边缘梯度特征SVM建模结果Fig.10 SVM modeling results of edge gradient feature

2.2 整体算法设计与验证

由于单个运动状态下的苹果果梗与花萼不可能同时存在,故当提取轮廓的个数大于2时,可直接判断为该苹果是有伤痕的苹果。再结合上述所得到的模型,设计了整体的检测算法,如图11所示。算法首先对提取到的感兴趣区域的图像计算其纹理特征参数并代入纹理特征模型,当其判断为果梗/花萼时,再利用边缘梯度特征提取算法提取感兴趣区域的边缘梯度特征参数代入边缘梯度特征模型,并最终判断其是否为果梗/花萼或伤痕。

图11 整体算法流程图Fig.11 Flow chart of overall algorithm

为了验证算法的正确性,在市场选购带有伤痕和不带有伤痕的苹果各40个,并在选购的时候不进行早期伤痕、中期伤痕和后期伤痕的区分。表5为算法验证的结果,其中对于果梗/花萼的判别正确率为100%,伤痕的判断正确率为90%,总体的判断正确率为95%。这表明,利用纹理特征参数与边缘梯度特征参数结合可以实现对苹果果梗/花萼与伤痕的识别。

表5 算法验证结果Tab.5 Algorithm verification results

2.3 讨论

本文基于自行设计的苹果机器视觉检测系统,先利用自动分割合成算法对单个苹果3个不同运动状态下的图像进行融合,使得合成后的图像包含苹果的整个外部信息,再利用感兴趣区域提取算法提取苹果中的果梗/花萼或伤痕图像,并最终利用特征参数提取算法提取感兴趣区域中的纹理特征和边缘梯度特征进行果梗/花萼和伤痕的区分。试验结果表明,对于早中期伤痕,纹理特征可以较好的区分,SVM模型对于果梗/花萼和伤痕的判断正确率总体为97%。但对于后期褐变较为严重的样本纹理特征并不适用,故采用边缘梯度特征的方法对后期伤痕和果梗/花萼进行辨识,果梗/花萼和伤痕的判断正确率为96%,装置每秒可检测3个苹果样品。以上结果表明,利用纹理和边缘梯度特征可以满足苹果伤痕和果梗/花萼的识别,并且系统整体结构较为简单,算法的适用范围广。

3 结论

(1)基于OpenCV库编写了自动分割合成算法,使得合成后的图像包含单个样本3个不同运动状态,以获得苹果完整的表面信息。为了减小背景对算法的影响,对合成后的图像利用感兴趣区域提取算法,将果梗/花萼与伤痕轮廓提取出来再进行后续处理。

(2)利用灰度共生矩阵法提取感兴趣区域中的纹理特征,并选取最能反映早中期伤痕和果梗/花萼区别的能量/角二阶矩和熵值两个变量用于后续的SVM建模分析。其中,果梗/花萼的判别正确率为98%,伤痕的判别正确率为96%,总体的判断正确率为97%。

(3)鉴于对后期伤痕利用纹理特征判别效果不佳,为了扩大总体算法的应用范围,利用边缘梯度特征提取算法提取感兴趣区域的边缘梯度特征曲线,再将所提取到的峰位置和峰强度参与SVM建模分析。其中,果梗/花萼的判别正确率为94%,伤痕的判别正确率为98%,总体判别正确率为96%。

(4)综合上述建模结果,设计了果梗/花萼和伤痕区分的总体算法,算法可适用于任意时期的伤痕与果梗/花萼的区分。对算法的判别效果进行试验验证,果梗/花萼的判别正确率为100%,伤痕的判别正确率为90%,总体正确率为95%。验证结果表明,算法可以实现对果梗/花萼和伤痕的区分。

猜你喜欢
花萼伤痕正确率
萨拉热窝:一座美丽而充满伤痕的城市
个性化护理干预对提高住院患者留取痰标本正确率的影响
门诊分诊服务态度与正确率对护患关系的影响
玫瑰茄转录组测序及花青素合成相关基因表达分析
抢亲
抢亲
18个猕猴桃优良品种雌花形态多样性比较
生意
生意
《归来》与“后伤痕”叙事