采用局部点云和BP神经网络的苹果树剪枝决策系统构建
2021-04-02李鑫星梁步稳刘诗阳
李鑫星,梁步稳,刘诗阳,李 辉※
(1. 中国农业大学信息与电气工程学院,100083;2. 农业农村部农业信息化标准化重点实验室,北京 100083)
0 引言
中国苹果种植面积和总产量位居世界首位,仅2018年苹果产量高达2.57亿t[1-2]。然而中国果树种植智能化和自动化水平较低,苹果平均单位面积产量与发达国家仍有较大差距,达到出口要求的高档苹果不足总产量的20%,远低于国际水准[3]。而良好的果树修剪技术可以极大地提高果树的光合作用效率,优化果树营养运输和分配,从而提升果实的产量和品质。然而果树剪枝对从业者技术要求较高,需要经过科学理论学习并具有丰富的经验。为了降低苹果的生产成本,提高其品质和单位产量,剪枝方法亟需向自动化、智能化发展[4-5]。
现代果树剪枝技术可分为机械剪枝和虚拟剪枝[6]。机械剪枝通过制作复杂的剪枝机械代替人工劳动实现树木的自动化或半自动化剪枝,可有效解决人工劳动强度大、效率低问题,但其仅适用于果树粗剪,难以实现精细化剪枝[7-9]。而虚拟剪枝通过构建虚拟果树生长空间,并仿真模拟果树的生物信息,定量评估剪枝效果,有效克服机械剪枝的高破坏性、不可逆性,提供科学的剪枝决策[6,10]。Kolmani等[11]提出了一种基于离散差分进化的虚拟树修剪算法,在考虑树木距离基础上优化树木的整体阳光摄入量,使其朝着期望的生长形式发展。Bai等[12]基于二维激光扫描技术提取了果树的生长参数,并提出了整枝及主干修剪方法;郭彩玲等[13]利用三维激光扫描仪获取冠层的点云数据,并提出基于颜色取样的苹果树枝点云数据提取方法;杨丽丽等[14]对冬季落叶后的苹果树进行扫描获取果树的三维骨骼图,并基于多项式拟合函数,为虚拟苹果树修剪仿真提供数学规律;Kolmanic等[15]建立计算机图形的交互式实时三维苹果树剪枝教育系统用于模拟苹果树剪枝训练。虚拟剪枝多从生物量、生长信息定量果树最优剪枝方式,但其多停留在数学模型、图像处理及仿真模拟上。
果树修剪本质上是一个随机、非线性、复杂的系统,然而由国内外研究现状可知,目前结合人工智能技术的智能化剪枝决策研究尚不完善,且没有科学的剪枝决策软件系统辅助农户剪枝。因此,本文以苹果树剪枝环节为例,提出基于局部点云和BP神经网络的苹果树剪枝方法,并开发设计苹果树剪枝系统,可供树形分析和辅助剪枝决策,便于果园从业者进行剪枝活动,从而有效指导苹果的种植和生长,实现产效最大化。
1 系统设计
1.1 系统需求分析
本系统结合北京八口果树园、十三陵种植园等果园的实地需求调研,综合考虑苹果产业从业者的实际需求,基于瀑布模型开发方法,对苹果树剪枝决策系统进行需求分析[16]。将系统功能大体分为三类:树枝三维骨骼提取功能、苹果树剪枝功能、苹果树剪枝资料查询功能,如图1所示。
1.2 系统架构设计
在智能化剪枝决策的基础上,结合系统需求设计了系统架构,如图2所示。系统分为数据层、业务逻辑层和界面层3个层。数据层负责将采集到的果园各项数据进行组织化处理并保存在数据库中,业务逻辑层利用数据层中存储的数据进行分析和处理,用以实现各项系统功能,最后将结果反馈回界面层中,以供用户查看。
2 系统关键模型设计
2.1 研究对象分析
苹果树在生长过程中,如果没有人工干预,会出现很多不适合苹果增产的异常树形,其果树产量往往堪忧。干扰果树正常生长的干扰枝可以大体上分为绝对干扰枝和相对干扰枝。相对干扰枝的判别标准模糊且无统一原则,对果树生长影响较小甚至有一定益处。绝对干扰枝指具有鲜明的形态特征,在树枝的各个生长阶段均大量存在,且严重压制果树正常营养运输和分配的树枝,是苹果剪枝的重中之重[17],因此本文研究对象主要为绝对干扰枝。绝对干扰枝主要有3种,分别是背上枝、向心枝和竞争枝。背上枝和向心枝可单独判别,无需对照参考,如图3a所示;而竞争枝形态特征类似于保留枝,但是其以更有利于营养运输的形态存在,因此在判别竞争枝的时,需要与对应的保留枝进行对比,如图3b所示。
2.2 树枝三维骨骼提取方法
苹果树剪枝决策的先决条件是将现实中的真实树枝转化为数字化的模拟树枝。为解决这一问题,本研究提出基于局部点云的苹果树树枝三维骨骼提取方法,并以此生成苹果树三维骨骼图。该三维骨骼图可供剪枝决策,也可以为苹果产业从业者进行树形分析提供数据支持。
2.2.1 数据采集
数据采集地点为北京八口果树园,选取初果期纺锤形苹果树作为试验对象,数据采集时间选择在傍晚19:00。选取使用了基于TOF(Time of Flight)原理的深度相机MESASR4000作为数据采集设备[18-19],该深度摄像头最大有效拍摄范围5 m,校准范围0.8~5m,绝对精度10 mm,最大帧速率54FPS,像素矩阵尺寸176×144,获取数据格式为ASC点云格式。其通过光脉冲发射器发射出的原始光信号与接受到的反射光信号之间相位的差值来计算目标物体和TOF相机的距离值。其原理可以表达为
式中c为光速,m;φΔ 为原始光信号与接受光信号的相位差,弧度;f为调制频率,Hz。
本次共选择采集15棵形状较为规则的果树进行数据采集,每棵树选择8个角度对果树的树枝部分进行拍摄,共采集120个数据集。
2.2.2 三维骨骼提取方法
剪枝决策算法主要依赖于树枝的空间特征和形态特征,即树枝的三维骨骼。因此,实际需要得到的是一张反应树枝空间结构的图G(V,E)。其中V为骨骼关键点集合,E为关键点的邻接矩阵。本方法首先寻找树枝骨骼的关键点,即树枝的起始点与终结点。对于在同一根主枝上生长的多根树枝,则需要找出其在主枝上的分生点。此后,根据关键点在二值图像上的区域关系判断其是否存在连接关系,并得出邻接矩阵E。算法流程如图 4所示。
1)基于Harris角点检测算法生成初始候选点。对二值图像进行处理,将检测到的角点作为初始候选点[20]。
2)基于凝聚层次算法筛选邻近候选点。树枝生长时存在一定粗细度,致使树枝左右两侧均可被检测到一个角点;此外,当出现复杂枝条交叉场景中,也会产生大量无效候选点,对于初始候选点中存在的邻近候选点,采用凝聚层次算法筛选产生的邻近候选点,并将其合并为一个聚类簇。
3)基于深度层次分析算法提取三维骨骼关键点。树枝复杂生长情况导致存在树枝彼此之间相互交叉,交叉时会产生多个角点,而这些角点并不是我们需要的树枝骨骼关键点,而是由于视觉因素产生的无效候选点。此类候选点的特点是其邻域内存在多条交叉树枝,因此其深度数据会呈现多层次性,每一根交叉的树枝会提供一个额外的深度层次。而非交叉点仅存在两层:树枝层和背景层。利用交叉候选点的这一特点,可以通过聚类对像素点邻域做深度层次分析,从而判断该点是否为交叉候选点。
4)基于线覆盖法建立树枝的空间向量。经过处理后的关键点集合V中点与点之间彼此独立,不具备逻辑关系,因此需要先以获取的关键点为基础,判断任意两关键点间是否存在一根树枝,即判断点与点之间是否具有连接关系。针对这一问题,提出了取线覆盖法予以解决。
2.2.3 三维骨骼提取方法的实验验证
采集的点云数据为ASC格式,大小为(176×144)行3列的矩阵,其内容为全局坐标(x,y,z)。其中第三列z值即为该点深度值函数d,即d(x,y)=z。
将点云数据进行处理,通过式(2)~(3)可以分别获得二值图像与深度图像。
二值图像映射后深度值D1为
式中d为该点原始深度值。d=0代表无深度(即未检测到物体)。
深度图像映射后深度值D2为
式中dmax为所有点中最大深度值。将深度值按比例放大到灰度区间(0,255)即获得了目标的深度值 2D。
考虑到SR4000易受光照影响,获取的二值与深度图像均存在噪声,因此对二值图像进行高斯滤波后再进行骨骼提取。角点检测及无效点筛除过程如图5所示。
根据线覆盖法得到邻接矩阵E;同时根据角点检测后点P的坐标获取三维关键点全局坐标O(x,y,z),从而获得三维骨骼关键点集合V。图G(V,E)在三维坐标中建立的树冠三维骨骼模型如图6所示。
2.3 基于BP神经网络的苹果剪枝方法
针对果树修剪的高度抽象、非线性、多变量耦合性的问题,采取BP神经网络实现苹果树剪枝决策功能[21-23]。
2.3.1 模型建立
1)激活函数选用
本研究需分析树枝是否剪除,且还需判别该树枝的干扰枝类型,即本研究属于多分类问题。因此,选用Softmax作为激活函数。
2)输入层
对树枝做BP神经网络训练需要拟定输入层的值,这些值应该具备反应树枝空间特性的能力。综合考虑了树枝的形态特征和实际采集情况,以标定杆为Z轴,南北方向为X轴,东西方向为Y轴,X轴正方向为0°角,建立柱坐标系。规定:每根树枝从主枝上的分生点为该树枝的起始节点,树枝生长的末端为该树枝的末端节点。据此拟定如下5个特征值:树枝纵向高度hΔ ,树枝径向长度 Δr,树枝生长角度 Δα,树枝平均直径,树枝弯曲度ρ。
由于本文构建的神经网络模型输入层限定为树枝的5个形态特征值,实际输出的图G(V,E)无法直接输入神经网络,需要将G(V,E)的数据进行处理,转化为树枝的形态特征值。
遍历邻接矩阵E,并取出矩阵E中值为1所对应的点Pi(xi,yi,zi)、Pj(xj,yj,zj)构成了树枝的空间向量
树枝的空间向量可以转化为柱坐标系下的空间向量
式中h为高度,m;r为径向距离,m;α为方位角,弧度。
返回二值图中,以点Pi(xi,yi)为中心,分别在其8个方向上搜索第一个空白像素的位置,即获得(x+k1,y),(x-k2,y),(x,y+k3),(x,y-k4),(x+k5,y+k5),(x-k6,y-k6),(x+k7,y-k7),(x-k8,y+k8)。则该点直径di近似为
同理计算Pj(xj,yj,zj)点的直径dj,最终根据Pi(xi,yi,zi)和Pj(xj,yj,zj)点的直径di和dj求得该树枝的整体直径d。
综上,从树枝三维骨骼关键点中可以计算出该段树枝的形态特征值
最后,将所有三维骨骼提取出的树枝数据转化为上述5个形态特征值,输入到经过训练得到的BP神经网络模型,可以得到对每个树枝的分类判断。
3)输出层
输出层有1个节点,表示这个树枝的类别,N的取值为(0,1,2,3)。当N=0时,该树枝为需要保留;当N≠0时,该数值为需要剪除。N=1为背上枝,N=2为向心枝,N=3为竞争枝。
4)隐含层
为了选择神经网络模型性能最优化的隐含层节点数,基于交叉验证方法,以误差精度为评估指标,对模型进行性能测试,并确定隐含层节点为10。
5)网络参数调优
初始权重采用随机初始化,随着迭代次数增多,随机梯度下降法逐渐接近最优解。不同学习率下模型性能变化如表1所示。可见,当学习率达到0.85后,模型的精度基本不会发生太大变化,但是随着学习率的减少,训练时长显著上升。因此学习率选择0.85最为合适。
表1 不同学习率的性能对比 Table 1 Comparison between learning rate and model performance
2.3.2 误差分析
本文采取准确率、精确率、召回率和F1指数对基于BP神经网络模型的树枝剪枝分类问题进行评价,如表2所示。
此模型对于背上枝和向心枝的辨别程度较好,准确率在0.9以上,F1分数在0.8以上。对竞争枝的分类准确率略低,为0.740。考虑到竞争枝和另外2种树枝存在一些差异,即背上枝和向心枝不受到其他枝条的干扰,满足空间形态特征即可以判别,属于独立干扰枝。但是竞争枝的判别需要与一个对应的保留枝进行比较,选择其中之一剪除,即竞争枝的判别需要借助与其在同一主枝上分生的保留枝,不属于独立干扰枝,因此竞争枝的判断精度略低。
从整体上看,该模型精度与其他传统方法相比有了明显的提高,可根据输入的树枝形态特征参数进行类型判别,分析该树枝是否需要剪除,实现对三类绝对干扰枝,即背上枝、向心枝和竞争枝的分类,可以有效应用于纺锤形简单树形的苹果树剪枝。
表2 BP神经网络模型性能 Table 2 Performance of BP neural network model
3 系统构建与应用
在第二章和第三章的基础上,建立基于局部点云的树枝三维骨骼提取算法与基于BP神经网络的剪枝决策系统,实现智能化苹果树形管理。
3.1 系统构建
本文所构建的苹果树剪枝系统是基于B/S模式的,系统采用MVC模式开发,采用Python作为主要开发语言,使用了开源框架Django与深度学习开发平台Tensorflow进行开发,同时应用了MySQL数据库与WebService技术[24]。
3.2 系统功能
1)苹果树虚拟剪枝功能
本功能通过对上传的ASC点云数据文件进行处理,从而得到树枝的三维骨骼关键点,并据此生成树枝的三维骨骼图。同时,利用已经训练好的BP神经网络模型,对树枝关键点进行智能分析,对苹果树树形进行优化修剪,得出剪枝方案,并生成剪枝方案图,以保障果树来年正常结果产出。具体实现如图7a所示。
2)苹果树查询与存储应用功能
果树剪枝资料查看功能是本系统功能的拓展和完善。用户可以在内置的果树剪枝资料库中浏览,查询用户希望学习的剪枝教学文件;也可以调阅本系统的往期苹果树剪枝记录,以历史记录作为剪枝案例进行学习;当用户搜集到一些系统内尚未登录的优质教学资源,用户可以上传到数据库共享和留存。具体实现如图7b和7c所示。
3.3 系统应用测试
本节将建立的苹果树剪枝系统与实际剪枝结果进行对比,探讨最终的剪枝决策系统的性能并对其评估。
本文共随机抽取15个ASC点云数据,对其进行完整的基于局部点云与神经网络的剪枝决策,得出对应的树枝三维骨骼图和剪枝方案图。对每个三维骨骼图进行人工分析,判断出该图中的背上枝、向心枝、竞争枝数目,并与剪枝决策图结果进行对比,得到结果如表3所示。
对于大部分ASC点云数据,剪枝决策方法可以做到100%检出,该模型对于背上枝和向心枝的辨别程度较好,错误率主要出现在树枝主干和主枝上。少部分形态较为复杂的ASC点云数据会存在少量漏检,总检出率85.71%,符合期望。综上所述,基于局部点云与神经网络的剪枝决策系统符合实际预期需求。
表3 剪枝决策系统应用与测试 Table 3 Application and test of pruning decision model
4 结论
本文以苹果树剪枝环节为研究对象,提出了基于局部点云的树枝三维骨骼提取方法和基于BP神经网络的剪枝决策方法,并构建了苹果树剪枝决策系统,为推进智慧农业普及,提高自动化、信息化提供了有效的软件工具。
1)针对果园生产过程中信息化程度较低的问题,实现基于局部点云的三维骨骼提取,生成树枝的三维骨骼图,实现真实树枝的数字化模拟,提高信息化水平。
2)针对剪枝技术门槛较高的问题,以苹果树剪枝为例,建立了基于BP神经网络的苹果树剪枝模型。该模型可以根据输入的树枝形态特征参数进行类型判别,分析该树枝是否需要剪除,并实现对三类绝对干扰枝,即背上枝、向心枝和竞争枝的分类,经过试验验证,此模型对于竞争枝准确率为0.740,背上枝、向心枝准确率均可达0.900以上。
3)以局部点云和BP神经网络为算法核心,构建了苹果树剪枝决策系统,根据输入的果树数据自动分析并生成剪枝方案,辅助从业人员进行剪枝活动。经过实际验证,剪枝决策系统对干扰枝的总检出率85.71%,整体符合要求。