APP下载

基于激光雷达与相机融合的树干检测方法

2024-01-15刘洋冀杰赵立军冯伟贺庆王小康

关键词:深度图激光雷达树干

刘洋,冀杰,赵立军,2,冯伟,贺庆,王小康

1. 西南大学 工程技术学院,重庆 400715;2. 重庆文理学院 智能制造工程学院,重庆 永川 402160; 3. 重庆市农业科学院 农业机械研究所,重庆 404100

近年来,随着我国农业技术水平的不断提高,农业管理的智能化水平得到了快速发展.其中,树干检测是农业智能化管理中的重要内容之一,能够为智能农机、果园机器人进行果树喷雾[1]、果树施肥[2]、果实采摘、树木定位[3,4]、树干直径测量[5]、病虫害检测[6]、自主导航[7]等工作提供前期环境信息.因此,可靠的树干检测方法是推进农业智能化管理的关键技术.

目前,树干检测使用的传感器主要为相机和激光雷达.相机的图像数据具有纹理丰富、分辨率高且色彩多样等特点; 相比图像信息,激光雷达获得的点云数据探测距离远且具有空间信息.国内外学者针对两者的检测特点开展了大量研究.Zhao等[8]通过对相机图像数据集进行数据增强以及K均值聚类等操作,结合YOLOv3-SPP模型进行树木识别,达到了93.7%的召回率; 刘慧等[9]采用RGB-D相机进行树干检测,通过融合深度信息与纹理特征,提高了检测速度与识别精度,但该算法受光照影响较大,仍需进一步改进.激光雷达通过发射脉冲激光并探测目标的散射光特性,从而精准获取物体的三维深度信息,且受光线变化影响较小.张莹莹等[10]设计了一种基于二维激光雷达的树干检测算法,提出了自适应DBSCAN算法,在无干扰情况下平均误检为0.13棵; 牛润新等[11]同样基于二维激光雷达并进行二次直线拟合等操作去除了地面与杂草的干扰,平均树干检测精度为95.5%.然而,二维激光雷达获取信息仍然较少,在农业上的使用受到许多限制.因此,刘伟洪等[12]采用三维激光雷达进行果园果树的检测与定位,通过传统欧式聚类进行果树检测,但该方法在检测精度上存在问题,在复杂场景下无法区别果树与其他聚类结果.

虽然相机与激光雷达均可独立进行树干检测,但都存在一定的局限性,对于一些复杂农业场景,单一传感器依然难以满足实际工作需求.对此,国内外学者尝试将相机与激光雷达获取的数据进行融合,以期实现更加可靠的树干检测.目前,在农业领域应用的相机与激光雷达融合检测算法,主要针对二维激光雷达和单目相机.在这些算法中,相机主要起检测作用,二维激光雷达用于返回宽度、距离等信息,进一步可对激光雷达信息进行简单聚类,然后与相机信息进行融合和检测[13-18].这些方法的缺陷在于,二维激光雷达获取信息较少,检测精度不够,系统无法直接获得树干的三维信息,从而导致雷达点云难以进行精确聚类,使得检测结果准确性过于依赖相机.当相机受到较大光照影响时,会显著影响检测精度.孙科等[19]将三维激光雷达与相机进行融合,通过联合激光雷达与相机的检测结果进行检测与定位,弥补了二维激光雷达点云信息较少的缺陷,但使用的DBSCAN聚类算法对距离较为敏感,无法对较远物体准确地聚类.

综上所述,为提高树干检测的准确率和可靠性并获得更多三维信息,本文提出一种基于相机与三维激光雷达融合的树干检测方法,基于深度图对激光雷达采集到的三维点云进行聚类处理,同时采用深度学习算法YOLOv3对相机获取的图像进行准确识别,并基于交并比方法(Intersection over Union,IoU)对2种信息进行融合,最终输出稳定可靠的树干检测结果.

1 树干检测系统框架

1.1 硬件系统组成

图1 硬件系统框架

