基于Kinect V3的休眠期核桃树三维重建与试验*

2023-11-11 04:13钱美马保建李学志蒋焕煜
中国农机化学报 2023年10期
关键词:核桃树枝干标定

钱美,马保建,李学志,蒋焕煜

(1.新疆理工学院机电工程学院,新疆阿克苏,843100;2.浙江省农业智能装备与机器人重点实验室,杭州市,310058)

0 引言

对于休眠期果树剪枝机器人首先要获取高质量的果树枝干三维信息,为后续果树枝干的识别与剪枝点定位提供数据依据[1],许多学者分别利用双目相机、激光雷达、深度相机等传感设备获取果树的三维信息,同时开展果树重建的相关研究[2-4]。蔡健荣等[5]采用双目相机采集柑橘树的左右图像,通过左右视差获得其枝干的深度信息。Wu等[6]采集2幅无叶核桃树图像进行重建,然后提取其骨架并结合软件重建完整的核桃树。对于采用立体视觉重建果树枝干三维模型时,不仅需要依赖果树枝干具有丰富的纹理信息,还要克服复杂的自然光照环境影响。激光雷达传感器可以主动获取果树枝干的三维信息,并且光照对其影响较小。Medeiros等[7]利用激光雷达传感器(2D)获取休眠期苹果树40幅不同视角下的三维点云,在1 h内可以重建2棵树,重建过程复杂且重建结果误差较大。Bai等[8]利用车载平台搭载2D激光雷达采集无叶苹果树点云数据,为后续苹果树的粗剪提供数据支持。由于2D激光雷达传感器获取的点云数据分辨率较低,很难得到枝干的细节信息,而3D激光雷达设备相比于2D激光雷达,具有较高的分辨率。比如Sultan Mahmud等[9]利用3D激光雷达获取带叶苹果树的三维点云,基于采集的数据分析了苹果树冠层密度的分布情况。

相对于2D/3D激光雷达传感器,深度相机的价格便宜并能够获取较稠密的三维点云,在采集果树三维信息时得到了广泛的应用[10]。Wang等[11]采用2个Kinect V1(结构光原理)深度相机并间隔90°搭建了一套采集系统,能够重建出较好的无叶荔枝树的三维点云,但是在自然光照条件下重建结果有待进一步验证。Elfiky等[12]通过Kinect V2(ToF原理)深度相机采集2幅休眠期苹果树前后的点云,并结合Kinect Fusion算法对果树点云进行部分重建。付昱兴等[13]利用Kinect V2在单个视角下采集多幅点云融合得到1幅枣树点云,并结合标定球方法对无叶枣树两侧的2幅点云进行配准,然后利用Alpha-shape算法对枣树进行表面重建,但没有具体解释融合几幅点云能够得到1幅较好的果树枝干信息。任栋宇等[14]通过Kinect V2在实验室内每间隔50°采集一次桃树三维点云,结合迭代最近点(Iterative Closest Point,ICP)算法对桃树点云进行配准,平均配准误差为0.52 cm,采集过程较为繁琐以及重建结果在室外有待进一步验证。马保建等[15]利用Kinect V3在同侧相隔55°采集2幅休眠期枣树点云,结合骨架点进行点云配准,但文中未涉及采集两侧点云以及配准的方法。

视觉感知系统是休眠期果树修剪机器人重要的组成部分,其决定了修剪机器人完成剪枝作业的质量。本文以树龄为3年的核桃树为研究对象,基于Kinect V3深度相机搭建视觉系统,分别采集0°和180°时核桃树的三维点云,结合人工标记物对2幅点云进行粗配准计算其初始转换矩阵,然后利用ICP算法进行精配准,通过Alpha-shape算法对点云表面重建,为后续核桃树自动化剪枝提供数据依据。

1 材料与方法

1.1 视觉系统搭建与数据采集

Kinect V3深度相机是基于飞行时间的原理(Time of Flight,ToF),于2019年发布的新一代传感器,相比于前两代Kinect深度相机,该款相机各个方面的性能更高而且价格低廉,具体参数如表1所示。由于Kinect V3相机可以通过音频线实现2个相机的实时数据通讯,根据这个特点,本文利用2台深度相机搭建核桃树视觉感知平台,如图1所示,主要包括:移动平台、2个(左、右)深度相机、联想电脑Y70、云台底座、音频线、户外电源等。本文算法在 Ubuntu 18.04 系统上的 Clion编译器上结合Open 3D 1.3库、PCL 1.9库、Open CV 4.5库编写。

表1 不同Kinect深度相机的主要参数对比

图1 视觉感知平台

本文的试验场地在新疆阿克苏新疆理工学院核桃园,如图2(a)所示。数据采集时间在15:30—17:30时间内天气晴朗无风的自然条件下,距离单棵核桃树在1.1~1.3 m位置进行两侧点云获取(相隔180°获取1幅点云),如图2(b)所示。

