基于FCN的无人机玉米遥感图像垄中心线提取

2021-08-04 05:48曹佃龙兰玉彬潘方江温昱婷杨东建鲁力群
农业工程学报 2021年9期
关键词:中心线宽度语义

赵 静,曹佃龙,兰玉彬,潘方江, 温昱婷,杨东建,鲁力群

(1. 山东理工大学农业工程与食品科学学院,淄博 255000; 2. 山东理工大学交通与车辆工程学院,淄博 255000; 3. 山东理工大学国家精准农业航空施药技术国际联合研究中心,淄博 255000)

0 引言

遥感技术在农业领域的应用越来越广泛,利用无人机遥感图像进行农田现状精准化制图,辅助农业机械自动导航具有重要的应用价值[1]。农田垄中心线对于农业机器人的导航十分重要,也是当前基于机器视觉的田间导航需要解决的关键问题[2-3]。为减少对作物的伤害,田间机器人需要行驶在行间,通过一份田垄中心线栅格图可以自动进行全局路径规划,提高作业效率。

目前田间机器视觉导航多先通过斜向照片提取到行中心点相关特征点,再通过直线或曲线拟合的方式提取作物田垄中心线或行中心线,然后生成导航参数辅助导航作业,研究者如姜国权等[4]利用窗口移动法获取中心水平线上作物的定位点,再通过随机方法获得作物行线;袁佐云等[5]通过稳健回归法对位置点进行线性拟合提取作物行;马红霞等[6-8]通过Hough变换提取行线;Zhang等[9]用大津法与粒子群优化技术相结合,实现杂草与农作物分离,确定特征点集后用最小二乘线性回归法得到了作物中心线。

斜向照片对于垄中心线的提取存在视野范围小、无法对整块田地进行全局路径规划的问题,部分学者利用无人机遥感图像提取种植垄或者种植行信息,苏伟等[10]基于无人机影像超绿特征,利用影像分割投影法提取玉米垄线的中心点,再使用Hough变换提取垄数。de Souza等[11]通过使用归一化植被指数(Normalized Difference Vegetation Index,NDVI)和像素最小/最大滤波算法增强无人机遥感影像作物行和行间的差异,分割裸地和作物,最终提取了甘蔗田的种植行线地图;Osco等[12]基于卷积神经网络(Convolutional Neural Networks,CNN)使用一种双分支结构,同时对玉米和柑橘的无人机遥感图像进行植物计数和种植行中心线的提取;Pang等[13]使用基于区域的卷积神经网络(Region-CNN,RCNN)有效地提取了玉米行种植位置区域,通过无人机影像进行出苗率检测。

目前利用无人机遥感图像对田间作物线信息提取的研究多数是作物种植行中心线提取。作物种植行的中心线提取,便于统计种植和检测苗木生长,通过这些信息可以用来评估作物的产量,对农场管理有一定意义[14]。相对于提取垄中心线,由于作物多数为中心向四周扩散,种植行中心线更易通过特征提取的方式获得。如Miyoshi等[15]使用改进置信图的多级模组来获取目标中心,使用置信图方式利用了植物中心到四周叶子分布均匀的特征,在密度图中,值越高代表越靠近中心和,而垄中心线不存在这种垄中心向四周分布的特征。

