基于定位算法的草莓机器手的结构设计

描述

早期的草莓采摘机械一般将果实和茎叶一起收获,然后再由人工将果实和茎叶进行分离。1996年,日本率先发明了利用机器视觉识别采摘果实的机器手。基于机器视觉技术的机器手采摘草莓的作业流程一般是,先寻找成熟的草莓,在不破坏果实的前提下将其与枝桠分离,然后放到托盘中。实现这一流程的自动化需要以下几个步骤:(1)根据草莓的成熟度判断是否可以采摘;(2)确定待采摘草莓的位置;(3)切断草莓的果梗,并接住草莓;(4)将草莓放置在盘中。这4步中的前两步属于定位步骤,在整个机器手的设计中具有重要地位。因此,如何设计精准的定位算法是草莓机器手设计的关键。目前主流的定位算法大多基于机器视觉技术。

由于要求机器手能分辨草莓的成熟度,因此传统基于机器视觉的定位算法通过判断草莓的颜色来进行识别,但单纯根据颜色进行判断可能会误将某些颜色相近的其他果实作为识别目标,比如小番茄等,因此又出现了基于纹理特征进行识别的支持向量机(SVM)分类算法。但基于SVM的分类算法需要预先设计特征向量,人工设计的特征向量难以准确描述草莓的外观纹理特征,因此误识率很高。

本文研究开发一款实用的采摘草莓机器手,提出了一种结合颜色先验知识和深度学习的识别算法,可以精确地识别草莓。由于草莓的成熟度可以通过颜色进行预分类,为此先将机器手获取的图片转换至HSV空间,并对H通道进行分割。分割后的候选目标区域有多个,为了得到最精确的定位目标,将多个候选区域输入预训练的深度卷积网络(CNN)进行识别,将识别精度最高的候选目标作为最终的定位结果输出。在对CNN进行训练时,选择的正样本包括各种形态的成熟草莓,为了避免机器手采摘不完整的候选目标,在负样本中放入大量的草莓局部图片。实验证实,本文基于颜色先验知识的算法可以得到准确的定位结果。

1 、草莓机器手的结构设计

机器手本体主要由3条机器臂和1根装有电缆的软管组成,如图1所示。两条机械臂在同一平面,负责机器手在水平面直线伸缩动作,另一根机械臂在垂直面扫描运动。为了简化控制和识别,采用三机械臂系统,把柱坐标转化成直角坐标,便于准确定位。夹取部分由机器手组成,夹住草莓果实果柄部分,采摘时,机械手伸出摘下。机械手动力由舵机控制提供。行走系统设计成四轮小车,设计了减震系统,提高机器手稳定性和越野性。机器手智能识别算法是研究的关键,在基于颜色先验知识进行预分割的基础上,采用深度学习辅助草莓机器手进行目标定位,可以有效精确地识别草莓,确保机器手准确采摘。

2 、基于颜色先验知识的草莓候选目标分割

本文先基于HSV颜色模型对草莓图像进行分割,以得到草莓的候选区域,机器手获取的图像颜色空间为RGB,因此先通过式(1)转换为HSV空间。

草莓机器手需要根据草莓颜色确定草莓的成熟度,根据统计[2],成熟草莓颜色值h位于[0,5]和[150,220]之间,因此根据式(2)对图像进行阈值分割得到二值化图像。

基于h通道进行二值化后,相邻的候选区域有一定的粘连,再通过形态运算处理得到最终的候选区域结果[5],如图2所示。

图2(e)通过对图2(d)二值化区域取最大外接矩形得到,从图2(e)可见,由于采用了形态滤波,即使草莓部分被茎叶遮挡,也可以得到完整草莓候选区域。

3 、基于深度卷积网络的目标识别定位

基于颜色先验知识得到目标候选区域后,草莓机器手需要在候选目标中挑选最符合要求的区域作为采摘的对象。传统做法是计算草莓的纹理特征,如共生矩阵等人工设计的特征向量,而后训练支持向量机(SVM)作为分类器进行分类[3],但人工设计的特征难以涵盖草莓的多种形态,因此SVM的分类效果较差。