(a) 采集地点

1.2 视觉系统的标定

由于Kinect V3深度相机内部参数在出厂前已经标定好,对于搭建的视觉系统只需标定2台相机的位姿关系。本文利用ArUco标定板对2个深度相机的位姿进行标定,此标定过程相对于棋盘格标定更加方便,把标定板放置在视觉系统前面1~1.3 m的位置对相机位姿进行标定,如图3所示。已知Kinect V3相机的内部参数矩阵K,通过相机获取标定板的三维点p坐标(X,Y,Z)T,其齐次坐标(X,Y,Z,1)T,且该点的投影点坐标是(U,V)T以及齐次坐标(U,V,1)T。利用式(1)计算左相机相对标定板的位姿矩阵T左→标定板,同样可计算右相机对于标定板的矩阵T右→标定板。利用式(2)计算2个相机之间的初始转换矩阵T左→右,然后利用重配准算法[16]对初始矩阵T左→右进行优化,获得最终的相机之间位姿转换矩阵T最终,最后利用式(3)得到视觉系统采集的1幅融合点云P输出。

(1)

T左→右=T左→标定板·T右→标定板-1

(2)

P输出=P左+T最终·P右

(3)

式中:s——放缩系数;

T左→右——左相机相对于右相机的位姿矩阵;

T右→标定板-1——右相机相对于标定板之间的逆矩阵;

P左——左相机采集的点云;

P右——右相机采集的点云。

1.3 核桃树点云预处理

在自然条件下,利用搭建的视觉系统采集休眠期核桃树点云,其包含了一些背景噪声和枝干之间的离群点(图4红色圆圈内的点),为了后续数据的处理,需进行点云预处理。首先利用深度信息去除核桃树点云中的背景噪声,根据深度距离1.1~1.6 m的范围,去除不在范围内的点云。其次,针对枝干间的离群点噪声,利用统计滤波算法进行去除,该算法根据k近邻的原则,首先查询点pi(xi,yi,zi)的k近邻的点pj(xj,yj,zj),然后计算该点到k附近点的平均距离di(mm),并计算平均值μ(mm)和标准差σ(mm),计算公式如式(4)所示。

(4)

式中:k——核桃树点云的近邻个数;

n——核桃树点云中的数量。

若点的平均距离阈值di在标准范围[μ-γσ,μ+γσ]之外,那么该点被认为是离群点,将该点从点云中删除,其中γ值选择0.2、0.4和0.8,k值选择20、40和80进行试验。依据试验结果可知,当k=20,γ=2时,离群点去除最好,并能最大程度的保留核桃树枝干信息。

1.4 核桃树点云配准

为了得到完整的休眠期核桃树枝干信息,对核桃树进行双侧点云获取,然后对2幅点云进行配准。由于采集的2幅点云之间基本没有重叠的部分,而且2幅点云也不在同一个坐标系下,直接利用ICP算法配准误差很大[17],根据师翊等[18]的研究,利用3个公共点可以把不同坐标系下的点云转换到同一坐标系下,其过程就是利用旋转、平移和缩放将2幅点云转换到同一坐标系内,转换公式如式(5)所示。

(5)

λ——缩放因子;

R——旋转矩阵;

(a) 初始位姿

和λ实现点云的初始配准。

(6)

(7)

(8)

式中:a、b、c——反对称矩阵的独立参数;

Xs21、Ys21、Zs21——原坐标系下2个标记板之间对应点的X,Y,Z坐标之间的差值;

Xs31、Zs31——原坐标系下2个标记板之间应点的X,Z坐标之间的差值;

Xt21、Yt21、Zt21——目标坐标系下标记板之间对应点的X,Y,Z坐标的差值;

Xt31、Yt31、Zt31——目标坐标系下标记板之间另外的对应点的X,Y,Z坐标之间的差值;

对核桃树点云粗配准以后,2幅点云在空间位置上已基本接近如图5(c)所示。为了进一步提高核桃树点云的配准精度,以及避免陷入局部最优解,将粗配准得到的转换矩阵作为ICP算法的初始值,对初始转换矩阵进行优化,最后实现点云的精配准,得到完整的核桃树三维点云,如图5(d)所示。

1.5 核桃树表面重构

