张丽娜 谭 彧 蒋易宇 王 硕
(中国农业大学工学院, 北京 100083)
温室穴盘育苗技术已被广泛应用于蔬菜生产中[1],在工厂化育苗生产中,成苗率为80%~95%,未成苗情况主要包括缺苗、病苗等[2-4]。由于育苗过程中种子质量、覆土深浅、基质含水率和苗床温度等不完全一致,幼苗实际出土快慢程度不同[5]。出苗时间较其他苗晚3 d以上时,其长势会明显小于其他苗。穴盘苗出厂前要求长势一致,因此应及时将这类晚出苗检测出来,进行移栽统一管理或直接剔除。现在国内育苗市场的幼苗管理工作多依赖人工完成,人为观察幼苗长势存在效率低、检测标准不统一等问题[6];茎叶、根鲜质量可以反映黄瓜幼苗的生长量[7],但测量幼苗鲜质量会伤害幼苗,无法实现无损自动化检测。
国外对育苗移栽相关技术的研究较早,已经有一些国外公司开发了穴盘幼苗质量检测生产线[8-10],如荷兰Visser公司开发的Select-O-Mat移栽机将幼苗从穴盘中逐个顶出后,再利用机器视觉对每株幼苗进行质量检测并分类。文献[11-12]采用RGB-D相机,根据洋蓟幼苗的叶面积建立了线性支持向量分类器模型,将洋蓟幼苗分为了优质苗、中等苗、劣质苗和无苗4种状态。SILVA等[13]通过提取幼苗的长度、宽度、偏心度等特征,建立了随机森林、逻辑回归等分类器模型,将幼苗分为4类,并确定了逻辑回归分类器的分类效果最优。ASHRAF等[14]根据幼苗的弯曲度、叶片节点和茎直径对需要嫁接的番茄幼苗进行了分级。DE MEDEIROS等[15]提出了一种用于大豆种子和幼苗质量分类的方法。文献[16-17]根据茎的直径对嫁接前的幼苗进行了分级。JIA等[18]研究了甘草幼苗分级标准对其品质的效果。杨意等[19-21]提出了一种利用白掌组培苗的平面投影面积推算其叶面积和茎粗的方法,并将投影面积和苗高作为分级指标,完成了对白掌组培苗的分级。杨斯等[22]提出了一种基于RGB-D相机的蔬菜苗株高测量方法,以幼苗出土表面至叶片最上处的距离作为株高,验证了该方法的可行性。王纪章等[23]基于Kinect相机实现了对穴盘苗的发芽率、株高和叶面积等信息的无损检测。
综上可知,叶面积、株高等特征是用于评价植物长势的主要参数[24],在整个育苗周期内,晚出苗的叶面积和株高均明显小于其他幼苗。本文以黄瓜穴盘幼苗为研究对象,将叶面积和株高的乘积作为分级系数,以整盘穴盘幼苗分级系数的均值与标准差的差值作为该穴盘的晚出苗分级阈值;利用RGB-D相机搭建穴盘幼苗点云采集平台,采集整盘幼苗的点云,并提取出每株幼苗的叶片点云,计算得到每株幼苗的叶面积与株高,完成长势信息的自动获取;基于晚出苗分级阈值对穴盘幼苗中的晚出苗进行自动检测,并通过试验验证该方法的可行性。
随机选取50盘50规格的穴盘幼苗,苗期基本达到子叶期,两片子叶完全展开、第一片真叶陆续吐心的状态;基本达到某一苗期是指该穴盘中50%以上幼苗达到某一苗期的阶段[25]。穴盘苗进入一叶期后,逐渐长成大苗,叶片遮挡逐渐严重,难以进行自动检测,因此对晚出苗的检测及管理应在子叶期内完成。
基本所有穴盘均存在长势不均的问题,对穴盘幼苗的株高和叶面积进行测量。株高的测量可直接使用游标卡尺来完成,以幼苗底部与基质交界处至两片子叶交界处的距离作为真实的株高;黄瓜穴盘幼苗叶片形状不规则,主要采用网格法、纸样称量法、叶面积仪法等[26]进行叶面积测量,其中纸样称量法操作简单且准确性高[27],本文采用纸样称量法对叶面积进行测量。具体步骤为:①选用标准A4纸,用精度为0.001 g的天平准确称量后,得到A4纸的面积质量比。②选用标准A4纸,裁剪一些标准形状的纸片,计算面积并称量,得到各纸片的面积质量比。③对A4纸、各纸片的面积质量比求均值,作为最终的面积质量比标准。④将黄瓜叶片摘下,用笔在纸上准确勾勒出每片黄瓜叶片的形状后剪出并称量,经过换算得到叶片面积,为叶片面积真值。
对所有穴盘幼苗的叶面积和株高进行测量,研究发现每个穴盘幼苗中,出土较晚的晚出苗其叶面积和株高的乘积均小于正常生长的幼苗。本文将幼苗叶面积和株高的乘积定义为分级系数,计算公式为
T=AH
(1)
式中T——幼苗分级系数,cm3
A——幼苗叶片面积,cm2
H——幼苗株高,cm
针对每个穴盘中的幼苗进行分析并总结规律,发现在显著性水平取0.05时,每盘中的幼苗分级系数显著地来自正态分布总体,晚出苗的分级系数总小于当前穴盘分级系数均值u与标准差σ差值,因此,本文将当前穴盘幼苗分级系数均值u与标准差σ差值作为该穴盘的晚出苗分级阈值,计算公式为
M=u-σ
(2)
(3)
(4)
式中M——当前穴盘晚出苗分级阈值,cm3
u——当前穴盘中所有幼苗分级系数均值,cm3
σ——当前穴盘中所有幼苗分级系数标准差,cm3
Ti——当前穴盘中第i个幼苗分级系数,cm3
n——当前穴盘幼苗总数
在50盘幼苗中,随机选取4盘,4盘幼苗的长势情况见图1,共有30株晚出苗,135株正常苗,随机选取部分正常苗和晚出苗进行对比,如图2所示, 图中方框内的为晚出苗。对每盘中的每株幼苗的分级系数进行计算,然后采用Shapiro-Wilk检验进行正态检验,显著性水平取0.05的情况下,显著性检验p值均大于0.05,即在0.05水平下,数据显著来自正态分布总体。各穴盘绘制的正态分布密度函数如图3所示,若幼苗的分级系数小于所在穴盘晚出苗分级阈值时,则判定为晚出苗。
图1 幼苗的长势情况统计Fig.1 Growth situation statistics of plug seedlings
图2 正常苗与晚出苗对比Fig.2 Comparison of strong and late emergence seedlings
图3 幼苗的概率分布Fig.3 Probability distributions of plug seedlings
RGB-D相机能够同时生成彩色图像和深度图像,被广泛应用于作物表型信息研究领域[28-31]。Kinect V2相机采用TOF结构光测量原理,精度为2 mm[32],本文采用该相机搭建穴盘幼苗点云采集平台自动获取整盘幼苗的点云信息。Kinect V2相机的坐标系如图4所示,穴盘处于相机正下方,在X轴方向对应穴盘的行方向,Y轴方向对应穴盘的列方向,在Z轴方向与相机的位置保持固定。整盘幼苗点云俯视图和侧视图如图5所示,该点云不仅包含穴盘幼苗的彩色信息,还包含三维坐标信息。
图4 穴盘幼苗点云采集平台Fig.4 Point cloud collection platform for plug seedlings1.Kinect V2深度相机 2.穴盘幼苗点云采集终端 3.黄瓜穴盘幼苗
图5 整盘幼苗点云Fig.5 Point clouds of seedlings
整盘幼苗点云信息中,地面穴盘上表面和基质等背景均属于无关点云数据,首先采用条件滤波去除大部分背景,采用两次统计滤波去除噪点,然后采用欧氏聚类算法分割得到每株黄瓜幼苗的点云,最后基于α-shape算法和主曲率计算获取每株黄瓜幼苗的叶面积和株高。
2.2.1条件滤波去除背景
采用条件滤波去除背景,预试验结果表明,设置X、Y、Z轴的阈值分别为X∈[-0.15 m,0.30 m]、Y∈[-0.35 m,0.35 m]、Z∈[0,0.681 m]时效果较好,可去除大部分背景,条件滤波后整盘幼苗点云如图6所示。本文点云处理结果均从相机拍摄视角显示。
图6 条件滤波效果Fig.6 Conditional filtering effect
2.2.2统计滤波去除噪点
如图6所示,条件滤波后叶片周围仍然存在很多噪点,此类噪点主要是由于设备、光线被测物体表面材质等多种因素造成的叶片边缘离群点,特点是分布离散、数量较少、与叶片点云之间的距离较近,采用统计滤波[33]去除噪点,其基本原理为:
(1)设置邻域点数量m和标准差倍数w。
(2)遍历点云,计算点云中每一个点Pj(j=1,2,…,N)与其邻域点Pk(k=1,2,…,m)之间的平均距离dj,计算公式为
(5)
式中xj——点Pj的x坐标
yj——点Pj的y坐标
zj——点Pj的z坐标
xk——点Pk的x坐标
yk——点Pk的y坐标
zk——点Pk的z坐标
(3)假设计算的结果符合正态分布,将点云中平均距离dj大于v+ws之外的点定义为噪点,并从数据中去除,其中v和s为全部点云中平均距离的均值和标准差。
经过预试验发现,m取10、w取0.2时可将叶片周围的噪点很好地去除,滤波效果如图7所示。
图7 统计滤波效果Fig.7 Effect of statistical filtering
2.2.3欧氏聚类分割单株幼苗叶片点云
常用的点云分割方法有基于区域增长的分割算法、基于K-means聚类的分割算法和基于欧氏聚类的分割算法等。基于区域增长的分割算法中,种子点是随机选取的,容易导致分割效果不稳定[34]; 基于K-means聚类的分割算法需要人为指定聚类个数,不适于聚类个数未知的情况[35]。基于欧氏聚类的分割算法在距离阈值选取合适的情况下可达到较好的聚类效果,选取基于欧氏聚类的分割算法提取单株黄瓜幼苗点云。其基本原理为:①在黄瓜点云中随机选取一个种子点P11,利用kd-tree对种子点进行半径r邻域搜索,若邻域内存在点P12、P13、P14等与P11的欧氏距离小于阈值r,则将这些点与种子点归为同一聚类簇Q。②在聚类簇Q中选取新的种子点,继续执行步骤①,找到新的点继续放入聚类簇Q中。③若Q中点数不再增加,则Q聚类结束。④设置聚类点数阈值区间[N1,N2],若聚类簇Q中点数在阈值区间内,则保存聚类结果。⑤在剩余点云中选取新的种子点,继续执行以上步骤,直到遍历完成点云中所有点。
距离阈值对欧氏聚类的效果影响较大,距离阈值过小,容易将一株幼苗点云苗分割成多株,造成过度分割,如图8a中圆圈内所标注的幼苗被过度分割;距离阈值过大,容易将多株幼苗点云合并成一株,造成欠分割,如图8b中方框内所标注的多株幼苗被误分割为一株。经过预试验,设定N1=20、N2=1 000、r=0.004 m时分割效果最优,可以分割出穴盘中的所有幼苗,将分割的幼苗按照从左至右、从下至上的顺序进行编号,分割效果如图9所示。
图8 不同距离阈值对欧氏聚类的影响Fig.8 Effect of different distance thresholds on Euclidean clustering
图9 欧氏聚类效果Fig.9 Euclidean clustering effect
2.3.1穴盘幼苗叶面积自动获取
由于Kinect相机生成的点云无序,彼此之间没有拓扑关系,需将三维点云通过法线投影到二维平面,然后对平面内的点云进行三角化,可得到各个点的连接关系。EDELSBRUNNER等[36]提出了一种基于α-shape算法的点云曲面重构方法,该方法首先对点云进行Delaunay 三角剖分,然后通过定义一个球在点云集中滚动,该球的半径为α,对剖分结果中的每个单纯形(四面体、三角面片、边和顶点),分别计算其属于α-shape的取值区间,若α位于该取值区间内则保留该单纯形,若α不在该取值区间内则删除该单纯形,该算法可以很好地实现对曲面的重建,其所建的曲面基本不含孔洞。经过预试验,设定α为0.003 5时,曲面重建效果较好,重建后的幼苗叶片点云由许多具有拓扑关系的三角面片组合构成(图10),通过海伦公式计算得到每个三角面片的面积,所有三角面片的面积之和即为幼苗叶片点云的面积。
图10 由具有拓扑关系的三角面片组合构成幼苗叶片点云Fig.10 Point cloud of seedling leaves composed by triangular patches with topological relationship
将基于α-shape算法自动获取的叶面积计算值与真值进行线性拟合,得到线性回归方程
y=0.219x+1.848
(6)
式中y——叶面积拟合值,cm2
x——α-shape算法计算的面积,cm2
拟合结果如图11所示,决定系数R2=0.89,拟合程度较高,因此可用式(6)对叶面积进行拟合。
图11 叶面积真实值与计算值线性拟合结果Fig.11 Linear fitting results between true values and calculated values of leaf area
2.3.2穴盘幼苗株高自动获取
幼苗株高即穴盘上表面与苗茎顶部位置之间的距离,以叶片的交界处作为苗茎顶部位置。穴盘幼苗点云中每一个点都包含X、Y、Z信息以及法线信息、曲率信息等,其中Z表示该点与相机坐标系原点的距离,通过自动寻找每株幼苗的苗茎顶部位置,即可自动获取幼苗株高。观察大量的穴盘幼苗,发现幼苗叶片的交界处基本都是黄瓜幼苗叶片点云中主曲率最大的点。因此,本文基于主曲率来定位每株幼苗茎顶部位置,进而获取幼苗株高。
经过曲面上某个点具有无穷个正交曲率,其中存在一条曲线使得该曲线的曲率为极大值K1,垂直于极大曲率面的曲率为极小值K2,这两个曲率属性为主曲率[37],表示法曲率的极值。通过调用NormalEstimation和PrincipalCurvaturesEstimation函数可以计算每个点云的法线和主曲率。
计算单株黄瓜幼苗的所有点云的主曲率,对比得到主曲率最大的点作为幼苗茎顶部位置。在50盘幼苗中,随机采集1 000株幼苗的点云图像进行测试,通过主曲率正确定位到茎部的幼苗共有988株,定位错误的幼苗共有12株,定位准确率为98.8%,如图12 所示,圆点为通过主曲率定位的苗茎顶部位置,方框内部为苗茎顶部定位错误的苗。分析发现定位错误的主要原因为个别幼苗叶片畸形导致,但实际生产中叶片畸形的幼苗占比很小,因此通过主曲率定位幼苗茎顶部位置的方法可行。
图12 主曲率定位的苗茎顶部位置及其原图Fig.12 Position of seedling stem top located by principal curvature and its original drawing
在此基础上进一步计算获取幼苗株高。苗茎顶部位置的Z信息,表示该位置与相机坐标系原点的距离。如图13所示,以穴盘上表面与苗茎顶部位置之间的距离作为幼苗的株高H,则株高计算公式为
图13 穴盘幼苗株高计算示意图Fig.13 Schematic of plant height calculation for plug seedling
H=H1-H2-H3
(7)
式中H1——深度相机到地面的距离,cm
H2——深度相机到苗茎顶部位置的距离,cm
H3——地面到穴盘顶部的距离,cm
2.4.1穴盘幼苗叶面积计算值准确性分析
将通过式(6)拟合的叶面积与真实值进行对比,如图14所示,两者平均误差为0.75 cm2,平均相对误差为8.51%,准确率较高,因此本文直接将拟合后的叶面积用于分级系数和晚出苗分级阈值的计算。
图14 叶面积真实值与拟合值对比Fig.14 Comparison between true values and fitting values of leaf area
2.4.2穴盘幼苗株高计算值准确性分析
将基于主曲率定位幼苗茎顶部位置自动获取的株高计算值与真实值进行对比,如图15所示,计算值与真实值之间平均误差为0.359 cm,平均相对误差为9.32%,准确率较高,因此本文直接采用自动获取的株高计算值用于分级系数和晚出苗分级阈值的计算。
图15 株高的真实值与计算值对比Fig.15 Comparison between true values and calculated values of plant height
通过处理整盘幼苗的点云可自动获取每株幼苗的叶面积与株高,进一步计算出每株幼苗的分级系数、整盘幼苗分级系数的均值和标准差、晚出苗分级阈值,基于此,即可完成对穴盘晚出苗的自动检测。基于点云处理的穴盘晚出苗检测方法流程见图16。
图16 基于点云处理的穴盘晚出苗检测方法流程图Fig.16 Flow chart of detection method for late emergence seedlings in plug trays based on point cloud processing
在50盘幼苗中,随机选取7盘子叶期的幼苗,命名为穴盘5~11,对穴盘5~11中每株幼苗的总鲜质量(茎叶鲜质量与根鲜质量之和)进行测量,将计算的分级系数与总鲜质量进行对比。其中穴盘5的对比结果如图17所示,两者变化趋势基本一致,总鲜质量更小的晚出苗其计算的分级系数明显更小,表明本文所提出的分级系数有效。
图17 分级系数与总鲜质量对比Fig.17 Comparison between grading coefficient and total fresh weight
盘中共有331株幼苗,其中根据鲜质量判断出的晚出苗共60株。基于此,进行穴盘晚出苗自动检测试验,结果如表1所示,正确检测出晚出苗57株,成功率为95%,因此本文所提出的检测方法可以较好地对晚出苗进行检测。穴盘5、穴盘7和穴盘9各有1株晚出苗检测失败,如图18所示,方框内为检测出的晚出苗,圆圈内为未被检测出的晚出苗。观察自动检测失败的3株晚出苗,原因为:穴盘5中的晚出苗叶面积和株高计算出现了累计误差,穴盘7和穴盘9的2株晚出苗的叶面积或株高过小,在检测过程中被当作噪点进行了去除。
图18 穴盘晚出苗自动检测效果Fig.18 Automatic detection effects for late emergence seedlings in plug trays
表1 穴盘晚出苗自动检测试验结果Tab.1 Test results of automatic detection for late emergence seedlings in plug trays
通过分析研究大量的穴盘幼苗长势情况并总结规律,将叶面积和株高的乘积作为分级系数,以整盘幼苗分级系数的均值与标准差的差值作为晚出苗分级阈值。利用RGB-D相机搭建穴盘幼苗点云采集平台,采集整盘幼苗的点云,通过条件滤波、统计滤波和欧氏聚类分割出穴盘幼苗叶片点云。采用基于α-shape算法和拟合的方法计算获取穴盘幼苗叶面积,拟合值和真实值平均误差为0.75 cm2,平均相对误差为8.51%。采用基于主曲率定位幼苗茎顶部位置的方法计算获取幼苗株高,真值与计算值的平均误差为0.359 cm,平均相对误差为9.32%。将计算的分级系数与幼苗的总鲜质量进行对比,分级系数与幼苗总鲜质量的变化趋势基本一致,总鲜质量较小的晚出苗其分级系数明显小于其他正常苗,本文提出的分级系数能够有效地描述幼苗生长情况。随机选取7盘子叶期的幼苗进行穴盘晚出苗自动检测试验,晚出苗检测成功率为95%。