基于K-means聚类的苹果图像处理与分级设计*
2021-09-15张婧婧程芸涛达新民
张婧婧 程芸涛 达新民
(新疆农业大学计算机与信息工程学院 乌鲁木齐 830052)
1 引言
K-means聚类是一种迭代求解的聚类分析算法,它根据样本距离(相似性)将样本聚成一类,使得同一簇内的样本相似度高,反之则差异性大。该算法以其易于实现、收敛速度快且聚类效果好的优势运用于图像缺陷检测[1]、遥感信息监测[2]、等值建模[3]、物流中心选址[4]、案件预测[5]甚至肿瘤基因变异[6]等领域。本设计中针对红富士苹果分级过程中各类指标的处理要求,采用K-means聚类算法进行苹果图像分割及缺陷检测,旨在为其它果类的自动分级设计提供参考。
《新疆阿克苏苹果质量标准体系》中,红富士苹果分级主要针对红色着色比、表面缺陷、果径大小指标进行筛选。目前静态的苹果检测方法虽较为精准[7~9],但难以满足实时性要求。采用神经网络的方法建立苹果等级模型,仍面临学习速度慢、训练成本高、分级效率低的风险[10]。此外,不同的机器学习方法中训练参数较为固定,不易根据不同种类苹果而灵活改变评价标准。本设计基于K-means聚类算法对苹果图像进行分类,结合Gamma变换、OTSU算法,对苹果大小、颜色、缺陷等特征建立模型,重点探讨果类分级的快速方法与高效策略。
2 苹果图像分级原理
苹果分级的主要指标为红色着色比、表面缺陷、果径大小,这三项指标的分级筛选在苹果图像处理过程中都需要进行果体区域与背景的分割,之后建立相应的模型,由此产生了本设计中苹果的快速分级策略,如图1所示。
图1 苹果分级系统的设计
3 K-means聚类与轮廓分割
K-means聚类是一种较为经典的类别划分算法,在大规模数据进行聚类时广泛采用。K-means算法以k为参数,把n个对象分为k簇,使簇内具有较高的相似度,而簇间的相似度较低。
K-means算法的具体实现流程为
设输入样本集为D={x1,x2,…,xm},聚类的簇树k,最大迭代次数N,输出是簇划分C={C1,C2,…,Ck};
1)从数据集D中随机选择k个样本作为初始的k个质心向量:{μ1,μ2,…,μk}
2)对于n=1,2,…,N:
(1)将簇划分为C,初始化Ct=φ,t=1,2…k;
(4)如果所有的k个质心向量都没有发生变化,则转到步骤3);
3)输出簇划分C={C1,C2,…Ck}。
K-means聚类法主要用于数据集的类别划分,实验中采用K-means聚类首先完成了苹果轮廓与背景的分割[11]。如图2(a)所示,将苹果原图转换到YCbCr颜色空间。基于YCbCr图片使用K-means算法进行聚类,设簇数为2,通过OTSU最大类间方差法得到最优分阈值,将灰度图转换为二值图,并使其黑白色颠倒,如图2(b)。使用大小为10的模版对图片做闭预算,并填充内部小孔洞,得到的白色区域即为检测得到的果实区域,苹果面积为该区域的像素数,实验测得其像素值为62307,如图2(c),将原图点乘图(c),得到去除背景后的实际果实区域如图2(d)所示。
图2 苹果的轮廓分割
4 苹果颜色分级
4.1 Gamma变换
Gamma变换主要针对输入图像灰度值进行非线性操作[12],使输出图像灰度值与输入图像灰度值呈指数关系:
其中指数即为Gamma,图像变换原理如图3所示。
图3 灰度变换示意图
在图3中,将原图像f灰度变换到新图像fN,f中灰度值低于low_in的像素点在fN中灰度值被赋值为low_out。同理,f中灰度值高于high_in的像素点变换到fN时其灰度值也被赋值为high_out。对于参数Gamma,当Gamma<1时,灰度图像靠近low_in的灰度值被升高,其灰度变化范围被拉伸,灰度图像靠近high_in的一端其值被压缩,图像对比度增强,实验中采用此变换旨在加强颜色的阈值分割效果。
4.2 颜色分级模型
苹果颜色分级实验基于HIS颜色空间,利用色度值H(Hue色调)分量提取苹果表面红颜色,并在H域对果实区域做灰度变换,使得图片果体变得更明亮,如图4(b)所示;再通过Gamma变换将图像中灰度值区间拉伸[13],得到更大的H域对应分割阈值,颜色分级后的效果如图4(c)所示。
图4 颜色提取方法的测试效果
统计图4中白色区域占整个苹果区域的像素数占比,得到苹果的红色着色比为65.537%。
4.3 分级效果对比
在颜色分级效果测试中,为了验证HIS空间颜色提取、分级的优势,笔者将HIS空间的颜色提取与另一种超红超绿算法[14]进行了对比分析。与本设计相区别,超红超绿算法基于RGB颜色空间,对比效果如图5所示。
图5 颜色特征提取方法的对比效果
据实验数据对比,就同一个苹果图片而言,超红色-超绿色提取与HIS空间提取的差异很明显。如图5中全红苹果的着色比计算结果为超红色-超绿色提取68.467%,HIS空间提取99.359%;条纹苹果的着色比计算结果为前者32.187%,后者8.623%,实验结果表明提取苹果图像中红色特征分量时,超红色-超绿色提取比HIS空间提取对光照更为敏感。
5 果皮表面缺陷检测
苹果表面缺陷包括疤痕、腐烂、虫咬、裂伤、碰压伤等,呈现不规则形状的缺陷类型,就图像缺陷的灰度差异而言,无法设定一个固定的阈值完成分割。实验中采用K-means方法在YCbCr颜色空间聚类,簇数设为3时缺陷检测效果较好,如图6所示。
图6 苹果缺陷的聚类效果
图6(b)为YCbCr空间簇数为3的聚类效果,图6(c)、(d)分别呈现G空间簇数为2,及B空间簇数为2的聚类对比实验结果,不难看出,图6(b)将苹果正常果体和缺陷区域以及背景较好区分,随后使用OTSU法得到转换为二值图的阈值,再将其转换为黑白二值图,使用大小为7的碟型结构元素对图片做开运算,填充空洞连接小物体,面积大小无明显改变,如图7所示。
图7 图片的开运算测试
去除较小的孤立区域,对连通域进行标记,获取区域像素面积,并画出BoundingBox图,如图8所示。
图8 苹果图像的缺陷区域测试
计算上图的输出缺陷区域面积、苹果总面积以及缺陷占比为缺陷区域面积:93956,苹果面积:4443045,比率:2.115%。
6 苹果果径的测量
基于苹果的俯视图,苹果果径大小测量只需先将果体与背景进行聚类分割,然后绘制其最小外接圆,即可计算其直径,实验中得到果径像素为708.94,如图9所示。
图9 苹果的果径测量
7 测试与结果
基于Matlab-GUI工具,笔者进行了可视化系统的集成实验,其界面设计如图10所示。以某红富士苹果的三张样本图:左视图、右视图、俯视图为例,分别设计了缺陷检测、颜色分级与果径测量的实验环节,最终以《新疆阿克苏苹果质量标准体系》的红富士分级标准,检验该苹果的等级为“D”,即质量没有达到一、二、三级果的指标要求,符合实际检验结果。
与此同时,为了验证系统能否符合流水线的实时作业标准,笔者对像素为278*288的苹果图像进行了分级运算的时间测试,其中30次的运算时间如表1所示。
表1 分级时间测试
8 结语
综上,苹果图像的分级测试效果较好。采用K-means聚类算法部分在于苹果的果体轮廓、表面缺陷在图像分级中的区分度较大,且噪声的干扰较小;K-means聚类过程中调节k参数即可修正聚类标准,方式灵活;与簇数为2的K-means聚类相比,簇数为3的K-means聚类方法更适于果皮的缺陷检测。此外,采用Gamma变换能够将果体的灰度变化范围拉伸,阈值分割效果增强。同时,分级系统运算时间大致在0.7s~1.0s之间,适当调整果体间距(建议为1.2m~1.5m),将符合一般的流水线作业速度。进一步地,如果灵活调整技术参数,上述图像处理方法也能够完整呈现其它果实类图像的自动分级过程。