对完整的核桃树点云进行表面重构,能更好地体现枝干的表面信息,对完整的核桃树点云计算其法向向量,然后进行三角面片化,大量的面片构成了核桃树三维模型的表面。本文采用Alpha-shape算法[19]对核桃树点云进行表面重建,该算法通过半径值为α的小球在核桃树点云集上进行滚动,与滚动球相交的3个空间点所构成的三角形面,把所有三角形面连接即构成核桃树的表面,具体步骤如下:(1)在核桃树点云集S中选择任意一个点P1,把与其距离小于2α值的点云构成新的点云集S1,在S1中任选一组点P2,P3,计算半径为α且过三个点P1,P2和P3的球心位置O1与O2;(2)进一步遍历新的点云集S1,分别计算另外的点到球心O1与O2的距离d1和d2,如果求出的d1和d2中有1个集合距离阈值大于等于α值,则判别为不是该点集的边缘轮廓点,停止遍历并进行步骤3;(3)将继续选取S1中的一组点,按照步骤1、步骤2判断,直至所有点集S1中的点被遍历一遍;(4)选取S中的另外一个点,继续按照以上3个步骤判断,直至所有S点集中的点判断结束,并得到点云边界三角形的矩阵。

2 结果与分析

2.1 视觉系统获取点云质量分析

为了验证搭建的视觉系统的必要性,首先断开视觉系统音频线的连接,并关闭其中一个相机的电源,然后分别利用视觉系统上的左、右相机单独采集核桃树点云。对采集的2幅点云通过主成分分析方法计算其初始位姿矩阵,然后结合ICP算法优化初始矩阵,实现2幅点云的精确配准,结果如图6所示。

(a) 左相机采集

通过结果可以看出搭建的系统采集的核桃树点云质量高于左、右相机单独采集并配准的结果,主要原因在于深度相机在自然条件下受光照影响较大,左、右相机采集的原始点云质量不高,配准后的点云质量也不高。而搭建的视觉系统通过音频线实现实时通讯,使得2个深度相机获取的点云之间实时融合在一起,得到的融合点云存在冗余信息,即使光照对视觉系统有一定影响,但在自然环境下也能够获取较高质量的点云。

2.2 配准误差分析

利用平均欧式距离对双侧核桃树点云配准结果进行评价,其值越小说明配准精度越高,利用本文提出的算法分别与基于Kd-tree的ICP算法[20]、SIFT-ICP算法[21]、ISS-ICP算法[22]对7棵核桃树配准对比分析,如图7所示。

由配准结果可知,利用Kd-tree-ICP算法、SIFT-ICP算法和ISS-ICP算法的配准平均误差分别为2.38 cm、1.03 cm和1.12 cm,而本文算法的平均配准误差为0.58 cm,配准误差更小且配准精度相对于基于Kd-tree的ICP算法、SIFT-ICP算法、ISS-ICP算法分别提高了75.6%、43.7%和48.2%,进一步保证休眠期核桃树真实的三维空间结构。

2.3 重构模型尺寸精度分析与验证

通过试验确定Alpha-shape算法中的半径值α,当α值越大时,枝干之间连接位置的重构模型出现较大偏差,当其取值为0.02,能够重建较好的表面质量,如图8~图10所示。

(a) α=0.01

(a) α=0.01

为了评价重构核桃树模型(α=0.02)精度,对7棵完整核桃树进行建模,整体模型基本接近自然生长的核桃树。利用游标卡尺测量固定标记点附近的核桃树枝干尺寸(测量三次取平均值),同时利用MeshLab开源软件测量重建的核桃树三维模型对应点的位置(测量三次取平均),实际测量值与三维模型测量值的误差,如表2所示。重建结果表明枝干的尺寸误差在2 mm以内,相比于参考文献[16]对休眠期果树的重建尺寸误差进一步降低,重构的模型精度更高,且能够准确反映休眠期核桃树的真实结构。

表2 核桃树实际值与模型测量值对比

3 结论

1) 基于2个消费级传感器Kinect V3搭建了视觉感知平台,并对2个深度相机进行了位姿标定。对采集的休眠期核桃树点云进行了背景噪声和离群点的去除。

2) 提出了人工标记点结合ICP算法的配准方法,通过对7棵核桃树进行配准试验,验证了配准方法的稳定性,核桃树点云的平均配准误差为0.58 cm,并且相对于基于Kd-tree的ICP算法、SIFT-ICP算法、ISS-ICP算法配准精度分别提高了75.6%、43.7%和48.2%。在后续研究中,结合深度学习方法对两侧点云进行配准,实现全过程自动化。

3) 利用Alpha-shape算法对完整的核桃树点云进行三维重构,建模后的枝干尺寸误差控制在2 mm以内,试验结果表明重建的三维模型精度较高,能够准确反映核桃树的空间结构,为后续核桃树智能剪枝提供数据依据。

猜你喜欢
核桃树枝干标定
何 芳
核桃树栽植技术要点
核桃树高接换优技术
走出核桃树不能冬剪的误区
使用朗仁H6 Pro标定北汽绅宝转向角传感器
玫瑰或刺
核桃树育苗及嫁接技术
玫瑰或刺
基于匀速率26位置法的iIMU-FSAS光纤陀螺仪标定
船载高精度星敏感器安装角的标定