谢忠红,黄一帆,吴崇友
(1南京农业大学人工智能学院,江苏 南京 210095;2农业农村部南京机械化研究所,江苏 南京 210049)
油菜Brassica napus L.角果是决定油菜产量的关键因子[1-2]。在检测油菜角果表型参数时,利用三维重建技术构建精确的三维形态模型,对于作物植株特征的获取具有重要的意义[3-4]。马保建等[5]提出了基于骨架点的重建枣树枝干算法,该算法缩短了枣树重建时间且降低了配准误差,但该算法适用于骨架明朗的中大型点云。Xu等[6]提出一种结合RANSAC[7]、ISS(Intrinsic shape signature)[8]和3DSC (3D shape context)[9]的ICP[10]改进算法,在保持较高配准精度的同时,具有较快的配准速度,但是该算法也存在提取特征点不足等问题。徐胜勇等[11]通过对ICP算法过程中近邻搜索参数的改进,对已知大概旋转角度的2个视角下的点云进行2次匹配,并采用KD-tree[12]加速,配准误差控制在0.48 mm,配准时间均小于147 s,为后续对油菜点云配准的改进奠定了基础。本文以成熟期油菜角果分枝为研究对象,提出一种基于ISS-LCG组合特征点的油菜分枝点云配准方法,以期实现不同视角下油菜分枝点云的快速精确配准。
使用双目深度传感立体相机ZED系列采集油菜分枝的原始点云,对油菜点云进行数据处理,处理流程如图1所示。首先进行预处理,去除背景噪声及冗余信息;然后构建ISS-LCG组合特征点,使用三维形状上下文特征(3D shape context,3DSC)对组合特征点进行特征描述;在确定最佳点云配准视角后,使用RANSAC+ICP两步点云配准法对不同角度下的油菜分枝点云进行粗配准和精配准。
图1 点云处理流程图Fig.1 Flow chart of the processing of the point cloud
2021年5月13日至5月17日于江苏省泰州市油菜试验田采集成熟期油菜植株,品种为‘扬油6号’,图像采集地点为南京农业大学人工智能学院视觉实验室。油菜点云采集方法与步骤(图2):在自然光线下,将油菜分枝插入花盆中央,花盆中心点与转盘中心重合;将双目深度传感立体相机放置在高度为22.7 cm的相机架上,相机架的中心点距离转盘圆心143.6 cm。拍摄方法:从6个视角(0°、30°、60°、90°、180°、270°)分别拍摄油菜分枝的点云图像(图3),以PCD格式保存,每个油菜分枝存储6幅图像,共40个油菜分枝,合计240幅图像。
图2 使用ZED相机采集的油菜分枝点云Fig.2 Point cloud of rape branch collected using ZED camera
图3 3号油菜分枝不同角度彩色图Fig.3 Color view of rape branch No.3 at different angles
硬件平台:戴尔计算机(i5-10210U主频1.6 G HZ 2.11G HZ处理器、8 GB内存、NVIDIA GeForce MX230 471.41显卡)。操作系统为Windows 10,软件平台:Visual Studio 2019集成开发环境和点云库(Point cloud library,PCL)11.0。
ZED相机获取的油菜分枝点云包含大量背景噪声,需进行预处理。下面以3号油菜分枝0°点云为例,介绍预处理流程(图4)。直通滤波[13-14]:根据油菜的三维点云坐标信息,设置空间x、y方向阈值范围分别为(−0.05m,0.26m)、(−0.15m,0.50m),大于阈值的视为无用点去除,可很好地去除附近杂物的噪声信息[15],结果如图4b所示。为去除黑色幕布点云,使用HSV阈值分割方法[16]滤除阈值区间在[240,18,4]~[255,45,4]的黑色点云,分割结果如图4c所示,油菜点云信息保留完整。因光照等外界因素或相机测量误差等原因,会出现小区域噪点[17]。使用StatisticalOutlierRemoval滤波器[18]剔除油菜点云的离群点,设置K近邻搜索点个数为15,标准差倍数为1,统计滤波前后效果差异(图4d)。为了加速点云数据处理速度,需降低点云密度[19-20]。利用体素滤波器[21]对油菜点云进行下采样,将栅格尺寸设置为0.002f,能够最大程度地保留油菜点云的几何结构信息,下采样结果如图4e所示。
图4 3号油菜分枝0°点云预处理流程Fig.4 Pretreatment process of 0°point cloud for rape branch No.3
在点云配准过程中,通过特征提取算法提取点云特征点,基于特征点进行配准,能显著减少点云配准时间,但如果提取特征点不足,也会大大增加配准误差;如果随机选取部分油菜点云作为关键点代替原始点云配准,存在关键点可能过于集中于某处,导致代表性不足、点云配准效果随机性较大的问题。本文尝试将上述2种方法相结合,用后者选取的部分油菜点云作为关键点,扩充前者提取的特征点,构建组合特征点进行特征描述,可以提高配准精度,降低配准失败的可能性。
1.3.1 ISS提取油菜点云特征点 首先利用内部形状描述子ISS提取点云特征点,该算法的基本步骤如下:
对点云P中每个点 pi建立一个局部坐标系,并对所有点设定一个搜索半径r,本文设置为0.005;确定点云P中每个以点 pi为中心、 r为半径区域内的所有点,并计算这些点的权值wij;计算每个点pi协方差矩阵 cov(pi);计算每个点 pi的协方差矩阵cov(pi)的特征值,并按从大到小的顺序排列;设置阈值ε1和ε2,通常值不超过1,满足的点即为关键点,本文将ε1设置为0.45, ε2设置为0.55。重复上述步骤,直至完成所有的点。其中,wij和cov(pi)表达式为:
式中, pj为 点云P中的除 pi之外的点。
以4号油菜分枝为例,油菜点云通过ISS方法提取出的特征点如图5a所示。
图5 4号油菜分枝组合特征点提取Fig.5 Extraction of combined feature points from No.4 rape branch
1.3.2 LCG选取关键点LCG[22]是目前应用广泛的伪随机数生成算法,其基本思想是通过对前一个数进行线性运算并取模从而得到下一个数,具体见公式(3):
式中,a为乘数,c为增量,mod为取余,m为模数。为保证生成的随机数有较好的均匀性,令m=2k。
虽然LCG常用来生成随机数,但因为生成的随机数基本符合均匀分布,且出现随机点集中于某一区域的概率可以忽略不计,因此生成的数又被称为“伪随机数”,选取数字的方式又被称为“伪随机选取”。以4号油菜分枝为例,通过LCG伪随机选取的点的分布情况如图5b所示,因其同样具有很强的特征代表性,因此将其命名为“关键点”。
当选取的关键点占整个点云的比例较大时,配准精度变高,但配准时间变长;反之,配准精度降低但配准时间缩短。因此,需要确定选取关键点数的最佳比例,以平衡配准精度和配准时间。
在确定组合特征点后,采用3DSC算法对其进行特征描述。3DSC是一种从2DSC扩展而来的算法,基本思想为计算2个点集中每个点的上下文信息,比较其相似性,得到一个最近似的排列,并在2个点云中找到对应点。本文综合油菜点云中点与点之间的最小距离,经多次试验后确认在设置3DSC球面最小半径为0.025m、邻域点半径搜索为0.030m时,试验效果最好。
因不同视角下油菜点云含有的信息不同,所以选取不同视角的油菜点云进行配准时得到的效果也不同。因此需要确定视角该如何选取。为了增强点云配准视角选取的科学性与说服力,本研究拍摄选取6个视角(0°、30°、60°、90°、180°、270°),具体见图6。油菜点云分别以30°、60°、90°、180°为间隔进行配准。下文将按点云视角由小到大的排列位次命名该视角下所得点云,例如60°视角下所得点云命名为“点云3”。
图6 6个视角下的3号油菜分枝点云图Fig.6 Point cloud images of rape branch No.3 from six perspectives
为了实现结构复杂的油菜分枝角果点云的精准配准,本文使用改进后的RANSAC方法作为粗配准方法,然后采用ICP算法进行精配准,点云两两配准流程如图7所示。
图7 基于组合特征点RANSAC+ICP点云配准流程图Fig.7 RANSAC+ICP point cloud registration flow chart based on combined feature points
1.6.1 改进的RANSAC粗配准方法为了给精配准提供良好的初始位置,避免配准陷入局部最优解,粗略估计源点云P到目标点云Q的变换矩阵。再通过特征描述子的最近邻匹配,找出采样点及其对应点时,可通过施加低级几何约束降低RANSAC配准过程的迭代次数。具体就是分别对P、Q点云采样点形成的虚拟多边形的边长之间的比率计算相异向量,然后与设定的阈值比较。将特征对应采样的点表示为(pi, qi)对象多边形的边长如下所示:
同样的方法计算场景多边形的边长dq,i。
式中,δ为P、Q点云形成的虚拟多边形之间的相异向量。
如果2个多边形完全匹配,则δ=0。预期最大偏差低于阈值tpoly:
综合考虑使用的相机质量、点云质量等因素的影响,经多次试验验证,将阈值设置为0.30时,效果最佳。
1.6.2 ICP精配准算法基于2个视角相差较小的油菜点云,采取适用范围最广的ICP算法进行多次迭代的最近邻搜索,逐渐逼近最优结果。采用KDtree建立高维索引树形数据结构,加速2个点云的对应点匹配进程[6]。本试验中设置对应点云最大距离为0.05,最大迭代次数为350次。
以3号油菜分枝0°点云为例,去除背景后,点云从1597771个点下降为10120个点,然后分别通过统计滤波和下采样,去除噪点及冗余信息,再次精简油菜分枝点云,减少点数约37.86%,对比原始点云减少了99.60%,这些工作为点云配准奠定了良好基础。以3号油菜分枝为例,试验证明,通过统计滤波和下采样处理后的点云配准误差为0.0715mm,配准时间为13.873 s,与仅统计滤波和仅下采样处理的相比,点云配准效果与效率有明显提升。
预处理后的油菜分枝,点云的点数在[1187,9 727]内,将选取的关键点占整个点云的比例设定为m,m∈(0,1)。由于LCG存在一定的随机性,为增强试验说服力并提高试验准确度,当m确定时,对选取的分枝进行3次试验,以平均值确定最终配准误差和配准时间。
随机选取2、3、4、5、6、10、13、15、18、22号10枝油菜分枝,拟合m在(0,1)区间内以0.1为间隔、不同比例下配准误差和配准时间的变化曲线,结果发现当m∈(0.30,1)时,配准精度基本保持不变而配准时间呈指数形式增加,因此将关键点选取比例从(0,1)缩减为(0,0.30]。分别拟合m在区间(0,0.30]以0.01为间隔、不同比例下配准误差和配准时间的变化曲线(图8)。在(0,0.30]区间内,配准误差变化区间为1.03×10−4∼1.99×10−4m,配准时间变化区间为0.125~17.508 s,都属于可接受范围。因为配准效果的选择需衡量配准误差和配准时间,而肉眼无法判断m取何值时配准效果最佳,因此需对其进行数据分析,确定一个合适的评价标准。
图8 m∈(0, 0.30]时10枝油菜分枝平均配准误差和平均配准时间曲线Fig.8 Mean registration error and mean registration time curve of 10 rape branches at m∈(0,0.30]
为量化配准效果,对决定配准效果的指标配准误差(eS)和配准时间( tS) 进行评分。eS评分标准见式(7),tS评分标准见式(8),综合评分S见式(9)。因油菜分枝配准试验中,配准精度更加重要一些,因此将平均配准误差指标权重(A)设为0.55。
式中,em为不同比例下的平均配准误差;eb为(0,0.30]比例下的最优配准误差。
式中,tm为不同比例下的平均配准时间; tb为(0,0.30]比例下的最优配准时间。
综合评分生成总评分,当选取比例为0.26时,S为最高分(93.40628),因此确定选取关键点的最优比例为0.26。
首先以30°为间隔,分别配准点云1和2,点云2和3,点云3和4;以60°为间隔,分别配准点云1和3,点云2和4;以90°为间隔,分别配准点云1和4,点云4和5,点云5和6;以180°为间隔,分别配准点云1和5,点云4和6。以3号油菜分枝为例,配准角度分别间隔30°、60°、90°和180°时,配准误差分别为0.063、0.615、1.231和1.287 mm。配准结果表明配准点云相隔度数越大,配准精度越低,甚至出现配准错位、配准失败的情况。所以最终在以30°为间隔进行两两配准的3对点云中进行优选。配准效果见图9。
图9 3号油菜分枝点云配准前(a)、后(b)效果Fig.9 The effects of No.3 rape branch before(a)and after(b)point cloud registration
为验证算法的有效性,任取20对处理后的间隔30°的油菜分枝点云进行配准试验,表1中的点云数量为20对油菜分枝点云的平均点云数量。研究对比了基于ISS特征点、LCG关键点和ISSLCG组合特征点使用RANSAC+ICP两步配准法进行油菜点云配准的配准情况,结果如表1所示。本文提出的基于ISS-LCG组合特征点,使用RANSAC+ICP两步配准法,相较于只使用ISS特征提取算法和只使用LCG选取关键点算法,虽然配准时间因为特征点和关键点的增多而有了不同程度的延长,但是配准精度分别提升74.0%和53.5%。由此说明组合特征点,加大了对配准过程中内点选取的约束程度,更能够代表原始点云,配准精度大大提高。
表1 点云配准算法性能测试结果Table 1 Performance test results of point cloud registration algorithms
荆路等[23]提出的基于尺度不变特征变换(Scale-invariant feature transform,SIFT)特征点结合采样一致性初始配准(Sample consensus initial aligment,SAC-IA)和ICP的点云配准方法,将方法应用到本文数据中,并与本文方法对比(表1)。本文算法与之相比极大地节省了配准时间,提升了配准效率,但若要应用在实时性要求高的情境下,仍存在进一步改善的空间。
本研究采用ZED相机完成油菜分枝的多角度点云采集,并通过点云预处理、构建ISS-LCG组合特征点、组合特征点描述、确定最佳点云配准视角以及两步点云配准等步骤实现了油菜分枝多角度点云的自动配准,主要结论如下:
1)提出了基于ISS-LCG组合特征点的点云配准方法。将通过ISS特征提取方法提取的油菜分枝点云特征点和使用LCG方法伪随机选取的占比为0.26的关键点进行组合后构成油菜分支的组合特征点;使用3DSC方法对组合特征点进行特征描述后,基于RANSAC+ICP两步点云配准法进行快速配准,点云配准精度提升了50%~70%。
2)经试验验证同一个油菜分枝,间隔30°时点云的配准效果最佳,配准误差平均为0.066mm。