本研究以自主研发的智能无人除草机器人作为测试平台,整体结构及传感器布置如图1所示.使用的相机为STEREOLABS公司生产的ZED2双目相机,采样频率为60 Hz,分辨率为1 280×720,该采样频率和分辨率能够同时满足图像处理速度和图像信息丰富性的要求.激光雷达采用Velodyne公司生产的16线激光雷达VLP-16,采样频率为5~20 Hz,具有±15°的垂直视场以及360°的水平视场.运算平台选用NVIDIA Jetson AGX Xavier,用于相机与激光雷达的实时数据处理和融合检测.考虑到三维激光雷达获取数据与安装高度有关,将其安装于移动除草机器人顶部,相机位于其下方偏后并保持水平.

1.2 软件系统结构

软件系统以运行在Ubuntu 18.04环境下的机器人操作系统(Robot Operating System,ROS)作为基础,采用C++作为编程语言.VLP-16激光雷达用于采集作业环境的360°点云数据,而ZED2双目相机用于采集前方图像信息,将上述信息发送到NVIDIA Jetson AGX Xavier模块进行数据处理: 1) 使用深度图点云处理方法对激光雷达点云信息进行数据处理,实现地面去除以及点云聚类,并投影到图像上获得点云二维检测框; 2) 使用训练好的YOLOv3模型对图像信息进行识别,获得图像检测框、类别信息以及置信度; 3) 基于IoU对2种检测框进行信息融合并完成树干检测.

基于激光雷达与相机的树干检测系统的总体框架如图2所示.

图2 软件系统框架

2 激光雷达与相机联合标定

不同传感器采集到的数据在时间和空间上存在一定差异性,而信息融合需要确保所检测到的物体处于同一时空下.因此,需要对相机与激光雷达进行时间标定与空间标定.2个传感器的安装位置及坐标系如图3所示,OCXCYCZC为相机坐标系,OLXLYLZL为激光雷达坐标系.

图3 激光雷达与相机安装示意图

图4 各传感器坐标系关系

2.1 时间标定

不同传感器的数据采样频率不一致,其中,ZED2相机的采样频率为60 Hz,而VLP-16激光雷达的采样频率为5~20 Hz.为了确保各传感器采集的信息位于同一时刻,需要进行时间同步.由于2种传感器工作时有同步的时间戳,本研究将使用时间最近邻匹配方法,以采样频率较低的激光雷达为基础,采集到点云数据之后,读取对应的时间戳信息,找到时间戳间隔最小的图像数据进行匹配,实现激光雷达与相机信息在时间上的统一.

2.2 空间标定

由于不同传感器的安装位置不同,为了确保检测的物体处于同一坐标系下,还需要进行空间配准.激光雷达与相机的坐标系之间存在如图4所示的关系.其中,OLXLYLZL为激光雷达坐标系,OCXCYCZC为相机坐标系,xOfy为图像坐标系,uOpv为像素坐标系.

由激光雷达坐标系OLXLYLZL转换到像素坐标系uOpv的过程可表示为:

(1)

(2)

式中:ZC代表物体在相机坐标系下的Z轴坐标;K代表相机内部参数矩阵,矩阵的各项参数在相机设计生产时确定;R3×3、T3×1分别表示激光雷达坐标系到相机坐标系的旋转与平移变换矩阵.只要求得公式(1)中R3×3、T3×1详细参数,即可获得激光雷达到相机的投影矩阵(R|T),从而将激光雷达点云投影到图像中,实现后续的信息融合.通过激光雷达和相机联合标定实验,得到标定参数如表1所示,标定结果如图5所示.从图片右侧可以看出激光雷达点云能够准确地投影到对应图像中,与图像中的物体实现空间上的对齐.

表1 传感器参数

图5 激光雷达与相机标定结果

3 基于改进深度图的树干点云聚类

激光雷达通过检测周围物体反射回来的光脉冲或调制信号,获得自身与物体之间的距离[20].运算平台对激光雷达输入的原始激光点云进行数据处理,通过点云聚类方法,从周围复杂的点云环境中提取出树干点云,并用于后续信息融合.激光雷达点云的聚类流程如图6所示.

