APP下载

基于双目立体视觉SLAM的林下实时定位

2021-03-17

中南林业科技大学学报 2021年2期
关键词:双目位姿样地

(东北林业大学 森林作业与环境研究中心,黑龙江 哈尔滨 150040)

森林样地调查是森林资源管理的重要环节,近些年来研究人员采用地面激光扫描(Terrestrial laser scanning)或摄影测量(Photogrammetry)等遥感技术重建样地的三维点云模型,完成森林蓄积和生物量估计,为森林资源管理提供依据[1-2]。相比于传统的遥感技术手段,移动采集方式省去内业多站数据拼接工作,在数据采集过程中根据采集时刻传感器的空间位置和姿态,将每一时刻采集到的数据转换到统一坐标系中,表现出更高的作业效率[3-5]。

目前移动采集方式通常依赖全球导航卫星系统(Global navigation satellite system,GNSS)卫星定位技术,估计传感器在采集时刻的空间位置和姿态[6-7]。刘金成等[8]设计出RTK 双目立体摄影测树仪,利用GNSS 定位技术在开阔的林下环境中实现了林木参数提取。但森林调查样地内很少具备开阔的林下环境条件,树木冠层的遮挡容易造成GNSS 卫星信号失锁,难以满足林下实时定位的需求。GNSS-IMU 定位技术在GNSS 基础上融合惯性测量单元(Inertial measurement unit,IMU),当林下GNSS 卫星信号失锁时可以短时间内精确估计传感器的位姿变化,但是高精度惯性测量单元在提高测量精度同时,增加了设备的研制成本,并且测量误差随时间持续累积。因此,如何在移动式采集过程中实时、准确地估计传感器的空间位置和姿态,是森林样地调查中亟需解决的问题。

随着计算机视觉技术的发展和硬件性能的飞速提升,视觉SLAM(Simultaneous localization and mapping,同步定位与建图)技术开始广泛应用于各个领域[9-12]。视觉SLAM 是一种依据自身搭载的相机传感器观测到周围环境中的特征信息,实时估计当前位置和姿态的定位技术。这项技术摆脱了对GNSS 卫星定位技术的依赖,适用于在冠层遮挡的林下环境中工作。本研究采用视觉SLAM 技术,利用双目相机采集到周围环境的立体图像,按照特征点提取与匹配、位姿估计和位姿优化的步骤,达到林下实时估计相机空间位置和姿态的目的。

1 材料与方法

1.1 研究区概况

研究区域位于东北林业大学哈尔滨实验林场(126°37′E,45°43′N),海拔136~140 m,属于中温带大陆性季风气候,四季分明,冬长夏短。冬季1月平均气温约零下19℃;夏季7月的平均气温约23℃。全年平均降水量569.1 mm,降水主要集中在6—9月,夏季占全年降水量的60%,集中降雪量为每年11月至次年1月。林地覆盖有落叶松Larix gmelinii、蒙古栎Quercus mongolica、桦树Betula platyphylla和水曲柳Fraxinus mandshurica等18 种人工林。实验选择了3 块边长为40 m 的方形样地为研究对象(图1),样地内结构类型包括乔木层和草本层,郁闭度均超过0.70,按照郁闭度程度划分均属于密林范畴,实验环境中存在GNSS 卫星容易失锁、样地覆盖面积大、地势起伏明显等特点,对野外森林样地调查任务中的工作环境具有代表性。具体样地的基本情况如表1所示。

图1 实验样地Fig.1 Experimental plots

表1 样地属性描述Table 1 Plots property description

1.2 研究方法

1.2.1 数据采集

在视觉定位工作开展之前,首先在每块实验样地内预先设计一条包含有25 个控制点的闭合采集路线,并使用全站仪确定出每条采集路线中控制点的空间坐标,以此作为本实验中视觉定位算法测量结果的真值。采集过程中沿设定路线匀速行走,通过视觉SLAM 算法确定相机在图像采集时刻的空间位置和姿态,并记录下每帧图像的处理效率和控制点的空间位置。实验采用ZED 双目立体相机,该相机左右镜头完全一致,具有质量小、便携和基线距离固定等优势,只需一次标定即可满足日后的持续使用。按照张正友标定法对相机进行标定,其内置参数如表2所示,另外双目相机移动平台处理器配置:Inter CoreTMi7-7700HQ CPU、主频2.80 GHz、内存8 GB。

表2 双目立体相机内置参数Table 2 Intrinsic parameters of binocular stereo camera

1.2.2 双目立体视觉SLAM 算法

