基于点云配准的盆栽金桔果实识别与计数方法

2022-06-21 08:21朱启兵刘振方李学成
农业机械学报 2022年5期
关键词:金桔云团计数

朱启兵 张 梦 刘振方 黄 敏 李学成

(江南大学轻工过程先进控制教育部重点实验室, 无锡 214122)

0 引言

金桔果实的数量及其生长分布状态是决定盆栽金桔品质和销售价格的重要指标[1-2]。在果实成熟前进行准确的果实计数和产量预估,能够帮助种植者做出更具成本效益的决策。

随着机器视觉技术的发展,机器视觉成像方法被引入水果识别领域。利用RGB图像进行水果识别已有大量研究[3-4]。RGB图像易受光照影响,所提供信息有限,不能准确反映果实的真实大小和空间位置信息,当水果颜色与背景差异性较小时更难进行识别,因此有学者将三维信息引入水果识别的研究中。TAO等[5]提出了一种融合颜色特征和三维几何特征的三维描述子,基于支持向量机分类器并采用遗传算法优化,对苹果点云进行分割和识别。NGUYEN等[6]获取苹果彩色点云数据,对预处理后的果实点云进行欧氏聚类分割,采用Hough圆检测识别红色苹果和双色苹果。上述传统的图像处理技术通常需要人为提取特征,耗时较长,深度学习技术通过学习的方式获取图像特征,避免了主观因素的影响,近年来逐渐被引入到水果识别领域。MU等[7]通过迁移学习将Faster R-CNN应用到未成熟番茄的检测上,并且对番茄的位置和大小进行估计。LIU等[8]融合RGB图像和近红外图像输入VGG16网络对猕猴桃进行识别,并比较不同融合方法对识别结果的影响。基于深度学习的水果识别方法虽然能够达到较高的识别精度和速度,但模型的训练需要大量标记图像,采集和标记图像需要大量的时间和劳动,同时模型的训练和运行也需要更好的硬件条件[9]。

文献[3-8]所述方法都是基于单幅图像进行水果识别,单幅图像只包含植物局部的三维信息,无法准确展示所有水果的空间生长分布状态,难以实现整株植物的果实总数估计。一些研究对多个单幅图像识别结果进行统计的方法存在明显的重复计数问题[10]。为了更准确的对整株植物进行果实产量估计,有学者通过重建植物的三维模型,基于完整的三维信息进行水果识别和计数。SUN等[11]采用运动恢复结构算法从多视角RGB图像中重建棉铃的完整三维点云,采用基于区域的分类算法和基于密度的聚类算法对棉铃进行识别与产量估计,但该方法所需数据量和计算量较大,难以实现快速的识别估计。GONGAL等[12]对苹果树进行产量估计,在树的正反两面安装相同数量的彩色相机和深度相机,同步获取彩色图像和深度图像,基于彩色图像识别水果,然后通过配准正反两面的点云数据识别出重复计数的水果。MÉNDEZ等[13]使用激光雷达扫描仪获取柑橘树的三维点云,基于颜色信息分割背景,采用迭代自组织数据分析算法(Iterative self-organizing data analysis techniques algorithm, ISODATA)对柑橘点云进行分割计数。上述获取植物完整三维信息的方法存在设备昂贵、计算量大等问题,且仍然要依赖颜色特征,对于未成熟的绿色果实的识别效果较差。本研究提出一种针对整株植物的绿色果实识别和计数方法,以盆栽金桔为研究对象,采用低成本的RGB-D相机采集多角度点云数据,经过配准融合得到完整的植物点云,结合三维轮廓特征进行水果点云分割,最终实现非成熟期盆栽金桔果实的识别与产量估计,以解决因单幅图像信息不足导致的水果漏识别和重复识别问题,以及果实颜色与背景相近造成的分割困难的问题。

1 识别方法

1.1 仪器设备与信息采集