图6 激光雷达点云聚类流程图

3.1 原始点云转为深度图

激光雷达原始点云数据量大,直接对其进行数据处理会占用计算单元的较大算力并增加计算时间,不利于后续点云聚类.本文采用深度图的方式将三维点云数据换算为距离数据并进行保存.具体流程为:

1) 根据激光雷达数据采集范围设置二维图大小,图像纵向坐标为激光雷达线数,横向坐标为激光雷达单线扫描点数.

2) 遍历点云数据,计算各激光点到激光雷达的距离.

3) 将得到的距离信息按点云扫描排列顺序填入图像,得到如图7所示的数据结构.

图7 VLP-16激光雷达深度图示意图

使用深度图进行点云处理主要有2个优点: 1) 可以直接利用邻域关系处理二维图像,简化聚类中的搜索问题.2) 降低了待处理三维点云的维度,使整体计算速度增快.

图8 激光雷达相邻线束地面激光点

3.2 地面去除

在点云聚类中,地面点云会影响聚类精度,增大运算量,故需要先去除地面点云数据.对此,本文采用基于角度阈值的方法去除地面点云.由于深度图的排列顺序与激光雷达扫描顺序相同,则深度图中的一列数据,可以用来表示激光雷达在某个方向上所采集的所有纵向点.

假设激光雷达纵向相邻的两条扫描线打在地面上的点分别为A点与B点,其坐标分别为A(x0,y0,z0),B(x1,y1,z1),如图8所示.

则A点与B点的垂直高度差hz可表示为:

hz=|z0-z1|

(3)

同理,A点与B点的水平距离差dAB可表示为:

(4)

根据A、B两点水平距离差dAB和垂直高度差hz,计算A、B两点连线的夹角θ:

θ=arctan (hz/dAB)

(5)

如果激光雷达完全水平安装且地面平坦,理论上角度θ应为0°,考虑到实际安装中的工艺误差以及运动中的振动等因素,设置地面角度阈值10°,即当|θ|<10°时,认为A点与B点属于地面点.对整个深度图进行遍历后,即可完全分割出地面点云,最终结果如图9所示.

图9 地面点云去除前后对比

3.3 基于深度图的点云聚类方法

在激光雷达的点云聚类中,本文选择由Bogoslavskyi等提出的一种基于深度图的聚类算法[21],主要根据相邻点之间的角度关系来判断是否属于同一类.相比传统的欧式聚类算法与DBSCAN算法,该算法能够更加有效地覆盖周围点,并且对深度信息更加敏感,而树干在竖直方向上近似于垂直地面,具有明显的角度特征与深度特征,故该算法对树干具有良好的聚类效果.

该算法的聚类原理如图10所示.图中A点与B点为任意两相邻点,O点为激光雷达坐标原点,连接OA、OB与AB,设OA为较长边,过B点作OA垂线,垂足为C点,β为OA与AB夹角.其中,α为激光雷达水平分辨率或垂直分辨率对应角度.由此可以得出β的表达式为:

(6)

图10 基于深度图的点云聚类

设置β角的一个阈值为θ,当β>θ时,认为A点与B点相对平坦,存在同一深度; 当β<θ时,认为A点与B点之间的深度过大,可以认为两者不属于同一类.同时,采用广度优先搜索(Breadth First Search,BFS)作为该算法的搜索方式.广度优先搜索是图搜索中的一种,根据起始点逐层展开深度图中的相邻节点,直到找到终点为止.基于这种搜索方式可以尽可能地遍历起始点周围所有满足条件的点,实现更加准确的点云聚类.

具体算法流程如下:

1) 遍历当前激光雷达点云对应的深度图,选择未被标记的一点,视为起始点.

2) 利用广度优先搜索对深度图中该点的上、下、左、右4个点进行搜索,选择未被标记的点,根据公式(6)进行角度计算,判断其周围点是否与其具有类似深度,如果具有类似深度则打上同一标记,返回该点并存储; 如果深度差距过大则略过该点不进行存储.