视觉SLAM 定位技术根据环境中路标点的位置变化确定相机传感器在采集时刻的位置和姿态,不依赖于GNSS 卫星定位信号,广泛应用于GNSS信号缺失的环境中[13]。早期的视觉SLAM 算法借助于滤波器[14-15]实现,但由于计算复杂度问题[16]只适用于在小场景室内条件下工作。随着SLAM问题的可观测性、收敛性与一致性等理论[17]问题的深入研究,采用图优化技术[18-20]提高相机位姿和路标点估计精度并利用全局一致性抑制误差累积,可以满足大尺度定位的精度要求,这使得林下环境中使用视觉SLAM 技术实时确定相机的空间位置和姿态成为可能。

为了能够适应林下大尺度环境,本文提出利用双目立体视觉SLAM 技术,按照特征点提取和匹配、位姿估计和位姿优化的步骤实时估计出双目相机传感器的空间位置和姿态。双目相机利用对极约束原理直接确定目标的深度(图2),并且可以通过延长基线长度来扩大测距范围,相较于单目相机和深度相机,双目相机更加适合于大尺度的林下作业环境。

双目立体视觉SLAM 算法根据样地内树干枝叶的纹理信息,按照Ethan 等[21]提出的ORB(Oriented FAST and Rotated BRIEF)特征检索和匹配策略,选择具有代表性的路标点并确定当前提取出的路标点与之前看到的路标点之间的对应关系。同时根据双目相机成像模型计算出路标点在当前相机坐标系中的空间位置。如图2所示,双目相机的基线长度为T,相机焦距为f,左侧相机的光心为OL,右侧相机的光心为OR。样地内有一路标点C 能够被左右相机同时观测到,并且在左右相机下投影分为CL和CR,可以确定射线OLCL和射线ORCR的交点即为路标点C 的空间位置。

图2 双目相机成像模型Fig.2 Model of binocular camera

为了满足双目立体视觉SLAM 算法实时性的处理需求,算法按照匀速运动模型估计当前时刻相机的初始位姿,并通过特征点的匹配数量判断初始位姿估计是否准确。如果匹配点个数没有达到设定阈值,则采用EPNP(Efficient perspective-n-point)算法[22]重新估计当前时刻相机的初始位姿。

为了保证双目相机位姿的计算结果更加准确,算法采用光束平差法(Bundle adjustment,BA)[23]按照公式(1)优化各个关键帧所对应的相机位姿和路标点坐标。并且利用森林样地中采集到的图像训练视觉词汇,借助词袋模型[24]进行闭环检测,自动判断当前位置与之前场景的相似性。如果通过连续性检测则判定检测到回环,通过位姿图(Pose Graph)优化方法进一步优化相机位姿,抑制累计误差。

式中:ρ表示鲁棒核函数,保证优化时对于错误匹配的有更好的鲁棒性,防止出现一条边误差太大而掩盖其他边;N表示所有匹配点对;xi和Xi分别为同一路标点在像素平面和相机坐标系中的坐标;π 表示将空间3D 坐标值映射到像素2D 坐标。

1.2.3 林下实时定位评定方法

通过双目立体视觉SLAM 算法,计算出每帧图像在采集时刻所对应的相机空间位置和姿态,对比由全站仪测量出的采集路线中25 个控制点坐标,检验双目立体视觉SLAM 算法的定位精度。由于全站仪的测量坐标系与双目立体视觉SLAM算法建立的坐标系,两者坐标原点和坐标轴指向不一致,在评定控制点坐标的测量精度之前,根据坐标系的位置关系将双目立体视觉SLAM 算法计算出的控制点坐标转换到全站仪测量坐标系中。

对比双目立体视觉SLAM 算法的计算结果与全站仪的真实测量结果,统计各个控制点坐标在X、Y 和Z 的轴向误差,计算3 块实验样地内的均方根误差(Root mean squared error,RMSE)和最大距离偏差,公式如式(2)~(5)所示:

式中:N表示控制点个数;Δxi、Δyi、Δzi分别表示各控制点在3 个轴向的误差;δH表示最大距离偏差。

在林下环境中利用双目立体视觉SLAM 算法实时处理采集到的立体图像,算法除满足测量精度外,还需具备实时处理能力。在实验过程中,统计出每帧图像的处理时间,对比图像的采集频率,检验算法是否可以满足实时定位的要求。

2 结果与分析

2.1 林下实时定位结果

利用双目立体视觉SLAM 算法处理在林下环境中采集到的立体图像,实时显示出图像中特征点的匹配效果和相机的运动轨迹,并保存每一时刻的相机姿态。如图3所示,图3A 表示林下环境中ORB 特征点提取和匹配效果,图3B 表示双目相机的运动轨迹。