随着深度学习技术的发展,深度卷积网络在图像分类中展现出了极大的优势[6]:不需要人工定义特征;图像的特征在学习的过程中自动提取出来;随着训练样本的增加,卷积网络可以学习到精准的目标特征。

机器手获取的图像中草莓目标较小,因此本文在训练模型时,先基于Cifar10数据集对卷积网络进行训练,而后用训练得到的网络参数初始化本文的卷积网络。为了适应Cifar10卷积网络参数,在对候选目标进行分类识别时,先将候选目标图像缩放到标准尺寸32×32,具体步骤如下:

(1)用Cifar10数据集对卷积网络进行预训练;

(2)用步骤(1)得到的网络参数初始化本文的卷积网络,为了减少训练参数,同时由于候选目标较小,本文所用卷积网络与步骤(1)相比少了一层全连接层;

(3)基于草莓样本对步骤(2)初始化后的卷积网络进行微调;

(4)将基于颜色先验知识分割得到的目标候选区域输入步骤(3)得到的卷积网络进行识别;

(5)选择步骤(4)中识别概率最大的候选区域作为最终的定位结果输出。

本文采用的训练卷积网络和识别卷积网络如图3所示。

深度学习

本文所用的训练样本和验证样本各取600张,正负样本各300张,为了避免因样本较少而导致的过拟合现象,先采用Cifar10数据集进行网络训练,用训练后的网络参数来对图3(a)的训练模型进行初始化,再用本文所采集的样本进行微调训练。由于文中所用样本较少,因此在用图3网络进行迭代训练时每次输入10张正负随机样本,迭代30次刚好覆盖整个数据集。

由于草莓机器手采摘的草莓目标必须满足预设的草莓标准,因此本文训练时采用的草莓样本都是符合设定标准的图片,而在负样本中包括了大量不符合预设标准的负样本图片,如不完整草莓、与草莓相似的植物、草莓茎叶等,部分样本如图4所示。

4、 仿真结果与分析

为了验证本文算法,先用Cifar10数据集迭代训练10 000次[8],由于数据比较多,为了提高训练速度,训练时选取学习率为0.001,再用本文所用的训练样本和验证样本对模型进行微调,由于本文样本偏少,因此学习率取0.000 1。Cifar10模型训练精度和损失曲线如图5所示,用本文数据进行微调后的模型精度和损失曲线如图6所示。

深度学习

 

深度学习

从图5可见,Cifar10训练100 00次后,精度可以达到0.73,但这样的精度无法适用于草莓机器手。对网络模型进行微调的训练结果如图6所示,在经过400次迭代后,精度在本文的验证样本中即可以接近1.0,而损失函数也在400次迭代后接近0,因此本文所用的微调模型完全可以达到草莓机器手所需要的精度。

图7中展示了两幅草莓机器手采集的图片经过颜色分割并输入图3(b)卷积网络识别后的输出结果。从图中可以看到,识别的结果基本符合人对成熟草莓的主观定义,最符合主观标准的识别结果甚至可以达到1.000 0,即使存在多个符合人眼标准的候选区时,本文所提出的算法也可以给出客观的打分排序。对于图中出现的粘连目标,本文算法也可以分别给出客观的识别结果。

本文算法基于C++语言实现,所运行平台配置为:CPU为i5处理器,内存4 GB,所用GPU卡为Nvidia quadro k620,显存2 GB。一幅分辨率为1 280×960的图片颜色分割需要80 ms,对候选区域的识别需要320 ms,因此,本文算法完全可以满足草莓机器手的实时性要求。

5、 结束语

本文设计了一种基于颜色先验知识和深度学习的草莓机器手识别算法,经过实验验证,本算法可以满足机器手的精度和实时性要求。但由于样本有限,对一些特殊样本无法涵盖,导致机器手偶然会出现定位失败的情况,后续可以通过适当增加样本规模来解决。

责任编辑:gt


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分