3) 对存储的点继续进行广度优先搜索,重复2)中的步骤,直到存储的点遍历完毕.

4) 继续寻找下一个类,重复步骤1),2),3),直到深度图中所有点均已被标记.

5) 对拥有同一标记的点的集合进行判断,如果其总点数或纵向点数大于设定的最小阈值,则满足聚类条件并将这些点视为同一类,否则将其视为噪声点.

由于树干具有近似垂直于地面的特点,因此,该算法不仅能够区分不同深度的点云,而且能够对树干进行准确聚类.但是,对于墙体、杂草、树叶等与树干类似的物体,也存在一定的误识别,如图11所示.故本文采用一种自适应阈值的方法,对聚类算法进行了优化,减少了其他物体对于聚类结果的影响.

图11 传统深度图点云聚类结果

3.4 自适应阈值设置

对于水平方向的激光雷达点云,由于激光雷达的水平分辨率较小,2个相邻点到激光雷达的直线距离可以看作近似相等.那么,理想情况下2个相邻点之间的距离s、激光雷达水平分辨率α、点到激光雷达的直线距离d之间满足关系:

s=dtanα

(7)

对于直径为D的树干,其水平方向上的点云数量N,理论上应该为:

N=D/s

(8)

取树干直径最大、最小值分别为Dmax和Dmin,理论上接收的聚类点的最大和最小数量应为Nmax=Dmax/s和Nmin=Dmin/s.而在实际使用时,考虑到树干横截面为圆形,则水平方向上的聚类点数量Nleng存在一定变化,根据实际情况设置Nleng应满足:

(Nmin-3)

(9)

设置该条件为横向点云的判断阈值,根据距离远近可自适应调节阈值大小,保证在不同距离下都能对点云进行限制.同理,也可以在纵向上对点云的数量进行限制.如图12所示,以本研究采用的VLP-16激光雷达为例,其线束分布为水平线上方8条线束,下方8条线束,相邻线束间隔为2°,纵向上形成±15°的测量范围.

图12 激光雷达线束分布

若已知激光雷达的安装高度为h,则可以计算激光雷达最下方线束打到地面的水平距离为d0:

(10)

同理,得到水平线下方所有线束打到地面的水平距离di.根据树干与激光雷达的距离d,比较判断di与d的大小,能够确定水平线下方激光雷达打在树干上的纵向总点数N1.设树干的高度为H,树干最高点到激光雷达中心点连线与水平线夹角为γ,则建立关于γ的公式为:

(11)

水平线上方第一条线束与水平线夹角为1°,相邻雷达线束间隔为2°,统计水平线上方各激光雷达线束与水平线之间的夹角,将这些夹角与计算得到的γ角进行比较,能够确定水平线上方激光雷达打在树干上的纵向总点数N2.那么,理论上高度为H的树干在纵向上的总点数Nline应为:

Nline=N1+N2

(12)

取树干高度的最大、最小值分别为Hmax、Hmin,则可以限制树干纵向上的总点数Nline应在对应的Nmax、Nmin之间.通过检测树干到激光雷达的距离,便可以在纵向上对树干进行聚类点数的限制.

增加横向和纵向上的自适应阈值,可以限制点云的聚类,从而去除许多与树干拥有类似特征,但在横、纵向上差异明显的物体.图13为2种聚类方法的对比,相比图(a),图(b)中的大面积墙体、树叶、杂草等大部分无关数据都已去除.另外,完成聚类后,可以根据边缘点云对应的三维坐标计算出三维框,再结合空间标定得到的投影矩阵,即可获得树干点云到图像的二维框,如图14所示.

图13 聚类算法改进前后对比

图14 树干的三维框图与二维投影图

4 基于图像的树干检测