图3A 表示当前时刻的关键帧图像,并显示出ORB 算法的特征点提取和匹配效果。从图中可以看出,存在大量的特征点与地图点之间建立了匹配关系,并且特征点分布也较为均匀。算法将依据这些完成匹配的路标点,计算当前时刻相机状态相对于初始相机坐标系的位姿变化。图3B 中三角形实线段在采集过程中随着相机的运动而不断延伸,表示相机的运行轨迹。它是由所有关键帧图像所对应的相机位姿状态组合在一起,表示每一时刻相机在初始相机坐标系中位姿状态。相机运行轨迹两侧分布有大量的离散点,代表由双目相机观测到的林下环境中的地图点。由于受到相机量程和树木之间互相遮挡的原因,可以看出,距离相机传感器比较近的位置,地图点较稠密;距离相机传感器比较远的位置,地图点较稀疏。

图3 双目立体视觉SLAM 算法的定位结果Fig.3 Location results of binocular stereo visual SLAM algorithm

2.2 算法定位精度

利用双目立体视觉SLAM 算法确定出采集路线中各个控制点坐标,对比全站仪的测量结果,统计出本文算法在林下环境中的定位精度。3 块实验样地内全站仪和双目立体视觉SLAM 算法的定位结果对比见图4;统计相机运行轨迹中各控制点的轴向误差,并计算出控制点坐标的均方根误差(表3)。

图4中从左到右分别表示双目立体视觉SLAM算法在3 块实验样地内的定位结果。由于实验样地内林分密集、地形起伏明显,在路线设定时配合全站仪,规划出3 条不同的采集路线,如图4中实线段所示。由全站仪测量得到的控制点坐标由实心方块表示出来,以此作为本研究中双目立体视觉SLAM 算法的测量结果的真值。五角星表示每块样地内各个控制点的算法定位结果,并顺次相连各个控制点确定相机的运行轨迹,见图中虚线段表示。

图4 全站仪和双目立体视觉SLAM 算法的定位结果对比Fig.4 Comparison of positioning results between total station and binocular stereo visual SLAM algorithm

表3 双目立体视觉SLAM 算法的定位精度Table 3 Positioning accuracy of binocular stereo visual SLAM algorithm

根据图4中线段可以看出,在每块样地中设定的采集路线总长均超出100 m,对调查样地基本完成了全覆盖。对比相机的运行轨迹和控制点坐标的定位结果,能够看出实验采用的双目视觉SLAM 定位算法,在林下和大范围的工作条件下,部分控制点处测量值存在误差,但误差不会随着距离增加而持续累积,双目立体视觉SLAM 算法确定出的相机运行轨迹和全站仪的测量结果基本一致。此外可以看出,采集路线中直线段处的控制点坐标的测量结果具有较高的定位精度,测量偏差较大的点多发生在采集路线中的曲线段或者方向发生变化的位置。

每块样地内控制点坐标在X、Y 和Z 三个方向的轴向均方根误差和最大距离偏差见表3。从表3统计结果可以看出,实验采用的双目立体视觉SLAM 算法在林下定位精度中,除样地一内的控制点沿X 轴方向的均方根误差为1.17 m 外,其他样地内控制点沿X 轴、Y 轴和Z 轴方向的均方根误差均在1 m 范围之内。3 块样地的定位结果中,控制点最大距离偏差分别为2.18、1.44 和1.86 m,平均最大偏差距离为1.83 m。综合3 块样地内所有控制点的测量结果,由双目立体视觉SLAM 算法确定出的控制点坐标的X 轴方向的RMSE 为0.81 m,Y 轴方向的RMSE 为0.65 m,Z轴方向的RMSE 为0.58 m。

2.3 算法实时性检验

以统计直方图的形式表示双目立体视觉SLAM 算法处理每帧图像所消耗的时间(图5),检验算法在林下环境中是否满足实时定位的需求。

图5 双目立体视觉SLAM 算法处理每帧图像的耗时统计Fig.5 Processing time per frame of binocular stereo visual SLAM algorithm

