陈旭君, 王承祥, 朱德泉, 刘晓丽, 邹 禹, 张 顺, 廖 娟
(1.安徽农业大学工学院,安徽 合肥 230036; 2.安徽省农业科学院水稻研究所,安徽 合肥 230031)
智能农机导航是农业机械化研究的重要内容,主要导航方式有全球定位系统(GPS)导航[1]和视觉导航[2]。GPS导航通过卫星系统测量农业机械在地理空间中的绝对位置,根据预先规划的路径进行导航。但在水田中,插秧机作业易发生侧滑,GPS导航的预先规划路径适应性差,此外,GPS信号的稳定性易受环境中遮挡物、天气等因素干扰,且随着定位精度的提高,相应的成本也随之提高[3]。相比于GPS导航,视觉导航具有成本低、环境感知信息丰富以及无需预先精确规划路径和适应性强等特点,成为智能农机导航研究的重要方向,在作物种植、培育以及收割方面均有广泛应用[4-5]。农业机械视觉导航的关键步骤是导航路径识别,其识别正确与否直接影响导航精度。
目前,视觉导航路径识别主要采用机器视觉技术提取田垄边界[6]或作物行线[7-8],从而确定导航路径。基于水稻秧苗直线栽插的特点,插秧机视觉导航可通过检测插秧机邻近行的秧苗并拟合秧苗行线,提取水稻插秧机视觉导航路径。国内外关于秧苗行线检测方法的研究,应用较多的是基于Hough变换的秧苗行中心线检测方法和特征点聚类方法。标准Hough变换鲁棒性较强,受环境噪声影响小,但计算耗时长,难以满足农业机械作业的实时性要求。聚类算法提取特征点易受到噪声点和环境变化影响,对不同环境的适应性差。
针对Hough算法计算复杂的问题,赵瑞娇等[9]通过垂直投影法获得作物的行定位点,用Hough变换拟合行定位点,该方法的处理速度较直接Hough变换提高了3倍。为提高特征点聚类法的抗干扰能力,廖娟等[10]分区域提取秧苗行特征点,采用聚类算法获取秧苗行定位点,基于最小二乘法拟合出秧苗行线,有效抑制了图像噪声对特征点的干扰。孟笑天等[11]提取二值化图像中作物特征点,采用K均值算法和最小二乘法拟合出苗期玉米作物行线。但上述算法都是基于人为提取作物的颜色、纹理等特征,对不同作业环境的泛化能力较弱,难以保证作物行线识别的准确率,影响农业机械导航精度。
随着卷积神经网络技术的不断发展与应用,深度卷积网络可以自主学习图像特征并准确识别目标,对于不同环境具备很好的泛化能力,广泛应用于农业领域[12-13]。王丹丹等[14]在ResNet50、ResNet101的结构基础上改进R-FCN网络,提出了基于ResNet44的FCN网络模型,对苹果的识别准确率达95.1%。Bodhwani等[15]构建了一个50层的深度残差网络,对植物识别的准确度高达93.09%。
为准确识别秧苗行线,从而获取导航基准线,为自主行走插秧机提供相对位置信息,本研究基于深度卷积神经网络,对秧苗图像进行分割裁剪、拉伸等预处理,构建样本集,采用YOLO网络进行秧苗特征区域识别,获取秧苗行定位点,连接定位点并计算相邻定位点间线段的斜率,依据斜率获取行线角度,从而实现水稻秧苗行线检测。
试验图像采集于安徽农业大学庐江郭河试验基地,图像采集设备主要有USB免驱广角摄像头和笔记本电脑。为保证数据集多样性、增强网络对检测环境的泛化能力,在晴天、多云以及阴天情况下各采集200张图像,图像分辨率为2 560×1 920像素。图像采集过程中,使用OpenCV3.0和Spyder编程软件驱动摄像头拍摄,所拍摄秧苗图像如图1所示。
图1 图像采集Fig.1 Image acquisition
为减少后续网络训练所占用的内存和显存,对分辨率为2 560×1 920像素的图像进行压缩处理,处理后图像的分辨率为448×448像素。由图1-b可以看出,图像中水稻秧苗行会出现直线偏移,不利于使用ROI标记框对水稻秧苗直接标记和网络对秧苗的识别。因此,将图像水平裁剪成若干张子图,记录子图的位置索引,每个子图大小为448像素×28像素。
根据网络输入图像大小要求,将裁剪后图像纵向拉伸为448像素×448像素,图像缩小与拉伸变换均使用双线性插值法,结果如图2所示。经过裁剪、拉伸预处理后的图像共有9 600张,选取8 000张作为训练集,1 600张作为测试集。拉伸后图像绿色线条均为竖直方向,将绿色线条视为水稻秧苗特征区域,采用ROI标记框对绿色线条进行标注,制作训练集。
图2 秧苗图像的预处理Fig.2 Preprocessing of rice seedling images
本研究基于YOLO(You Look Only Once)卷积神经网络检测秧苗行线,主要包括2个步骤:基于YOLO网络的秧苗目标检测和秧苗行线定位点检测。
1.3.1 基于YOLO网络的秧苗目标检测 YOLO网络是一种端到端训练的实时目标检测网络,由4个最大池化层、24个卷积层、2个全连接组成,具体结构如图3所示。输入448×448秧苗图,经卷积等操作,被YOLO网络分割成7×7个单元格[16],判断每个单元格是否含有目标中心,对含有目标中心单元格预测4个边框位置和置信度得分,预测类别数为1,最后全连接层对长度为1 029的特征向量进行回归和分类,得到相应目标识别框坐标与预测概率。其中,损失函数用于描述预测框与真实框的误差,定义为:
loss=lcoordinate+lconfidence+lclass
(1)
图3 YOLO结构示意图Fig.3 Schematic diagram of YOLO
由式(1)可知,损失函数由坐标损失、置信度得分损失和类别置信度得分损失组成,而置信度得分表示单元格中包含目标的预测精确度,计算如下:
(2)
将置信度得分与类别概率相乘,得到C个类别置信度得分,计算如式(3)所示。
(3)
将输出的Class_Score与阈值进行比较,保留大于阈值的预测边框。最后通过非极大值抑制算法,删掉剩余的边框,输出类别置信度得分最高的目标边框坐标和类别预测概率。YOLO网络采用非极大值抑制算法保证识别的目标只有一个目标框,而对于秧苗图像,单个目标框不足以表示秧苗行的完整信息。为此,去除原始YOLO网络中非极大值抑制算法,在Class_Score与阈值比较后直接输出检测目标的类别预测概率和目标框坐标。
1.3.2 秧苗行线检测 利用式(4)计算每个秧苗框的中心点坐标,作为候选的秧苗行定位点p(xi,yi),如图4所示,红色圆点是获取的候选秧苗行定位点。
(4)
式中,xi,yi表示定位点坐标,ai,bi表示秧苗框的左上顶点坐标,wi,hi秧苗框的宽和高。
图4 秧苗行线的候选定位点Fig.4 Candidate positioning point of seedling line
然而,由于单行秧苗检测出多个秧苗框,造成秧苗行上有多个定位点,需对其进行聚类合并。另外,田间环境复杂,秧苗检测结果中可能存在秧苗行漏检,导致漏检区域的秧苗行定位点缺失,则需弥补缺失的定位点信息。具体步骤如下:
①将定位点坐标p(xi,yi)按横坐标的大小进行升序排列,计算相邻坐标的距离差值di=|xi-xi+1|及均值davg,若di (5) 式中,xj,yj为Qi中第j个定位点坐标,n为Qi中定位点总数量。 ④根据图5所示的子图索引,将子图定位点拼接为大图,拼接后定位点检测结果如图6所示。 ⑤连接图6中的定位点,并计算相邻定点间线段斜率,用反三角函数将斜率转换为角度,计算相邻线段的角度差。若相邻角度差值大于设定标准值,则说明航向出现变化,需及时调整方向。 图5 子图位置索引Fig.5 Location index of subgraph 图6 秧苗行线图Fig.6 Image of seedling line 算法使用软件为Matlab2019a,计算机CPU 为core i7-8700k,主频3.7 GHz,显卡为NVIDIA RTX2080ti,计算机内存为32 G。 试验中,以测试集中1 600张数据集图像进行秧苗区域检测测试,并将本研究YOLO网络分别与Faster R-CNN网络和ResNet101网络进行比较分析。图7为3种网络在测试图中检测结果。可见,YOLO网络检测出的目标框较ResNet101网络和Faster R-CNN网络多,包含的秧苗信息更全,更利于后续的秧苗行定位点的准确获取。 图7 不同网络的秧苗检测结果Fig.7 Seedling detection results of different networks 为了比较3个网络的检测性能,以检测的准确率和检测速度作为检测指标,结果如表1所示。准确率(P)以所有特征区域均检测出来表示正确,以漏识别表示错误,检测速度以一次检测16张图像为准。从表1可以看出,与ResNet101、Faster R-CNN网络相比,YOLO网络的检测精度仅提高了0.5%,但检测速度远快于ResNet101、Faster R-CNN网络。由于试验对象只有一个绿色特征区域类别需要检测,再加上训练集数量较大,因此网络均易于达到识别精度的要求。相比之下,YOLO网络的检测速度更符合导航实时性的需求。 表1 不同网络检测性能对比 为评价秧苗行线检测的准确性,将本研究算法分别与标准Hough变换方法和特征点聚类方法进行比较和分析。 Hough变换方法主要实现步骤为:提取秧苗图像的超绿特征,采用Otsu算法对图像进行二值化,使用标准Hough变换检测直线。特征点聚类算法主要实现步骤为:将图像进行二值化,提取水稻特征点,基于位置信息进行特征点聚类,获取秧苗行定位点,采用最小二乘法进行直线拟合。 从图8可以看出,标准Hough变换方法和特征点聚类算法采用直线拟合方式生成秧苗行线,当秧苗行线并非标准直线时,检测的秧苗行线与秧苗行趋势贴合度降低。而本研究算法提取的秧苗行定位点对秧苗行线具有较强表征能力,采用多线段的拟合方式更逼近于邻侧秧苗行的趋势,检测效果优于标准Hough变换方法和特征点聚类算法。 图8 不同算法的秧苗行线检测结果对比Fig.8 Comparison of seedling line detection results from different algorithms 为量化判断算法检测秧苗行线的准确率,多次用人工方法提取能表征秧苗行整体走向的参考线(图9),以检测线与参考线的平均角度误差对判断算法的检测效果进行准确度统计,大于5°则视为错误检测,小于5°时视为准确检测。本研究算法检测线由多线段组成,每段检测线与参考线的夹角大小不同,以图像由下往上为插秧机前进方向,计算每一线段与参考线的角度偏差,得偏差之和后取平均值作为平均角度误差,其平均准确率高达94.1%。 而标准Hough变换方法和特征点聚类算法所拟合的直线也可视为由多线段组成,其平均角度误差为每一线段与参考线的角度偏差之和所取平均值,即为拟合直线与参考线的角度偏差,其准确率分别为79.4%和85.2%。可见,本研究算法先获取表征能力强的秧苗行定位点,后基于代表秧苗行趋势的定位点获取秧苗行线,平均检测准确率高于标准Hough变换方法和特征点聚类算法。 图9 检测线与参考线误差示意图Fig.9 Schematic diagram of error between detection line and reference line 为提高插秧机视觉导航路径识别精度,本研究提出了一种基于YOLO卷积神经网络的秧苗行线检测方法。通过对秧苗图像进行剪切、拉伸等预处理,制作秧苗图像样本集,基于YOLO网络检测图像中秧苗目标区域,利用目标框的位置信息提取秧苗行定位点,根据子图位置索引,获取整图中秧苗行定位点,连接定位点并计算相邻秧苗行定位点之间的斜率,生成秧苗行线,获得插秧机的行线角度。试验结果表明,该方法识别秧苗区域目标的平均精度为95.1%,16张图像平均检测时间为0.456 s,且秧苗行线的检测准确率高于标准Hough变换方法和特征点聚类算法。本研究结果表明该算法能够准确提取秧苗行线,为获取插秧机视觉导航路径和相对位置信息提供支持。但本算法的检测效率还不能满足实际相机的帧率(约1 s 25帧)的需要,有待提升。因此在后续的研究中将开展对不同类型农作物的行线检测研究,并提高神经网络的检测速度,优化矩阵的计算方法,提升算法的运算速度。2 结果与分析
2.1 不同网络的秧苗区域检测对比
2.2 不同算法的秧苗行线检测对比
3 讨 论