基于骨架点的矮化密植枣树三维点云自动配准

2021-10-14 00:57马保建鄢金山蒋焕煜
农业机械学报 2021年9期
关键词:阴天晴天枝干

马保建 鄢金山 王 乐 蒋焕煜

(1.浙江大学生物系统工程与食品科学学院, 杭州 310058; 2.新疆理工学院机械电气工程学院, 阿克苏 843100)

0 引言

相比于过去的枣树种植模式,矮化密植树形更利于枣园管理[1],目前有自由纺锤形、小冠疏层形和开心形3种主要的矮化密植树形结构。枣树冬剪是枣园管理过程中的重要环节,通过去除多余或长势过长的树枝来控制树形结构,可达到增加产量的目的[2]。果树修剪目前主要有2种方式:人工修剪和整株几何修剪。其中人工单枝选择性修剪质量高,但修剪效率低,并且人工成本高、劳动强度大,容易对操作者手指造成损伤;整株几何修剪效率高,令修剪机械与果树保持固定的修剪距离,但错剪、漏剪比较严重[3-4]。自动化选择性修剪对果树进行有选择的精剪,能够减少用工成本,避免大量有用枝条被误剪,从而提高果树的产量并延长其生长周期[5]。

合适的信息获取技术对于果树自动化选择性修剪十分重要[6],相关研究表明,利用2D视觉技术识别果树树枝可以达到修剪的目的[7-10],然而利用2D图像提取果树枝干三维几何结构信息十分困难。3D视觉技术克服了2D视觉技术的这些缺点,并能很好地重构果树的几何结构信息[11-12],文献[13]利用双目视觉对果树进行重建,文献[14]利用3个固定的RGB相机采用SFM算法对葡萄树枝干进行三维重建并完成了田间的修剪作业实验,但是其计算复杂度比较高;文献[15-18]在自然环境下利用激光雷达获取果树的三维点云信息,但是获取果树信息的过程比较繁琐、传感器比较昂贵且受限于获取的稀疏点云信息,对于重建较高精度的枣树枝干比较困难;文献[19-20]搭建结合RGB相机和ToF原理的深度相机的系统对苹果树进行了部分三维重建;文献[21]采用2台固定的Kinect v1相机(基于结构光原理)对樱桃树在室内进行了重建实验,并说明了该系统无法在室外使用;文献[22]利用Kinect v2相机(基于TOF原理)获取树的多角度点云信息,用标记球的方式人工配准,然后利用空间殖民算法结合管道模型生成树的结构;同样的,文献[23-24]利用Kinect v2相机重建部分苹果树的三维模型,主要枝干重建的误差在5 mm,但没有提及重建时间。

本文以矮化密植开心形枣树为研究对象,利用2台消费级Azure Kinect DK深度相机搭建三维重建系统平台,在自然环境下对无叶枣树进行点云信息采集,并提出一种基于骨架点的枣树点云配准方法,首先利用骨架点对2个视角下的枣树点云进行快速初配准获得较优的初始位姿,然后利用经典的ICP算法进行精配准,只需2个视角就能快速重建出完整的枣树枝干三维模型,并对3种典型自然环境下的枣树点云进行配准实验以及误差分析。

1 材料与方法

1.1 实验场地

实验场地位于浙江省义乌市农场室外的无主动光源的大棚内,其有2个主要作用:首先,保持棚内一定的温度,促进枣树早开花结果;其次,在南方雨季来临之时可以防止雨水对于枣树花、果的影响。大棚内种植的是矮化密植5~6年生枣树,开心形的树形结构,生长过程是在自然光照环境下进行的,其种植模式为株距1.5 m,行间距1.8 m,高度1.8~2.2 m,如图1所示(拍摄于2019年12月)。

1.2 枣树三维重建系统平台