图5中横坐标表示每帧图像的处理时间,范围分布在0.04~0.10 s之间,每个变量间隔为0.005 s,共计12 个时间间隔;纵坐标表示每个时间间隔内图像数量,范围在0~700之间。从图5中可以看出,第1 块实验样地中双目立体视觉SLAM 算法处理每帧立体图像的时间主要分布在0.06~0.08 s范围内,共有1 496 帧(94%)图像的处理时间属于这个范围;第2 块样地中时间主要分布在0.055~0.08 s 范围内,共有1 425 帧(97%)图像的处理时间属于这个范围;第3 块样地中时间主要分布在0.06~0.085 s 范围内,共有1 202 帧(96%)图像的处理时间属于这个范围。综合3 块样地内时间统计结果,对于实验过程中采集的高分辨率立体图像,共有3 948 帧(91%)图像的处理时间在0.06~0.08 s 范围之内,并且所有图像的处理时间小于0.1 s。本次实验图像采集频率为10 Hz,即每间隔0.1 s 采集一帧立体图像,统计直方图的时间数据显示,每帧图像的处理时间都小于图像采集间隔,说明该双目立体视觉SLAM 算法可以满足林下环境中的实时定位需要。

3 结论与讨论

本研究在森林样地调查过程中使用双目立体视觉SLAM 算法,根据地面、树木等周围环境的纹理信息,在移动过程中实时确定出相机传感器的空间位置和姿态,解决了林下无法实时定位的难题,为基于移动采集方式的森林样地调查工作奠定了基础,所得结论如下:

1)在40 m×40 m 的调查样地内沿采集路线行走距离超过100 m,利用双目立体视觉SLAM 算法确定出相机的运行轨迹和采集路线上控制点坐标。对比全站仪的测量结果,控制点坐标沿X、Y 和Z轴方向的均方根误差分别为0.81、0.65 和0.58 m。

2)双目相机在移动过程中共采集并处理4 322帧高分辨率立体图像,经统计可得,其中3 948 帧(91%)图像的处理速度为0.06~0.08 秒/帧,并且所有图像的处理时间均小于0.1 s,高于10 Hz的采集频率,双目立体视觉SLAM 算法通过了实时性检验。

目前大多数研究在森林调查中广泛采用多站式地面激光雷达或摄影测量[25-26]方式,重建大范围林分的三维点云模型。相比于移动式采集方式,这种多站固定式数据采集速度慢,增加了内业点云配准或图像拼接等步骤,降低了工作效率。本研究基于双目立体视觉SLAM 技术,打破了移动式采集方式依赖于GNSS 卫星定位信号的局限性,能够在高郁闭度(>0.7)的密林环境中实时确定传感器空间位置和姿态,使得这种高效的数据采集方式在森林调查中得以推广。

从实验结果可以看出,本研究采用的双目立体视觉SLAM 算法计算出的相机运行轨迹和真实运行轨迹基本重合,三维点云模型和真实物体的尺度完全一致。这是由于本研究使用双目相机传感器进行图像采集,根据已知的基线长度,解决了地图尺度不确定性问题,为后续森林调查中的立木参数提取工作奠定了基础。此外,实验选取的调查样地覆盖范围较大,采集路线较长,随着行走距离的增加,双目立体视觉SLAM 算法在林下环境中的定位精度并没有持续下降。这是由于本研究采用的双目视觉SLAM 算法并不是完全基于前一帧图像对应的相机位姿确定当前时刻的相机状态,而是根据相机位姿优化原理,首先按照光束平差法对局部范围内的相机位姿进行优化,然后在此基础上增加了场景识别和回环检测,当图像之间建立新的连接关系时,再次优化相机的空间位置和姿态,有效减弱因行走距离增加带来的误差累积,从而提高了在大尺度范围内的林下环境中的定位精度。

尽管基于双目立体视觉SLAM 在林下环境中可以满足实时定位的需求,但是定位精度还有待于进一步提升。对比全站仪和双目立体视觉SLAM 算法的定位结果可以发现,在移动测量过程中,算法在前进方向不发生变化的条件下具有较高的定位精度,测量偏差较大的点多发生在采集路线中的曲线段或者方向发生变化的位置。由此说明算法在相机发生旋转时刻,对于相机的姿态解算还有研究空间。在未来的工作中,计划根据森林样地中树干枝叶的纹理信息设计更具鲁棒性的特征点提取和匹配策略,严格筛选参与计算的匹配点对,降低误匹配点对的数量,提升算法的定位精度。

猜你喜欢

双目位姿样地
仁怀市二茬红缨子高粱的生物量及载畜量调查
霜 降 苏美玲
基于双目视觉的机器人定位与导航算法
额尔古纳市兴安落叶松中龄林植被碳储量研究
基于角尺度模型的林业样地空间结构分析
辽东地区不同间伐强度对水曲柳林分生态效益的影响
基于位置依赖的密集融合的6D位姿估计方法
基于双目测距的卡尔曼滤波船舶轨迹跟踪
曲柄摇杆机构的动力学仿真
优化ORB 特征的视觉SLAM