基于双目视觉的种植前期农田边界距离检测方法

2022-06-21 08:30:30洪梓嘉李彦明林洪振刘成良
农业机械学报 2022年5期
关键词:田埂代价农田

洪梓嘉 李彦明 林洪振,2 贡 亮 刘成良,2

(1.上海交通大学机械与动力工程学院, 上海 200240; 2.机械系统与振动国家重点实验室, 上海 200240)

0 引言

无人驾驶及自主作业是目前农机智能化发展趋势及研究热点,全球导航卫星系统(GNSS)的定位精度已小于2.5 cm,在农机导航与自动驾驶中已得到广泛应用[1],但基于GNSS的农机自动驾驶及无人作业目前尚存在一些局限。GNSS需要提前进行田地边界人工打点标记,额外增加了工作量的同时,也可能对作物或田间土壤造成破坏;并且GNSS对于不规则形状地块的标定较为繁琐;另外,对于位置偏僻或信号不佳的农田,农机也难以完全基于卫星导航进行作业。而车载传感器可以实时获取农机周围丰富的环境信息,进而根据不同的环境情况,灵活机动地控制农机作业,这恰好弥补了GNSS的不足。因此,基于车载传感器的农田边界距离实时感知对于农机无人作业有着重要价值。

农机自动驾驶与无人作业的田间障碍物距离检测传感器包括视觉传感器、激光雷达、毫米波雷达和超声波等[2],由于农田作业边界低矮,雷达和超声波等无法对其实现距离检测。与其他传感器相比,视觉传感器能够获得农田环境的二维图像甚至三维点云,信息丰富且成本较低,与雷达相比虽然检测距离较短,但目前已经能达到20 m,能够满足农机作业速度下障碍及边界距离检测要求,因此基于视觉传感器的研究成为了智能农机环境感知的热点[3]。

目前视觉传感器在农机导航中得到了广泛应用,主要包括作物行线检测[4-6]及农田边界线检测[7-10]。其中作物行线检测算法的研究开展较早,技术已较为成熟,其算法大多是基于颜色和纹理的传统图像处理方法[4-7]。而农田边界线检测算法的研究相对较少,算法核心大多数为机器学习方法[8-10]。其中文献[10]采用超像素分割算法,解决了机器学习农田训练样本缺乏的问题。此类算法可以满足实时要求,但对于与机器学习训练样本差异较大的农田,算法鲁棒性有待于进一步提高。

上述算法均使用单目相机作为传感器,虽然实现了农田作物行线与边界线的检测,但无法获得边界距离信息。与单目相机相比,双目相机在获得二维图像信息的基础上,还可获得三维空间信息。近年来,随着双目立体匹配算法在时间和精度上的突破[11],基于双目视觉的距离检测算法在室内及工业化环境条件下表现良好[12],国内外学者提出了将双目视觉应用于农田中,进行作物行线检测和田间作业机械、人和建筑物等具有一定高度体积的障碍物识别测距[13-16]。但对于农田边界而言,部分田埂与地块特征差异不大,高度低、目标小,与农机、人等障碍物的检测有明显不同特点,需要更加精准且高效的立体匹配方法和结合实际场景的测距策略,但目前基于双目视觉的农田边界距离检测研究较少,尤其耕整与播种作业环节,农田边界与土壤颜色接近,边界识别与距离检测难度更大。

本文基于双目视觉对农机自动驾驶及无人作业的农田边界距离自主检测方法进行研究。为保证农田图像的立体匹配精度和匹配速度,运用多特征融合及分割树算法分别进行代价计算和代价聚合,进一步利用多尺度代价聚合框架,建立不同尺度下匹配代价的联系,增强弱纹理区域的可靠性;然后针对农田实际情况,设计田埂的点云提取方法,识别出较为准确的田埂边界线;最终进行田埂测距实验,对双目视觉在农田边界距离检测中的可行性、适用条件及检测精度进行验证。

1 基于多尺度代价合并的农田边界立体匹配

农业生产的耕、种、管、收等不同环节的农田边界呈现不同特点,可以按照其与作物的高度分为种植前期(作物高度较明显小于田埂高度)和种植后期(作物高度等于或高于田埂高度),不同农田中田埂的情况不同,本文田埂检测算法针对种植前期的农田环境提出,如耕整、播种、田埂高于作物时的施肥喷药等具体场景。

图像的立体匹配是基于双目视觉的农田边界检测的核心,可归纳为代价计算、代价聚合、视差计算和视差优化几个步骤[17]。其中代价计算与代价聚合是决定立体匹配性能的关键。本文针对农田非结构环境的特点,采用基于多尺度代价合并的立体匹配方法。