目前对于可用于导航的无人机遥感图像垄中心线提取研究较少,更多的研究为用于农田管理的行中心线提取服务。当前的卫星定位系统精度越来越高,完整详细的垄中心线栅格地图可以作为田间自动行驶的后台栅格地图,辅助前向的机器视觉导航,在自动作业时既能通过地图进行全局路径规划,又能在探测到障碍时辅助进行局部路径导航。农机全局路径规划算法中的栅格法,具有直观、安全系数高的优点[16]。田间导航栅格的制作需要确定垄中心线的位置,传统研究中垄中心线提取方法多使用直线提取算法,而Hough变换等方法可对直线或已知形状曲线进行拟合,对连续弯曲的航线识别效果不佳,且传统图像处理算法对复杂变化的田间环境鲁棒性不强,例如叶片遮挡和杂草干扰。深度学习语义分割网络作为一种强大的图像处理方法,近几年在农业领域这种比较复杂的环境中有着较好应用效果[17]。语义分割网络在农业中主要用于目标提取与分割,图像源可分为无人机图像和对地面拍摄图像。张瑞瑞等[18]通过使用U-Net网络对无人机影像中的松材线虫导致的松材变色木进行提取;Zhang等[19]提出了一种结合迁移学习和Deeplab V3+网络方法对小麦不同生长阶段无人机影像中倒伏区域进行了提取。杨蜀秦等[20]为将农田进行精细化管理,对无人机遥感影像基于DeepLab V3模型进行了准确的作物分类;韩振浩等[21]使用U-net语义分割模型对地面拍摄的果园行间影像进行了道路分割,对分割后的区域使用样条曲线拟合原理完成了导航路径的识别。目前在遥感图像道路提取研究领域,有大量的研究使用深度学习语义分割网络进行处理,如Zhou等[22]对无人机图像中的道路使用一种基于全局上下文的扩张卷积神经网络进行了语义分割,提取了道路。Lan等[23]提出了一个由两个编码器到解码器网络构成的体系结构对道路进行了分割提取。

全卷积神经网络(Fully Convolutional Networks, FCN)是Long等[24]在2014年提出的图像分割算法,是深度学习应用在图像分割的开创性作品。FCN是一种端到端的图像语义分割方法,让每个像素通过神经网络做像素级别的预测直接得出真值图[25]。FCN网络中所有层都是卷积层,且通过跳跃结构融合了不同尺寸层的特征并最后通过上采样还原成像素级的预测。语义分割网络多用于复杂背景区域分割问题[26],通过将全部像素点按语义进行分类可将图像分为不同区域。已有文献中对作物之间垄区域的提取是以作物和土壤作为边界进行提取,再通过算法得到垄中心线。为更好地提取中心线可将作物垄线区域看作垄中心线周围具有一定宽度的区域,此区域并不具有明显的边界。作物垄区域也属于一种可进行语义分割的区域,针对行间垄区域的语义分割问题研究未见报道。

该研究基于农田玉米无人机遥感可见光正射影像,利用全卷积神经网络,对整块田地进行处理,以期得到整片田地的垄中心线区域。对垄中心线区域分布图进行处理提取出中心线分布图,为农业机器人在无人农场的路径规划提供技术参考。

1 材料和方法

1.1 玉米田块无人机遥感影像获取

无人机遥感数据采集试验于2020年7月20日(玉米喇叭口期)在山东省淄博市临淄区禾丰种业试验田(118°12'48″N, 36°57'14″E)进行,总面积约12 hm2。淄博市属半湿润半干旱的大陆性气候,年平均气温12.3~13.1 ℃。试验采用大疆精灵4RTK无人机,最大飞行速度16 m/s,最大飞行时间30 min,搭载相机型号为DJI FC6310R,采用25.4 mm CMOS传感器,数据格式为.jpg的单通道可见光图像,分辨率为5 472×3 684像素。试验时天气状况良好,晴朗无风,拍摄时间为12:00左右,温度32 ℃,湿度43%,光照强度140 000 lx。大疆精灵4RTK无人机带有RTK定位设备,可自动获取高精度无人机POS信息(拍照瞬间的位置参数、姿态参数)。无人机飞行高度为70 m,飞行速度为6 m/s,旁向重叠为70%,航向重叠为80%。飞行覆盖区域为整个试验田,拍摄总数212张。使用无人机航拍影像拼接软件Pix4Dmapper拼接,获得试验田的正射影像(图1)。

玉米品种为金阳光六号,播种采用机器播种,垄宽60 mm,株距30 mm种植100行,玉米生育期为喇叭口期,此时玉米植株有11~12片叶子,但叶片未完全将地面覆盖,尚未封垄,玉米种植行之间的玉米叶片只有少数叶尖发生交叉。

1.2 FCN网络训练数据集制作

垄中心线为两行物行之间的中心线,为了方便对垄中心线进行提取,定义垄区域(Ridge Area, R-area)为长度为d像素的线段垂直于垄中心线移动扫掠得到宽度为d的区域。如图2中橙色区域。

