杨永强,叶 明,陆永华,任守纲
1(南京航空航天大学 机电学院,南京 210016)
2(南京农业大学 信息技术学院,南京 210095)
20世纪60年代,美国率先开始了农业作业机器人的研究.1977 年 Pamsh 和 GokSel[1]研究出了世界上第一个果实自动识别系统,使用黑白相机和红色光学滤波器,从背景图像中识别成熟的苹果; 1987年美国的Whittaker等[2]提出了使用Hough变换来定位番茄果实的方法; 2009 年日本的 Ranjendra Peter和 Kondo Naoshi[3]研究出了一种用于草莓收获的采摘机器人,使用了三摄像机系统; 2010 年日本农研机构的 Cui Y[4]等研制出了一款针对于温室高架草莓的采摘机器人,该机器人主要应用于夜间采摘,采摘后果实的果柄交由人工处理.我国对智能农业机械的研制起步较晚,中国农业大学李伟团队[5]研制出了我国第一台黄瓜采摘机器人,该机器人使用近红外光谱识别黄瓜果实,双目视觉系统对目标果实进行空间坐标的获取; 2016年张丽[6]等设计了一种樱桃采摘机器人,该机器人使用CCD摄像头对樱桃果实的图像进行采集,然后对采集的图像进行二值化、膨胀腐蚀等处理,从而将成熟的樱桃与未成熟的樱桃、枝叶等背景分离开.
对于蘑菇自动采摘系统的研究,文献[7]介绍了蘑菇采摘机器人的工作过程,讨论了基于数字特征的蘑菇边界搜索算法,但文献未考虑蘑菇照片中光照不均、泥土、杂草和菌丝等复杂背景的处理; 文献[8]以单个蘑菇为研究对象,对蘑菇边界进行离散傅立叶变化求蘑菇形心坐标.本文考虑实际苗床上蘑菇的采摘过程,研发了一套蘑菇自动采摘系统,包括硬件和软件设计,并提出了针对蘑菇图片复杂背景处理的基于Harris角点的背景过滤算法以及用于粘连蘑菇分割的尺度差异下距离图极值点定位算法.
蘑菇自动采摘系统硬件组成如图1所示,主要包括可移动平台、视觉系统、执行机构、能源系统以及计算机.其中可移动平台为四轮轨道式小车,安放在在蘑菇苗床轨道上.能源系统为电压 24 V、容量 100 000 mah的移动电源,对执行机构、摄像机、光源以及移动平台供电,试验测得可持续工作24小时; 执行机构由丝杠、导轨、机械手和步进电机等组成,共有四个自由度,由X、Y、Z方向的移动和绕Z轴的旋转运动构成,完成各区域蘑菇采摘操作,其中Z轴的旋转运动完成蘑菇伞柄的扭转折断.
视觉系统由CCD摄像机、LED阵列光源及支架构成,其结构如图2所示.摄像机固定于支架上,LED阵列光源位于摄像机一侧,高度略高于摄像机镜头,斜向下照射.摄像机使用的是由德国 Allied Vision公司生产的 Manta G032B ASG W90.型数字摄像机.
图2 视觉系统构成
软件系统由主控系统、图像处理系统和PLC控制系统三大部分组成.主控系统控制PLC系统使摄像机运动至指定拍摄位置后向图像处理系统发送拍照指令,图像处理系统控制相机获取图片,经图像处理算法处理后向主控系统发送蘑菇个数、中心坐标、机械手旋转角度指令,由主控系统生成执行机构运动路径,通过控制系统控制电机运动完成采摘操作.图3为图像处理系统算法流程图.
蘑菇房环境光照复杂,阴影,反射对视觉信息的提取会造成极大影响; 蘑菇苗床背景包括泥土,杂草以及菌丝等干扰因素,因此蘑菇图片复杂背景的处理对蘑菇准确定位存在必要性.图4(a)、(b)是蘑菇房拍摄的一组蘑菇图片.
角点作为图像中亮度变化剧烈的点或者图像边缘具有曲率极大值点具有以下两个重要的性质[9]: 1) 角点能够在不损失图像重要特征的基础上,极大地减少参与计算的数据量; 2) 角点可以决定我们所观测到的图像的形状、位置和角度等,可以传递大部分图像信息.我们考虑第二种意义,将角点运用到复杂背景的滤除中来.图4(c)、(d)分别为图4(a)、(b)图像对应的角点图,其中黑点为检测的角点,圆圈为手工标记的蘑菇区域,从图中可以清楚的看出,蘑菇区域角点数量几乎为零,而背景区域充满角点.本文依据前景与背景角点密度差异特征对蘑菇图像背景进行滤除.
图3 图像处理系统流程图
图4 蘑菇图片与角点分布图
角点检测的方法主要分为两种: 1) 基于图像边缘的方法,先提取图像信息的边缘,然后再求角点,例如,基于小波变换模极大的角点检测; 2) 基于图像灰度的方法,例如Moravec算法和Harris算法.考虑到拍摄到的图像前景蘑菇的灰度变化较小,而背景灰度变化剧烈,故采用基于图像灰度的角点检测算法.由于Moravec算法计算代价大、运行慢,而Harris算法具有简单、提取角点均匀合理、稳定等特点,考虑到蘑菇自动采摘系统实时性要求,选用基于图像灰度的Harris角点检测算法[10].
为了改进检测结果,图像处理时添加了非极大值抑制,目的是移除彼此相邻的 Harris 角点.因此,最终被接受的Harris角点不仅需要高于给定阈值,还必须是局部极大值.
基于Harris角点的背景滤除算法首先定义一个如图5(a)所示的滑动窗口,根据角点密度窗口大小winsize可设置为3、5、9等奇数值,考虑滑动窗中心点p(i,j),滑动窗在上述Harris角点以及非极大值抑制处理后得到的角点图像中扫描,扫描方式为从左到右,从上到下,步长为1个像素,统计滑动窗区域内的角点数量当滑动窗内的角点数Nm大于所能容忍的最大角点数hMax时,判定该点p(i,j)为背景区域.算法流程图如图6所示.
图5 角点扫描示意图
考虑到蘑菇自动采摘系统实时性要求,背景滤除算法可考虑将每次搜索步长1像素改为滑动窗口大小winsize,将考察对象由窗口中心点扩大至整个窗口区域,当窗口内角点数Nm大于hMax时将整个窗口区域判定为背景,从而避免了对图像所有像素点的遍历,提高了算法的效率.对于由此引起的滤除背景后二值图蘑菇区域存在锯齿形边缘的问题,根据文献[11]所提出的方法,可采用菱形结构元素对图像进行闭运算操作,圆滑蘑菇边缘.
图6 基于Harris角点的背景过滤算法流程图
本文对采集到的蘑菇图像采用直方图均衡化来提高图像对比度,对均衡化后的图像分别运用Harris角点检测算法,非极大值抑制处理得到角点分布图Hmap,以及固定阈值操作得到二值图binary; 定义滑动窗口大小winsize=9,设定角点阈值hMax=1,对角点分布图进行步长为winsize的滑动搜索,搜索到背景区域后对二值图相应区域进行置0操作,再经形态学闭运算、孔洞填充处理,得到较好的滤除背景后的二值图像.
对于图像分割而言,不仅要求能够将目标与背景区分开,同时也要求将相互粘连的不同目标分割开来[12].蘑菇自动采摘系统的开发与应用,对于蘑菇粘连问题的处理是算法设计所必须考虑的.对于粘连物体的分割,主要方法有凹点匹配法和分水岭算法.
凹点匹配法首先找到图像轮廓中的所有凹点,然后按照一定的规则进行匹配,最后构造分离线实现分割,由于蘑菇图像粘连严重,滤除复杂背景后的蘑菇二值图边缘存在较多凹点,使用该方法会产生严重的误分割.基于形态学的分水岭算法将图像三维形象化为一地形高度图,灰度值高的区域为山峰,灰度值低的区域为谷地.分水岭分割主要应用于从背景中提取近乎一致的物体,由于蘑菇表面灰度一致性较好,故可选用基于标记的分水岭算法进行分割处理.
文献[13]提出了基于距离变换和和控制标记的分水岭算法,通过对二值图进行距离变换、形态学重建操作得到“山峰”区域,从而求取出种子点,该方法对于尺度差异较小的粘连物体分割效果较好.由于不同蘑菇尺度差异较大,将距离变换后的灰度图像看成是一幅地形图,如图7分别为粘连蘑菇的二值图、距离变换图以及沿直线的灰度分布图,从中可以看出面积较大蘑菇与面积较小蘑菇的“山峰”海拔高度差H较大,运用文献[13]中形态学重构方式无法得到小尺寸蘑菇的种子区域,从而会造成误分割.
图7 距离变换
为解决尺度差异造成的距离图区域极值点的定位问题,本文采取迭代法搜索用于分水岭分割的种子点.具体操作为: 首先选择较低的初始阈值对距离图进行阈值分割,获得低海拔“山峰”并保存在标记图中,再逐次提高阈值,搜索较高海拔的“山峰”,直到获得的标记图中像元个数不在增加,则结束迭代,从而得到用于分水岭分割算法的标记图.算法流程如图8所示.
图8 计算种子区域流程图
设基于Harris角点的背景滤除算法处理后的蘑菇二值图像为BW,距离变换为:
其中D为距离变换图像,dist(*)表示距离变换处理.设置初始阈值thr=T0(第一次设置为85),获得尺寸较小的蘑菇种子点,保存种子点图像为temp(1):
其中seekSeeds(*)表示按阈值thr搜索种子点并保存.提高阈值thr得到尺寸较大的蘑菇种子点,保存种子点图像temp(2),重复迭代操作,得到种子点图像temp(i).每次迭代操作前计算temp(i)中像元个数element(i):
其中countElement(*)表示计算temp(i)中的像元个数.当判断成立时结束迭代,令:
即求得标记图像marker.迭代搜索流程图如图9所示.
图9 迭代搜索流程图
运用迭代搜索方式计算蘑菇图像计算种子区域,结果如图10所示.
图10 标记图提取过程
试验模拟蘑菇房种植环境,拍摄图片进行图像处理并完成采摘操作.试验所用计算机配置为Inter(R)Core(TM) i3-4010U CPU 1.70 GHz 处理器,8 G 内存,Windows7系统,算法平台为OpenCV2.4.8和Visual Studio 2013.图像采集采取分区拍摄方式完成图像处理,该方案要求相邻分区拍图有足够的重叠区,重叠区大小至少要大于二分之一最大蘑菇直径.试验使用文中所述的基于Harris角点的背景滤除算法以及基于标记的分水岭分割算法处理,最后椭圆拟合蘑菇边界、计算中心位置坐标.
图11为分别采用Otsu动态阈值分割、方向滤波器、文献[14]中所采用的S分量阈值分割以及本文算法得到的背景滤除效果对比,从视觉主观上可以判定,本文算法对复杂蘑菇图像的背景滤除效果优于基于灰度的Otsu动态阈值分割、基于边缘特征的Sobel滤波器分割以及基于饱和度的S分量阈值分割,蘑菇区域得到了更好的凸显.
图11 不同算法背景滤除试验效果对比图
为了客观评价本文算法的分割性能,用Photoshop软件对蘑菇区域进行人工分割,处理结果作为标准图像,计算分割结果与标准图像误差,如图12 所示,其中图12(a)是人工分割结果,图12(b)是基于Harris角点的分割结果,图12(c)为背景区域误分为前景的误差二值图像,即图12(b)与图12(a)的不重叠区域.
图12 本文算法与人工分割方法的分割误差
引入文献[15]中所使用的错分率作为衡量分割效果的客观评价标准,计算公式如下:
式中,Ne表示分割误差区域内的总像素数,即误差二值图像白色区域像素总数,Ns为图像像素总数.表1为用以上3种不同算法所得到的错分率对比,从表中可以看出,本文算法分割误差远小于其他两种算法,从而证明了本文算法对蘑菇图像复杂背景的滤除效果较优.
表1 不同算法分割结果误差对比
使用尺度差异下距离图极值点定位算法获得的标记图marker,采用基于标记的分水岭算法,得到粘连蘑菇分割结果如图13所示.从红色矩形内分割结果可以看出,粘连蘑菇被分割开,红色矩形框2中两蘑菇尺度差异较大也可准确分割,从而证明了尺度差异下距离图极值点定位算法的有效性.
角点特征下粘连蘑菇定位算法处理结果如图14所示,蘑菇边界由红色椭圆标记,中心点用蓝色点标记.从定位结果上可以看出,蘑菇边缘拟合较好,中心定位准确.
图13 分水岭分割结果
图14 蘑菇定位试验结果
表2为角点密度特征下粘连蘑菇定位试验结果统计,从表中数据中可以得出,点密度特征下粘连蘑菇定位算法处理误检率为6.55%,漏检率为7.14%,每幅图片处理平均耗时为711.5 ms,能够满足实时性要求.
表2 蘑菇定位试验结果
通过对系统实时监测界面和检测结果图像进行对比,统计出表3所示的检测失误原因.从中可以得出,蘑菇倾倒对定位算法的准确性影响最大.
表3 采摘失误原因统计
(1) 对蘑菇自动采摘系统软、硬件进行了设计,该系统可直接安装于棚架式蘑菇苗床上,从而实现蘑菇自动采摘操作.通过采摘试验验证了硬件系统设计的合理性以及图像处理算法的稳定性和实时性.
(2) 针对蘑菇照片复杂背景,本文提出了基于Harris角点的背景滤除算法,利用前景和背景角点密度的差异特征,实现了对复杂背景的有效处理; 对于粘连蘑菇的分割问题,采用迭代搜索方法解决了尺度差异下距离图区域极值点定位问题,从而获得用于分水岭分割的标记图,该方法特别适用于尺度差别较大的粘连物体的分割,具有较好的鲁棒性.
参考文献
1王滨.猕猴桃采摘机器人目标果实空间坐标获取方法的研究[硕士学位论文].杨凌: 西北农林科技大学,2016.
2Whittaker D,Miles GE,Mitchell OR,et al.Fruit location in a partially occluded image.Transactions of the ASAE,1987,30(3): 591–596.[doi: 10.13031/2013.30444]
3Rajendra P,Kondo N,Ninomiya K,et al.Machine vision algorithm for robots to harvest strawberries in tabletop culture greenhouses.Engineering in Agriculture,Environment and Food,2009,2(1): 24–30.[doi: 10.1016/S1881-8366(09)80023-2]
4Cui YJ,Nagata M,Guo F,et al.Study of strawberry fragaria ananassa harvesting robot using machine vision for strawberry grown on annual hill top (part 2): Ripeness judgment and recognition of peduncle using picking camera,and fabrication of the picking hand.Journal of the Japanese Society of Agricultural Machinery,2007,69(2): 60–68.
5纪超,冯青春,袁挺,等.温室黄瓜采摘机器人系统研制及性能分析.机器人,2011,33(6): 726–730.
6张丽,郭素娜,汪小志.樱桃采摘机器人设计—基于PLC高速并联自动化控制.农机化研究,2016,(8): 199–203.
7周云山,李强,李红英,等.计算机视觉在蘑菇采摘机器人上的应用.农业工程学报,1995,11(4): 27–32.
8俞高红,赵匀,李革,等.基于机器视觉的蘑菇单体检测定位算法及其边界描述.农业工程学报,2005,21(6): 101–104.
9韩晓兰.角点检测研究及在医学图像处理中的应用[硕士学位论文].北京: 北方工业大学,2011.
10Harris C,Stephens M.A combined corner and edge detector.Proceedings of the Alvey Vision Conference.Plessey Research Roke Manor.United Kingdom.1988.147–151.
11徐蔚钦.基于分水岭分割的粘连颗粒图像分析技术研究[硕士学位论文].长沙: 中南大学,2011.
12倪志强.基于数字图像处理的异形纤维检测系统的研究与开发[硕士学位论文].南京: 南京航空航天大学,2014.
13倪志强,叶明.基于分水岭变换的粘连颗粒图像分割方法.计算机系统应用,2014,23(6): 93–97.
14冯青春,袁挺,纪超,等.黄瓜采摘机器人远近景组合闭环定位方法.农业机械学报,2011,42(2): 154–157.
15伍艳莲,赵力,姜海燕,等.基于改进均值漂移算法的绿色作物图像分割方法.农业工程学报,2014,30(24): 161–167.[doi: 10.3969/j.issn.1002-6819.2014.24.019]