APP下载

基于RGB-D相机的油菜分枝三维重构与角果识别定位

2019-03-06徐胜勇潘礼礼刘泰格周雨欣

农业机械学报 2019年2期
关键词:彩色图像角果分枝

徐胜勇 卢 昆 潘礼礼 刘泰格 周雨欣 汪 波

(1.华中农业大学工学院, 武汉 430070; 2.农业部长江中下游农业装备重点实验室, 武汉 430070;3.华中农业大学植物科学技术学院, 武汉 430070)

0 引言

角果对油菜产量起重要决定作用,它不仅是油菜吸收和积累光合产物的库器官,而且还是为种子发育提供营养的源器官。在油菜高产育种中,单位面积角果数是大面积生产中调节潜力最大的产量因素,对油菜产量具有特殊的意义。对油菜来讲,决定其产量形成的关键因子主要有单株角果数、每角粒数和千粒质量[1]。三维重建技术通过在计算机中对作物植株进行数字化建模,将植株外形和器官的三维信息存储在计算机中,使得对作物生长规律的定量化研究成为可能[2]。成熟期油菜分枝三维空间模型的建立,将为计算机考察角果提供重要的基础数据。

图1 使用Kinect传感器采集的油菜分枝图像Fig.1 Images of rape branch collected using Kinect sensor

快速、低成本、精确的三维扫描技术一直是计算机视觉领域研究的热点[3]。目前,应用于农业三维重建的设备和技术主要包括激光扫描仪、立体视觉、运动恢复结构和RGB-D相机等[4-14]。Kinect传感器是一种经典的RGB-D相机,能够同时获取目标的彩色、红外和深度信息,具有成本低廉、体积小巧的特性和优势,使得该传感器在现代农业信息领域获得了推广和应用[15]。3D点云配准是使用Kinect传感器进行三维建模的关键技术环节之一,可以将多个视角下的点云融合为单个参考点云[16]。众多学者对此进行了研究[17-18]。

人工方式测量成熟期油菜植株表型参数存在效率较低、主观因素强、可重复性差、损害植株、某些参数无法测量等缺点。YANG等[19]提出一种基于法向矢量的三维点云分割方法,使用3D扫描仪来获得角果期油菜植株的3D点云数据,为后续表型参数无损测量奠定了基础。该方法使用了价格昂贵的激光扫描仪,且后续的数据处理较为复杂,也无法将角果点云从植株点云中有效分割出来以进行后续处理。本文提出一种低成本、高精度的成熟期油菜分枝三维数字化解决方案。以一定角度(约90°)间隔旋转油菜分枝,使用Kinect传感器获取4个视角下的彩色图像和深度图像,进行图像预处理获取分枝的表面点云,并进行初始和精确两次配准,得到完整的分枝点云。然后对基于该三维重建方法得到的分枝点云进行聚类分割,得到单个角果并统计角果数量。

1 材料与方法

1.1 实验设备与信息采集

2018年5月于华中农业大学实验田采集成熟期油菜植株,品种为中双6号和大地55,人工将分枝剪下。在自然光照的室内进行图像采集,油菜分枝被固定在一个底座上,背后放置一块黑色幕布。使用Kinect 2.0传感器对油菜分枝进行拍摄,距离约60 cm,得到彩色图像(1 920像素×1 080像素)和深度图像(512像素×424像素)各10幅。每拍摄完一个角度,手动将放置角果的底座旋转约90°,直到完成4个角度的图像采集,图像采集示意图如图1所示。利用微软公司提供的软件开发工具包Kinect for Windows SDK 以及应用程序编程接口API,融合植株的彩色和深度图像,获得植株在相机空间坐标系中具有颜色信息的三维坐标数据,待后续处理。本文算法开发和测试的平台为通用计算机(酷睿6代i5 4200M主频2.5 GHz处理器、8 GB DDR3内存、250 GB三星固态硬盘、NVIDIA GeForce GT 755M 显卡)、Windows 7专业版SP1和VS 2013+OpenCV 3.2+PCL 1.80,以及Matlab 2017b。

1.2 单视角点云的获取

1.2.1彩色图像预处理