选用RGB-D相机(Kinect 2.0)作为信息采集设备。该相机基于飞行时间原理(Time of flight, TOF)采集深度数据,可以一次性获取被测对象的彩色图像(1 920像素×1 080像素)、深度图像(512像素×424像素)和相应的点云图像[14],最佳测量范围为0.8~2.0 m。利用微软公司提供的软件开发工具包Kinect for Windows SDK 2.0以及相应程序编程接口获取数据,基于Visual Studio 2013集成开发环境和点云库(Point cloud library, PCL)完成相关算法及实验仿真。盆栽金桔购自无锡花卉市场,品种为四季观赏型金桔。选择处于果实生长期的盆栽金桔树,树高为55~75 cm,树宽为30~50 cm。金桔果实直径为1.0~3.5 cm,果实较小不易识别,且生长期果实大多数呈现青绿色,能够有效验证本研究在果实颜色与背景相近情况下果实的识别效果。

将植株放置于可精密控制转动角度的电动转盘上,转盘周长为1.0 m,转盘中心距相机约1.0 m。转动转盘,以60°为间隔获取植物6个角度的彩色图像和深度图像。将每个角度的彩色图像与深度图像进行匹配融合,计算得到目标物体在相机坐标系中具有颜色的三维坐标信息,即彩色点云。为减少传感器系统噪声与波动,将单个视角下的多帧点云数据叠加融合获得最终彩色点云图像。对获取的彩色点云图像进行预处理得到目标点云,通过初配准和精配准得到完整的植株点云,最后采用欧氏聚类算法和随机采样一致性(Random sample consensus, RANSAC)算法分割识别果实并进行计数,图1为果实整体识别计数流程图。

图1 果实整体识别计数流程图Fig.1 Flow chart of overall method

1.2 点云数据预处理

通过RGB-D相机获取的点云数据包含墙壁等背景信息,同时存在大量噪声,容易对后续的点云配准及果实分割识别工作产生干扰,需要去除背景和噪声。

在背景去除阶段,主要根据感兴趣区域的深度信息去除背景。设定目标植株所在的空间范围,范围外的点云视为无效点云并去除。根据实验条件,将三维空间中的z轴范围设定为0.1~1.2 m,x轴范围设定为-0.5~0.5 m,y轴范围设定为-0.2~0.6 m。通过此方法能够快速地去除背景区域,保留感兴趣区域点云。

本实验的噪声主要有目标物体边缘的白色噪声点、离群点以及悬空点3类,针对噪声数据的不同特点,采用不同的去噪方法进行处理。

背景去除后,物体边缘残留有白色背景噪声[15],这些噪声与植物主体颜色差异较大,因此基于颜色阈值的分割方法去除这些噪声。植物点云周围分布有大量离散点,这些点即为离群点。采用半径滤波算法去除这些离群点。本研究设置最大搜索半径为0.01 m,当前点的最大搜索半径内的近邻点数最少为10,若点数小于10,则判断此点为离群点。

悬空点广泛存在于采用TOF技术的传感器所得三维点云中,即悬浮于前后两个物体之间的噪声点[16]。该现象在本研究使用的RGB-D相机所得点云中也普遍存在,在叶片之间以及果实与叶片之间都存在相连的悬空点,严重影响点云描述物体轮廓的真实性。 因此本研究采用胡杨[17]提出的方法,若当前点的法向量和该点与视点连线的夹角大于70°,则判断此点为悬空点。该方法对物体间的悬空点去除效果较好,但无法去除物体边缘的噪声点,本研究加入基于距离的欧氏聚类[18]算法对残留噪声点进行去除。点云边缘噪声分布较为离散,与主体点距离较远,因此通过欧氏聚类可有效去除不符合距离阈值的点。经过实验验证,选取欧氏聚类的距离阈值为0.005 m,每个类别含有的点数范围为20~1 000。

1.3 点云配准