本文搭建的枣树三维重建系统平台如图2所示,该系统平台主要包括:支撑架、2台Azure Kinect DK深度相机(兼顾相机获取数据的速度,选择如表1所示的相机部分参数)、联想计算机(i5-6300HQ主频2.3 GHz处理器、4 GB内存、NVIDIV GeForce GTX 960M显卡)、2个LED灯(30 W、色温3 000~5 700 K、尺寸为17.6 mm×14.4 mm×3 mm、发光角度120°)、音频线、移动电源(220 V、65 000 mA·h、300 W)等。采用2台Azure Kinect DK深度相机平行固定串联的方式搭建,2台深度相机平行安装距离35 cm且距离地面1.1 m的位置,固定在支撑架上。用音频线把2台相机串联起来实现2台相机的同步,音频线一端插入副相机的IN端,另一端插入主相机的OUT端,同时2台相机通过数据线连接在同一台计算机上。本文算法在Windows 10系统上的VS 2019结合点云PCL 1.9库、OpenCV 4.2库编写。

表1 Azure Kinect DK深度相机部分参数Tab.1 Partial parameters of Azure Kinect DK depth camera

1.3 2台固定相机的位姿标定

由于Azure Kinect DK深度相机的内部参数在出厂时已设定,因此只需采用Matlab软件立体视觉标定工具箱,利用张正友标定法[25-26],计算2台固定主、副相机之间的相对位姿矩阵Tsub→master,标定过程是将尺寸为300 mm×300 mm棋盘格标定板放在距离2台相机1.2 m的位置进行标定,如图3所示。30组不同角度的棋盘格图像同时被2台相机获取,每组2幅图像类似于双目相机的左右摄像头,经标定可得2台固定相机的位姿矩阵为

图3 2台固定相机标定过程示意图Fig.3 Process of camera calibration

且标定的相机内部参数和出厂时的内部参数基本一致。Azure Kinect DK相机能获取彩色图像、深度图像和红外图像3种数据,且相机出厂时已经实现了彩色相机与深度相机的精确标定,利用Azure Kinect DK for Windows 10 SDK v1.2和编程接口API,并结合相机的内部参数可实时获取物体在相机坐标系下的彩色三维点云数据,然后利用位姿矩阵Tsub→master把副相机获取的彩色三维点云转换到主相机的坐标系下,但是通过标定获取的位姿矩阵Tsub→master并不能使2台相机的彩色点云数据很好地融合,如图4a所示,文献[27]采用非线性优化的方法对4台固定的Kinect v2相机位姿进行优化,得到较好的室内重建结果,文献[28]利用标定球的方式求取2台固定相机的转换矩阵并重建出猪的三维模型。而本文采用更加方便的点云重配准算法[29]优化Tsub→master矩阵,运用公式

(1)

式中Topt——优化后的矩阵

其中令ε=(α,β,γ,a,b,c),参数ε运用高斯牛顿法求解得到,其公式为

(2)

式中r——残差矢量

Jr——残差矢量的雅可比矩阵

不断迭代得到最优位姿矩阵

最后实现2台Azure Kinect DK深度相机的实时点云直接叠加。假设主相机的坐标系为Cmaster,副相机的坐标系为Csub,获取的点云数据分别是Pmaster、Psub,由优化后得到的2台固定深度相机的变换矩阵Topt,并最终在主相机坐标系Cmaster下输出1帧点云数据为Pout,完成2帧点云的直接融合,见图4b,计算公式为

Pout=Pmaster+ToptPsub

(3)

式中Pout——主相机输出的点云

Pmaster——主相机获取的点云

Psub——副相机获取的点云

图4 点云配准结果Fig.4 Registration results of point clouds

1.4 枣树三维点云信息采集