1.2.1 玉米田块无人机遥感图像垄中心线数据标注

由于遥感图像较大,进行深度学习语义分割网络训练需要进行切块,常规进行数据集制作需要先切块再对需要进行语义分割的区域进行标注,但先切块再标注时只能观察到窗口区域内的作物垄走向,且对于连续缺苗不易进行判断,造成标注错误,不能获得正确结果。为此该研究数据集制作时采用先在原图进行标注处理,再切分的方法。

为方便模型对垄线区域分割进行学习,先对图1中的全部区域使用折线段进行标注。

垄中心线用折线段表示,垄的起点为S,终点为E,中间点为A,垄中心线总数量为N,则垄中心线L表示为

式中z代表从左往右的其中一垄,k代表每个中心线的折线端点从上到下计数。在进行标注时对以下四种情况定义标注规则:

1)玉米播种和出苗较为规整的情况下,如图3a,选择玉米苗生长朝向垂直于行线方向的叶子最外点,因此时玉米叶子刚有接触,可通过此条件选择垄中心线L的中间点A,如图中红点。

2)在行走向歪斜的情况下,如图3b,按照实际走向选用符合条件的叶尖点进行转折,因拖拉机行走歪斜导致垄宽变大处的折线点按照不偏移图像进行标注,如图3b左数第三根。

3)对于缺苗行,按照原有正常出苗进行标注,选用一侧的叶间点进行标注,如图3c左数第四、五根标注线。苗过小没有叶尖相交时,按照两行苗中心连线的中点进行标注。

4)对于多苗行图3d,在行中间连续有作物时不进行标注,行中存在单独苗时,可继续进行标注不设断点。

利用Arcgis标注得到了人工标注图(图3),图中线元素为矢量元素,要用于语义分割模型进行训练需要进一步处理,生成可用于训练的带有语义信息的真值图。

先将人工标注图中的线元素L按照拼接后的原图像大小进行栅格化,使用栅格化函数R对L进行操作,得到栅格化的垄中心线I。

栅格化后的I中,原有线元素被转化为一系列相邻像元,栅格化后的人工标注线宽为1像素,像素值为255,其余像素值为0。此线位置为理论中心线位置,考虑到无人机图像获取精度,允许线的区域位置存在误差偏移,所以使用式(3)[27]中的卷积规则对图像进行卷积,H代表最终卷积完成的结果函数,可通过坐标(x,y)获取某一像素的取值,G是二维高斯函数,卷积核大小选择为ksize×ksize,式(4)中常数σ为1。设定垄区域左右偏差最大范围为77 mm,超出此区域被认为偏离垄中心线,灰度值为0,试验区原图的像元大小为9.05 mm/像素,得出ksize的大小为17。

式中(m,n)代表高斯矩阵位置坐标。

指定阈值为T,将得到的垄线概率分布图上的像素取值H(x,y)通过灰度值进行阈值分割,由式(5)得到用于语义分割网络训练的标签图的像素取值M(x,y),灰度值为1的区域代表可能存在垄中心线的位置。

1.2.2 无人机原图像和标签图切块

将原图像分为训练集和测试集,训练集和测试集划分比例为3:1,训练集和测试集田块划分方式如图4。

使用滑动窗口法[28]进行训练集切割,窗口大小224×224像素,将训练集域按照等步长112像素进行切块,将测试集按照等步长224像素进行切块,经过数据清选删除空白区域,最终得到训练集5 100张,测试集807张。

1.3 垄区域提取模型网络结构配置

该研究使用FCN网络对玉米田地遥感影像切块进行预测,编码端通过卷积神经网络学习垄线区域的位置和周围植被分布的规则,解码端将带有位置不变性的热力图进行上采样还原,得到最后垄线区域的语义分割图。该研究采用的FCN网络,前部分使用VGG16网络并将全连接层替换为1×1卷积层,在进行反卷积时,采用了FCN-8s结构,此结构比FCN-16s和FCN-32s有更好的效果[24]。

1.4 测试田块图像拼接与垄中心线提取