本研究中,除了油菜分枝其他都是背景。因为油菜分枝整体呈现黄绿色,而背景幕布主色调是黑色,因此先对分枝的彩色图像进行2G-R-B的阈值分割,从背景中初步分离出油菜分枝,得到分枝区域的掩模。使用该掩模与原彩色图像相乘,再对乘积图像的绿色通道进行Otsu阈值分割,最后得到准确而完整的油菜植株彩色图像。

1.2.2彩色图像对齐到深度图像

深度图像中保存有物体距离相机的距离信息,同时也有平面位置信息,可以通过对深度图像进行像素点操作来获取点云。通过调用Kinect for Windows SDK中的映射函数实现彩色图像和深度图像的对齐,建立彩色图像中的像素点与深度图像中的像素点的索引关系。根据预处理后得到的油菜分枝彩色图像,可以获得植株区域对应的深度图像。

1.2.3深度图像转换为3D点云

图像的度量单位是像素,而表型参数用物理尺寸单位(mm)度量。需要将深度图像的像素转换为三维空间坐标,即3D点云。依照Kinect成像原理,转换公式为

(1)

式中 (Xd,Yd,Zd)——点(u′,v′)对应的三维空间坐标

(u′,v′)——深度图像的任意一点像素坐标

Dd(u′,v′)——点(u′,v′)对应的深度

(fUIR,fVIR)——红外相机的焦距,取值为(371.5 mm,371.5 mm)

(uOIR,vOIR)——红外相机的光心坐标,取值为(256 mm,212 mm)

Kinect传感器在工作时有系统噪声和波动,导致每一幅深度图像的数据都不一样。连续静止拍摄 10 帧深度图像,叠加进行融合,可以有效消除波动和噪声,还可以初步补全点云数据。本文每帧深度图得到的植株点云大约有4 000个点,10帧融合后约40 000个点。

1.2.4点云滤波

多帧数据叠加的融合方法会在目标物体边缘产生部分离群点噪声。此外,因光照影响导致红外线不能正常反射到传感器,点云会出现小区域噪点。本文采用统计滤波器对点云进行滤波。使用KD-tree搜索算法查找点Pi(xi,yi,zi)(i=1,2,…,n)的空间临近点Pj(xj,yj,zj)(j=1,2,…,n),求解空间点Pi与其临近点Pj的平均距离di、全局距离平均值μ和标准差σ,计算公式为

(2)

式中k——临近点数

n——点云中点的数量

如果di在[μ-ασ,μ+ασ]范围之外,则该临近点被定义为离群噪声点,将其从点云集中去除。参数α和临近点数k取决于目标点云的数量和密度,本文实验测试发现k为50、α为1.0时滤波效果最好。

1.3 多视角点云配准

因角果和分枝之间的相互遮挡,单个视角下的点云不能完全呈现分枝的完整形态。同时,图像预处理环节也会造成局部信息的丢失。所以需要将多个角度下的点云进行配准,融合为一个整体。对结构复杂的分枝点云,直接采用经典ICP算法[20]进行点云配准,计算量大、耗时长、错误匹配率高,还可能陷入局部最小值。本文提出基于经典ICP算法的改进方法,总体和初、精配准的算法流程如图2所示。将第1个视角的点云命名为“角度1点云”,将相隔约90°的其他3个视角的点云依次命名为“角度2点云”、“角度3点云”、“角度4点云”。先将4个角度的点云依次两两进行初配准,再精配准。精配准得到的2个点云再次进行初、精配准,最后进行点云滤波,得到完整点云。

1.3.1点云初配准

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

经典的ICP算法中,假定点云P和X中各有NP和NX个点,ICP算法每次寻找两个点集之间的最近点,要求其欧氏距离的平方和最小,从而计算出点云间的刚体变换。矢量q=[qRqT]表示刚体变换,其中,qR表示最优旋转变换的单位特征向量,qT表示刚体变换平移向量,将该刚体变换应用到点云P。对应点云P中的每一个点,在点云X中寻找其最近点形成点对,计算全部最近点对的欧氏距离平方和的平均值

(3)

式中Xi——点云P在X中的最近对应点构成的坐标向量

Pi——点云P中的点构成的坐标向量