在3种典型的光照环境下(晴天、阴天、夜间)距离枣树主杆中心1.1~1.3 m的位置对开心形枣树进行拍摄(图5a),其中晴天的平均光照强度为77 300 lx,阴天的平均光照强度为12 600 lx,夜间通过2个LED灯补光后的平均光照强度为4 000 lx(本文下面所有的3种典型光照环境都是采用平均光照强度)。对于参差不齐的矮化密植枣树,尽管树形结构是开心形,但由于枣园管理不规范,开心形枣树的侧枝没有统一的模式,侧枝分布有2~5个,考虑到后续修剪样机的设计,并经现场实验,最终确定逆时针旋转系统平台55°,如图5b所示。对有5个侧枝的开心形枣树的采集过程,如图5c~5h所示。获取的一个视角下的点云命名为Tree-A,逆时针旋转系统平台55°获取另一个视角下的点云,命名为Tree-B。

图5 3种典型光照环境下枣树信息Fig.5 Jujube tree information under three typical lighting environments

1.5 枣树点云预处理

三维重建系统平台获取的枣树场景空间信息,包含了大量的背景噪声,如附近的枣树、大棚和地面等,因此需要对获取的原始枣树点云进行预处理,以获得只有单棵枣树的点云信息。同时对单棵枣树点云数据进行下采样和滤波处理,以提高枣树点云后续的配准速度和精度,点云预处理流程如图6所示。根据枣树的三维点云坐标信息,通过设置枣树三维点云的距离阈值范围,将小于阈值的点云视为内点保留下来,大于阈值的视为无用点去除。依据枣树树冠幅宽在0.8~1 m以及高度在1.8~2.2 m,设置空间x、y方向阈值范围分别为(-0.5 m,0.6 m)、(-1.5 m,1.2 m),可很好地去除附近枣树和顶部大棚的噪声信息,并且系统平台放置在距离枣树主杆中心1.1~1.3 m的位置,设置空间方向的阈值为(0 m,1.4 m)可很好地去除枣树背景噪声,这样就可获得只包含单棵枣树的三维点云信息。

图6 点云预处理流程图Fig.6 Flow chart of point clouds pre-processing

为了加速点云数据处理速度,需要降低枣树点云的密度,利用体素滤波器[30]对枣树点云进行下采样,其中栅格尺寸设置为5 mm,这样能够最大程度地保留枣树的几何结构信息,对于下采样后的枣树点云周围还存在着一些飞行点,这是由枣树枝干之间相互遮挡以及消费级Azure Kinect DK深度相机本身测量误差引起的。枣树周围的飞行点距离枣树枝干较远且稀疏,因此本文采用基于半径的滤波器[31]去除,该算法需要搜索半径为R的圆内的点数,将阈值小于k的点云去除,而保留满足阈值的点,依据对枣树点云处理的实验结果选择R=11 mm,k=10,能有效去除离群点。

1.6 枣树点云配准过程

由于枣树本身结构复杂,树枝之间相互遮挡严重,对于本系统平台采集的单视角点云不能得到完整枝干三维模型,枣树枝干存在多处不连续的断点,如图7b所示(阴天时采集)。因此需要另外一个视角下的枣树点云,然后对2个视角下的点云进行配准,对枣树枝干的断点进行补全。对于结构复杂的枣树来说,直接采用ICP或者NDT算法进行配准,误匹配率高,计算复杂度高,并且容易陷入局部最优而不能完成2个视角点云的配准[32]。因此提出一种基于骨架点对枣树点云进行初配准,获得2帧枣树点云较近的位置,然后再利用经典ICP算法进行精确配准,配准流程如图8所示。

图7 非完整枣树枝干模型Fig.7 Incomplete model of jujube tree branches

图8 枣树点云配准流程图Fig.8 Pipline of point cloud registration

首先利用拉普拉斯算法[33]提取出预处理后枣树点云的骨架线,该算法可以实现在有噪声的枣树点云中对其几何结构进行骨架线提取,公式为

(4)

式中P——预处理后的枣树点云

P′——提取的枣树点云

L——m×m的拉普拉斯矩阵