将测试田块按照224×224像素窗口大小,112像素步长进行切块,得到图像1 614张,使用训练好的模型对图像进行预测,将预测好的图像按切块窗口原位置放回,重叠区域的结果进行覆盖保留。由于玉米种植方向基本一致,倾斜角度不大,按照此结构特点,使用影像分割投影法[10]对得到的行间垄区域图像求中心点。设测试田块原图宽度为Ws,高度为Hs,该研究目的是得到一份垄中心线栅格图,切条高度选取为h,切条宽度和原图宽度Ws相同,此时得到的每条垄线的中心点个数为Hs-h个。

式中i=1, 2, 3, ...,h,j=1, 2, 3, ...,Ws,其中g(i,j)代表在切条中点(i,j)的像素值,其中s(j)为j处h个像素向下投影后得到的灰度值之和,ms为j处s(j)的平均值。对每个切条使用判定规则:当s(j)m>s(j+1)时为垄线区域右边界,将所有得到的j进行排序,如果j为左边界,j+1属于右边界,且为进行滤波,过滤噪声点,当满足式(7)时,标记为中心点。

1.5 模型训练和中心线提取精度评价

1.5.1 FCN模型训练

用于FCN模型训练的电脑参数:Intel(R) Core(TM) i7-7700HQ CPU @2.80GHz,16 GB内存,2T硬盘,NVDIA GeForce GTX1070显卡,8 GB显存。FCN模型训练使用Tensorflow 2.2.0,选用Adam优化器,损失函数使用交叉熵函数,训练80次,批(batch)大小16,学习率0.000 1,ksize选为17,阈值T选为5。

1.5.2 中心线提取精度评价

垄区域以长度为d的直线扫掠后,得到垄区域宽度为d的标签图,垄区域宽度d的大小对模型训练结果影响巨大,为探究垄区域宽度d对试验提取结果的影响,设计了试验,选用不同的分割灰度值阈值0、1、3、6、12、20按照相同的方法制作训练集和测试集,并选用同样的训练参数进行模型训练,在预测后进行拼接,分别得到6张垄区域预测图和对应的标签图,对应的标签中的垄区域宽度d分别为17、15、13、11、9、7像素。

对测试田块的6张预测图和标签图分别计算混淆矩阵[29],评价模型对垄区域的分类预测结果,其中垄区域为正值,非垄区域为负值,并计算准确率(Ac)、精确率(P)、召回率(R)和调和平均值(F1)作为精度评价指标,准确率为正确预测垄线的数量与样本总像素点个数的比值,总像素点个数为真正例(TP)、真负例(TN)、假正例(FP)、假负例(FN)的总和,精确率为真正例占所有预测正例样本之比,召回率表示预测正例与正例样本总数之比,F1值为精确率与召回率的调和平均值。

中心线提取是通过模型预测图片后按照原窗口放回后的结果再计算得到的,模型训练精度不代表最终中心线提取精度,为探究不同垄区域宽度d对最终中心线提取精度的影响,对选用不同垄区域宽度d得到的6张测试田块的垄区域预测图提取中心线,计算中心线像素在sizek取不同值时得到的垄线概率分布图中非零区域的像素个数和中心线像素个数的比值,作为中心线在不同左右偏差范围内的像素准确率,即通过不同的垄区域宽度d标签图得到的中心线,在不同左右偏差范围的准确率,代表中心线靠近人工标注真值的程度。

2 结果与分析

2.1 FCN模型训练结果

图5为FCN模型每次迭代时在测试集和训练集上的模型预测精度和损失值。由图5可知,随着训练迭代次数的增加,模型的精度数值逐渐收敛,模型在训练集和测试集模型预测精度分别为99.01%、97.19%,训练集和测试集模型预测损失值分别为0.02、0.202。测试集像素点中预测是垄区域实际为垄区域的个数为3 086 504个,实际为非垄区域的是571 602个;测试集像素点中预测是非垄区域,实际是非垄区域为23 308 704个,实际是垄区域为2 536 678个,准确率Ac为98%,精确率P为84%,召回率R为54%,F1值为66%。说明在选用阈值T为5时模型可以被正确训练。

2.2 垄区域预测精度评价结果