本文采用YOLOv3算法对相机图像中的树干信息进行检测.YOLOv3[22]是目前应用较为广泛的目标检测算法之一,与其他YOLO算法相比较,其网络结构(Darknet-53)得到了改进,在尺度预测和多标签分类方面效果更加明显.在该网络结构下,通过对输入的图像进行特征提取以及训练,可以在短时间内实现对目标的精确识别.同时,Darknet-53引入了残差网络结构[23],可以控制梯度传播,这种结构的引入可以显著提高训练精度,使训练的权重更加可靠.

本研究的图像检测部分采用公开的KITTI图像数据集,从中挑选1 000张带有树木的图像制作数据集,并用于YOLOv3的网络训练.其中,训练集800张,测试集200张.其中实验系统平台采用Ubuntu 18.04,深度学习框架为PyTorch 1.2.0,CPU为八核ARM64 v8.2,GPU为NVIDIA Volta,内存为32GB LPDDR4x.通过图15(a)中的损失变化曲线可以看出神经网络模型对于数据的学习情况.由于类别较少,曲线在训练开始后不久趋于平稳,经过多次训练后收敛.经过测试后,其平均帧率约为31,对于20 m以内树干检测的平均精度为93.3%.由于该算法较为成熟且应用广泛,本文不再详细阐述该算法.在本地实验场景下,利用YOLOv3检测树干的结果图如图15(b)所示.

图15 基于YOLOv3的树干检测

5 激光雷达与相机融合算法

利用前两节提出的方法对激光雷达和相机数据进行处理,分别获得了树干的点云聚类结果和图像检测结果.点云聚类结果主要包含树干的三维信息以及位置信息,而图像检测结果主要包含树干的类别信息以及置信度.对2种传感器的数据进行时间与空间同步后,可以得到点云三维框在图像上投影的二维检测框.然而,线束较少的激光雷达能提供的数据特征信息较少,在识别过程中,单独使用激光雷达仍有可能将部分类似树干的对象进行聚类并产生多余的检测框.另外,相机虽然缺少深度方面的信息,但获得的纹理信息更加丰富,能更准确地对树干进行识别.因此,为了克服单一传感器的不足和缺陷,本文通过计算2种检测框的IoU实现2种传感器的信息融合,进而准确识别树干并获取其三维信息.

IoU表示2种检测框的交集与并集的比值,是目标检测中的常用概念,反映了2种检测框的重叠关系,如图16所示.本文采用该方法量化激光雷达聚类框与相机检测框的重叠程度.设定一个重叠阈值,当2种框的IoU大于该阈值时认为融合检测为同一物体,将相机检测到的类别信息、置信度与激光雷达获得的三维信息、位置信息相融合,输出准确、丰富的检测信息.

基于IoU的激光雷达和相机融合算法流程如下:

1) 从当前帧提取激光雷达点云聚类结果,通过时间同步找到匹配的图像检测结果.

2) 从图像二维检测框集合中选取1个检测框,并与所有点云二维框进行IoU计算,当大于设定阈值时,认为相互匹配,融合两者信息并输出; 否则认为不匹配.

3) 遍历完所有点云二维检测框后,选取下一个图像二维检测框并重复2)中的步骤.直到当前帧所有图像二维检测框计算完毕.具体流程如图17所示.图18为2种检测框基于IoU融合的结果图,其中红色框为YOLOv3检测框,蓝色框为激光雷达聚类框,通过IoU融合后输出绿色的融合框.

图16 IoU计算图

图17 基于IoU的融合算法流程图

图18 IoU融合图

6 实验验证

为验证融合算法的稳定性和可靠性,在某市农业机械研究所进行实验,实验场景中树高为2~5 m,间距约为1~2 m,场景中树木枝叶茂密,树干高度、粗细存在一定差异.实验中设置移动除草机器人的平均速度为0.8 m/s,在该场景下不同地点采集数据,进行了多组实验来评估和对比算法性能.

6.1 实验检测结果

本文选取了实验过程中的3个场景进行分析比较,其中蓝色框代表激光雷达聚类后投影的二维框,红色框代表YOLOv3对树干的检测框,绿色框代表2种框融合后的检测框.具体检测结果如图19-图22所示.