1.1 多特征融合的匹配代价计算

农田环境光照变化大,且田地部分易出现重复纹理,此时凭借单一特征对图像描述进行匹配难以保证准确性。为保证算法的鲁棒性,选择了Census变换[18]与截断阈值梯度的多特征融合代价计算方法。Census立体匹配方法依赖于局部强度的相对有序,而不是强度本身,因此对整体的明暗变化并不敏感,且可以容忍大量的异常值,对光照变化和图像噪声鲁棒。而梯度信息可以加强对图像纹理信息的获取,从而改善深度不连续区域的匹配效果。

当视差为d时,计算左图像素点(u,v)和右图待匹配像素点(u+d,v)的汉明距离即为Census变换的匹配代价

Ccen(u,v,d)=
Hamming(Cenl(u,v),Cenr(u+d,v))

(1)

其中,Cenl(u,v)为左图像素点(u,v)经Census变换后得到的比特串;Cenr(u+d,v)为左图像素点(u+d,v)经Census变换后得到的比特串。

同时,引入梯度信息来计算匹配代价,梯度匹配代价定义为

(2)

τg——梯度代价截断系数,可有效限制异常点的影响

Il、Ir——双目相机采集的左、右图像

参照文献[19],将Census匹配代价和截断梯度匹配代价进行归一化结合,最终的匹配代价公式为

C(u,v,d)=2-exp(-Ccen(u,v,d)/λc)-
exp(-Cg(u,v,d)/λg)

(3)

式中λc——Census匹配代价控制参数

λg——截断梯度匹配代价控制参数

1.2 多尺度代价合并的代价聚合

为了保证算法在农田环境中的匹配准确性和算法的实时性,采用基于多尺度代价聚合框架,通过构建分割树[20-21](Segment-Tree, ST)的方法进行代价聚合。

分割树利用最小生成树的思想,每个像素在计算代价时均会得到来自图像中所有其他像素的贡献。且在构建树的过程中,深化对细节的处理,从而使算法具有全局算法的优秀匹配效果,还对于边缘纹理区域的处理更加精细。同时,为提高运算实时性,利用双向遍历树结构的计算方法,分割树构建的时间几乎与图像像素的数量呈线性关系,极大减小了计算复杂度。

分割树代价聚合算法的具体步骤为:

(1)用无向图G=(V,E)表示图像I,初始化最小生成树的集合T。图像I中的每一个像素均为V中的一个顶点,I中每对符合四联通规则的相邻像素均为E中的一条边,灰度差即边的权重we。初始时刻每个顶点都是一个最小生成树。

(2)通过最小生成树原理来构造子树T。将E中的边根据权重由小到大进行遍历,被边连接的2个子树根据判别公式判断是否合并为一个最小生成树,判别公式为

(4)

式中 Int(Tp)、Int(Tq)——Tp、Tq中最大的边权重

|Tp|、|Tq|——分割子树p、q中顶点个数

k——常数,取1 000

(3)合并最小生成树直至全图成为一棵树T0。将每个子树与另一个子树连接的边根据权重由小到大进行遍历,若此边来自2个不同的子树,则将这2个子树合并为1个,直至全图被合并为1个最小生成树则停止。

(5)

已知坐标的像素q在视差d的匹配代价由式(3)获得,现简记为Cd(q);σ为距离调整参数,在具体工程应用中被指定,本文取σ=0.1。

采用以上描述的分割树方法在所有尺度的图像上进行代价聚合后,各尺度的聚合代价是相互独立的,根据文献[22]中的多尺度代价合并框架建立它们之间的关系,合并多尺度的聚合代价至原图尺度。

(6)

1.3 计算及视差优化

采用WTA (Winner take all)策略计算视差,即选取匹配代价图中最小匹配代价对应的视差作为该点的视差。另外,选择中值滤波方法进行视差优化。

2 田埂边界识别

基于双目视觉的农田边界识别与距离检测,其本质是根据三维点云信息中农田作业区域与田埂间的高度差进行田埂区域的提取和测距。本文首先利用成像原理构建图像的三维点云获取像素点的位置信息,再利用像素点高度坐标对边界点云进行粗识别,并进行实际农田环境中的干扰消除。

2.1 深度图及三维点云计算

深度图是指将从相机到场景中各点的距离(深度)作为像素值的图像,根据三角形相似性质,容易进行视差图到深度图的转换,公式为

(7)

式中ddepth——所求该像素点在实际空间中距离相机的深度,mm

b——相机基线距离,本文相机为120 mm