该研究选取不同垄区域宽度进行试验,统计测试田块预测图像和标签图像,得出表1中混淆矩阵值,通过式(8)~(11)计算了评价指标值。由表1得出该垄区域提取方法在测试田块上选用不同垄区域宽度进行模型训练时,评价指标存在变化差异,各指标达不同范围,精确率可达66.1%~83.4%,召回率可达51.1%~73.9%,F1值可达57.6%~78.4%。可以看出随着垄区域宽度d变小,预测准确率上升,但精确率、召回率和F1值都有下降。

表1 不同垄区域宽度得到的测试田块混淆矩阵值和评价指标值 Table 1 Confusion matrix value and evaluation index value of test field obtained from different Ridge area (R-area) width

2.3 测试田块垄中心线提取及精度评价结果

测试田高度Hs为19 342像素,切条高度选为3像素,得到了19 339个切条,对每个切条求中心点,并将结果按切条顺序排列,得到高度为19 339像素,宽度为Ws的中心点分布图像。由于得到的垄区域较为平滑,相邻切条得到的中心点像素左右偏差很小,多数中心点紧密相邻,连接成线,每条垄的中心点的取值数量为原图高度Hs减去切条高度h,并减去式(7)中过滤的点,最终结果为19 339个左右,若中心点的取值数量减少,则不可以直接形成栅格图中的连线,还需算法对每垄再计算。通过该方法求得的中心线直接为当前分辨率下的栅格地图,可直接用于机器人的田间导航。

表2是通过试验对比不同垄区域宽度进行训练对中心线提取的影响得出的,由像素宽度按照图片像元大小可计算实际的偏差范围,试验分别选取7、9、11、13、17像素宽度,得出实际左右偏差范围分别为31.5、40.5、49.5、58.5、67.5、77 mm。

从表2可以看出,随着垄区域宽度d减小,提取到的垄中心线准确率在各个偏差范围内有先增大再减小的趋势,在训练标签图垄区域宽度d选取为9像素时,在77 mm左右偏差范围内可达到91.2%,在最小左右偏差范围31.5 mm内也可以达到61.5%。

通过表1和表2的结果可知,当垄区域宽度d取值过小时,容易造成模型对玉米行间信息学习的不充分,使模型的学习效果变差,最后导致中心线提取效果不佳。当垄区域宽度d取值过大时,模型可学习到更多特征,模型训练效果较好,但中心线提取精度不高,所以模型训练及中心线提取的关键是选择合适的垄区域宽度。

表2 不同垄区域宽度得到中心线不同偏差范围下的准确率 Table 2 Accuracy of the centerline obtained by the width of different ridge areas under different error intervals

2.4 测试田块提取效果分析

图6为最终提取效果图像,为清楚观察提取结果,选取了部分测试田块的原正射影像图、标签图、预测中心线图、预测垄区域图,通过图片可得出,该研究方法最后可得到一张和原图相同像素尺寸大小的中心线分布图,垄区域和其提取的中心线较为平滑。

通过图7可看出模型对图3中所示的四种特殊情况在测试田块上都进行了有效的学习,具有较好的泛化能力。通过图7b可以看出该方法对于缺垄现象可以按照标注时的规则进行学习,能将缺行的两侧也进行正确的预测;通过7c可以看出该方法对于歪斜行按照标注规则,在歪斜的两行中间按照不歪斜的进行预测;通过图7d可以看出该方法在遇到单棵多苗现象时可以按照正常标注进行预测,不会有断点;通过图7e和图7d可看出式(7)提出的滤波算式对求垄中心线时拼接边界产生的误差有很好的过滤效果,可以过滤掉拼接图像时产生的毛刺。

3 讨 论

