基于SOM-K-means算法的番茄果实识别与定位方法

2021年1月
农业机械学报
第52卷第1期
doi:10.6041/j.issn.1000⁃1298.2021.01.003
基于SOM K⁃means 算法番茄果实识别与定位方法
李 寒1 陶涵虓1 崔立昊2 刘大为2 孙建桐1 张 漫2
(1.中国农业大学现代精细农业系统集成研究教育部重点实验室,北京100083;2.中国农业大学农业农村部农业信息获取技术重点实验室,北京100083)
摘要:为解决多个番茄重叠黏连时难以识别与定位的问题,提出一种基于RGB D 图像和K⁃means 优化的自组织
映射(Self⁃organizing map,SOM)神经网络相结合的番茄果实识别与定位方法㊂首先,利用RGB D 相机拍摄番茄图像,对图像进行预处理,获取果实的轮廓信息;其次,提取果实轮廓点的平面和深度信息,筛
选后进行处理;再次,将处理后的数据输入到采用K⁃means 算法优化的SOM 神经网络中,得到点云聚类结果;最后,根据聚类点,通过坐标转换得到世界坐标信息,拟合得到各个番茄的位置和轮廓形状㊂以果实识别的正确率和定位结果的均方根误差
(RMSE)为指标对该算法进行验证和分析,采集80幅图像共366个番茄样本,正确识别率为87.2%,定位结果均方根误差(RMSE)为1.66mm㊂与在二维图像上利用Hough 变换进行果实识别的试验进行对比分析,进一步验证了本文方法具有较高的准确性和较强的鲁棒性㊂
关键词:番茄果实;深度点云;图像分割;神经网络;识别与定位;SOM K⁃means 算法钝化膏
中图分类号:S641.2;TP391.41
文献标识码:A
文章编号:1000⁃1298(2021)01⁃0023⁃07
OSID
:
收稿日期:20200327 修回日期:202004
25
基金项目:国家自然科学基金项目(31971786)和北京市创新训练项目(201910019366)
作者简介:李寒(1986 ),女,副教授,主要从事农业电气化与自动化研究,E⁃mail:cau_lihan@cau.edu 通信作者:张漫(1975 ),女,教授,博士生导师,主要从事农业电气化与自动化研究,E⁃mail:cauzm@cau.edu
Recognition and Localization Method of Tomato Based on
SOM K⁃means Algorithm
LI Han 1 TAO Hanxiao 1 CUI Lihao 2 LIU Dawei 2 SUN Jiantong 1 ZHANG Man 2
(1.Key Laboratory of Modern Precision Agriculture System Integration Research ,Ministry of Education ,
China Agricultural University ,Beijing 100083,China
2.Key Laboratory of Agricultural Information Acquisition Technology ,Ministry of Agriculture and Rural Affairs ,
China Agricultural University ,Beijing 100083,China )
Abstract :A method of tomatoes segmentation based on RGB D depth images and K⁃means optimized SOM neural network was proposed,aiming to solve the problem of automatic recognizing and localizing difficulties caused by fruits overlapping and adherence.Firstly,the contours information of the fruits was obtained from preprocessed images taken by an RGB D camera.Secondly,two⁃dimensional information and depth information of the points of contours were filtered and processed.Thirdly,the processed information was used as the input to the SOM neural n
etwork optimized by the K⁃means algorithm for training and a model for the point cloud clustering was established.Finally,the position and contour shape of each tomato were obtained.To verify the performance of the algorithm,the correct rate and the root mean square error of the fruit recognition results was used as evaluation indicators.Totally 80pictures containing 366tomatoes were taken as the sample,and accuracy,precision,sensitivity and specificity were taken as evaluation indicators.The correct rate was 87.2%,the root mean square error was 1.66mm.It was proved that the method had higher accuracy and better robustness compared with the method for two⁃dimensional images based on Hough transform.This method solved the problem of occlusion of tomato fruits in real environment to a certain extent,and provided a new idea for combining the three⁃dimensional coordinate information and self⁃organizing neural network for fruit segmentation.Key words :tomato fruit;depth point cloud;image segmentation;neural networks;recognition and
localization;SOM K⁃means algorithm
0 引言
在农业生产中,由于果实的状态存在差异性㊁局部植株样貌存在复杂性[1-2],因此目前绝大多数采摘工作由人工完成㊂为了节约成本㊁提高采摘效率,采摘机器人已广泛使用,机器人自动采摘时对果实
的准确识别已成为研究热点[3-4]㊂自动采摘一般分为果实识别㊁定位㊁采摘,果实识别和定位的准确与否对采摘结果至关重要㊂
基于果实二维图像信息,孙建桐等[5]提出一种基于几何形态学和迭代随机圆相结合的目标提取算法,以分割粘连番茄果实㊂李寒等[6]提出,对粘连或被遮挡的番茄果实采用局部极大值法和随机圆环变化检测圆算法进行目标提取,再使用SURF算法进行目标匹配㊂SI等[7]提出通过立体匹配和随机环算法进行苹果果实定位㊂由于没有结合果实的深度信息,这些方法对于复杂自然环境下粘连或被遮挡的果实识别效果有限㊂MEHTA等[8]提出通过多个相机得到伪立体视觉,进而对番茄进行定位,虽然引入了立体视觉,但是需要多个相机,成本较高,算法也较为复杂㊂
随着科学技术的发展,RGB D相机(可以独立获取彩图像和深度图像的相机)的出现为解决该问题提供了思路[9-10]㊂虽然已经有大量研究成果[11-14],但其正确识别率和识别速度还不能满足大批量采摘的要求㊂
根据采摘机器人对果实进行识别和定位的要求,需要研究一种快速㊁准确的重叠果实分割方法[15-17]㊂聚类方法在图像分割中的应用有很多研究成果㊂聚类(Clustering)方法可分为划分法㊁层次法㊁密度法㊁网格法㊁模型法等㊂自组织映射(Self⁃organizing map,SOM)算法在聚类模型法中较有代表性,它可以通过自身训练,自动对输入模式进行聚类,具有简明性和实用性[18-19]㊂K⁃means算法在划分法中有代表性,具有设计简单㊁收敛快速㊁聚类有效的特点[20-22]㊂
本文以番茄为研究对象,使用ZED相机采集图像,综合颜信息和深度点云信息,对番茄果实的识别㊁分割和定位进行研究,将SOM神经网络和K⁃means算法相结合,提出一种基于RGB D图像和K⁃means优化的SOM算法(SOM K⁃means)的番茄果实识别与分割方法,以解决因番茄果实粘连㊁遮挡而造成的图像难以分割的问题㊂
1 材料与方法
1.1 试验材料与设备
试验所用番茄图像拍摄于中国农业科学院番茄种植大棚内㊂拍摄时间2019年1月3日15:00 16:30和2019年1月8日14:00 16:00,光线良好,试验图像如图1所示,并用游标卡尺对每个番茄的实际半径进行测量㊂大棚内所种番茄果实品种是实验品种,果实大小适中且多处存在番茄重叠现象㊂番茄是否成熟由有经验的番茄采摘人员确认
图1 试验番茄图像
Fig.1 Test tomato image
使用Stereolabs公司生产的ZED相机采集图像,该相机为双目相机,可以获取图像的深度信息㊂在Windows平台上,通过Visual Studio2015将ZED 相机与OpenCV库以Cmake为编译器进行结合,成功实现了对图像三维信息的处理㊂
1.2 果实识别与定位方法
果实识别与定位方法包括3个步骤:RGB图像预处理;深度点云处理;点云数据聚类及果实轮廓拟合㊂具体流程如图2所示
图2 果实识别与定位流程图
Fig.2 Flowchart of fruit recognition and localization  1.2.1 RGB图像预处理
考虑到番茄果实颜与周围种植环境的显著差
42农 业 机 械 学 报                 2021年
异,将采集到的RGB 位图进行转换,运用HSV 空间对番茄进行处理,其中H ㊁S ㊁V 分别表示图像的调㊁饱和度和亮度㊂首先对图像的亮度分量V 进行脉冲噪声判断,若存在噪声则对图像进行滤波增强处理㊂通过反复试验,获得成熟番茄果实的H ㊁S ㊁V 分量的灰度取值范围,对不在该范围里的点进行过滤,再经过二值化得到将番茄果实与其他物体分开的二值图像㊂关于阈值的选取,由于实际果实检测时是实时拍摄,使用自适应取值会导致延迟较长,不利于实际采摘㊂所以本文方法以番茄果实是否成熟为界限,经数据分析和测试,设定H ㊁S ㊁V 分量的灰度范围分别为0~20㊁170~180,110~255,46~
255,从而对图像进行分割,剔除灰度范围外的部分,实现成熟番茄果实的分割㊂对二值图像进行分割,利用形态学闭运算去掉内部轮廓㊁小轮廓以降低误识别率㊂但由于在实际采摘过程中,番茄会出
网页游戏开发技术现叶子遮挡㊁粘连的情况,因此还需要根据图像的深度信息对不同番茄果实进行分离㊂
1.2.2 深度点云处理ZED 相机提供了双目立体视觉的功能,因此可以生成图像的深度图,如图3所示㊂ZED 相机可以检测的有效范围是0.3~5m㊂较浅的颜表示距离较小;较深的颜表示距离较大㊂完全黑的点表示检测距离超出了ZED 相机的有效检测范围㊂这些点的深度是非数字的,被滤除㊂
在图3中,不同颜轮廓上点的深度差大于同一个番茄果实轮廓上点的深度差的最大值,表明这些点属于不同的番茄果实轮廓
图3 试验图像深度图
Fig.3 Test image depth map 
使用ZED 相机获取图像分割信息的同时也可
以获得轮廓矢量信息㊂轮廓矢量中的每个元素都是一个点结构㊂在深度图中读取每个点的三维坐标信息;之后遍历这些点,通过ZED 相机自带的getValue 函数对图像进行三维重建,将世界坐标系转换为相机坐标系进而得到点云中的点在相机坐标下的三维坐标信息㊂通过输入输出流把点云的三维坐标信息导入到本地文件中并具体分为二维坐标和深度信息㊂考虑到ZED 相机识别距离范围
的局限性,为了提高SOM 神经网络聚类的准确性,在获取数据文件后,对数据进行过滤,通过密度聚类对具有高分散性的点进行滤波,以获得精度更高的点㊂
1.2.3 点云数据聚类及果实轮廓拟合
本文用K⁃means 算法对SOM 算法进行优化,提出SOM
K⁃means 聚类算法㊂将已获取的点云数据
进行处理后,使用SOM
K⁃means 算法对其进行聚
类,进一步得到识别和定位结果㊂
(1)SOM 算法SOM 算法是一种聚类和高维可视化的无监督
学习算法㊂SOM 神经网络是一种非监督㊁自适应㊁自组织的网络,它由输入层与输出层(也叫作竞争层)组成,输出层中的一个节点代表一个需要聚成的类㊂训练时采用 竞争学习”的方式,每个输入的样例在输出层中到一个和它最相似的节点,称为激活节点㊂接着对激活节点的参数进行更新,同时,和激活节点临近的点也根据它们距激活节点的距离适当更新参数㊂
设输入样本为X =(x 1,x 2, ,x n ),是一个n
维向量,则输入层由n 个输入神经元组成;输出层
W i =(w i 1,w i 2, ,w in ),1≤i ≤m ,有m 个权值向量,则输出层由m 个输出神经元组成㊂输入层与输出层中的神经元互相连接,其结构如图4所示
图4 SOM 算法网络结构图
Fig.4 SOM algorithm network structure diagram
SOM 算法的步骤如下:①初始化,设定网络的
权值㊁学习率初值㊁邻域半径以及学习次数㊂权值使
用较小的随机值进行初始化,并对输入向量和权值做归一化处理
X ′=X /‖X ‖
(1)W ′i =W i /‖W i ‖
(2)
式中 X ′  进行归一化处理后的输入向量
W ′i
进行归一化处理后的权值向量②采样并随机选取输入量,将数据集中的样本输入到神经网络中㊂③样本与权值向量做点积,进行竞争,点积值最大的输出神经元记为该样本的获胜神经元㊂④对权值进行更新,对获胜的神经元及其拓扑邻域内的神经元的权值进行更新㊂
W (t +1)=W (t )+η(t ,d )(X -W (t ))
(3)
5
2第1期           李寒等:基于SOM K⁃means 算法的番茄果实识别与定位方法
其中η(t,d)=η(t)e-d(4)式中 t  训练时间
d  获胜神经元的拓扑距离
η  学习率,是关于t与d的函数
W(t)  更新前的权值
其中,η(t)一般取迭代次数的倒数㊂⑤更新学习率η及拓扑邻域N,其中,N随时间增大距离变小㊂⑥判断模型是否收敛,如果学习率η≤ηmin或达到预设的迭代次数,结束算法,否则跳转到步骤②㊂该算法的优点是无需监督,无需提前告知分类数便能自动对输入模式进行聚类,容错性强,对异常值和噪声不敏感㊂其缺点是在训练数据时会出现有些神经元始终不能胜出,导致分类结果不准确;SOM 网络收敛时间较长,运算效率较低㊂
(2)K⁃means算法
K⁃means算法采用距离作为相似性的评价指标,即数据对象间的距离越小,则它们的相似性越高,越有可能为同一个类簇,并把得到紧凑且独立的簇作为最终目标㊂
K⁃means算法步骤如下:①从数据集中随机选取k个数据对象作为k个簇的初始聚类中心点㊂②计算剩余每个数据对象与各个簇的聚类中心之间的距离,并把每个数据对象归到距离它最近的聚类中心的类㊂③更新每个簇的聚类中心,即根据聚类中现有的对象重新计算每个簇的聚类中心,以各个簇内所有对象的平均值作为新的聚类中心㊂④重复步骤②㊁③直至新的聚类中心与原聚类中心相等或小于指定阈值,算法结束㊂
该算法的优点是算法快速㊁简单,收敛速度快;缺点是初始聚类中心的设定对于聚类结果影响较大;聚类种数k需要预先给定,而在很多情况下k的估计是非常困难的㊂
(3)SOM K⁃means算法舵角指示器
基于SOM算法和K⁃means算法的步骤以及各自的优劣,本研究将二者结合,对SOM算法进行优化㊂由于SOM算法无需提前告知分类数便能自动对输入模式进行聚类,但在训练数据时可能出现有些神经元始终不能胜出,导致分类结果不准确,且网络收敛时间较长;而K⁃means算法的优点便是收敛速度快,但初始聚类中心和k的大小很难提前确定㊂因此,本文提出SOM K⁃means算法,即SOM的优化算法,将SOM与K⁃means算法结合,既解决了K⁃means算法中初始聚类中心和k的设定问题,又克服了SOM算法中网络收敛较慢㊁分类结果不准确的缺陷㊂
SOM K⁃means算法步骤如下:①将数据集输入到SOM神经网络中进行聚类,输出分类种数以及初步分
类结果㊂②将步骤①中得到的分类种数作为k值,分类结果中每一类中随机取一个数据对象作为初始聚类中心,执行K⁃means算法进行聚类并得到最终结果㊂
本文算法在保持SOM网络自组织特性的同时,创新性地将SOM算法和K⁃means算法相结合,融合了SOM和K⁃means算法的优点,又弥补了两种算法的缺陷,在分类结果的准确度和运算效率上都有了较大的提高㊂SOM K⁃means算法的流程图如图5所示
图5 SOM K⁃means算法流程图
Fig.5 Flowchart of SOM K⁃means algorithm
本试验获得的番茄轮廓点的数据为一个含有3个元素的一维向量(x,y,z),其中,x和y为二维平面上的横㊁纵坐标值,z为深度图像中点的深度㊂对输入数据的属性进行处理,将x2+y2作为一类属性,将z作为一类属性,并将处理后的数据输入到改进后的SOM神经网络中,执行SOM K⁃means算法,得到图像中番茄果实的个数和轮廓上所有点的分类结果㊂再根据分类结果,对类中的点采用最小二乘法拟合出其所属的圆,该圆即为最终得到的各个番茄果实轮廓㊂
1.2.4 算法性能评价
经上述操作后能得到番茄识别结果,进而对识别和定位结果进行分析㊂本试验通过正确识别番茄个数与图中实际番茄数是否相等来评价识别结果;通过果实实际半径与拟合轮廓半径比较来对果实定位精度进行评价㊂
在结果分析中,首先将图像的相机坐标系转换为世界坐标系,以便与真实值进行比较,进而对识别结果和定位精度进行评价㊂
对于识别结果的评价,统计图像中实际番茄个数㊁算法识别番茄个数㊁算法漏识别番茄个数㊁正确
62农 业 机 械 学 报                 2021年
识别番茄个数㊁错误识别番茄个数㊂输出结果中,黄的圆为算法识别的番茄轮廓,算法识别番茄个数即为图中黄圆的个数,正确识别番茄个数即为图中黄圆本身与实际番茄果实半径和圆心误差分别不超过5.00mm 和3.00mm 的黄圆个数,错误识别番茄个数即为图中黄圆本身与实际番茄果实半径和圆心误差分别大于5.00mm 和3.00mm 的黄圆个数㊂由正确识别的番茄个数占实际番茄个数的比例计算出识别的正确率㊂
对于定位精度的验证,随机抽取结果图的部分样本,通过比较实际番茄半径和拟合轮廓半径,计算出识别结果的均方根误差㊁平均偏差㊁平均相对误差㊂
2 试验结果与分析
从采集的图像中随机选取80幅作为样本,每幅图像根据番茄果实的数量和尺寸可以得到600~压花器
2000个信息点㊂使用SOM
K⁃means 算法对其处
理之后,统计识别结果的混淆矩阵来对该方法进行
评估㊂通过统计和计算得到试验的准确率㊁精确率㊁灵敏度㊁特异度4个指标值,并对该算法的可靠性进行分析㊂
2.1 图像处理与数据采集
图像预处理过程中的中间图像如图6所示
贴片式称重料位计㊂图6 图像预处理过程中的中间图像
Fig.6 Intermediate image during image preprocessing
对捕获的图像进行预处理,获得分割的番茄轮廓点云㊂从原始图像及其深度图获得点云的3D 信息㊂经过三维重建后,真实世界点云的信息通过C ++中的输入和输出保存到创建的试验文件中㊂
在试验中发现实际拍摄过程中,点云信息中会有一些误判的点,这种点一般比较离散㊂选取最小轮廓的点数为30,运用密度聚类方法,把偏离密集区域的点去掉,提高点云矩阵信息的容错性和正确率㊂
2.2 SOM K⁃means 算法识别结果
执行SOM
K⁃means 算法后,果实轮廓点云的
聚类结果如图7所示㊂图中每个点表示轮廓上的一个点,纵坐标是深度,横坐标表示二维信息㊂由图7可知,该算法共识别出3个番茄果实
图7 果实轮廓点云聚类结果
Fig.7 Clustering results of fruit contour point cloud
利用最小二乘法分别拟合出各类点所属的圆,
结果如图8所示㊂在图8中,有3个成熟的番茄果实㊂将相机坐标系转换为世界坐标系,并通过测量和计算得到拟合圆与对应番茄果实的半径和圆心误差均小于误差阈值,即3个番茄果实均识别正确㊂另外,由于番茄果实轮廓并不是完全的圆形,因此拟合的圆与果实实际轮廓有一定的误差
图8 番茄果实识别结果
Fig.8 Tomato fruit recognition result
2.3 结果统计与验证
对80幅样本图像进行预处理,执行SOM
挂马检测
K⁃means 算法并输出结果,统计图像中实际番茄个数㊁算法识别番茄个数㊁算法漏识别番茄个数㊁正确识别番茄个数㊁错误识别番茄个数,并对识别结果进
行分析㊂以图8为例,根据1.2.4节的评价指标,图中实际番茄果实个数为3个,算法识别番茄果实个数为3个,算法漏识别番茄果实个数为0个,正确识别番茄果实的个数为3个,错误识别番茄果实的个数为0个㊂
此外,试验中的80幅图像样本包含了不同自然环境下的番茄果实图像,图9为部分图像的果实识别和定位结果㊂从图中可以看出,本文算法对于有叶子遮挡的多个粘连番茄果实㊁有未成熟番茄遮挡的多个成熟番茄果实㊁较暗环境下的重叠番茄果实㊁较强光照下的重叠番茄果实均具有较强的鲁棒性㊂
对80幅图像样本的识别结果进行统计和计算,得到试验的识别率㊁漏识别率㊁正确识别率和错误识别率
7
2第1期           李寒等:基于SOM K⁃means 算法的番茄果实识别与定位方法

本文发布于:2024-09-20 22:50:39,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/154078.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:番茄   算法   进行
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议