R(qR)——刚体变换的旋转矩阵

为了最小化f(q),分别计算点云P和X的重心,并得到两个点云的协方差矩阵ΣPX,计算公式为

(4)

(5)

式中 tr——矩阵的迹

I3——3阶单位矩阵

用单位四元树表示最优旋转矩阵qR=[q0q1q2q3],它与矩阵Q(ΣPX)的最大特征值对应,旋转矩阵的计算公式为

(6)

经过反复迭代,直至最近点对的欧氏距离平方和的平均值在给定阈值下收敛,完成配准。

计算点云的曲面法矢量和曲率,搜索曲率相近的点构成配对点对。在此基础上采用KD-tree建立高维索引树形数据结构,加速两个点云的对应点匹配进程,再采用ICP算法配准,这样就避免了ICP算法陷入局部最优解。若已知相邻视角的点云旋转角θ,可将某视角的点云P左乘以一个旋转矩阵,使该角度的点云绕Y轴旋转θ得到一个新点云PR,再进行配准。

(7)

处理之后,相邻两个角度的点云在方位上相近,可以有效加快配准的速度和成功率。本文中,在角度2配准到角度1时,θ为90°;角度3配准到角度4时,θ为-90°;角度3、4配准到角度1、2时,θ为-90°。

1.3.2点云精配准

ICP算法通过多次迭代的最近邻搜索逐渐逼近最优结果,非常耗时。此外, ICP算法还要求两个点云的初始位置相差不能太大。因此,如何构造参与ICP算法的有效初始点集是非常重要的。本研究中的初配准完成后,两个点云虽然没有很好地融合,但相互之间的距离相对较小。将点云P初配准到点云X中,初配准后P的新位置构成新的点云记为P′,同时得到2个点云之间的可匹配部分对应点的关系。对P′中的每一个非平面点,在X中选取与其曲率相近的点,搜索范围由对应点距离阈值Dp确定,由曲率相近的点构成配对点对。再使用KD-tree重组配对点对的数据结构,采用经典ICP算法搜索配准。在ICP算法中,对应点距离阈值Dp作为初始参数,其决定了配准过程的搜索范围。Dp设置较大,搜索不到配对点对导致无法进行初匹配;Dp设置过小,容易陷入局部最小值导致配准效果很差。在初配准中,两个点云相互距离较大,Dp应设置得较大,避免无法进行初匹配。在精配准中,Dp应依据初配准得到的误差测度f(q)进行设置,一般设置为初配准的0.01~0.1倍。

1.4 基于聚类算法的角果识别与数量统计

对于一幅油菜分枝的彩色图像,采用1.2节的图像预处理方法,得到分枝的二值图像。角果的果柄细长,其尺寸远小于角果。因此,定义边长为11的矩形结构算子,对二值图像进行形态学“开”运算,去掉角果的果柄,使得角果与主茎分离。在去除果柄的二值图像中,主茎是最大的连通域。遍历“开”运算结果中的连通域(8邻域),去除面积最大的连通域,即可得到只包含角果的彩色图像。将角果彩色图像中非0像素点对齐到分枝深度图像,得到只包含角果的深度图像。处理流程和中间结果如图3a所示。

使用本文的三维重建方法,将4个视角下的点云进行配准,得到分枝角果的融合点云。再使用欧氏聚类算法进行单个角果点云的分割,并以KD-tree的形式存储,分割效果如图3b所示。具体操作步骤为:

(1)输入KD-tree形式存储的角果融合点云,设置初始的聚类参数,设置聚类需要的最少和最多点数量(Nmin,Nmax),本文为(200,5 000),Dp用于设置聚类搜索的直径(本文为0.3 mm)。

(2)随机选取点云中的某个点P1(属于某个角果),搜索离该点最近的n个点,并计算这n个点到P1的距离,将距离小于阈值Dp的点归为Q类。

(3)在Q中除P1外找到任意一点P2,重复步骤(2)。

(4)直到没有新点加入,完成搜索。输出归类的点云,可得到单个角果点云。类的数量即为角果数量。

(5)测试最佳的聚类参数。

图3 角果点云的获取和聚类分割Fig.3 Acquisition of pod point cloud and segmentation with Euclidean distance clustering