植株枝叶之间相互遮挡,单视角下的点云无法呈现出植物的完整形态,在计算整株植物的果实数量时容易出现漏检和重复识别的问题。为解决上述问题,获取植物多角度点云数据,经过配准融合得到植物的完整三维点云,再利用所得完整点云进行水果识别。首先采用随机采样一致性算法对转台点云进行圆柱拟合,并得到转台的旋转中心轴参数,将点云绕中心轴旋转相应角度进行初配准,然后采用点到面的迭代最近点算法实现精配准,完整的配准方法流程如图2所示。

图2 点云配准流程图Fig.2 Flow chart of point cloud registration

1.3.1点云初配准

点云初配准的一般方法为直接计算三维点云的特征,以三维特征为约束寻找两幅点云匹配点,基于这些匹配点计算转换矩阵进行初配准[19-20]。植物结构复杂,较难提取出有效特征,为解决此问题,一些学者在被测物体附近放置规则的辅助物体,通过对辅助物体配准实现对被测物体的配准[21],但该方法操作复杂,对环境条件要求较高,物体的分割识别步骤非常耗时。因此在室内环境下,不少学者基于电动转盘获取物体多角度点云数据[22-23],计算转盘的中心轴,将点云绕中心轴旋转相应角度进行配准。由于配准中旋转角度已知,因此相较于其他配准方法,此方法的配准结果更加准确,配准效率更高。目前的旋转中心轴计算方法依然要提前通过辅助物体进行计算,为提高效率同时降低操作的复杂度,本研究采用一种基于圆柱拟合的旋转中心计算方法,只需要转盘的点云数据即可计算出旋转中心。

首先通过深度信息分割出转盘点云,然后对转盘点云进行圆柱拟合,最后获得圆柱中心轴及半径参数。模型拟合最常见的方法是最小二乘拟合,但是此方法容易受到噪声影响,在噪声大的点云中效果较差。随机采样一致性算法是从一组包含局外点的观测数据集中,用迭代的方式估计数学模型参数的模型拟合方法[24]。在点云分割中,该算法可在含有大量噪声的点云中提取出物体的三维模型,拟合精度高且简单快速,具体算法如下:

(1) 从点云中随机选取一组点,计算这组点所拟合出的模型参数。

(2) 若步骤(1)得到的模型测试点云中的剩余点与模型的距离小于设定的误差阈值,则将该点确定为局内点,统计该模型下局内点的个数。

(3) 若有足够多的点作为局内点,则认为所估计模型合理。

(4) 利用所有假设的局内点重新估计模型参数,获取最佳模型。

(5) 重复步骤(1)~(4),若当前模型局内点数量大于已经保存的最大局内点数量,则更新模型参数。不断迭代直到达到迭代阈值,停止迭代,找到局内点个数最多的模型参数,即为最终估计模型参数。

圆柱拟合中,法线权重设置为0.1,内点到模型最大距离为0.05 m,圆柱半径为0.150~0.165 m。

图2中相机采集到6个角度的点云。以0°和180°点云为目标,分别将60°、300°点云配准到0°点云,将120°、240°点云配准到180°点云,即60°、240°点云绕旋转中心旋转60°,120°、300°点云绕旋转中心反向旋转60°,实现两两点云的初始配准。

1.3.2点云精配准

经过初配准,点云的部分区域在空间位置上接近或重叠,由于计算误差等原因局部还存在间隙,没有完全拼合,因此需要精配准对配准结果做进一步的改进和完善[25]。

迭代最近点(Iterative closest point, ICP)算法[26]广泛应用于图像与点云的配准[27],具有计算简单、精度高等特点[28]。ICP算法的基本原理是在目标点云Q和源点云P中,以欧氏距离为约束条件找到当前点最近邻的点,根据这些匹配点对通过迭代计算出最优的变换矩阵,包括旋转矩阵R和平移矩阵T,使得误差函数E最小,误差函数为

(1)

式中n——对应点对的数目

pi——源点云中的一点

qi——目标点云中的对应点