fx——相机归一化焦距,通过张正友标定法[23]获得

根据经典的针孔模型结构原理计算三维点云[24],公式为

(8)

其中,cx、cy、fx、fy均为标定获得,cx=971.496 9像素、cy=558.542 9像素、fx=1 068.622 7像素、fy=1 069.420 2像素。坐标系方向如图1所示,z即像素至相机的深度距离。

图1 相机坐标系示意图Fig.1 Camera coordinate system diagram

图2 边界提取处理Fig.2 Boundary extraction processing

2.2 自适应农田边界点云粗提取

在耕整、播种及作物生长早期,根据土地耕整情况和作物生长情况等,在不同的田地,相机距离地面或作物的高度特性不同。针对此特点,设计了自适应点云农田边界提取方法。

相机平行于地面安装在农机正前方,假定农机初始作业时农机前方近处没有田埂,作业过程中农机在田间朝着田埂方向行驶,图像中间底部的区域几乎可以确定为田地。农田地面距离相机的垂直高度Y(即相机坐标系下三维点云的y值的集合)符合N(μ,σ2)的高斯分布,均值即为相机距离地面或作物的高度,在均值左右2个标准差(2σ)范围内的点被认为是地面或作物,并将这些点在视差图(图2b)中置为黑色,实现滤除。另本文认为田埂高度不大于800 mm,将高度超过800 mm的无关区域一同滤除,即

(9)

最终点云提取效果如图2c所示。

2.3 针对实际农田环境的干扰消除

在理想的农田环境中,地面或作物的高度较为一致,田埂明显高于地块,且小范围内的形状为连续的直线。但对于实际农田,地面会存在小范围凸起或凹陷,作物生长可能参差不齐,这会对提取的边界点云产生干扰,因此,设计了基于点云连续性的干扰消除方法。

为达到理想的边界提取效果,对点云过滤后的视差图依序进行了几种形态学处理,每个步骤的图像处理过程如图2所示:首先为了平滑田埂附近的边界线并去除较小的残留地面区域,采用中值滤波对图像进行处理,以减小误差,效果见图2d。后进行了Otsu二值化处理,此时田埂和部分孤立残留地面为白色,其余滤除区域为黑色,效果见图2e。可以看出,若地面过于不平坦,或作物杂草过于参差不齐,中值滤波后仍可能会有孤立的地面区域,故根据干扰区域的不连续性,进行小连通域去除操作。对白色小连通域进行去除,同时再对误滤除的高度较低的田埂区域(此区域表现为白色区域中的黑色小连通域)进行填充,效果见图2f。最后,用Sobel边缘提取方法进行田埂的边界提取,效果见图2g。

3 基于边界位置校正的距离检测

本文设定2个田埂边界的距离指标:中心边界距离和平均边界距离,示意图如图3所示。其中,中心边界距离为图像中线与田埂边界交点处的z坐标值,即图中黄色标记点处的深度;平均边界距离为农机宽度正对的一段田埂边界的z坐标均值,即图中红色标记曲线处的深度均值。本文设定农机宽度为2.5 m,并对x坐标在[-1.5,1.5] m范围内的边界点取深度均值。

图3 距离测量位置示意图Fig.3 Diagram of distance measurement location

田埂与相机视角的示意图如图4所示,针对种植作物的田地,自适应点云提取将作物高度面(图4中横线)视为地面,会过滤掉高度小于作物高度的部分田埂,此时测量的距离z是田埂中部到相机的距离,因此测量存在误差。进一步讨论在原图中人为判断的边界线,实际上由于相机视角问题(图4中斜线),一部分田埂会被作物遮挡,同样无法获得田地的真实边界以进行距离补偿。最终,设计基于田埂斜度和作物高度的边界位置校正方法,校正后的距离计算公式为

(10)

式中H——相机安装高度

α——田埂斜度

图4 田埂位置校正示意图Fig.4 Ridge position correction schematic

4 实验

为保证边界检测算法的普遍性,在上海市松江区和崇明区的田地中进行了多次实验,实验平台及环境如图5所示。

图5 实验平台与环境Fig.5 Test platform and environment

实验采用ZED 2相机作为图像采集传感器,图像分辨率为3 840像素×1 080像素时,每秒可输出30帧,测距范围为0.5~20 m。采用NVIDIA公司的车载Jetson TX2产品作为算法处理器,Jetson TX2配备8 GB运行内存和32 GB存储空间,CPU的主频可以达到2 GHz。通过USB连接相机与处理器进行图像的传输。基于Ubuntu 18.04操作系统,采用C++语言对算法进行编程实现并在CMake环境下编译。使用了ZED 2相机软件开发工具包用于图像采集,还使用了计算机视觉开源库OpenCV中的部分函数进行图像处理。

