肖 珂 夏伟光 梁聪哲
(1.河北农业大学信息科学与技术学院, 保定 071001;2.河北省农业大数据重点实验室, 保定 071001)
我国是水果第一生产大国[1],果品及相关产业链是支撑我国农村经济发展的中流砥柱,也是农民收入的重要来源。随着我国工业结构的不断调整和优化,果园生产模型由传统小规模种植向大规模和标准化生产方向发展的同时,从事农业劳动的人口却在逐年下降。自主导航作为农业机器人的关键技术之一,广泛应用于采摘、喷施、套袋等工作[2-7],可有效解决劳动力短缺的问题并提高农业生产力。常见的导航技术有激光雷达导航、全球卫星定位导航(Global navigation satellite system, GNSS)和机器视觉导航等。果园环境多为密集种植条件,冠层遮挡会影响卫星定位信号的接收,导致定位信息不准确[8]。激光雷达通过光束扫描获取周围环境的点云信息,存在冗余信息多、特征提取难、设备成本高等问题[9]。与激光雷达和GNSS定位技术相比,视觉导航具有语义信息丰富、探测范围广、成本可控的优点,是当前国内外学者研究的热点之一。
视觉导航的基本原理是,利用视觉传感器测量车辆与地标的相对位置,并利用它们来估计车辆的航向[10]。根据果园结构和果树特点,利用图像处理方法提取导航线的依据为具有明显区分特征的作物行边缘。文献[11]利用行阈值分割方法,分割树干和背景,采用垂直投影法提取树干区域,进一步寻找树干交点,利用树干交点拟合左右树行线,计算导航路径。树冠阴影、树干和地面的颜色相似性以及来自相邻的树行会对拟合树行线造成干扰,为避免这种干扰,文献[12]提出一种基于果树树冠和天空为背景的图像处理算法,从树冠背景中分割天空,并拟合导航路径。文献[13]对彩色图像和深度图像进行融合,采用纹理-灰度梯度能量模型进行图像分割,提取树干和地面的交点进行直线拟合,生成树行线。上述研究均采用传统的图像处理技术,根据颜色和纹理差异对树行线进行提取,这些方法受光照条件、季节变化、杂草对树干遮挡等因素影响,存在一定的局限性。
近年来,随着深度学习技术的成熟,神经网络被用来训练学习果园环境中的道路特征。文献[14-15]利用U-Net网络对果园道路进行分割,采用扫描法提取道路边缘信息点,进而生成导航路径信息。文献[16]基于卷积神经网络(CNN)的分类结构,使用滑动窗口方法对图像进行扫描,根据置信度对背景、果树和道路分类,提取地面区域,利用道路边界线的交点作为导航目标点。文献[17-20]基于深度学习对果树树干、树形的检测展开了研究,在不同果园环境中取得了较理想的结果,为基于果树特征的果园自主导航提供了方向。文献[21]利用YOLO v3目标检测网络对柑橘树干进行识别,利用树干根点的线性分布特征通过最小二乘法拟合左右树行线,生成导航中心线。文献[22]利用Faster R-CNN网络对猕猴桃树干进行识别,通过三次样条插值法拟合左右树行线,进而生成导航路径。上述研究通过对道路边界直接提取或通过树行线拟合的方法获取导航信息,在特定环境下表现出良好的性能。
果园自主机器人在执行采摘、喷施等工作的一般模式为沿着果树行间的道路中心行驶,到达果树行末端后执行调头动作,进入下一行作业[16]。针对自主行进问题,现有研究思路主要集中在通过提取道路边界点或拟合作物行的基础上计算行间导航线,提取航向信息,缺少针对行末端调头方向的分辨能力。
针对现有方法的局限性,本文提出一种基于Mask R-CNN网络的行间导航线提取和调头路径规划方法。采用该网络识别果园中的道路和树干特征,并根据网络的输出,提取道路掩码和树干边界框。以道路掩码末端中心为导航目标点,提取行间导航线。以树干边界框的底端中点坐标代替果树位置,并对前后排果树树行线生成算法和行末端调头算法进行设计,对树行分析间接获得调头方向,在行末端执行相应调头策略进入下一行。
本文提出的算法由导航线生成、树行线提取和行末端调头方法3部分组成:①在导航线提取模块中,根据网络的分割结果提取道路的掩码,并进行二值化处理,采用扫描法提取导航目标点,连接导航起始点和导航目标点生成导航线。②在树行线提取模块中,根据网络的定位结果提取树干边界框的坐标,利用改进RANSAC算法提取前排树行线,计算坐标点到前排树行线的距离,筛选后排树干边界框坐标点,对其进行线性拟合,提取后排树行线。③在行末端调头模块中,通过相机水平视场角和树行间距计算车辆到行末端的距离,基于车辆轮距和树行间距计算调头轨迹和转向角。整体的算法流程如图1所示。
图1 算法整体流程图Fig.1 Overall flow chart of algorithm
本文研究场景为自主机器人沿果树行间行进的正面场景,该正面场景包括地面、地面左侧与右侧的果树区域,如图2所示。受光照条件和季节变更影响,果园场景存在地面杂草覆盖、树冠阴影、树干和地面颜色相似等干扰,传统的图像处理方法很难满足实际场景变化的需要。Mask R-CNN是一种实例分割卷积神经网络,能够对样本图像特征进行自主学习,并具有强大的表征能力,可实现对图像中目标的轮廓精准分割,完成对目标的定位。为满足导航任务的准确性和实时性要求,本文基于Mask R-CNN网络构建道路和果树识别模型,完成树干边界框和道路掩码的提取,进一步计算果园导航线和树行线。
图2 果园正面场景样本图像Fig.2 Sample images of orchard front scene
利用Mask R-CNN的分割结果提取道路掩码区域,对道路掩码区域进行二值化处理后,道路区域的像素值为255,背景区域的像素值为0,二值化分割结果如图3b所示。受种植规范和地面杂草等因素的影响,果园道路边界不清晰,道路掩码边界的分割结果为锯齿状。对掩码边界进行直线拟合与实际的边线偏差较大,导致以边界线的交点作为导航目标点生成的导航线不准确。因此,本文采用扫描法对Mask R-CNN提取的道路掩码进行处理,提取道路末端中心作为行间导航目标点,扫描结果如图3c所示。
图3 导航线提取流程图Fig.3 Navigation line extraction process
目标导航线为直线,以图像底部中点坐标作为导航起始点,连接目标点,生成行间导航线。在原始果园路况图像中绘制出导航线,如图3d所示,其中红色实线是生成的导航线,蓝色实线代表车辆此时的方向,其垂直于图像底部中点,车辆可根据生成的导航线进行车辆行驶方向的调整。
在桃园的种植环境中,果树种植方式可近似为一条直线,机器在执行喷施、收获等作业时需沿着果树行间的直线路径行驶,到达行末端后调头驶入下一行,并重复这项操作来遍历整个果园。为实现这些任务,机器需具备行末端调头方向的分辨能力。针对Mask R-CNN提取的树干边界框坐标,本文研究了果园前排和后排树行线提取方法,其中前排树行是指机器当前行驶所处的果树行,后排树行是指车辆调头驶入的下一果树行。通过对两侧前后排树行线的分析,判断机器在果园中的位置,确定下一步导航路线。受到前排果树遮挡的影响,果园正面导航场景中存在前排果树可识别的树干特征数量大于后排果树的特点,RANSAC算法可以实现从一组输入的观测数据中找出满足直线拟合最多的点集。根据这一特点,本文提出一种基于改进RANSAC算法的树行线提取方法,具体流程如图4所示。
图4 树行线提取流程图Fig.4 Tree line extraction process
改进RANSAC算法的输入是一组包含了前后排树干目标框像素点坐标的点集,通过随机采样从这些坐标点中选取一个子集建立直线模型。通过设置误差阈值和斜率阈值,检测坐标点是否符合直线模型,将误差阈值内的点视为内点,否则视为外点。通过估计内点的个数和错误率对模型进行评估,经过不断建立假设与检验的迭代,得到的最优模型即为前排树行线。
通过改进RANSAC算法计算出前排树行线的方程y=ax+b,然后计算所有树干边界框坐标到前排树行线的距离,筛选后排果树,后排树干边界框像素点坐标应满足
(1)
式中xi——第i个边界框底部中心横坐标
yi——第i个边界框底部中心纵坐标
Di——第i个坐标点到前排树行线的距离
η——所设定的距离阈值
通过对筛选出的后排果树目标进行统计,若目标点数量大于等于2,则采用最小二乘法对后排树行线拟合。使用本文算法,得到树行线的拟合效果如图5所示。
图5 树行线拟合效果图Fig.5 Tree line fitting renderings
图5中红色实线为RANSAC算法提取的树行线、白色实线为人工识别的树行线。机器在行间行驶过程中,通过分析树行线信息,生成行末端调头决策。树行线的识别结果对应3种决策:①图5a中,机器在此行间行驶过程中仅识别到右后排树行线,说明此时机器位于果园左边界,行驶至行末端时应执行右转调头。②图5b、5f中,机器在此行间行驶过程中仅识别到左后排树行线,说明此时机器位于果园右边界,行驶至行末端时应执行左转调头。③图5c~5e中,两侧树行线均识别到,机器行驶至行末端时需执行与上次相反的调头决策。
机器执行调头决策之前,需先到达果树行末端,本文提出了一种基于树干边界框数量的行末端路径计算方法。
车辆沿果树行间中心行驶时,实时统计检测到树干边界框数量。当树干边界框检测数量为0时,说明相机视野范围内没有了果树目标,车辆即将行驶至行末端。通过相机的水平视场角和果树行间距计算车辆前轮此时与果树行末端的距离,具体的计算方法如图6所示。
图6 行末端路径计算方法Fig.6 Row end path calculation method
图中红色虚线代表相机的水平视野范围,α是相机的水平视场角,绿色虚线是果树的行间距d,可由测量得到,车前轮与行末端的距离计算公式为
(2)
式中S——车前轮与行末端的距离,m
车辆行驶至果树行末端的时间为
(3)
式中T——车前轮行驶到行末端的时间,s
V——车辆行驶速度,m/s
车前轮行驶至行末端后,执行调头决策,调头路径大致是一个以车后轮横向方向和树行纵向方向的交点为中心的半圆轨迹,具体计算方法如图7所示。
图7 调头路径计算方法Fig.7 Calculation method of U-turn path
图中w为车辆轮距,L为车辆轴距,由阿克曼转向原理计算得车辆调头时前轮的转向角及车轮调头轨迹半径为
(4)
式中R1——左后轮调头轨迹半径,m
R2——右后轮调头轨迹半径,m
β1——左前轮转向角,rad
β2——右前轮转向角,rad
R3——左前轮调头轨迹半径,m
R4——右前轮调头轨迹半径,m
机器在到达果树行末端后,保持固定转向角β即可完成调头程序,重复这种操作,可实现如图8所示的全局路径规划。
图8 全局路径示意图Fig.8 Schematic of global path
数据采集地点位于河北省保定市满城区的桃树种植园,桃园纵深25~30 m,行种植间距5 m。采集日期为2021年9月和2022年6月。数据采集过程中通过相机实时获取果园正前方行间环境信息,摄像头采集的图像分辨率为1 920像素×1 080像素,采集帧率为30 f/s。
本研究从复杂场景出发,以光照条件、杂草长势、天气环境为依据选取6种常见的果园行间导航场景。从采集数据中随机选取700幅图像进行果园数据集制作,并对样本图像进行随机划分,其中560幅用于训练集,140幅用于验证集。采用Labelme对训练集和验证集图像进行处理,根据研究目标,对地面和树干进行标注,以json格式保存为标签文件,其中包含了目标像素的所属类别和坐标信息。
为防止网络学习出现过拟合,提高模型泛化性,采用ImageAug库对训练集图像进行水平翻转、亮度和饱和度调整、高斯模糊等方法进行随机数据增强,扩充后的训练集图像共1 680幅。
实验硬件环境为:中央处理器为Intel(R)Core(TM) i7-11370H@3.30 GHz,6 GB显存,显示适配器为NVIDIA GeForce RTX 3060 GPU。实验基于Windows 10操作系统、Python 3.8和Pytorch 1.11.0搭建深度学习框架。在训练阶段,采用随机梯度下降(SGD)学习率优化器,设置初始学习率为0.002 5,采用余弦退火学习率调整策略,动量因子为0.9,权重衰减系数为0.000 1,对模型训练12个迭代周期(epoch),每次迭代的图像批量大小为2。
MMdetection框架中封装了最热门的Mask R-CNN、SOLOSOLOV2、YOLACT、QueryInst实例分割模型,而SOLOSOLOV2不能输出边界框,无法满足本文算法需要。因此,为了验证本文方法的有效性,在该框架中选择了YOLACT、QueryInst模型与本文所选的Mask R-CNN进行了实验对比。
以平均精度(Average precision, AP)为评价指标,分析模型对道路与树干的分割和定位能力。AP0.50和AP0.75分别表示模型在交并比(IOU)阈值为0.5和0.75的情况下,模型的识别正确率。IOU是预测结果与真实值交集和并集的比值,IOU阈值越高,分割结果就越接近真实值,当IOU阈值为1时,分割结果和原图像中的目标完全重合。
表1给出了3个模型在验证集上的结果,其中YOLACT模型是检测精度最低的模型,在IOU阈值为0.75的情况下,与Mask R-CNN和QueryInst相比,分割精度分别降低26.4、25.6个百分点,边界框精度分别降低13.1、11.9个百分点。这是因为YOLACT模型的图像输入尺寸为550像素×550像素,分辨率的降低损失了图像的细节信息,使模型对尺寸较小的树干或边缘信息复杂的道路检测能力较差。同时YOLCAT模型拥有最佳的推理速度,单幅图像的推理时间比检测精度最高的模型Mask R-CNN快0.08 s,这是因为YOLACT模型是一阶段模型,可以并行预测掩码和掩码系数,Mask R-CNN是二阶段模型,需要先在图像中选取多个提议区,再在提议区内进行分割任务,增加了推理时间。然而0.08 s的检测时间差异不会给导航任务的实时性要求带来显著影响。对3种模型在不同果园环境下进行检测效果对比,由图9可知,YOLACT在6种环境下对果园道路均出现过分割或道路边缘分割出现缺陷的情况,并且对后排果树的检测效果较差。QueryInst对道路的分割效果较好,但对树干的检测出现了大量漏检情况。相比之下,Mask R-CNN能够适应不同环境下的道路特征,且对不同尺寸的树干均表现出较强的检测能力,可实现对道路和树干的类别、轮廓和位置信息的准确识别,可以满足本文导航线和树行线提取任务。
表1 模型性能对比Tab.1 Model performance comparison
图9 各模型对果园道路和树干的检测效果Fig.9 Detection effect of each model on orchard roads and tree trunks
所生成的导航线为导航起始点与导航目标点的连线,为机器沿行间行驶过程提供航向信息。目标点提取的偏差会影响车辆的行间行进过程,进而影响调头位置。本实验以目标点距实际道路中心的横向偏差对于果园道路像素宽度的占比来分析导航线的准确性,其计算公式为
(5)
式中E——目标点距道路中心的偏差对于道路像素宽度的占比,%
Px——导航目标点的x像素值
Lyx——在目标点的y像素值下,左侧树行的x像素值
Ryx——在目标点的y像素值下,右侧树行的x像素值
在6种果园场景下分别抽取50幅图像进行了统计,实验结果如表2所示。
表2 导航线提取结果统计
由表2可知,本文算法在6种果园场景下,对导航目标点提取的平均偏差不超过5.3%,最大偏差不超过10.2%。结合实验分析,由于道路边缘轮廓不规则,对目标点的提取均存在一定的偏差,而杂草较多环境下的平均偏差偏大是由于行末端附近杂草覆盖面大,且受树冠阴影影响,道路边缘与杂草颜色相似度高,模型无法完全准确分割道路的边缘,导致提取的道路末端中心位置偏离。
树行线的拟合至少需要2个树干边界框坐标点,受前排果树枝干和冠层遮挡的干扰,机器沿果树行间行驶时,相机视野内后排树干的数量在不断变化,进而影响后排树行线提取结果。为分析树行线提取结果,随机抽取6种果园场景的图像各50幅,人工观察并统计背景中含有2棵及以上后排树干的图像。采用本文算法对这些图像进行处理,并将人工识别的树行线与算法提取的树行线之间的角度偏差进行统计,实验结果如表3所示。
表3 树行线提取结果统计Tab.3 Statistics of tree line extraction results
由表3可知,在本实验的6种果园场景中,含有2棵及以上的后排果树图像数量占比存在较大差异,这是由于不同果园环境下冠层生长状况各异,从而对后排树干的遮挡程度不同导致的。实验结果表明本文方法在6种场景下对后排树行线检测准确率均在87%以上。在实际作业中,机器沿果园行间行驶时,对后排树行线只要成功提取一次,便可以记录并识别相应调头方向。由于树干生长状态各异,以矩形边界框的底边中点代替树干实际根点对树行线进行拟合总会存在偏差,而杂草对树干底部的遮挡会进一步增加偏差,实验结果中树行提取的平均角度偏差均低于2.04°,说明算法可对各个树行实现准确提取。
为验证本文算法中车辆沿果树行末端的调头轨迹,使用Matlab进行了仿真实验。仿真环境设置如下:果树行间距5 m,株间距2.5 m,树干半径0.1 m。相机水平安装于车辆正前方,水平视野范围为75°。车辆轮距w为0.8 m,轴距L为1.2 m,车速0.3 m/s。在行末端设置导航目标点,其刷新范围与道路中心的横向距离偏差不超过50 cm(其偏差范围由2.4节实验所得)。
车辆沿行间行驶过程中,以0.22 s/f(由图像推理时间和算法后处理时间求得)检测导航目标点和树干数量,并在每10次检测后根据导航线修正一次车辆位置。当检测到相机视野范围内的树干个数为0后,继续行驶距离S后执行调头操作,进入下一行。得到的调头轨迹如图10所示。
图10 车辆调头轨迹仿真结果Fig.10 Simulation results of vehicle U-turn track
车辆在根据导航线进行调整时,可能会导致车辆发生偏航,为研究该现象对于调头轨迹的影响,实验选取相机检测到视野内无树干时为采样点1、车辆准备调头时为采样点2、调头程序结束时为采样点3,3个时刻车头距道路中心的横向偏移为研究对象,分析车辆沿行间运动过程时车辆状态对调头轨迹的影响。实验重复进行10次后,所得结果如图11所示。
图11 调头轨迹实验结果Fig.11 Results of U-turn track test
由图11可看出,采样点2处车辆距道路中心的横向偏移相对于另外2个采样点普遍偏高,这是因为车辆在采样点1的时刻存在一定的偏航角,车辆保持偏航状态下继续行驶至行末端后会进一步增大偏移。在调头过程中,车辆可根据导航线和车身方向之间的角度提前终止调头,保证车辆处于果园中心位置。由实验统计,车辆在采样点2的偏移不超过26 cm,在采样点3中,车辆的平均偏移为7.8 cm,这说明本文算法能够较为准确地完成调头任务。
(1)为实现复杂背景下果园导航线和树行线的提取,本文构建了基于Mask R-CNN的果园道路分割和果树定位模型。该模型在6种果园场景下的平均分割精度和边界框检测精度都为97.0%。
(2)对果园导航数据集的测试结果表明,本文方法可实现对道路和树干的类别、轮廓、位置信息的准确识别。实验结果中,对导航目标点的平均偏差不超过5.3%,对后排树行线提取的平均准确率不低于87%,算法对单个视频帧的处理时间为0.22 s,可基本满足果园行间导航任务的准确性和实时性要求。
(3)树行线的提取可为调头提供方向信息,通过本文提出的行末端计算与调头方法,车辆调头后距果园道路中心的平均偏移量为7.8 cm,可为果园全局导航任务提供参考。