ICP算法具体步骤如下:①在源点云P中确定点集{pi}。②在目标点云Q中寻找对应最近点集{qi},使得‖qi-pi‖最小。③根据{pi}和{qi},求得旋转矩阵R和平移矩阵T。④使用R和T对源点云P进行变换,得到新的点云P′,同时得到新的对应点集{p′i}。⑤计算新点集{p′i}和目标点集{qi}的距离误差d。⑥k为迭代计算次数,dk为第k次迭代时得到的距离误差,如果|dk-dk-1|小于某一给定的阈值或者k大于预设的迭代次数,则停止迭代。⑦如果步骤⑥条件不成立,则将转换后的点云P′作为源点云返回步骤①进行下一次迭代。

ICP算法对于初始位置要求较高,容易陷入局部最优,因此有不少学者对此提出改进方法。传统的ICP算法采用两点之间的欧氏距离作为误差函数,容易产生错误匹配,导致陷入局部最优。点到面的ICP算法将源点云中的点到目标点云对应点所在平面的欧氏距离作为误差函数,其定义为

(2)

式中Ni——源点云法向于曲面较多的物体,这样定义能够减少错误匹配的情况发生,同时加快迭代收敛速度[29]。

由于植物枝叶结构交错复杂,金桔盆栽果实及叶片较小,容易出现无法找到足够的对应点或对应点寻找错误的情况,因此在花盆底部加放一个长方体盒子以提高配准精度。经过精配准后,将0°、60°、300°点云合并记为点云Pose0,将120°、180°、240°点云合并记为点云Pose3。最后将点云Pose3绕旋转中心轴旋转180°进行初配准,继续采用点到面的ICP算法配准到点云Pose0,最终得到完整点云。点云配准完成后会出现点云重叠和噪声,本研究通过体素下采样算法和统计滤波算法对点云进行简化和去噪。

1.4 果实识别

单幅点云图像的果实点云不够完整,点数较少,容易出现部分果实无法拟合识别的情况,经过多幅图像配准后的果实点云球形轮廓完整,更适合采用球形拟合的方法进行识别。本研究首先对植物点云进行欧氏聚类分割,然后基于RANSAC算法对聚类后点云团进行球形拟合分割出果实点云,最后统计识别结果,整体的果实分割识别流程如图3所示。

图3 果实识别流程图Fig.3 Flow chart of fruit recognition

植物点云在三维空间中以多个浮空的点云团的形式存在,为了有效检测果实并统计个数,需要先确定点云团的数量,再分别处理每个点云团,避免识别产生遗漏或分割错误[30]。因此首先采用基于距离的欧氏聚类算法将植物点云分割成多个点云团,再分别对每个点云团进行处理。

点云团可分为3类:不含果实部分的点云团、只含果实部分的点云团以及同时包含非果实部分和果实部分的点云团。果实轮廓与枝叶形状不同,因此在球形拟合时更容易对果实点云提取三维球体形状,不易对枝叶点云产生错误分割。对每个点云团进行球形分割,如果聚类中含有果实点云,即可拟合出相应的球形,获得其球心及半径。最后统计所有点云团所拟合出的球形个数,进行整株植物的果实计数。

采用RANSAC算法进行点云球面拟合,球形参数模型为

(3)

式中 (x,y,z)——球面点坐标

(xl,yl,zl)——识别出的第l个果实的球心坐标

rl——识别出的第l个果实的球形半径

分割出每个点云团中的果实点云,同时获得每个果实的球模型参数(球心Al(xl,yl,zl)和半径rl)。一个点云团中可能含有多个果实,因此多次拟合分割球形点云,直到点云团中剩余未拟合的点云小于设定值结束分割。根据所测量的果实半径,将球模型的半径范围设为0.005~0.017 5 m,内点到模型的误差阈值设置为0.006 m,分割出一个球模型最少需要点数为20。

