APP下载

番茄枝叶修剪机械手视觉伺服控制系统研究*

2022-06-27梁喜凤花瑞杨铭涛

中国农机化学报 2022年7期
关键词:侧枝枝叶边缘

梁喜凤,花瑞,杨铭涛

(中国计量大学机电工程学院,杭州市,310018)

0 引言

中国是世界上番茄生产和消费总量最多的国家之一。近年来,番茄种植管理的人工成本逐渐增加,而番茄打叶又需要周期性的进行,人工成本较高[1]。目前番茄种植方式是以温室大棚中或者高架形式种植为主,植株之间的行距比较宽阔,无论是采摘果实还是修剪枝叶,都适合机械化作业[2-3]。因此,研发一种代替或辅助人工作业的番茄枝叶修剪机械手是很必要的。

目前,国内研究的枝叶修剪机器人大多是用于林木修剪,徐军[4]设计的林木剪枝机器人是利用驱动与蜗轮的链式连接装置,实现攀爬树干和修剪树枝功能。由于番茄植株的枝干较为细软、长势较高[5],所以需要设计一种针对番茄植株的枝叶修剪机械手,而视觉伺服控制系统是番茄修剪枝叶机械手的重要组成部分。视觉伺服分为基于位置的视觉伺服(PBVS)和基于图像的视觉伺服(IBVS)[6]。基于位置的视觉伺服是通过估计目标位置相对摄像机的位姿,将该位姿与当前位姿进行对比再调整机械臂,由于PBVS固定了摄像机的位置,使得其无法在一些流动性的作业中获取完备的特征[7-8]。基于图像的视觉伺服在控制过程中需要估计图像雅克比矩阵,如今大部分都使用KF算法[9]和UKF算法[10]来估计图像雅克比矩阵,但其计算工作复杂并受环境噪声影响较大[11]。Mehta等[12]在IBVS的基础上加入鲁棒反馈去克服外界影响造成目标果实的运动。除此之外还有在视觉伺服上加入神经网络[13-14],目前大多运用于工业领域,Gu等[15]在模糊神经网络的基础上对图像特征点和机械臂关节变化关系进行估计,在视觉伺服中加入神经网络可以避免计算图像雅克比矩阵[16-18],但是需要对目标物体规定尺寸。

本文结合番茄枝叶的生长特点,以项目组设计的五自由度的全自动番茄枝叶修剪机械手为平台,在PSO-BP神经网络的基础上设计了番茄枝叶修剪机械手的视觉伺服系统。以番茄植株的侧枝夹取点为研究目标,提出了一种基于不同边缘类型的番茄侧枝特征点识别方法,通过图像处理算法中横纵边缘类型的分类,提取目标剪枝点,在训练好的PSO-BP神经网络的基础上,得到机械臂的关节角度,进行仿真试验。

1 基于不同边缘类型的番茄侧枝特征点识别方法

本文基于不同边缘类型的番茄侧枝特征点识别方法的流程如图1所示。

图1 番茄侧枝特征点识别方法的流程

本文以在番茄植株中搜寻番茄侧枝特征点为目的,提出了一种基于不同边缘类型的番茄侧枝特征点识别方法,在背景中提取出整株番茄植株,通过区分横纵边缘的算法对番茄植株边缘进行处理,将横纵边缘交界点作为番茄植株侧枝的特征点,然后再利用边缘排序算法对每段番茄枝条边缘进行排序和分类,得到一对分别在上边缘和下边缘上的特征点。

1.1 图像预处理

通过佳能450D相机,在自然光照条件下获得番茄侧枝的图像。由于番茄植株侧枝的叶片和枝干颜色太过相似,无法基于多光谱识别方法对枝叶进行分类,所以本文中使用形态学方法对番茄侧枝进行图像处理(图2)。对图2(a)彩色图像I进行背景分割,提取出整株的蔬果枝叶如图2(b)所示,并对提取的图像进行二值化处理,得到如图2(c)的二值化图像C。

(a) 彩色图像I

1.2 横纵边缘分割

由于枝、叶无法通过颜色对其进行区分,采用一种横纵边缘分割的方法去除叶片的边缘的影响。首先对二值化图像进行横纵边缘的提取,分别形成与二值化图像尺寸相同的纵边缘图像C2和横边缘图像C3,在纵边缘图像中的像素值取值如式(1)所示。

(1)

式(1)中将横向边缘像素赋值0,纵向边缘赋值1,使得C2图像用白色显示出纵向边缘段。

再将上述的横边缘图像C3分为上下边缘Cu,其中Cu像素值取值如式(2)所示。