传统的基于Hough变换的作物行提取方法大多使用阈值分割后的二值图,对特征点进行提取[30-33],通过直线提取算法对特征点进行拟合,得到最后的作物行线或垄线,其中多使用过绿特征对图像进行二值化,结合大津法对作物和背景进行分割[34-36]。该研究对部分遥感影像使用过绿特征进行二值化,对二值化后的图使用影像分割投影法,求得中心点,再使用Hough直线提取,以对比传统方法和该研究方法,形成了对原图中四个区域的识别结果(图8),由图8a可知,传统方法对作物垄的提取,在长势比较均匀,行线比较规整的情况下,有着十分不错的提取效果,每行都可以被正确的提取出来;如图8b,当作物种植处缺苗时,会导致Hough直线提取时曲线重合点的阈值确定困难,苗少的区域会提取不到结果,使用该研究方法得到的垄线,在缺苗处也有很好的提取效果;如图8c,在作物种植时,由于拖拉机控制误差等会出现行线弯曲的情况,此时使用传统的直线提取就会出现行提取失败问题,使用该研究方法得到垄线可以拟合作物种植过程中的弯曲垄线;如图8d,作物种植过程中由于机械故障会出现缺苗的情况,传统方法会将缺苗部分的两个垄线合为一个,该研究在人工标注时会将此种情况认为两垄,模型学习后可以对此情况进行正确预测;玉米种植初期田间随着玉米出苗,生长了大量低矮杂草,图8d中作物行间含有大量杂草,土地大片呈绿色,如果使用传统方法,对这两张图进行二值化分割,会因杂草干扰而影响二值化分割效果。对比传统方法和该研究提出的基于深度学习的语义分割方法的提取效果,基于深度学习语义分割的方法,对各种情况具有更好的适用性和鲁棒性,减少使用传统方法的人工调参工作,提取到的行线更符合实际。

通过训练结果损失值可以看出,在测试集上的损失值随着训练次数增加有提高的趋势,分析发现造成这一现象的原因是数据集中由于人工标注误差而产生的噪声,标注时人眼通过目视解译对垄中心线的位置进行标注,导致标注时容易形成误差,如图9a中的第三根线标注的比较靠左,但是随着训练进行,模型学习到了正确的规则,计算出的区域在人工标注红线的右侧;该研究模型训练和最终于图像拼接采用的是滑动窗口法,但是在将图片放回原位置时,由于图像的大小固定,在垄线边界位置预测有误差,造成不同图像拼接后垄线错位的现象,如图9b所示,第二根线中部存在着明显的拼接痕迹,此错位现象的存在使得计算中心线时,像素点不能很好的紧密相连,存在着跳动。如图9c中第三根线,真值是连续的直线,但是由于切块窗口尺寸问题,看不到此条直线的上下部分,所以模型仅通过两侧的图像进行预测,因规则不明显,导致预测结果失效(图9d)。

该研究使用的深度学习语义分割网络,在各种复杂背景下,有很好的提取效果,如图10a中含有杂草和喷药杆且较为明亮;图10b中土地由于含较多有机肥,玉米生长状况不优,且土地呈棕红色;图10c中最右一行,杂草和玉米颜色十分接近,且玉米苗较小;图10d中含有空行、弱小长势行、正常长势行;图10e中含有杂草和空行;图10f中含有喷药机的车轮。模型通过对复杂背景中标签图的学习,更加适用于实际环境,也具有更强的鲁棒性。

4 结 论

1)深度学习语义分割网络FCN可对垄区域这一没有明显边界的语义区域进行分割提取,模型在测试田块上精确率达66.1%~83.4%,召回率达51.1%~73.9%,调和平均值为57.6%~78.4%。

2)选择9像素垄区域宽度进行训练,最后得到的中心线在77 mm偏差范围准确率为91.2%,在31.5 mm偏差范围内为61.5%

该研究得到的中心线位置图受无人机影像的精准度影响,且该方法没有利用不同时期的玉米无人机遥感数据进行分析,只利用了叶尖稍有交叉时期的数据进行分析。未来的研究工作中,将针对不同生育期、不同光照条件下的玉米田无人机遥感图像垄中心线提取进行研究,以期得到更加稳定适用性更强的垄中心线提取方法。

猜你喜欢
中心线宽度语义
真实场景水下语义分割方法及数据集
树叶竞技场
停机后汽缸温差大原因分析及处理
“吃+NP”的语义生成机制研究
情感形容词‘うっとうしい’、‘わずらわしい’、‘めんどうくさい’的语义分析
孩子成长中,对宽度的追求更重要
汉语依凭介词的语义范畴
由X线中心线的特征来定标X线机中心线指示的方法
你有“马屁股的宽度”吗?