在球形拟合过程中,会出现对同一个果实重复拟合出两个球模型的情况,即两个球形呈现包围关系,从外部只能看出半径较大者的球模型。因此本研究在拟合出球形之后,将当前球模型参数与上一个球模型参数比较,两者球心距离与较小球半径之和小于较大球半径,则判断两个球模型存在包围关系,将当前模型拟合结果视为错误识别结果,不保留此次拟合出的球模型,仅保留上一次拟合出的球模型作为识别结果。

为了对本研究的识别结果进行评价,采用查准率Pr、查全率Re和F1值对识别准确率进行评价。查准率为模型准确率,即识别正确的果实数量占总识别结果的比例,反映了模型对正样本的分类精度;查全率为识别正确的果实数量占实际果实数量的比例,反映了模型对正样本的识别能力;F1值为查准率和查全率调和平均值,为两者综合结果。

本研究还将计数结果与实际果实数量进行比较,计算平均绝对百分比误差MAPE和决定系数R2对产量估计的准确性进行评价。MAPE越小,模型性能越好,R2越大,表示模型预测越准确。

2 实验与结果分析

2.1 点云噪声去除

图4给出了一株金桔的0°点云去除噪声前后的结果,从图4a可以看到点云中存在较多离群点和其他噪声点。从图4b可以看到离群点以及叶片间的悬空点等噪声被去除,植物主体点云被保留,能够清晰地看到果实及叶片轮廓。

图4 0°点云去除噪声前后两个角度视图Fig.4 Results of removing noise points

在预处理时,会将形状纤细的枝干点云、形态复杂的叶片点云去除。由于枝干形状纤细,相机采集到的点数极少且误差较大,枝干点云分布离散,因此预处理时将枝干点云作为离群点而去除。对于形态复杂的叶片(例如卷曲或互相折叠遮挡的树叶),因为其不规则的形状导致相机无法获得其准确深度,点云数据杂乱且离散,因此容易在预处理中被去除。

2.2 点云配准

对一株盆栽金桔的点云数据进行配准,图5a为两片相隔60°点云的初始位置,其中红色为0°点云,绿色为60°点云,白色直线为计算出的旋转中心轴。图5b为60°点云经过初配准和精配准之后与0°点云重合的结果。图5c为6片点云经过配准融合的结果。经过配准之后水果点云轮廓更加完整,同时完整的植物点云也能够更全面地展示出水果的分布状态。

图5 点云配准结果Fig.5 Results of point cloud registration

2.3 水果识别

将识别结果与真实值进行对比,如表1所示,总计识别查全率为85.91%,查准率为79.01%,F1值为82.32%,MAPE为16.02%,R2为0.97。

图6为金桔识别结果,其中图6a和图6b分别为一株金桔的实际彩色图像和果实拟合结果。图6c和图6d分别为不同遮挡情况下果实识别效果,对于在单幅图像中果实被完全遮挡时,本文方法融合多角度信息能够有效识别出果实。图6e和图6f为果实相邻或成簇状态下的识别效果,果实成簇且互相遮挡严重时,本文方法也能够将不同果实区分识别。图6g为深绿色果实识别效果,受光照影响且果实本身颜色较深,与背景颜色相近,本文方法从空间形状特征出发将其分割识别。

表1 果实识别及计数结果Tab.1 Fruit recognition and counting results

图6 果实识别结果Fig.6 Results of fruit recognition

果实识别过程中,存在少量的误识别和漏识别的情况。出现误识别的情况是在采用RANSAC算法进行球形拟合时,叶片点云足够满足该算法的相关条件,从而错误拟合出球形。出现漏识别的原因主要为果实点云点数过少或形状不规则,无法满足RANSAC算法所设置的拟合条件。一般有以下3种情况:处于枝叶深处的果实被严重遮挡,从相机采集的所有角度都很难获取足够的点云数据;果实本身形状极小,采集到的点云较少且边缘点误差较大,预处理时容易被当作噪声去除;金桔果实空间分布较为分散,果实与叶片互相接触遮挡,存在少量果实点云经过配准和滤波后,球形轮廓不完整或不规则导致无法拟合出球形。

