技术领域
[0001] 本发明设计一种基于改进卷积神经网络图像识别技术的苹果采摘机器人的抓取方法。
相关背景技术
[0002] 目前在水果采摘过程中需要大量的劳动力,但是随着我国老龄化程度的不断加深,农村劳动力不断减少,生产成本不断提高,限制了整个水果产业的发展,另外,人工采摘还会受到人为主观因素的影响,这也会降低采摘质量。随着计算机和图像处理技术的快速发展,一种智能化水果采摘机的出现降低果农的劳动强度以及生产成本,可以有效地增加整个产业的生产效率,符合水果产业化发展的需求。数字图像处理技术在采摘机器人的应用主要是对果实目标物体的识别和三维空间定位,以便为机械手的运动提供参数,从而实现农业果实的准确采摘。针对现有采摘需要大量劳动力,采摘效率低下问题,本发明研究了一种基于深度学习的智能果实采摘方法,有效提高了果实采摘效率,为农业生产做出了贡献。
具体实施方式
[0046] 如图1所示,基于卷积网络机器人苹果采摘方法的过程为:
[0047] (1)采用双目深度相机从田间拍摄图片,获取在不同时间段、不同光照条件下苹果的图片;
[0048] (2)从拍摄的苹果图片中抽取图片样本并对其进行预处理;
[0049] (3)将预处理好的图片样本划分为训练数据集和测试数据集;
[0050] (4)构建卷积网络并用训练数据集进行训练;
[0051] (5)用测试数据集对训练好的卷积网络进行评估;
[0052] (6)利用训练好的网络对苹果进行实时抓取,以实现对于成熟果实的准确定位,提高抓取性能。
[0053] 如图2所示,本发明方法抓取建议网络:
[0054] GPNet的体系结构由并行ResNet‑34模块组成,它的输入是一对对齐的灰度和深度图像,然后后面是两个完全连接的层,输出回归到一个向量, 这表示一个齐次变换它是(相对于相机的)抓取姿势的估计值。前3个值(t1、t2、t3)表示夹持器在相机坐标框中所需的(x、y、z)位置。最后9个值表示一个序列化的三维旋转矩阵。GPNet的训练过程为:
[0055] (4a)向GPNet网络中输入图片样本,该网络的输入为(Ig,Id),即灰度和深度图像,*输出为相应的地面真值t;
[0056] (4b)通过网络逐步计算得到预测值
[0057] (4c)根据地面真实抓取t*计算损失,损失体现了预测和地面真值的接近程度,是平移和旋转分量的加权和: 其中 是欧氏距离损失的平方是预测旋转矩阵与地面真实旋转矩阵转置的乘积的平
‑4
方偏差 在训练GPNET时使用权重λT=λR=1,学习率为1X10 的
Adam优化器在数据集上进行训练。
[0058] 如图3所示,本发明方法的深度残差块结构为
[0059] ResNet‑34主要由L个残差块,1个平均池化层,1个最大池化层和1个全连接层组成。每个残差块都由2个3×3卷积层和2个ReLU单元构成,每个残差单元可以表示为:其中,xl和xl+1分别表示第L个残差单元的输入和输出,F是残差函数,yl
表示学习到的残差,而h(XL)=XL表示恒等映射,f是ReLu激活函数,因此从浅层l到深层L的学习特征为
[0060] 如图4所示,本发明方法的三维重建网络:
[0061] 本发明使用了一种三维递归重建神经网络(3D‑R2N2)该网络能够将来自不同角度视点的对象实例构建出它的三维重建。每个3D‑R2N2由一个编码器、一个递归单元和一个解码器组成。该网络的工作过程如下:
[0062] (5a)将样本图像给定到输入层;
[0063] (5b)使用CNN将图像编码为特征,编码器由2D卷积层、池化层、漏校正线性单元和完全连接层组成。输入图像经过编码器逐层学习来获得图像的低维特征,为了改进较深网络的优化性能,在编码器的标准层之间添加剩余连接,同时为了匹配卷积后的信道数,将1X1卷积应用到深度残差网络中,然后将输出展平传递到完全连接层。这样编码器就将输入图像X编码成低维特征T(x);
[0064] (5c)将来自编码器的特征图输入到3D‑LSTM,3D‑LSTM由一组具有受限连接的结构化LSTM单元组成,每个单元通过3×3×3卷积从编码器接收相同的特征向量,并从其邻域接收隐藏状态作为输入,每个单元负责重构最终输出的特定部分,编码特征及隐藏状态通过3D‑LSTM后会有选择性的更新单元状态或者通过关闭输入门保持状态。在三维网格中,有N×N×N3D‑LSTM单元,其中N是3D‑LSTM网格的空间分辨率,前向传播在每个索引位置的过程为ft=σ(WfT(xt)+Uf*ht‑1+bf),it=σ(WiT(xt)+Ui*ht‑1+bi),St=ft⊙st‑1+it⊙tanh(WsT(xt)+Us*ht‑1+bs),ht=tanh(st);
[0065] 其中it,ft,分别表示输入门、和遗忘门。st和ht分别指存储单元和隐藏状态,用⊙表示元素乘法,下标t表示时刻t的激活。W(·),U(·)分别是变换当前输入xt和先前隐藏状态ht‑1的矩阵,b(·)表示偏差。*表示卷积运算。与标准LSTM不同,此网络没有输出门,因为只在最后提取输出。通过移除冗余的输出门,可以减少参数的数量;
[0066] (5d)通过解码器解码LSTM单元的隐藏状态并生成3D概率体素重建;解码器是三维反卷积神将网络(3D‑DNCC),使用了一个简单的5卷积的解码器网络并添加了4剩余连接的深度残差网络,来自3D‑LSTM的隐藏状态通过解码器的反卷积层、非线性校正层、反池化层逐层学习,最后是一个激活层,使用激活函数将最终输出转换为体素在某处的占用概率;
[0067] (5e)网络的损失函数定义为体素交叉熵之和。让每个体素(i,j,k)的最终输出为伯努利分布[1‑p(i,j,k),p(i,j,k)],其中省略了对输入χ={xt}t∈{1,...,T}的依赖关系,并让相应的基本真值占有率为yi,j,k)∈{0,1}即L(χ,y)=∑y(i,j,k)log(p(i,j,k))+(1‑y(i,j,k))log(1‑p(i,j,k))。
[0068] 如图5所示,本发明的3D‑LSTM网络结构:
[0069] 3D‑LSTM由一组具有受限连接的结构化LSTM单元组成,每个单元通过3×3×3卷积从编码器接收相同的特征向量,并从其邻域接收隐藏状态作为输入,每个单元负责重构最终输出的特定部分,编码特征及隐藏状态通过3D‑LSTM后会有选择性的更新单元状态或者通过关闭输入门保持状态。在三维网格中,有N×N×N3D‑LSTM单元,其中N是3D‑LSTM网格的空间分辨率,前向传播在每个索引位置的过程为ft=σ(WfT(xt)+Uf*ht‑1+bf),it=σ(WiT(xt)+Ui*ht‑1+bi),St=ft⊙st‑1+it⊙tanh(WsT(xt)+Us*ht‑1+bs),ht=tanh(st)
[0070] 其中it,ft,分别表示输入门、和遗忘门。st和ht分别指存储单元和隐藏状态。用⊙表示元素乘法,下标t表示时刻t的激活。W(·),U(·)分别是变换当前输入xt和先前隐藏状态ht‑1的矩阵,b(·)表示偏差。*表示卷积运算。与标准LSTM不同,此网络没有输出门,因为只在最后提取输出。通过移除冗余的输出门,可以减少参数的数量。