从图19可以看出,激光雷达的点云聚类结果中已经消除了墙体、杂草等影响因素,不会产生多余的聚类框.在进行激光雷达聚类结果与相机检测结果融合时,可以有效降低计算量,减少异常框对融合的影响并提高准确度.

图19 激光雷达聚类结果

图20为激光雷达的聚类结果在图像上投影形成的二维框,该二维框表征了激光雷达聚类结果在图像中的位置.在去除了左侧墙体、右侧杂草等多余点云聚类二维框后,可以得到更加精简的树干聚类二维框.

从图21可以看出,YOLOv3算法能够实时、准确地检测到图像范围内的大部分树干,满足算法的实时性和准确性要求.但是,由于部分树干形状复杂且有些树枝存在较明显的分叉,检测时会出现对同一棵树干进行重复检测的现象,出现了多个检测框.该问题需要在信息融合时借助激光雷达二维框消除该现象.

图22中的绿色框代表了融合检测结果,红色字体表示该框对应的类别以及在图像坐标系上的位置信息.借助融合检测算法,能够有效检测出树干部分并返回其位置坐标,消除了激光雷达与相机可能存在的误检,提高了检测的准确性,同时实现了对树干的检测与位置的估计.

图20 激光雷达投影结果

图21 YOLOv3检测结果

图22 融合检测结果

6.2 算法准确性分析

选择实验中比较有代表性的10个关键位置,对比融合算法检测出的坐标位置与实际测量得到的坐标位置,得到激光雷达坐标系下树干x方向与y方向的误差并进行分析,如表2所示.

表2 树干坐标误差分析

由表2可计算x方向上的平均误差ex为:

(13)

同理,可以得出y方向上的平均误差ey为:

(14)

由表中数据以及x,y方向上的平均误差可知,融合检测的精度会随着距离的增加逐渐下降,但平均误差控制在0.08 m左右.对本实验而言,提出的融合算法能够满足无人割草机对树木位置的定位要求.通过计算正确目标数与总目标数的比值,得到该算法的准确率并用于定量分析目标检测结果,得到表3所示的准确率统计结果.

表3 目标检测准确率

由表3可知,激光雷达聚类检测算法的准确率相对较低,这是由于存在一些与树干相似的物体,例如细长的墙体等,造成激光雷达的误判.另外,尽管YOLOv3算法的目标检测结果与融合检测结果的准确率大致相同,但该算法难以获取准确的树干位置.而基于两者的融合检测算法,不仅能够尽可能去除干扰信息,保持较高准确率,同时还能返回树干的三维信息与准确位置估计,获得更丰富的检测信息.

7 结论

1) 在传统基于深度图的点云聚类算法上,提出了横向与纵向的自适应阈值,提高了树干点云聚类的准确度,在实际使用中能够满足树干检测的实时性与准确性要求.

2) 激光雷达与相机融合算法增加了目标检测的空间信息,能够同时输出检测目标的类别与三维空间信息.在除草机器人实验中,树干定位横向平均位置误差为0.075 m,纵向平均误差为0.078 m,融合检测准确率为93.1%,该算法可用于树干检测与位置估计.

3) 改进的激光雷达检测算法能够消除大面积墙体等物体对结果的影响,但对某些细长柱体的检测仍存在一定的不足.在后续的研究中,将继续优化激光雷达聚类算法并改进图像处理算法,进一步提高果园树干检测的精度和可靠性.

猜你喜欢

深度图激光雷达树干
手持激光雷达应用解决方案
为什么树干不是方的?
法雷奥第二代SCALA?激光雷达
基于深度图的3D-HEVC鲁棒视频水印算法
基于激光雷达通信的地面特征识别技术
基于激光雷达的多旋翼无人机室内定位与避障研究
为什么要在树干上刷白浆
为什么要在树干上刷白浆
为什么要在树干上刷一层白浆
一种基于局部直方图匹配的深度编码滤波算法