农机在播种与喷药作业时行驶速度为0.8~1.5 m/s,转弯半径为2.5~3 m。考虑到机器的控制时间和传感器的分辨率,期望在最远处(10 m)开始能够识别田埂边界进行提示;在较远处(8 m)能够识别田埂边界并尝试测距,测距允许误差0.40 m;在近处(5 m)时能够精确识别田埂边界辅助转弯控制,测距允许误差0.10 m。

实验中,农机以速度0.8 m/s行驶,ZED 2相机实时采集农田图像并由NVIDIA Jetson TX2进行处理,裁剪后的感兴趣区域图像并排分辨率为1 200像素×300像素,平均0.8 s可以对图像完成一次田埂边界检测。崇明区农田种植了作物,处于施肥作业期,颜色区分明显,田埂高度为40~60 cm,不同光照条件下的田埂识别效果如图6所示。松江区农田处于中作物播种前的耕整期,田埂与田地颜色相近,田埂高度为20~40 cm,对于留有麦茬待耕整的地块和已经耕整过待播种的地块的田埂识别效果如图7所示。测距效果如表1所示。

图6 崇明区田地田埂识别结果Fig.6 Field ridge detection results in Chongming District

图7 松江区田地田埂识别结果Fig.7 Field ridge detection results in Songjiang District

从表1可以看出,对田埂采用平均边界距离这一指标效果更佳。利用在崇明区和松江区所采集的进行过距离标定(边界距离在5~10 m)的100对(分别采集50对)田埂图像样本进行算法评价,将田埂识别率和5 m时的距离误差均值(平均边界距离计算得出)作为评价指标,结果如表2所示。针对崇明区较高且较平整的田埂,此算法成功识别出所有田埂,测量距离较为准确;针对松江区的田埂,由于其部分田埂较低,且周围有麦茬或杂草的干扰,有一对图像的田埂未被成功提取,测量结果误差也相对更大。总体上,此算法对于距离为5~10 m的田埂识别率为99%,对距离为5 m时的田埂测距误差均值约为0.075 m,验证了算法的有效性。

表1 典型田埂的距离检测结果Tab.1 Field ridge distance detection results m

表2 算法结果统计Tab.2 Algorithm result statistics

在松江区还进行了对于纵向田埂的识别实验,纵向田埂和相交田埂的识别结果分别如图8、9所示。对于颜色纹理特征差异较不明显、田埂低矮的农田图像,此算法同样成功提取出了田埂边界。因此,此算法对于作物收获时等情况下的航线检测也有较大应用价值。

图9 松江区田地相交田埂识别结果Fig.9 Intersecting field ridge detection results in Songjiang District

5 结论

(1)双目立体匹配过程中,兼顾算法的准确性和实时性,代价计算采用了Census和截断梯度融合的方法、代价聚合采用了多尺度融合的分割树算法,对于弱纹理和重复相近纹理区域都得到了理想的视差图,实验验证了此立体匹配算法可以应用于非结构农田环境中。

(2)提出了一种基于立体匹配的农田田埂识别测距算法,利用田埂与地块之间的高度差进行点云提取,对不同农田场景下的100对图像的田埂识别率达到99%。此算法可以实现对各种不同颜色纹理特征的农田图像的田埂识别,解决了单目相机基于特征的算法对不同特征的农田场景鲁棒性差、基于机器学习算法则需要大量图像样本的问题。

(3)农田边界的双目距离检测的精度与检测距离和图像分辨率有关。实验证明,本算法的测距精度随着检测距离的减小而提高,在田埂距离为8 m时,距离检测精度为0.4 m,田埂距离为5 m时,距离检测误差均值约为0.075 m,对于行驶速度小于1.5 m/s的农机可以满足自主作业时的边界距离检测要求。

(4) 本算法针对种植前期的农田环境提出并进行了实验,对于种植中后期,部分农田的作物高度超过田埂的情况,此算法必然需要进行对应的修改,具体可行性尚有待验证。

猜你喜欢
田埂代价农田
四月初八晴,蓑衣满田埂
幼儿100(2024年18期)2024-05-29 07:35:28
达尔顿老伯的农田
田埂上的稻草人
田埂上
新农业(2019年24期)2019-01-06 07:14:32
爱的代价
海峡姐妹(2017年12期)2018-01-31 02:12:22
代价
农田创意秀
发明与创新(2017年3期)2017-01-18 05:14:04
农田搞养殖需办哪些证
农田制作所
田埂