杨红云,路 艳,孙爱珍*,杨 乐
(1.江西农业大学软件学院,江西南昌330045;2.江西农业大学计算机与信息工程学院,江西南昌330045)
叶片作为植物进行光合作用和蒸腾作用的重要器官,准确测量叶片几何参数对于评估植物的生长状况等方面有着十分重要的意义[1-2]。常见的叶片几何参数测量方法有直尺法[3]、网格法[4-5]、叶面积仪测定法[6-7]、称重法[8]、回归方程法和数字图像处理法[9-11]等。为能快速、准确获取植株器官几何参数,很多学者进行过大量研究[12-14]。张秀玲[15]使用回归方程法测定紫荆叶面积,获得了较高的精确度。李朝东[16]通过数码相机获取苎麻叶片图像,使用自身开发图像处理软件获取叶长和叶宽,发现软件处理结果与实测方法测定结果呈显著相关性。毛平生[17]利用扫描仪获取茶叶等植物叶片图像,采用Photoshop图像处理软件计算叶面积,测定结果准确性高于经验公式计算结果。贾爱莲等[18]通过数码相机获取植物叶片数字图像,使用Matlab处理计算植物叶面积,并将获取结果与称重法进行比较,结果差异小。作者在前期研究[19-20]中利用离体扫描叶片图像方法获取水稻叶长、叶宽和叶面积等几何形态参数,并以叶长、叶宽和叶面积线性回归值作为输入,构建了支持向量机回归模型,对叶面积进行了估测,结果均方根误差及平均相对误差都较低。随着智能手机的普及,基于Android获取植物器官几何参数的应用也越来越多。郭文川[21],龚爱平等[22]开发了基于Android手机的植物叶片面积快速无损测量系统,实现了多种植物叶片面积的有效测量。路文超等[23]开发了基于Android的水稻剑叶角测量系统实现了对水稻剑叶的夹角测量。现代智能手机有着优秀的图形图像处理能力,并以其体积小、质量轻、便于携带、适用于野外使用等特点在农业领域获得广泛应用。
传统的测量方法和目前多数学者研究的图像测量方法都存在着一定的局限性,有的需要接触叶片进行测量,这些测量方法破坏了植物叶片的正常生长;有的仅针对平整型植物叶片进行无损测量,无法实现弯曲或带卷曲特征叶片的几何参数测量,而且往往需要单独对被测叶片进行无遮挡拍照,还有比较繁琐的前期图像处理步骤等等,一些非接触的光学测量仪器价格又非常昂贵,维护成本太高,难以普及推广使用。正常生长的水稻叶片柔软、弯曲、交替遮挡严重,到目前为止,还未见有针对类似水稻柔性弯曲叶片几何参数测量的有效方法。为此,本文以Android手机为工作平台,提出过控制点B样条曲线逼近叶脉和最大叶宽位置方式分别实现水稻叶长、叶宽参数的测量;并以获取的叶长、叶宽作为输入,应用BP神经网络算法建立水稻叶面积估测模型对叶面积进行估测;还利用Hough变换对提取的茎叶骨架信息进行直线检测对茎叶夹角进行计算测量。实现了真正意义上的水稻叶片几何形态参数无损测量,测量精度高且操作便捷,对拍照操作要求不高,为农学研究测量植物器官几何形态参数提供一种新的可靠途径。
选择江西地区推广种植的金优458(JY458,2018年)和中早35(ZZ35,2019年)两个品种,在大田环境下进行常规水稻栽培试验。对分蘖期和抽穗期进行图像采集,每个生长期各采集100个样本,两个品种共采集400组水稻叶片叶长、叶宽数据,用于建立机器学习叶面积估测模型。同时利用YMJ-B叶面积仪测量记录下这些叶片的叶长、最大叶宽和叶面积数据,利用量角器测量80个叶片样本的茎叶夹角,供本系统测量叶片几何参数做误差分析。
为了便捷采集图像,设计了一个图像采集工具(图1),主要由手机夹,手机夹移动扭,支架和背景板组成。手机夹用于固定智能手机,并使得图像采集过程中手机摄像头与背景板保持平行;手机夹移动扭使得手机可以在支架上进行移动和固定操作,调整并选择拍摄区域;背景板可以张贴棋盘格参考物或者用于分隔背景使用。
图1 图像采集工具Fig.1 Image Acquisition Tool
(1)选择参照物。参照物为2.5 cm×2.5 cm黑白相间的棋盘方格,棋盘方格纸平铺粘贴在测量工具背景板上,测量叶片长宽图像采集需要与参照物一同拍摄。测量茎叶夹角只要求背景板为白色背景即可。
(2)设置相机参数。对相机分辨率和焦距并无具体要求,能拍摄叶片清晰完整图像即可,试验相机分辨率设置为1 920×1 080,拍摄时关闭闪光灯。
(3)获取图像。测量系统采集图像时几乎不受焦距,摄像头分辨率、是否有其他器官遮挡等拍摄环境的影响。叶长图像拍摄应尽量使得水稻叶脉曲线平面与背景板平面平行;水稻叶片最大叶宽在叶片中部位置,叶中位置附件位置的叶宽几乎趋近一致,叶宽图像拍摄应使得叶中宽度位置部分与背景板平行即可。水稻茎叶夹角是弯曲叶片叶基处切线与主茎夹角,即叶基部分叶片与主茎的夹角值,为减少茎叶夹角图像处理时的干扰,用白色背景板隔离被测茎叶,仅拍摄叶基部分茎叶夹角图像即可。
设计了一个基于Android平台的测量系统,系统由硬件平台和软件平台构成,其中硬件采用华为Honor V10智能手机,手机内置Android 8.0操作系统,HiSilicon Kirin 970处理器,双摄像头2 000万像素+1 600万像素,运行内存6 GB。软件部分在Windows 7的64位操作系统下使用AndroidSDK+JDK8.0+Eclipse Java Photon+ADT+CDT+OpenCV3.0+NDK搭建基于Android的水稻叶片几何参数测量系统。
水稻叶片几何参数测量系统软件主要功能:图像采集(选择本地相册或拍照),曲线操作(增加或删除控制点),叶长计算,叶宽计算,叶面积计算和茎叶夹角计算。系统实现了水稻叶片几何参数(叶长、叶宽、叶面积、茎叶夹角)的无损测量功能,系统总体工作处理流程如图2所示。
1.6.1 B样条曲线的定义 给定m+n+1个顶点Di=(d0,d1,…,dm+n),i=0,1,2,…,m+n,称n次参数曲线段:
为第k段n次B样条曲线段(k=0,1,…,m),这些曲线段的全体称为n次B样条曲线,其顶点Di(i=0,1,2,…,m+n)所组成的多边形称为B样条曲线的特征多边形。其中基函数Gi,n(t)定义为:
图2 水稻叶片几何参数测量系统工作处理流程Fig.2 Functional structure of rice leaf geometric parameters measurement system
当n=3,3次B样条曲线的基函数如下:
将式(3)代入式(1)可得各段3次B样条曲线,k=0,1,……,m:
式(4)中T=[1,t,t2,t3],t∈[0,1];M1为系数矩阵,Dk=[dk,dk+1,dk+2,dk+3]T为第k段B样条曲线的控制顶点。
1.6.2 过控制点的B样条曲线 B样条曲线具有局部性质和很高的光滑性等特点,是应用较多的自由型曲线之一,但其缺点是控制点不在曲线上。本研究操作是希望用户在叶脉图像上绘制若干控制点,生成一条经过这些控制点的曲线来逼近叶脉曲线,从而获得叶片长度计算方法。这时,不能直接用给出控制点去拟合B样条曲线,而必须由插值条件反算出B样条曲线特征多边形的顶点矢量,再由这些控制点来生成插值于各坐标点的B样条曲线。依据这一思路推导出反算3次B样条闭曲线的B特征多边形顶点的公式,以满足逼近水稻叶片叶脉曲线设计的需要。
设给定的数据点(插值控制点)为Pk=(pk,pk+1,pk+2,pk+3)T,欲用B样条曲线对其插值,需要利用Pk反计算B样条曲线特征多边形的控制顶点Dk,即求变换矩阵M2,使得Dk=M2Pk,将其代入(4)式,得到
其中系数矩阵M=M1M2,若满足Bk,3(0)=pk+1,Bk,3(1)=pk+2,则Bk,3(t)为插值点pk+1和pk+2的3次样条曲线段。反计算矩阵系数M的方法参考文献[24],可得:
其中c为样条曲线段平滑控制参数,c=0时曲线为控制特征多边形本身,根据多次试验确定c=1.5时可以较好满足水稻叶片弯曲度的逼近。t为绘制曲线参数,范围[0,1]变化,在绘制该3次均匀B样条闭曲线时,给定不同的参数步长Δt,可得到相应精度的曲线。当Δt较小时,绘制的曲线较光滑,但生成速度较慢;当Δt较大时,曲线较粗糙,但生成速度较快。由于B样条曲线通过给定控制点,而且控制点的个数没有限制,因此,可以模拟逼近任意不规则水稻叶片叶脉曲线。
1.6.3 控制点调整 为保证曲线最大程度贴合叶片叶脉与最大叶宽位置,B样条控制点可通过手势交互进行移动、增加、删除等调整操作,调整产生控制点。控制点移动调整原理为:所有的控制点保存至集合,获取当前手势点坐标,遍历集合中所有控制点,使用欧氏距离计算当前点与集合中所有点的距离,当距离小于一定范围时,则认为当前点与集合中满足条件的点为相同点,移动当前手势点,将移动结束时的点坐标覆盖原先集合中满足条件的点坐标,达到调整移动控制点的目的。
式(7)中,d ist为当前点(c1,r1)到集合中控制点(c2,r2)间的距离。
系统还有控制点的添加、删除和清空操作功能。当手势绘制的控制点不合理时,点击删除控制点按钮可对当前选中控制点进行删除,及时矫正曲线走向。
1.6.4 叶长叶宽计算 采用3次B样条曲线逼近叶脉曲线方式可对叶长进行获取。水稻叶片宽度过窄,最大叶宽位置在叶中部位置,叶中部位置附件的叶宽基本趋近一致[25],采用1次B样条曲线(其实两个控制点确定的一条直线)逼近叶中部对叶宽进行获取。对于叶长则根据被测叶片的叶脉弯曲程度,系统通过用户手势交互绘,在叶脉图像上制确定一组控制点,插值生成过控制点的B样条曲线。改变控制点,B样条曲线也会发生变化[24]。水稻叶片过控制点的B样条曲线示意图如图3所示。
B样条曲线绘制完成后,计算绘制的B样条曲线像素长度及参照物棋盘方格的长、宽方向平均像素长度,参照物实际长、宽已知,通过比例计算获取叶片真实长度和最大叶宽。叶长、叶宽计算公式如式(8)、(9)所示,系统本次测量计算结果如图4所示,图中红色箭头所指叶片为本次测量叶片样本。
图3 过控制点的B样条曲线示意Fig.3 The image of blade geometry parameter trajectory curve
式(8)(9)中,Lreal、Wreal分别为叶片实际长度和实际宽度;R Lreal、R Wreal分别为参照物实际长度和实际宽度;CLpixel为叶长方向B样条曲线像素长度,CWreal为叶宽方向B样条曲线像素长度;RLpixel、R Wpixel分别为参照物方格平均像素长度和宽度。
图4 水稻叶长宽计算结果Fig.4 The results of rice leaf length and width
进行茎叶夹角计算时,系统内部对茎叶夹角图像进行灰度化、二值化图像处理。
1.7.1 茎叶器官骨架信息的提取 本文采用基于距离变换的算法提取骨架信息,这类方法先对物体进行距离变换,据此来寻找骨架点。一般来说,基于距离变换的骨架提取算法获得的骨架点位置比较准确,但难以保证整个骨架的连通性。由水稻茎叶夹角计算中只要求主茎茎杆和叶片的骨架信息,对于骨架的连通性要求不高,所以这里选用基于距离变换的骨架提取算法来提取目标的骨架信息。笔者选择0°、45°、90°、135°4个方向的距离变换模板连续地作用于离散图像上的点而获得距离值,用这些距离定义来模拟欧氏距离[26-27]。4个方向的距离变换模板如图5所示。
用4个方向距离变换模板分别与茎叶夹角二值图像进行卷积计算,目标像素点距离4个方向边缘的最大正值像素即为目标骨架像素。
1.7.2 直线检测与茎叶夹角计算 对二值化处理后的水稻茎叶夹角图像进行骨架提取后,使用Hough变换[28]可以进行直线检测,由于茎叶夹角骨架信息近似两条直线,所以检测到的直线并不多,而对于茎叶夹角的计算,可以由检测到的直线间最大夹角确定。
选择获取夹角项,图像经过系统内部灰度化、二值化处理,再进行提取茎叶图像的骨架信息和直线检测及夹角计算。水稻茎叶夹角参数测量操作和测量结果如图6所示。
图5 0°、45°、90°、135°4个方向的距离模板Fag.5 0°、45°、90°、135°Four Directions Distance Template
1.8.1 数据归一化 为了提高运行效率和建模的精度,将不同量纲的数据归一化至区间[0,1],采用的归一化原理如公式(10)。式(10)中x表示样本数据,xmax和xmin分别表示样本数据中的最大值和最小值,y表示归一化后的数据,ymax和ymin分别表示归一化后数据的最大值和最小值。
1.8.2 建立叶面积估测模型 采用BP(back propagation,BP)神经网络算法进行水稻叶面积估测模型,并与支持向量回归(support vector regression,SVR)、随机森林回归(random forest regression,RFR)模型进行比较。
(1)本试验BP算法结构为3层网络标准结构,输入节点数为2(叶长,叶宽),输出节点数为1(叶面积),迭代次数为100 000次。BP神经网络隐含层节点个数与输入输出单元节点数及问题复杂性有关,若隐含层节点数过少,网络性能太差,隐含层节点数过多会造成训练时间长和出现“过拟合”现象,所以应在综合考虑问题复杂度及误差大小下,用节点删除法和扩张法确定最合适的隐含层节点数[29]。经试验比较后,本试验隐含层节点数为6。隐含层及输出层激活函数均采用relu函数,不同学习率下,采用均方根误差作为评价标准,对Adam、RMSProp、Adadelta、Adagrad和Ftrl等五种学习优化训练函数进行比较分析(表1),可发现采用RMSProp函数,学习率为0.000 1时,不同水稻品种估测结果均达到最佳。
(2)支持向量机(support vector machine,S V M是一种监督型学习模型,最初用于分类问题,现已被应用于回归问题,即支持向量回归[30]。支持向量回归精度由核函数及其他参数决定,统筹考虑模型普适性及准确性。本试验核函数均采用线性核函数,金优458和中早35分别在惩罚因子C为1.7和1.8时,模型估测效果最好。
图6 茎叶夹角测量结果Fig.6 Measurements of stem-leaf angle
表1 BP神经网络不同优化算法参数实验结果对比Tab.1 Comparison of experimental results of parameters of different optimization algorithms for BP neural network
(3)随机森林算法(random forest,RF)是一种灵活的集成学习算法[31]。随机森林由N棵决策树组成,采用“bagging”方法进行训练,即随机有放回的选择训练数据,最终将所有决策树的结果进行合并求均值以获得准确而稳定的估测数据,随机森林算法既可以用于分类问题,也可以用于回归问题,其从根本上改善了决策树过拟合的问题。RF的核心问题在于确定决策树的数量和分割节点的随机变量数。由于本文输入特征过少,所以RF主要受决策树数量影响,金优458和中早35分别在决策树数量为100和150时,模型估测能力最好。
采用决定系数(R-squared,R2)、均方根误差(root mean square error,RMSE)、平均绝对误差(mean absolute error,M AE)及平均相对误差(mean relative error,M RE)评估BP神经网络模型、支持向量机模型及RF模型估测结果准确性,R2越大,均方根误差、平均绝对误差及平均相对误差越小,表明模型估测精度越高。
叶片、长宽系统计算误差与水稻品种无关,在测量的样本中随机选取60组,将系统计算获取叶长、叶宽与叶面积仪测量叶长、叶宽结果进行相关性分析。结果显示系统测量的叶长与实测叶长值,决定系数、均方根误差、平均绝对误差及平均相对误差分别为0.989 9、0.534 4 cm、0.523 3 cm和2.33%(图7(a)),系统测量的叶宽与实测叶宽值,决定系数、均方根误差、平均绝对误差及平均相对误差分别为0.819 1、0.065 83 cm、0.055 2 cm和6.66%(图7(b))。通过决4个模型评估指标结果可发现系统获取叶长、叶宽结果精确度高,能满足农学研究需要。
图7 叶长、叶宽参数系统计算值与实测值Fig.7 Calculated Value and Measured Value of the Leaf Length and Width P Parameters
茎叶夹角测量值与品种因素无关,选择茎叶夹角样本共80组,样本夹角的大小尽可能多样化(从锐角到钝角),每个茎叶夹角用量角器手工测夹角数据,同时拍摄下图像。随后利用本文方法计算出这些数据,并进行相关性分析。图8给出了茎叶角实测值与计算值的相关比较,由图可以看出系统计算值与用量角器测量值趋势一致。分析结果显示,决定系数、均方根误差、平均绝对误差及平均相对误差分别为0.981、2.004°、1.27°和2.46%,精度能够满足农学研究需要。
针对金优458(JY458)和中早35(zz35)叶片数据,以叶长、叶宽为自变量,叶面积为因变量,分别采用BP神经网络、支持向量回归、随机森林算法建立水稻叶面积估测模型。3种模型随机选取320组叶片数据作为训练样本,并对剩余的80组样本数据进行估测。
图8 茎叶夹角系统计算值与实测值Fig.8 System Calculated Value and Actual Measured Value of stem-leaf angle
图9 BP模型估测叶面积结果Fig.9 The prediction results based on BP
表2 不同模型估测水稻叶面积结果评价Tab.2 The result of rice leaf area predicted by different models
使用Python对3种模型所得估测结果与实测值之间进行拟合,建立线性回归拟合模型进行相关性分析,结果如表2所示,拟合结果如图9~11所示。结果表明,3种模型的决定系数均较高,均方根误差、平均绝对误差及平均相对误差均较低,表明两个品种叶面积与叶长叶宽参数高度相关,模型估测叶面积精度均比较高。其中BP神经网络模型下JY458品种决定系数为0.979 8,ZZ35品种决定系数为0.985 2,均高于其他两种模型;JY458品种的均方根误差、平均绝对误差及平均相对误差分别为1.189 2 cm2、1.061 cm2和4.95%,ZZ35品种的均方根误差、平均绝对误差及平均相对误差分别为1.143 1 cm2、0.959 5 cm2和4.85%。均低于支持向量回归模型与随机森林模型,表明基于BP神经网络算法建立水稻叶面积估测模型,能更加准确地估测水稻叶面积。
图10 支持向量回归模型叶面积估测结果Fig.10 The prediction results based on support vector regression
图11 随机森林模型叶面积估测结果Fig.11 The prediction results based on random forest
叶片作为维系植物营养器官之一,叶片几何参数对研究植物生长状态具有重要的意义。水稻叶片为长条形柔软性特征叶片,正常生长状态下经常呈现弯曲、扭曲形态,触碰易折,目前常见的图像测量方法难以实现对其无损测量。对于图像拍摄环境复杂,形态弯曲、扭曲甚至卷曲型叶片几何形态参数的非接触无损测量方法研究一直是一个难点问题。
本研究基于android平台,采用图形图像与用户交互相结合的处理方式对水稻叶长、叶宽以及茎叶夹角参数进行测量,应用BP神经网络算法,以叶长、叶宽参数为输入进行叶面积预测,实现了水稻叶片常用几何参数的完全无损测量。目前,采用图像视觉以及机器学习算法应用于植物器官几何参数测量的研究已有一些进展。郭文川等[21-22]基于android手机平台构建了一种植物叶片面积快速无损测量系统,根据参照物和被测植物叶片面积比得到植物叶片的面积。这种获取叶面积的方法是目前图像处理方法中较为常见的方法之一,能够获得较为精确的结果,缺点是仅针对较为平整的叶片器官有效,不适合弯曲、扭曲叶片的参数测量。郭诚达等[32]通过建立单位像素实际值与物距的对应关系,避免了需要在背景中设置参照从而计算单位像素代表作物几何特征量的实际值,实现了对作物器官的长度、面积等进行了测量。该文中提出的无参照物测量方法,也能实现弯曲器官的长度等几何参数测量,有较大的实用性,缺点是器官之间图像采集时不能存在遮挡,且被测量器官需要容易进行图像分割,也不适用于弯曲、扭曲型叶片面积测量。路文超等[23]提出了基于android系统的水稻剑叶夹角测量方法,与本文方法类似,利用Hough变换实现直线检测计算叶片与主茎夹角实现夹角的计算测量,但直接对主茎和叶片二值图像进行直线检测,检测出来直线太多,尽管利用k-means聚类和向量处理方法获取中心直线,还是存在一定的误差。姚雄等[31]使用随机森林(RF)算法构建了林地叶面积指数(LAI)估算模型,以支持向量回归(SVR)模型和反向传播神经网络(BP)模型作为参比模型,发现RF模型对于林地林地叶面积指数(LAI)估算有较好的估算结果。
本研究提出的通过android系统手势交互产生控制点插值B样条曲线逼近叶脉、叶宽方式获取叶长、叶宽参数测量方法。这种交互产生B样条曲线的过程,对于目标图像叶片是否存在部分遮挡没有要求,对叶片伸展形态是否弯曲或部分扭曲也无要求。通过对比SVR模型和RF模型,发现BP模型算法对水稻叶片叶面积预测的精确度更好,使得水稻叶面积的获取仅依赖于叶片长宽的获取。另外,茎叶夹角测量时,在细化提取骨架操作基础上进行直线检测,仅检测到极少量的直线,且骨架基本上就是主茎和叶片基部的中心位置,降低了茎叶夹角读数的误差。为了进一步提高测量精确度,在图形采集时,应尽量使得叶片叶脉曲线平面和背景板平面平行,这也是目前大多数图像测量方法的基本要求。当拍摄图像叶片曲线平面与背景板平面相交一定角度时,会存在一定的偏置误差。本研究设计的测量工具手机夹与背景板距离为80cm,在1倍焦距时经多次实验测量数据,发现这个偏置误差可以忽略不计。本研究方法实现了真正意义上的水稻叶片几何参数无损测量,为其他植物器官的无损测量提供了一种新的参考。
(1)应用android系统手势交互产生控制点插值B样条曲线逼近叶脉、叶宽方式获取叶长、叶宽参数测量方法,叶长的均方根误差、平均绝对误差及平均相对误差分别为0.534 4 cm、0.523 3 cm和2.33%,叶宽的均方根误差、平均绝对误差及平均相对误差分别为0.06 583 cm、0.055 2 cm和6.66%。
(2)在细化提取骨架操作基础上进行直线检测计算茎叶夹角方法,茎叶夹角测量均方根误差、平均绝对误差及平均相对误差分别为2.004°、1.27°和2.46%。
(3)两个不同品种水稻的叶长、叶宽参数与叶面积参数之间存在高度相关性,BP神经网络叶面积预模型的均方根误差、平均绝对误差及平均相对误差均小于其他两个模型,表明BP模型能更好的估测水稻叶面积,能得到更高的估测精度。
(4)本研究方法真正意义上实现了水稻叶片几何形态参数的无损地测量,测量精度高,能满足农学研究的要求,操作过程便捷,且对样本图像拍摄环境条件要求少,易于推广,也为其他植物叶片几何参数的测量提供了一种新的可行方法,具有较好的应用前景。