(2)

在式(2)中横向边缘像素赋值1,纵向边缘赋值0,使得横向边缘在图像中显示出来,在坐标数列里给下边缘和上边缘进行分类。再对得到的纵边缘图像和横边缘图像分别进行开运算,去除图像中离散的点和不属于枝条的边缘,得到仅保留枝条边缘的纵向枝条边缘(图3)和横向枝条边缘(图4)。

图3 纵向边缘

图4 横向边缘

1.3 修剪侧枝特征点提取

基于上下边缘标记图像,再利用蔬果植株边缘排序算法[19]对植株的横向枝条边缘进行排序和类别判断,将图像中的每条横向枝条边缘按照判断结果标记为上边缘或下边缘;基于纵向枝条边缘图像和横向枝条边缘图像,将横纵边缘进行整合(图5)。

图5 横纵边缘整合

由于同一枝条的两个侧枝点不可能距离很远,因此可以通过设置距离阈值,剔除非侧枝点,得到每一根横向枝条对应的一组分叉点,所述的距离阈值为20~40个像素。如图6所示得到所有的对偶交点;再根据一组分叉点中两个交点所靠近或是依附的横向枝条边缘类别,来判断交点是上边缘点还是下边缘点,最终识别到横向枝条侧枝点的上边缘点和下边缘点,如图7所示圈出了目标特征点。

图6 对偶的横纵边缘交点

图7 番茄植株目标特征点

2 视觉伺服控制器的PSO-BP神经网络设计

2.1 BP神经网络的设计

BP神经网络是一种不需要事先确定输入输出之间映射关系的网络,仅通过自身的训练,学习某种规则,在给定输入值时得到最接近期望输出值的结果[20]。本文中在BP神经网络训练的基础上进行无标定的视觉伺服控制,通过不断迭代练习,得到一个训练好的机械臂关节角度和目标特征点映射关系的网络。

BP神经网络由输入层、隐含层和输出层组成。在本文中由于番茄侧枝的图像特征点只有两个,为了提高网络的收敛性和减小训练方差,增加输入节点数,所以使用双目摄像机,这样就可以得到4个目标特征点,分别将其横纵坐标作为输入。输出层设置为5个输出节点,分别对应机械臂5个期望关节角度与当前关节角度的差值。BP神经网络隐含层通常采用经验公式,如式(3)所示。

(3)

式中:m——隐含层节点数;

s——输入层节点数;

l——输出层节点数;

α——1~10之间的整数[12]。

通过计算隐含层节点设置在5~14即可。BP神经网络的训练样本是通过仿真机械臂相应关节角变化,并同时记录相应的图像特征点变化来获取;离线对BP神经网络进行训练,训练网络的结构图如图8所示,其中Δx1…Δx8为特征点变化,q1…q5为关节角度变化值;网络的执行阶段是根据神经网络的输入计算期望的关节角变化。

图8 BP神经网络结构图

2.2 粒子群算法优化BP神经网络

粒子优化算法(PSO)源于鸟群捕食的行为研究,通过给予粒子位置和速度两个属性,让每个粒子寻求空间中最优解。在PSO-BP神经网络中利用PSO算法对全局范围中进行大致搜索[22],得到一个优化过的BP神经网络的权值和阈值,提高了BP网络的泛化能力和学习能力,大大提升了其收敛速度。PSO算法优化BP神经网络流程图如图9所示,具体步骤如下。

图9 PSO-BP神经网络流程图

1) 设置BP神经网络的参数,包括输入层节点In,隐含层节点Hid和输出层节点Out,将训练数据归一化处理。

2) 初始化粒子群算法的所有参数,包括粒子最大速度,惯性权重,学习因子,迭代次数N和粒子群规模U;速度向量维数Dims按式(4)求得,每个粒子由速度矩阵和位置矩阵组成。

Dims=In×Out+Hid+Hid×Out+Out

(4)

3) 对粒子个体进行评价:首先把最小适应度函数值设置为粒子群的个体极值Pbest,然后将粒子中最小的个体极值设置为全局极值gbest,适应度函数按式(5)确定。

(5)

式中:Vn——实际输出;

yn——期望输出。

4) 将粒子的当前最佳位置作为迭代点,进行迭代。

5) 排除越界的粒子,更新粒子的速度和位置。

6) 当迭代次数到达N或是误差满足精度要求时,停止迭代;否则转入步骤5。

7) 结束迭代,将当前的Pbest和gbest作为BP神经网络的权值和阈值,获得BP神经网络的预测输出。