WL、WH——对角权重矩阵

拉普拉斯矩阵中m设置为16,并且在提取点云P′时最远下采样的半径设置为4 mm,能较好地快速获得枣树的骨架线,并对骨架线下采样获取其骨架点,如图9所示。

图9 枣树骨架点提取Fig.9 Extraction of jujube tree skeleton point

其次对获取的枣树点云骨架点进行法向量估计,利用特征描述子FPFH(快速点特征直方图)[34]计算骨架点的特征矢量,并经过SAC-IA(采样一致性)算法[35]完成2个视角下枣树点云骨架点的映射关系,该算法的基本步骤:①从点云Tree-A的骨架点中选n个采样点,且采样点之间的距离应满足大于设定的最小阈值dmin。②在点云Tree-B的骨架点中查询与点云Tree-A具有相似特征的1个或多个点,并随机从这些点中选择1个点作为Tree-A和Tree-B之间的对应点。③计算对应点的变换矩阵,并通过对应点变换后的“距离误差和”函数来度量2帧枣树点云之间转换的质量。通过不断重复这3个步骤得到最小的误差,完成2帧点云的初始匹配,得到初始转换矩阵T0。

最后采用经典ICP算法对初始转换矩阵T0进一步优化完成枣树点云精配准过程并得到转换矩阵T,其中设置ICP最大的迭代次数为100以及前后2次的迭代误差为0.02 mm。最后利用转换矩阵T来重建完整的枣树枝干三维模型,枣树总体三维重建过程如图10所示。

图10 枣树重建总体流程图Fig.10 Overall process of jujube tree reconstruction

2 结果与讨论

本文搭建系统平台有2个主要原因:①矮化密植开心形枣树的枝干较细,树形结构复杂,枝干之间遮挡比较严重。②枣树的枝干表面非常粗糙,传感器到达枣树表面的红外光线不能被完全反射回来,造成枝干信息不能被传感器接收。即使利用单个深度相机分别获取2个视角下的枣树点云(阴天时采集)将其配准在一起,也不能准确反映枣树枝干的三维模型,如图11d所示。而利用2个平行固定实时同步的深度相机在单视角下就能够得到质量较好的枣树枝干模型,但存在不连续的枝干断点(阴天时采集),如图12b所示。

图11 单相机重建结果Fig.11 Reconstruction of single camera

图12 系统平台获取的单视角枣树点云Fig.12 Point clouds of jujube tree obtained by system platform in single view

2.1 标定方法的配准精度评估

通过张正友标定法确定2台固定深度相机的初始位姿,然后对初始位姿进一步优化,最终确定2台相机的转换矩阵Topt。为了定量分析2台固定相机之间点云的配准精度,采用点到点的方法(C2C)[36]测量原始点云与转换后的目标点云的平均距离来评估2帧点云的融合程度,2帧点云之间的平均距离误差越小说明配准越好,反之配准越差。在3种典型自然环境下(晴天、阴天、夜间),利用系统平台获取300 mm×300 mm棋盘格标定板的点云信息,然后采用CloudCompare软件计算标定板的原始点云和转换后的目标点云之间的平均距离误差。晴天平均距离误差为0.311 mm,阴天平均距离误差为0.249 mm,夜间平均距离误差为0.167 mm,在3种典型环境下,配准的平均距离误差变化较小,说明标定方法具有很好的鲁棒性。

2.2 2个视角下点云配准效果

对于预处理后的2帧点云Tree-A与Tree-B,利用提取的骨架点在3种典型自然环境下(晴天、阴天、夜间)进行配准实验,配准实验结果如图13、14所示。在自然条件下利用系统平台采集枣树点云时,光照的变化对其有一定的影响,在晴天时每个视角下采集的枣树点云数量小于阴天采集,阴天采集的枣树点云数量小于夜间采集。晴天时对采集系统有一定影响使得重建的枣树枝干还有部分不完整,如图14b所示,而阴天和夜间对采集系统影响小,能够重建完整的枣树枝干,如图13d、14d所示。

