基于机器视觉的农田地头边界线检测方法
2020-07-07杨鹏树孟志军
王 侨 刘 卉 杨鹏树, 孟志军
(1.国家农业智能装备工程技术研究中心,北京100097;2.首都师范大学信息工程学院,北京100048)
0 引言
农业生产机器人化是解决农业劳动力短缺、促进农业机械精准化和智能化、提高农业生产效率和经济效益的关键举措。农田作业机器人化是农业生产机器人化的重要组成部分,非结构农田作业环境中农机全程自主导航行走技术是当前农田作业由自动化过渡至机器人化的关键技术之一。
实现农机田间作业过程中的全程自主导航行走,主要包括实现其田内正常作业时的自主导航行走[1-4]、田内遇障时的自主导航避障[5-8]以及地头处的自主导航转弯[9-12]三部分。随着农田场景的变化,田内障碍物通常表现出随机性、不确定性和非必然存在性,故针对农机田内遇障时的自主导航避障技术研究暂不具有迫切性。而针对农机田内正常作业时的自主导航行走,目前基于全球卫星导航定位系统(Global navigation satellite system,GNSS)[13]的田内直线作业导航技术已较成熟,相关产品已实现批量销售。但是,农机抵达地头处的转向掉头过程,目前仍需人工操作来实现。因此,研究地头处的自主导航转弯技术,是目前实现农机田间作业过程中全程自主导航行走最为紧迫的任务。
在非结构化的农田作业环境中,为实现农机在地头处的自主导航转弯,首先要感知地头的空间位置信息。目前,国内外针对农机在地头处的转弯路径规划和转向控制进行了较多研究,但是针对地头空间位置信息检测方面的研究却较少,且相关研究主要基于机器视觉感知技术来判断是否到达地头[12,14-15]或完成对地头边界线的定位检测[16-20]。地头边界线是描述地头空间位置的关键参数,在短距离范围内通常近似呈线性特征,在农机田间作业过程中,实时探测地头边界线的位置,可为后续规划地头转弯路径、实施自主转向掉头提供关键的参考线或基准线。文献[16 -17]中分别针对土质田埂和水泥田埂,研究了水田中田埂线的视觉检测方法,主要依据秧苗插种之前水田内外边缘纹理特征的差异来获取对应分界线,检测准确率在98%以上,但该方法并不适用于旱田环境。对于旱田环境中的地头边界线,已有研究[18-20]主要依据农田内外的亮度或颜色差异,通过寻找跳变行确定其位置,所获得的地头边界线在图像中往往呈水平直线状。很显然,相关方法仅适用于检测地头边界与农机作业方向近似垂直(此时地头边界近似呈水平延伸状)、较规整的地头场景,对于实际农田环境中较常见的非垂直、呈倾斜延伸状、非规整地头边界类型并不适用,具有较大的应用局限性。并且所检测的边界线也无法保证农机在其内实施自主转向掉头操作时安全可靠。目前,关于地头边界线的视觉检测算法所涉及的地头场景单一、特殊,算法的鲁棒性较差,无法适应实际农田中复杂多变的地头环境,且所检测的地头边界线并不能直接用于农机在地头处掉头转向的基准线。
本文面向农机实现地头处自主导航转弯的信息感知需求,基于机器视觉技术,针对耕播时期的几种典型地头场景,研究非规整地头边界线的检测方法,为农机在地头处实现自主转向掉头提供可靠的转向基准线,为实现农机田间作业过程中全程自主导航行走提供技术支撑。
1 农田地头图像样本采集
本质上,地头属于农机田间作业过程中一种必然存在的障碍。每个自然农田地块均存在4 条以上边界,通常由防护林、田埂、农田道路、沟渠等包围农田地块形成。其中,阻碍农机正常前行作业或中断农机连续作业的田块边界(即垄行末端的田块边界)视为地头边界所在位置。本研究所检测的地头边界线,主要产生于自然田块边界位置。农机田间作业过程中,需在抵达地头边界线之前完成转向掉头,同时需在开始转向掉头之前完成地头边界线的探测。
非结构农田环境中,地头类型呈现复杂多样性,本研究选取耕播时期的3 类典型地头场景进行地头边界线检测算法的研究:①植被田埂/农田,如灌丛、杂草、树木等植被田埂。②泥土路/农田。③水泥路/农田。
选用USB 接口的TXY_616_1080P 型高清彩色数码摄像机,输出分辨率为800 像素×600 像素。于2018 年10 月在小汤山精准农业示范基地,针对3 类共9 种农田场景,由田内至田外以20 f/s 的速率连续采集获取视频图像,图1 为采集的3 类共9 种场景下地头出现时的图像样本,图2 为相应地头出现前的田内场景图像样本。
图1 不同地头场景图像样本Fig.1 Image samples of different headland scenes
2 地头边界线视觉检测算法
图2 图1 中不同地头场景下的田内场景图像样本Fig.2 Image samples of field scenes corresponding to headland scenes in Fig.1
面向非结构复杂农田环境,结合农机田间动态作业过程以及农机在地头处安全可靠地实施自主转向掉头的实际应用需求,基于Matlab 平台进行非规整地头边界线视觉检测算法的研究,完成以下3 项检测任务:①首要检测任务:判断地头出现与否。②根本检测任务:获取非规整地头边界的主体延伸方位线。③关键检测任务:获取地头转向基准线。
2.1 地头出现与否判断
农机田内动态作业过程中,需实时判断其前方视野范围内是否出现地头,只有在确定地头出现的前提下,才需进行地头边界线的检测。尤其是当田外场景较明显地出现在图像中时,再检测地头边界线,较为稳妥。
同一地块中地头还未出现时的田内场景以及地头出现后的地头场景的行灰度平均值(即水平方向像素灰度平均值)分布如图3 所示,每组图中,左侧为地头图像的行灰度平均值,右侧为田内图像的行灰度平均值,对于田内图像,其分布图整体变化较为平稳,而对于地头图像,对比地头边界两侧区域,其行灰度平均值通常存在较明显的跳变。因此,基于该跳变特征判断地头是否出现。
图3 不同农田场景下的地头图像和田内图像的行灰度平均值变化曲线Fig.3 Curves of row gray average values of different headland images and their corresponding field images
具体检测步骤如下:
(1)彩色图像灰度化。根据计算式
式中 R(i,j)、G(i,j)、B(i,j)——原彩色图像中(i,j)处像素点的R、G、B 分量值
f(i,j)——绿色分量增强后的(i,j)处像素点的灰度
对彩色图像进行灰度化。
(2)计算行灰度平均值的分散程度。从上往下逐行扫描灰度图,第j 行像素的灰度平均值为
所有像素的灰度平均值为
正向分布偏差为
负向分布偏差为
式中 xsize——图像宽度 ysize——图像高度
(3)判断地头是否出现。若正向分布偏差D+>Dth(判断阈值),或者负向分布偏差D - >Dth,则表明出现跳变特征,即认为地头出现,继续执行后续检测步骤。否则认为地头未出现,结束当前帧图像的检测。
其中,地头判断阈值Dth主要取决于田内场景图像中上述行灰度平均值数据的正、负向分布偏差的分布范围,尤其是分布范围的上限值。
另外,定义跳变方向标志量f1,初始化为0。在判断出现地头的前提下,若D+≥D -,则表明地头边界处表现为正向跳变特征,令f1=1,否则认为表现为负向跳变特征,令f1= -1。
2.2 非规整地头边界的主体延伸方位线获取
非结构复杂农田环境中,地头边界通常呈非规则曲线性,但在短距离范围内可近似拟合为直线,拟合直线的方位即可视为当前段地头边界的主体延伸方位。实际农田环境中,地头边界的主体延伸方向不垂直垄行方向的情况较常见,在图4 所示地头场景图像中,黑色箭头、黑色曲线和橙色直线分别示意垄行方向、实际地头边界和曲形地头边界的主体延伸方位。此时,采用求取跳变行的方法[18-20]来确定地头边界在图像中的位置,仅能获得一条红色虚线所示的位于地头边界附近的水平行线,该行线并不能真实地展现地头边界的主体延伸方位。
图4 非规整地头边界线获取示意图Fig.4 Schematic of acquisition of irregular headland boundary line
本研究拟将图像沿水平方向平均分成8 个子处理区域,如图4 所示,分别针对各子处理区域求取跳变位置处的特征点(图4 中红色小圆圈),最后再针对这些特征点进行线性拟合,获取实际非规整地头边界的主体延伸方位线(图4 中橙色直线)。具体求取过程如下:
(1)分区求取跳变位置处特征点。将灰度图沿图像宽度方向均分为8 个子处理区域,第m 个子处理区域沿宽度方向的像素区间范围为
式中 xsm、xem——第m 个子处理区域沿图像宽度方向的起始、终止像素位置
定义标志变量f2,初始化为0。从第1 个子处理区域开始,从左往右依次针对各子处理区域进行检测:
步骤1:参照式(2)求取当前子区域中每一行像素的灰度平均值,存储于数组Fa中。基于smooth 函数利用局部加权回归方法对Fa中数据进行平滑处理,平移窗口宽度设置为60 像素,平滑后的数据存储于数组Fs中。以Fs数据作为纵坐标,各数据所对应的行数作为横坐标,绘制行灰度平均值平滑曲线,寻找该曲线上的所有波峰点和波谷点,存储其位置坐标。
步骤2:结合当前地头边界跳变方向的不同(即f1的取值),确定位于跳变位置处的波峰点和波谷点方法如下:
若f1=1,则针对上述所有波峰点,按照其行数(即其横坐标)从大到小的顺序,对其进行排列,并基于排序后的波峰点的纵坐标数据来确定位于跳变位置处的波峰点,从第2 个数据开始,按序计算当前数据的离群度,计算式为
式中 yi、yi-1——排序后的第i 和第i-1 个波峰点或波谷点的纵坐标,i∈[2,N],N表示波峰点或波谷点的总数
直至寻找到首个满足不等式R >Rth(判断阈值)的数据为止,则该数据所对应的波峰点即为跳变波峰点,记其位置坐标为(k,yk),同时本文将排于其之前的相邻波峰点称之为预跳变点(即其靠近田内一侧的相邻波峰点,亦即行数较大的相邻波峰点),记其坐标位置为(p,yp)。同时,在步骤1 中的行灰度平均值平滑曲线上,寻找点(k,yk)右侧最邻近的波谷点,称之为跳前波谷点,记其位置坐标为(h,yh)。
若f1= -1,则针对上述所有波谷点,按照同样的方式,寻找满足条件的跳变波谷点,记其位置坐标为(h,yh),同样将排于其之前的相邻波谷点称之为预跳变点,记其位置坐标为(p,yp)。同样地,在步骤1中的行灰度平均值平滑曲线上,寻找点(h,yh)右侧最邻近的波峰点,称之为跳前波峰点,记其位置坐标为(k,yk)。
其中,跳变特征判断阈值Rth主要取决于田内场景中的上述对应曲线下的波峰和波谷点的按序离群程度,即其所对应的|R|的分布范围的上限值。
若不存在满足R >Rth的跳变波峰点或跳变波谷点,则认为当前子处理区域中无跳变特征点,结束当前帧图像的检测。
步骤3:基于跳变波峰点和跳前波谷点或跳变波谷点和跳前波峰点的位置坐标,确定当前子处理区域中跳变特征点的像素坐标位置。取跳变特征点所在行数为(k+h)/2,跳变特征点所在列为当前子处理区域的中心列。若当前为第m 个子处理区域,则当前子处理区域中跳变特征点的像素坐标为((xsm+xem)/2,(k+h)/2)。
另外,定义标志变量f2,初始化为0。当6 个以上子处理区域均存在跳变特征点时,令f2=1,同时记有效子处理区域个数(即存在跳变特征点的子处理区域个数,亦即跳变特征点个数)为M,否则令f2= -1。
(2)线性拟合跳变特征点,获取主体延伸方位线。若f2=1,则针对上述求取的跳变特征点,基于稳健回归法[21-22]进行线性拟合,获取拟合直线,从而获得地头边界的主体延伸方位线。
2.3 地头转向基准线获取
从实际应用的角度看,上述主体延伸方位线并不能直接用作农机在当前地头处转向掉头的基准线。如图4 所示,当农机以橙色直线作为转向基准线(即要求农机在抵达该转向基准线之前完成转向掉头)时,A 点处凸向该基准线以内的田外场景(如田埂或道路等)很可能会对农机当前的正常转向掉头造成阻碍,导致转向掉头失败,甚至产生碰撞等安全事故。
为此,本研究拟将上述主体延伸方位线向下平行移动,使之经过甚至跨越最远的边界位置(以下简称安全位置,图4 中的A 点处),以此获取在当前地头处安全转向掉头的基准线,如图4 中绿色直线所示。由此,该转向基准线既顺沿实际地头边界的主体延伸方向,又将当前所有凸向田内的外部区域分割在外,可保证农机在该转向基准线之内实施自主转向掉头操作时安全可靠。操作步骤如下:
(1)在前述M 个预跳变点中,寻找对应行数最大(即横坐标值最大)的预跳变点,并记该预跳变点所属的子处理区域为关键子处理区域。
(2)基于关键子处理区域的行灰度平均值平滑曲线,求取曲线上预跳变点左侧数据的平均值和标准偏差D0。
(3)在关键子处理区域内,以主体延伸方位线的初始位置作为起始位置,将其逐行往下平移,同时逐行计算线上像素的灰度平均值,并存储于数组FL中。同样基于smooth 函数,设置平移窗口宽度为60像素,利用局部加权回归方法对FL中数据进行平滑处理,将平滑后的数据存储于数组FLs中。以FLs中数据作为纵坐标,以对应的平移行数作为横坐标,绘制灰度平均值平滑曲线。
(4)再次结合当前地头边界跳变方向的不同,分别采取以下方法将主体延伸方位线平移至安全位置处:
当f1= -1 时,在上述平滑曲线上,从左往右按序寻找首个满足纵坐标值大于-D0的点,该点所对应的平移行数即可认为是原主体延伸方位线抵达安全位置处所需向下平移的最小行数,本文将满足以上平移条件的平移方案称之为平移途径1。
当f1=1 时,根据D -与Dth-关系,采取平移方法如下:①若D -≤Dth-,则首先在上述平滑曲线上,寻找到第1 个波谷点,然后在该波谷点之前的平滑曲线上寻找到纵坐标值小于且最接近+ D0的点,该点所对应的平移行数,即可认为是原主体延伸方位线抵达安全位置处所需向下平移的最小行数,本文将满足以上平移条件的平移方案称之为平移途径2。②若D - >Dth-,则在上述平滑曲线上,首先寻找到第1 个波谷点,然后以第1 个波谷点为起点,向后按序寻找到首个满足纵坐标值大于的点,同样地,该点所对应的平移行数,即可认为是原主体延伸方位线抵达安全位置处所需向下平移的最小行数,本文将满足以上平移条件的平移方案称之为平移途径3。
依据上述3 种平移途径所获取的最小平移行数,将主体延伸方位线平移到位后,即可获得当前地头处转向掉头的基准线,即为本研究最终所要求取的用于农机自主导航的地头边界线。
2.4 总体检测流程
总体检测流程如图5 所示。
3 试验与结果分析
3.1 阈值确定
从前述3 类共9 种农田场景视频图像中,截取各场景下的田内场景视频段,从第1 帧开始,以每20 帧选取一帧的方式,从截取的每段田内场景视频中,各选取50 帧图像。
图5 总体检测流程图Fig.5 Flow chart of detection method
(1)地头判断阈值
分别针对上述9 种田内场景下的各50 帧图像样本,计算每帧图像的行灰度平均值数据间的正向分布偏差DIn+和负向分布偏差DIn-,并统计这50 组DIn+和DIn-的分布区间,设两分布区间上限值中的最大值为Dmax,最后根据Dmax确定当前场景下的地头判断阈值Dth。事实上,本研究设置Dth=1.3Dmax,通过预留一定的余量以便地头较明显地出现在图像上方后再确认地头出现并进行后续检测,以此提高地头边界线的可见性,便于后续对其进行准确检测。由此,当图像中仅冒出少部分地头时本研究视之为地头未出现的情况。9 种田内场景下的DIn+和DIn-分布区间、Dmax以及对应的Dth见表1。
表1 地头判断阈值和跳变特征判断阈值Tab.1 Determination of headland judgement threshold and jumping feature judgement threshold
农机田间作业过程中,在作业前期,通常不会遇见地头,所采集的图像一般为田内场景图像,由此在实际应用中,可基于前期连续采集的图像样本集确定地头判断阈值。
(2)跳变特征判断阈值
针对上述9 种田内场景下的各50 帧图像样本,计算每帧图像的行灰度平均值平滑曲线上波峰点间和波谷点间的按序离群程度|R|的取值范围,其中f1取1。并统计这100 组取值范围的分布区间,设分布区间上限值为Rmax,根据Rmax确定当前场景下的跳变特征判断阈值Rth。本研究设置Rth=1.3Rmax,同样通过预留一定的余量以避免凸起的农田道路其侧面非均质的小段断层阴影对田内外灰度跳变特征的判断造成负向干扰,如图1c(场景9)所示的水泥地头场景,从其行灰度平均值分布(图3d)可知,水泥道路相对田内存在明显的灰度正向跳变,而其侧面小段的断层阴影相对田内存在局部灰度负向跳变。由此,针对植被田埂类地头场景和非凸起的道路类地头场景,通过获取田埂或道路与田内分界处的灰度跳变特征来确定地头边界的主体延伸方位,而针对凸起的道路类地头场景,基于道路与其侧面断层区分界处的灰度跳变特征来确定地头边界的主体延伸方位。9 种田内场景下的Rmax以及对应的Rth见表1。
在实际应用中,同样地,可基于作业前期连续采集的田内图像样本集来确定跳变特征判断阈值。
3.2 地头出现与否判断结果
针对图1 中的3 类共9 种地头场景图像样本,计算获得其正向分布偏差D+和负向分布偏差D -依次为:17.63、43.83;20.07、46.54;50.95、15.04;32.11、24.95;36.65、17.23;20.70、12.12;25.00、19.43;54.88、25.04;20.69、18.49。结合表1 可知,图1a 中场景1、2 的D -,图1a 中场景3 的D+,图1b中场景4、5 的D+,以及图1c 中场景7、8 的D+,均小于对应场景下的阈值Dth,由此判断上述图像均为地头出现时的场景,符合实际情况,均判断正确。对于图1b 中场景6 和图1c 中场景9,由于图像中仅有少部分地头冒出,导致其D+虽然大于对应场景下的Dmax,但却均小于对应场景下设置的阈值Dth,由此均判断为地头未出现时的场景,此时停止当前帧图像的检测。而当这2 种场景下对应的地头较明显地出现在图像上方后,如图6 所示,分别为场景6、9各自所对应场景下地头出现较明显后的图像样本,计算获得其D+和D -依次为:38.32、16.09;42.33、24.10。此时图6a 和图6b 的D+均小于对应场景下的阈值Dth,由此均判断为地头出现时的场景,此时执行后续检测步骤。由此可见,本研究的地头判断阈值设置合理,判断结果符合预期效果。
图6 出现较明显地头时的图像样本Fig.6 Image samples of headland scenes after obvious headland appeared at top of image
同样地,针对图2 中的3 类共9 种田内场景图像样本,计算获得其正向分布偏差D+和负向分布偏差D - 依次为:8.58、10.33;10.22、13.52;6.71、6.04;18.60、12.59;8.07、10.57;10.14、10.02;11.00、15.23;11.47、13.35;9.42、9.65。结合表1可知,以上各值均小于对应场景下的阈值Dth,由此判断上述图像均为地头未出现时的场景,符合实际情况,均判断正确。
3.3 主体延伸方位线检测结果
(1)跳变特征点求取结果
以图6b 为例,其灰度图如图7a 所示,其跳变方向标志量f1=1,将其灰度图沿水平方向平均分成8个子处理区域,图7a 中红色方框区域表示首个子处理区域。该子处理区域所对应的行灰度平均值见图7b 中蓝色曲线。该平滑曲线上共计有14 个波峰点和14 个波谷点。按照行数从大到小的顺序,14 个波峰点的位置坐标依次为:(546,148)、(530,147)、(483,130)、(469,133)、(413,134)、(403,130)、(336,145)、(274,145)、(235,138)、(197,147)、(182,148)、(135,118)、(47,213)、(29,215)。从以上第2 个波峰点开始,依次计算并获得其纵坐标值的按序离群度R 分别为:-1.29%、-11.15%、2.34%、0.65%、- 2.68%、10.54%、- 0.21%、-5.01%、6.44%、0.80%、- 21.36%、68.47%、1.46%。
结合表1 可知,第13 个波峰点的R 值大于当前的跳变特征判断阈值19.44%,由此确定波峰点(47,213)为跳变波峰点,波峰点(135,118)为预跳变波峰点。另外,结合波谷点的位置坐标,确定跳变前波谷点的位置坐标为(104,92)。由此,基于跳变波峰点和跳变前波谷点位置坐标确定首个子处理区域中跳变特征点的像素坐标为(50,76)。同理依次获得剩余7 个子处理区域中跳变特征点的像素坐标为(150,67)、(250,65)、(350,70)、(450,66)、(550,75)、(650,67)、(750,80)。
如图7b 所示,红色和绿色小圆圈中心分别表示所获取的波谷点、波峰点位置,蓝色、青绿色和黑色小圆圈中心分别表示所获取的跳变波峰点、跳变前波谷点和预跳变点。8 个跳变特征点在原图中的位置如图7c 中红色圆圈中心所示,由图可知,检测获取的跳变特征点定位较准确。
图7 图6b 地头场景图下的跳变特征点检测过程示意图Fig.7 Schematics of detection process of jump feature points for Fig.6b
(2)主体延伸方位线拟合结果
上述8 个跳变特征点线性拟合结果如图8i 中黄色直线所示,该直线即为图6b 中地头场景的主体延伸方位线。另外,图1a、1b 中场景4、5 和图6a、1c中场景7、8 的地头主体延伸方位线检测结果如图8中黄色直线所示。其中,图1c 中场景8 和图6b 为凸起的道路类地头场景,由检测结果可知,所获取的主体延伸方位线较好地拟合了道路与其侧面断层区之间的分界位置,而对于剩余的地头场景图像,所获取的主体延伸方位线也较好地拟合了田内与田外区域之间的分界位置,检测结果均较准确。
3.4 转向基准线检测结果
同样地,以图6b 中地头场景图像为例,8 个预跳变点中,第2 和第5 个子处理区域的预跳变点所对应的行数最大,两者任选其一作为关键子区域。选取第5 个子处理区域作为关键子区域。在该关键子区域的行灰度平均值平滑曲线上,计算获得预跳变点左侧数据的平均值为137.34。在关键子区域内,将主体延伸方位线逐行向下平移,并逐行计算平移后的线上像素灰度平均值,如图9a 中黄色曲线所示,获得其平滑曲线如图中蓝色曲线所示。另外,图中红色小圆圈中心表示平滑曲线上的波谷点。鉴于图6b 中地头场景图像下f1=1,且D - =24.10 >Dth= 23.39,由此依据平移途径3 进行平移。由图9a 可知,蓝色小圆圈中心所示位置处,其纵坐标值为139.71,为平滑曲线上第1 个波谷点之后首个大于的值,所对应的平移行数为112 行,故原主体延伸方位线抵达安全位置处所需向下平移的最小行数为112 行。
另外,对于图1a 中地头场景1 和图1b 中地头场景5,其f1、D -、Dth、关键子区域、D0依次为-1、43.83、18.31、第5 个子处理区域、150.82、16.76,1、17.23、21.55、第5 个子处理区域、137.11、18.26。同样地,在各自的关键子区域内,计算并获得各自的主体延伸方位线逐行向下平移过程中其线上灰度平均值数据的平滑曲线,分别如图9b、9c 所示。结合平滑曲线,确定上述3 类地头场景图像下所需采取的平移途径依次为平移途径1 和平移途径2。由图9 可知,以上两类地头场景图像下,原主体延伸方位线抵达安全位置处所需向下平移的最小行数分别为42、19 行。
图9 主体延伸方位线平移行数确定示意图Fig.9 Determination of row number of downward translation of main-body extended azimuth line
按照上述最小平移行数将图6b 场景9、图1a中场景1、图1b 中场景5 的主体延伸方位线分别平移至安全位置处,由此获得相应地头处转向掉头的基准线,分别如图8i、8a、8e 中绿色直线所示。
此外,剩余地头场景图像的转向基准线获取结果如图8 中绿色直线所示。由图8 可知,检测获取的转向基准线,可保证农机在该转向基准线以内完成掉头转向操作时安全可靠,即为本研究所要求取的用于农机自主导航的地头边界线。
3.5 总体检测结果
从前述采集的3 类共9 种农田场景视频中,针对每种场景,从中截取地头出现前的田内连续图像帧共计2 000 帧,并截取地头出现较明显后的连续图像帧共计100 帧。针对每种场景下的2 100 帧图像,逐帧检测地头是否出现,并判断检测结果的准确性,同时针对每种场景下的上述100 帧图像,逐帧进行地头边界线检测,仅当能检测出地头边界线且所检测出的地头边界线可保证农机在其内实施自主转向掉头操作安全可靠时,才视当前帧地头边界线检测正确,同时统计单帧图像检测处理的最长时间,试验结果如表2 所示。
表2 检测结果Tab.2 Test results
由表2 可知,地头出现与否判断准确率不低于96%,地头边界线检测准确率不低于92%,基于Matlab 平台单帧图像处理时间不高于0.52 s。试验结果表明,本算法可准确地判断是否抵达地头,并快速检测出用于农机自主导航的地头边界线,所检测出的地头边界线可保证农机在该转向基准线以内完成转向掉头操作时安全可靠。
4 结论
(1)基于农田内外像素灰度值的跳变特征来判断地头是否出现。建立并计算正向分布偏差和负向分布偏差两个度量,分别用以描述图像行灰度平均值数据的正向和负向分散程度,当两度量之一大于判断阈值(即数据分布较为分散)时,即可认为出现跳变特征,判断地头出现。该判断方法主要适用于农田内外具有灰度跳变特性且田内匀质分布的农田场景,检测准确率不低于96%。当田内存在大块异物或杂质,或存在其他导致田内局部区域灰度差异较大的影响因素(如阴影、灌溉不均匀等)时,则会造成判断准确性下降,同时也将影响后续检测。
(2)将图像沿水平方向平均分成8 个子处理区域,针对各子处理区域求取行灰度平均值分布图,基于局部加权回归法对该分布图进行平滑处理。针对存在正向(或负向)跳变特征的场景,基于平滑曲线上的波峰点(或波谷点),引入按序离群度,用以描述按行数大小倒序排列后的波峰点或波谷点其所对应的行灰度平均值的按序离群程度,将首个离群度较大的波峰点或波谷点视为跳变波峰点或跳变波谷点。基于跳变波峰点和跳变前波谷点或跳变波谷点和跳变前波峰点位置坐标,确定跳变特征点的像素坐标位置。最后,基于稳健回归法对跳变特征点进行线性拟合,获取实际非规整地头边界的主体延伸方位线。试验结果表明,所获取的主体延伸方位线较好地拟合了田内与田外区域之间的分界位置,检测结果较为准确。
(3)根据预跳变点所对应的行数确定田外区域凸向田内程度最大的关键子区域,基于该子区域的行灰度平均值拟合曲线,求取预跳变点左侧数据的平均值和标准差,确定田内像素的灰度分布特征。将主体延伸方位线向下平行移动,当其线上像素的灰度平均值接近于田内像素的灰度分布特征时,认为抵达安全位置处,由此获取农机在当前地头处安全转向掉头的边界线。试验结果表明,3 类共9 种农田场景下,地头边界线检测准确率不低于92%。本研究可为农机在地头处实施自主导航转弯提供较为准确、可靠的地头信息感知技术支持。