3 视觉伺服控制器设计与仿真试验

3.1 基于PSO-BP神经网络视觉伺服系统

视觉伺服控制主要通过末端执行器的移动位置和期望位置的偏差进行反馈,不断调整机械臂的位姿来夹取侧枝。本文中视觉伺服控制系统是通过双目摄像机对目标枝条进行采集图像,将采集的图像通过上述图像处理得出目标侧枝点的位置;再通过将位置信息输入到PSO-BP神经网络中,来获得五个关节角度,转动机械臂各个关节,使用的双目、基于图像特征的视觉伺服控制系统,如图10所示,再通过眼在手上的方式将摄像机安装在机器人的末端执行器上。

图10 番茄枝叶修剪机械手视觉伺服系统框图

3.2 数据采集

为了获得充足的训练样本,本试验根据课题组中番茄剪叶机械手实物,利用Matlab软件中的机器人工具箱(Robotics Toolbox)搭建了一个五关节的机器臂模型如图11所示,并建立了一个基于图像的视觉伺服(IBVS)仿真系统。变化仿真机械手各个关节的角度,保证得到特征点在同一平面上,在照相机模块得到对应的图像特征变化图,得到300组数据,其中250组作为训练样本,50组作为测试样本。

图11 枝叶修剪机械手仿真图

3.3 仿真试验与数据误差

为了验证本文中提出的视觉伺服系统的可行性,进行simlink仿真试验。根据上述方法建立的PSO-BP神经网络模型,其中各项参数设置为BP网络的学习率μ=0.4,动量因子η=0.8,期望误差e=10-5;PSO优化网络中,种群规模为80,迭代100次,学习因子设置为c1=c2=2。

导入训练集进行反复迭代训练,训练完成后测试集的输出均方差如图12所示。

图12 PSO-BP神经网络曲线图

由图12可知,在迭代100次内均方差已经渐渐收敛,最终迭代次数不到90次时,均方差就能收敛到7.933 7×10-5,达到期望的输出精度。在仿真试验中,将每个摄像机中两个期望的特征点坐标(末端执行器的特征点)提取,四个坐标构成一个长方形,将其坐标做以下假设。

1) 四个期望的图像特征坐标

2) 机械臂的初始关节角

3) 摄像机参数设置:焦距f=8 mm,α=β=80 000 pixels/m,目标成像深度h=1.5 m,图像中心点为(200, 200)。

如图13所示,试验中特征点在摄像机中从初始点移动到最终位置,虚线为初始特征点位置,实线表示最终位置,根据特征点的变化,求解出机械臂各个关节运动角度,各个关节运动轨迹变化如图14所示。

图13 初始特征点位置

图14 各关节角度变化

由图13可知,图像特征最终位置的像素坐标为a1=(174,162),a2=(223,218),a3=(174,217),a4=(226,164),与设定的期望图像特征点对比相差3~5个像素点,由图14可知,在4 s内机械臂各个关节运动到期望位置。

4 结论

4.1 讨论

本文仅在仿真试验中验证了该方法的可行性,具体运用到试验部分还需要改进,并且对机械臂的轨迹规划未进行研究,在实际工作中会影响修剪效果并损坏侧枝,后续应增加对该方面的研究。文中提出的基于神经网络的视觉伺服系统的研究在工业领域比较多,主要由于工业器件尺寸的确定性,但在农业中番茄侧枝的宽度并不确定,所以使用神经网络只能得到机械臂转动关节角度,在平动关节还需要使用双目测距进行调整。

4.2 结论

1) 通过对番茄植株图像进行形态学处理,将番茄侧枝分为横纵边缘,根据不同边缘类型找到对偶的番茄侧枝点,能够获得机械臂修剪枝叶所需要的期望特征点。

2) 在PSO-BP神经网络的基础上建立视觉伺服系统,相对于传统的视觉伺服控制,减少了计算雅克比矩阵的工作量;相对于双目定位来说,省去了标定环节,也就减少了标定环节带来的误差和所需要的人工成本。

3) 试验结果表明设计的视觉伺服系统能成功的识别番茄侧枝修剪点,仿真试验测试得到图像特征的实际值和期望值误差在3~5个像素之间,五自由度的机械手在4 s内能移动到期望位置,具有良好的控制精度和速度。

猜你喜欢

侧枝枝叶边缘
晚风
枝叶
诗情画意
西红柿侧枝什么时候疏除好
一张图看懂边缘计算
栀子花怎样修剪?
罗田垂枝杉不同材料扦插试验研究
枝繁叶茂
在边缘寻找自我
走在边缘