将本文结果分别与文献[12]和文献[13]结果对比。文献[12]中采集多幅RGB图像和深度图像,基于颜色和圆形轮廓特征对彩色图像处理,然后将识别结果映射到点云中,通过对齐正反两面点云识别重复计数的果实,最终实现整棵树的果实识别和产量估计,总计识别查全率66.8%,查准率87%,产量估计MAPE为18%。基于颜色信息能够有效去除大量的枝叶背景,同时也会去除未成熟的青色果实。因此该方法对于去除枝叶背景后剩余的成熟红色果实识别效果较好,查准率略高于本文结果,但对于青色果实会产生大量的漏识别,查全率远低于本文结果。文献[12]中对绿色果实识别效果较差,且容易将距离较近的果实错误识别为重复果实,而本文方法能够更准确地获得整株植物上青色果实的空间分布信息,识别准确度更高,因此在总体计数结果中精度更高。

将文献[13]方法应用于本文的数据中,和本文方法对比结果如表2所示。文献[13]通过激光雷达获取植物点云,基于颜色滤波去除背景获得柑橘点云,然后采用改进的ISODATA算法对点云进行聚类。本文将文献[13]中的颜色滤波方法和改进的ISODATA算法用于配准后的完整点云中,并修改了相应的参数使其更适用于本文数据。由于颜色滤波方法会将大量绿色果实去除,剩余黄色果实较少,因此识别查准率较高,但大量绿色果实无法识别,且文献[13]中的算法更适用于生长比较分散的大果实,对于本文中存在成簇情况较多、果实较小的识别效果较差,最终查全率、F1值、R2都低于本文方法。结果表明,本文方法对于果实识别和产量估计能够提供可靠的指导。

表2 果实识别与计数结果对比Tab.2 Comparison of fruit identification and counting results

在处理器为IntelR CoreTM i7-8550U CPU,1.80 GHz×4,内存8 GB的计算机硬件配置条件下,本文方法识别一盆金桔果实并计数的耗时约90 s,其中数据预处理耗时较长,约60 s。考虑到本文的应用背景主要是面向植物的产量预估以及果实生长分布状态的估计,对实时性的要求远低于面向机器采摘的果实识别方法,识别一株金桔果实所用时间基本可以满足应用需求。同时随着硬件技术的发展,处理时间有进一步降低的空间。

3 结论

(1)为解决整株金桔盆栽果实识别与总体计数的问题,提出了一种基于点云配准的盆栽金桔果实识别与计数方法。通过RGB-D相机获取植物的多角度点云数据并进行预处理,采用随机采样一致性算法对转盘点云进行圆柱拟合获得旋转中心轴参数,再根据旋转中心进行初配准,避免了增加辅助物体使配准步骤更复杂耗时的情况。采用点到面的迭代最近点算法完成精确配准得到植物完整点云。最后采用欧氏聚类和基于随机采样一致性算法的球形拟合方法分割识别果实,不依赖颜色信息,依据三维球形轮廓特征进行识别,适用于在生长期还未成熟的青色果实识别,对产量估计和后续的培育及销售定价等都有重要意义。

(2)本研究对9株金桔(共149个果实)进行果实识别,总计识别查全率为85.91%,查准率为79.01%,F1值为82.32%。将果实计算总量和真实值比较,决定系数为0.97,平均绝对百分比误差为16.02%,该方法能够有效识别被遮挡或成簇的绿色果实,同时可进行整株果实的识别和计数。

猜你喜欢
金桔云团计数
两个基本计数原理A卷
我是“金桔王”
金桔
古代的人们是如何计数的?
秋临
葡萄牙现明亮橘色云团似握着火球的拳头
借助激光呼风唤雨
年桔止咳又化痰
冬月啖雅桔