基于K-means聚类的猕猴桃花朵识别方法
2020-10-17刘浩洲陈礼鹏穆龙涛高宗斌崔永杰
刘浩洲,陈礼鹏,穆龙涛,高宗斌,崔永杰
(1.西北农林科技大学 机械与电子工程学院,陕西 杨凌 712100;2.农业农村部农业物联网重点实验室,陕西 杨凌 712100)
0 引言
猕猴桃花期授粉质量是猕猴桃品质重要影响因素之一[1]。猕猴桃花开时间短,自然状态下仅靠风媒或蜜蜂授粉,难以满足果园生产要求[1-2]。猕猴桃果园中普遍实行人工授粉,劳动强度大,工作效率低,且劳动力成本高[3-4]。
目前已有关于猕猴桃果园机器人研究,但多集中于果实采摘方面[5-8],缺乏对花朵的机器视觉研究,而识别花朵是授粉机器人关键技术之一,因此提出识别授粉作业目标方法具有必要性[9]。
K-means聚类算法是一种无监督学习方法,适用于处理自然条件下复杂果园背景图像[10-14]。该算法可根据图像中不同部分特征进行自动分割。图像经K-means聚类分割后,其结果为得到K幅从原图像中分割得来的新图像,但无法自动从中选出目标结果,存在局限性。为从聚类结果中自动选出目标图像,使用近年来在分类任务中表现良好的卷积神经网络[15-20]对聚类结果进行分类。
本文研究猕猴桃花朵的自动识别方法,采用K-means聚类法分割原图像,再用卷积神经网络分类分割结果。当该神经网络选出目标图像后再对其进行形态学运算,去除噪声,最后在原图中标定目标物位置,实现花朵识别,提高了授粉机器人自动化程度。
1 图像采集
图像采集地点为西北农林科技大学眉县试验站,拍摄设备为Microsoft相机。由于棚架栽培模式下猕猴桃花朵都竖直朝下开放,且现有末端执行器工作时竖直向上进行喷雾,因此采集图像时采用竖直向上拍摄的方法。
猕猴桃果树授粉环境如图1所示。Microsoft相机置于三脚架上,与计算机相连,镜头距花朵30cm,在猕猴桃棚架下方随机位置,竖直向上拍摄,共采集3 000幅光照良好、花朵清晰的图像供本次试验使用。图像中一般存在花蕊、花瓣、枝叶及天空4类 物体,如图2所示。
图1 猕猴桃果树授粉环境
图2 试验所使用图像示例
2 猕猴桃花朵识别方法
识别方法流程如图3所示。首先,对图像进行K-means聚类,分割出包括花蕊在内的4类图像;然后由经过训练的卷积神经网络选出4类图像中包含花蕊的一类图像;最后,对选出的图像进行去噪处理,并在原图上圈出花蕊的位置。
图3 识别方法流程
具体流程如下:
1)K-means聚类分割。对原图像[见图4(a)]进行K-means聚类分割,聚类数目为4。K-means聚类算法对图像进行处理后,将原图像分割为4类,分别为花蕊、花瓣、枝叶、天空,如图4(b)~(e)所示。
聚类时,选择欧式距离的平方作为数据样本间的相似性度量,即
D(xi-xj)=‖(xi-xj‖2
(1)
式中D—数据样本间相似性度量;
xi—待聚类的数据样本;
xj—初始聚类中心。
D值越小,样本xi与xj越相似,差异度越小。算法在每次迭代中,当所有样本都被分类后修改聚类中心,再进入下次迭代,直到不存在能重新分配给不同类别的数据样本,或聚类中心不再发生变化。
2)卷积神经网络分类。图像被聚类分割后,产生4个不同类别。为自动将目标图像选出,本试验搭建一个小型卷积神经网络对聚类后结果进行分类。
使用的卷积神经网络结构如图5所示。卷积层的作用是计算并提取图像中的特征,池化层的作用是降低模型参数和过拟合程度,最后是Softmax全连接层,用于最后分类[8],即
式中V—一个数组;
Vi—数组V中第i个元素;
Vj—数组V中第j个元素;
Si—第i个元素的Softmax值。
该网络训练集由K-means聚类分割得到的图像组成。当该卷积神经网络训练好后,可对每次K-means聚类分割出的4幅图像进行分类,选出并保留花蕊图像,如图4(b)所示。
3)形态学运算。聚类分割出的花蕊图像带有噪声,还需要对其做进一步的处理,除去噪声,最终提取出每幅图像中花朵位置信息。
通过形态学运算,先对分割出的图像进行腐蚀并填充孔洞[(见图4(f)];除掉一部分噪音,同时减少图像中不同花蕊的相互粘连情况,形成相互独立区域;再将得到的图像二值化后去除小面积噪声,如图4(g)所示。
4)最后计算出剩余每个独立区域的形心,以其形心为圆心、长轴和短轴的均值为直径,在原图上画圆,标定出每幅图像上各个花朵位置,完成花朵识别,结果如图4(h)所示。形心(xc,yc)计算方法为
(3)
式中xi—各部分横坐标;
yi—各部分纵坐标;
Ai—各部分像素数。
图4 识别过程
图5 卷积神经网络结构
3 识别方法验证试验
为训练卷积神经网络,使其能有效对聚类结果进行分类,用K-means聚类法对采集到的图像集进行分割。从聚类结果中选出4 000幅图像作为卷积神经网络训练集,2 000幅为花蕊图像,另2 000幅为背景图像。
训练方法是附加动量的随机梯度下降法,动量为0.9,学习率设置为0.002 5。在Matlab2017a上训练该网络,训练中迭代次数与正确率关系如图6所示。
图6 卷积神经网络训练过程
最终卷积神经网络在训练集上正确率为99.2%。训练结果表明,该卷积神经网络可以有效分类出聚类分割后得出的花蕊图像。
从现场拍摄的图像中选出1 000幅花朵图像作为测试集,使用本文方法对测试集图像花朵进行识别,识别每步骤结果如表1所示。
表1 每步骤成功率
对测试集图像进行K-means聚类分割,其中误分割图像54幅(分割出带有花蕊的图像中还包含了枝叶、天空部分,且这些部分像素数为花蕊像素数的1/4以上),正确分割图像946幅,分割成功率为94.6%,聚类后卷积神经网络分类的成功率为97.9%。由于K-means聚类、卷积神经网络及形态学处理步骤的表现都会影响到最后对花蕊的识别结果,最终花朵识别成功率为92.5%,表明该方法能有效识别猕猴桃花朵,有助于授粉机器人对作业目标的信息感知,提高了其自动化程度。
不同情况下识别结果示例如表2所示。对于图像中花朵之间相互独立、不存在遮挡的案例,该算法有较好识别效果。首先K-means聚类分割出花蕊及其他背景图像,且花蕊图像中噪点较小;其次,卷积神经网络对前一步分割出的4类图像进行了有效分类,选出花蕊部分;最后,形态学运算处理噪声和孔洞,成功标记出花蕊所在位置。
表2 不同情况下识别结果示例
对于图像中花朵存在相互遮挡的案例,K-means聚类能将花蕊部分从图像中成功分割,同时卷积神经网络准确分类;形态学运算能将分割后粘连程度小的花蕊分离,但无法将粘连程度较大的花蕊分离,导致识别失败。
对于其它失败案例,部分因为K-means聚类分割错误,在包含花蕊的一类图像中错误的分割入了大量枝叶,导致后期形态学运算失效;另一方面是由于卷积神经网络在K-means分割后不能从4类图像中选出花蕊。
4 结论
1)在测试集上,K-means分割出花蕊成功率为94.6%,说明该方法能有效分割花朵图像。
2)卷积神经网络在训练集上成功率为99.2%,测试集上成功率为97.9%,说明该网络模型过拟合程度低,能有效将聚类后图像分类,从中选出花蕊图像。
3)最终,基于K-means聚类的猕猴桃花朵识别方法成功率为92.5%,表明该方法有较高识别成功率,可以为猕猴桃授粉机器人精准作业提供帮助[9]。
5 展望
针对目前缺少针对花朵识别方法研究而导致的现有授猕猴桃粉机器人无法自动作业问题,提出基于K-means聚类的猕猴桃花朵识别方法,实现对猕猴桃花朵自动识别,提高了现有授粉机器人自动化程度。同时,实现花朵自动识别,也有利于果园产量预测,有助于果园管理工作。
试验中图像采集距离和光照条件都较为固定,没有考虑逆光和不同拍摄角度问题。下一步研究在不同光照、距离条件下改进识别方法,使其更有适用性,以满足机器人全天作业需求。