图13 阴天配准过程Fig.13 Process of registrationin in cloudy day

图14 晴天、夜间精配准结果Fig.14 Results of registration in sunny day and at night

2.3 枣树点云配准结果分析

通过单台相机获取2个视角下枣树点云,然后进行匹配得到的枣树枝干三维模型质量不高,故不对其配准误差做进一步分析。利用匹配点总数(需要配准的最少点数)、配准时间(骨架点或关键点提取,初配准和精配准整个配准流程时间)和拟合分数3个指标进行配准结果分析,其中的拟合分数是源点云与对应旋转后目标点云之间的平均距离,且其值越小,说明配准效果越好[37]。表2~4对经典ICP算法、SIFT-ICP算法、ISS-ICP算法、HARRIS-ICP算法[38-40]以及本文提出的算法在3种典型的光照环境下(晴天、阴天、夜间)进行了对比。配准结果表明:①经典ICP算法相对于SIFT-ICP算法、ISS-ICP算法、HARRIS-ICP算法配准时间短,但其拟合分数最大即配准误差最大。②3种利用关键点的算法在相同光照环境下的拟合分数基本一样;在不同光照环境下,3种算法在阴天时拟合分数最小,配准时间介于晴天和夜间之间,而在晴天时配准时间最少,但配准误差最大。③本文提出的算法相对于以上4种算法其配准时间和配准误差都进一步降低;相对于阴天和夜间,在晴天时,枣树点云配准所需时间最少,为0.09 s,而配准误差最大,其拟合分数为0.000 29;在阴天时,枣树点云配准的时间介于晴天和夜间,而此时配准误差最小,其拟合分数为0.000 11。

表2 晴天时点云配准结果Tab.2 Analysis of point cloud registration in sunny day

表3 阴天时点云配准结果Tab.3 Analysis of point cloud registration in cloudy day

表4 夜间时点云配准结果Tab.4 Analysis of point cloud registration at night

2.4 枣树枝干重建的完整性和配准稳定性分析

在3种典型环境下,任意选择5棵矮化密植开心形枣树进行重建,并对重建的枝干完整性和配准稳定性加以分析。重建后的枣树枝干数目以及在晴天时重建后枝干的断点数量(在阴天和夜间时,没有断点),如表5所示。在3种典型环境下的配准结果如表6所示,在相同的光照条件下,拟合分数差别较小,表明本文算法具有较好的稳定性。

表5 枣树枝干数量与枝干断点数Tab.5 Numbers of jujube branch and breakpoint

表6 枣树点云配准结果Tab.6 Results of jujube point clouds registration

3 结论

(1)提出了采用2台消费级固定的深度相机实时重建矮化密植枣树的系统平台,利用点云重配准算法提高了2台深度相机之间配准精度,简化了配准流程,使得该系统平台能够获取高质量枣树枝干的三维点云模型。

(2)提出了基于骨架点的重建枣树枝干算法的整体流程,缩短了枣树重建时间以及进一步降低了配准误差,并在3种典型光照环境下(晴天、阴天、夜间)进行了对比实验。结果表明,光照对于本文枣树三维重建系统平台有一定的影响,进而影响到枣树点云的配准时间和精度。本文算法在晴天所需配准时间最少,为0.09 s,但是配准误差却最大,拟合分数为0.000 29;阴天配准误差最小,其拟合分数为0.000 11;夜间配准所需时间最长,为0.16 s,配准误差介于晴天和阴天。因此后续设计枣树修剪机器人样机时要考虑光照的影响。

猜你喜欢
阴天晴天枝干
何 芳
它若安好,便是晴天
一起来写“雪”
玫瑰或刺
玫瑰或刺
小小的一片晴天
给阴天染上色彩
阴天
露比的晴天
好的阴天