图4 去除主茎的油菜分枝点云配准过程与结果Fig.4 Process and results of point cloud registration of rape branch without main stem

2 结果与分析

2.1 点云配准效果

使用 Kinect 传感器获得油菜分枝的彩色图像和深度图像后,融合图像中的 RGB信息和深度信息获得目标场景原始三维点云信息。图4展示了4个视角滤波后的分枝点云的配准全过程。从图4可以看出,不同视角下的点云在空间位置上存在较大差异。以角度1和角度2为例,初配准的融合点云(经典ICP配准结果)的对应位置非常靠近,但整体上显得较为杂乱,存在许多不切合的部位。经过精配准之后,整体上改进非常大,可以明显地观察到角果的原始形态。在角度1、2与角度3、4的精配准点云的再配准环节,也存在类似的现象。两个视角融合的点云经过再次初配准和精配准之后,再次进行点云滤波,最终得到了完整、精确的角果点云。

2.2 点云配准算法误差分析

为对点云配准算法精确度进行定量分析,通过计算配准过程中对应点间平均欧氏距离,对2个点云配准误差进行评估。2个点云之间的对应点距离越小,配准误差越小。本文对经典ICP 算法和本文改进的ICP 算法进行了比较,结果如表1所示。从表 1可看出,本文改进的配准方法相较KD-tree加速的 ICP 算法,配准误差从1.13 mm下降到0.42 mm,配准精度提升了62.8%。在计算时间上,本文算法相对于ICP 算法时间优化效果明显,从223.6 s下降到124.2 s。经过对2个品种油菜大量分枝的测试,配准距离误差均控制在0.48 mm以内,配准时间均小于147 s,因此本文算法在快速性和稳定性方面均得到了保证。由于ICP算法配准精度较低,导致离群点较多,在点云滤波环节被剔除的点数量大,最终得到的点云数量比本文算法少。

表1 点云配准算法性能测试结果Tab.1 Performance test results of two point cloud registration algorithms

2.3 角果识别与定位性能分析

为量化评估本文所提出角果识别和定位算法的准确性和稳定性,随机选取2个品种的4个油菜植株共29个分枝进行识别,分析角果识别结果和识别正确率,识别结果如表2 所示。由表2可以看出,本文提出的方法能取得较好的处理效果,整体识别正确率不小于96.76%。本文方法识别的角果数比实际数量小,主要有2个原因:①在图像预处理环节,某些小角果被误剔除。②在点云滤波环节,某些角果断裂成小块,误认为是离群噪声而被剔除。一般而言,如果减小旋转角度以更多的视角采集图像,误剔除的概率会减小,但计算时间会增加。

表2 角果识别与定位实验结果Tab.2 Experiments results of pod identification and positioning

3 结论

(1)提出了改进的ICP算法,通过对ICP算法过程中近邻搜索参数的改进,对已知大概旋转角度的两个视角下的点云进行两次匹配,并采用KD-tree加速,大幅度提高了配准精度和速度。

(2)对于成熟期的油菜植株,本文提出的基于RGB-D 相机的油菜分枝三维重建方法具有较高的稳定性、准确性和实时性,结合彩色图像分割和点云滤波处理,4个视角配准的点云精度较高,平均距离误差均小于0.48 mm,满足油菜角果三维重建的精度要求,单个角果的原始形态清晰可见。

(3)提出的方法可以有效分离单个角果,角果总体识别正确率不小于 96.76%。实验结果表明,该方法能够快速构建油菜分枝三维结构并进行高精度和高效的角果识别和定位。

猜你喜欢

彩色图像角果分枝
分枝大苗建园苹果树当年如何修剪
甘蓝型油菜种质群体6个农艺性状变异及相关性分析
一株吊兰
油菜新品种评比试验总结
基于油菜角果长度图像识别的每角粒数测试方法
基于二维直方图的彩色图像全局阈值分割方法研究
基于FPGA的实时彩色图像边缘检测
短截和摘心对矮砧苹果幼树分枝特性的影响
诸葛菜角果生长特性的研究
基于DCT—DWT—SVD的彩色图像安全存储方案