刘 慧 刘加林 沈 跃 潘成凯
(江苏大学电气信息工程学院, 镇江 212013)
近年来,随着农业自动化、信息化的发展,植株的三维体特征在检测分割中越来越重要,而三维点云模型也逐渐成为国内外研究机构的热点和重点[1-2]。其中图像分割由二维的彩色信息、灰度信息、纹理特征等发展到三维空间的基于距离、密度、法线等离散点的模型,大大丰富了图像分割的内容和方法。Kinect V2传感器利用飞行时间的主动光源技术将同步彩色图像和深度图像融合获得彩色点云,其优良的性价比和实时性在农业自动化中有着广泛的应用[3-9]。
在农业植株的靶标检测和变量喷雾的不断发展过程中[10-12],目标物体的分割成为首要解决的问题。ITTI等[13]提出了自下而上的显著性模型,该模型在不同的尺度空间将图像分成低层次的属性,获取显著性特征图突出前景,但并不适用于三维空间的分割。ACHANTA等[14]提出的超像素分割方法,能形成紧凑且均匀的超像素块和较高的边界依附性,但会产生一定的过分割问题。PAPON等[15]提出,通过结合显著性特征图和超像素块,在高显著性区域获得更小的超像素块,在低显著性区域获得较大的超像素块,相对于传统超像素分割提高了一定的精度和快速性。文献[16]提出基于凸性的区域生长来分割粘连物体,但分割耗时较长,对复杂场景的分割效果并不理想。
本文在前人研究基础上,应用Kinect 二代传感器获得彩色图像和深度图像,基于显著性特征图和深度信息相融合的方法获取目标区域,最终得到目标物体。
实验地点选择室内,选择仿真绿色植株作为仿真对象。实验分两组(图1),光照环境均为100 lx,第1组目标为单植株实验,取植株高1.8 m、冠层直径1.4 m。第2组目标为多植株实验,取植株高度分别为1.8 m和1.6 m,植株冠层直径分别为1.4 m和1.2 m。使用Kinect V2传感器提供的Kinect for Windows SDK[17]结合OpenCV库和点云库(Point cloud library, PCL)[18]获取彩色图像和深度图像。
图1 Kinect植株彩色图像和深度图像Fig.1 Kinect-based color and depth images of plant
1.2.1CIELab颜色空间
图像的颜色空间有很多种模型[19-20]。其中RGB模型常用于图像采集和设备对色彩空间的显示,但相对于人类视觉感知的方式有很大的差异性。并且R、G、B3个颜色通道之间有着很强的相关性,两颜色之间的色差并不利于对目标物体颜色相似度的划分,对显著性区域的分割有很强的干扰性。而CIELab是一种颜色相互独立的色彩空间,与设备无关,是基于生理特征的颜色系统,并且三颜色通道之间有着很好的独立性。CIELab通过计算三维空间中两点的欧氏距离ΔE来表征两个颜色之间的视觉感知差别,能很好地用数字化的方法来描述人的视觉感应。计算公式为
(1)
式中L2、L1——颜色空间的亮度
a2、a1——颜色空间从红色到深绿的对立维度
b2、b1——颜色空间从蓝色到黄色的对立维度
Kinect V2传感器通过自带的SDK获取RGB图像。而RGB颜色空间不能直接转换为CIELab颜色空间,必须先将RGB颜色空间映射到XYZ坐标空间之后,再将其转换到CIELab颜色空间。RGB颜色空间与XYZ坐标空间转换关系为
(2)
式中X、Y、Z——图像坐标值
R、G、B——图像颜色分量
XYZ坐标空间转换为CIELab颜色空间的转换公式为
L=116f(Y/Yn)-16
(3)
a=500[f(X/Xn)-f(Y/Yn)]
(4)
b=200[f(Y/Yn)-f(Z/Zn)]
(5)
(6)
式中Xn、Yn、Zn——RGB颜色空间到XYZ坐标空间转换矩阵系数,取值分别为0.950 456、1.0、1.088 754
t——坐标空间数值与坐标空间转换矩阵系数的比值
L、a、b——CIELab颜色空间分量
1.2.2显著性特征图
基于ITTI等[13]提出的高斯金字塔模型,将图像分解为9层高斯金字塔,形成多尺度的图像。对多尺度图像分别进行亮度特征和方向特征的提取。同时将设备获取的RGB颜色空间图像转换为CIELab颜色空间图像后,对图像进行高斯低通滤波,然后求原图像与滤波图像的残差提取颜色特征。将3种特征值分别进行归一化处理,并通过高斯差分计算获得中心-周边围绕的金字塔模型,再进行多尺度融合后获得3幅分别基于亮度、方向、颜色的特征图。最后通过加权平均将3幅显著性特征图融合成一幅显著性特征图。
1.2.3显著性点云
通过Kinect V2实时同步获取RGB彩色图像和深度图像。将获取的RGB彩色图像转换为显著性特征图,并利用Kinect V2自带的开发包计算相机参数,将获取的深度图像和显著性特征图同步对齐,结合点云库生成显著性点云图像。并可视化显著性点云图,用强度表示点云图中的显著性特征值,显著性点云图中亮度越大的区域,代表越感兴趣的目标区域,称为前景目标。
1.3.1Mean-Shift算法
Mean-Shift算法[21-23]又称均值漂移算法。其特点就是把支撑空间和特征空间在数据密度的框架下综合起来。对图像来讲,支撑空间就是体素的坐标点,特征空间就是显著性特征值,2个空间结合后的数据点就是一个4维向量(x,y,z,f)。在该框架下不断进行迭代计算,获得的向量必定收敛于数据局部密度最大的点。其中最大密度点为:在给定三维空间中的n个样本点中,随机选取i=1,2,…,n中任意一点k,距离该点r的球形空间中,距离最近、显著性特征值最相似的点。其密度估计值为
(7)
(8)
F=f1-f2
(9)
(10)
式中Ddist——两点间欧氏距离
F——两点间显著性特征差值
d——空间显著性特征距离
ω——权重比M——密度估计值
α——常量
f1、f2——对应点显著性特征值
1.3.2超体聚类和LCCP算法
超体聚类[24-25]是一种自下而上的图像分割方法。首先以八叉树对点云进行划分,获得不同点团之间的邻接关系。然后对这些点团基于颜色、法线和空间距离作为相似性法则进行区域生长,获得超体素块。
局部凸包连接(Locally convex connected patches, LCCP)算法[26]是基于局部凹凸性的聚类算法。该方法不依赖于点云的颜色,只利用了空间信息和法线信息。通过计算邻接体素块中心的法向量夹角来判断凹凸性,并将凹凸性作为相似性法则进行基于凸边的区域生长。假设有两相邻体素块,其质心分别为pi(xi,yi,zi)和pj(xj,yj,zj),计算两质心之间的单位向量q与两法向量的夹角βi和βj,如果βi小于βj则为凸,否则为凹。如图2所示。
(11)
(12)
(13)
式中pi、pj——两体素块质心
ni、nj——法向量
βj、βi——单位向量与法向量的夹角
图2 体素块连接凹凸性判断Fig.2 Determination of concavity and convexity of voxel block connection
基于凹凸性的分割算法在针对树冠和树干以及一些粘连性物体分割具有显著的效果。对比基于颜色特征和密度特征的分割,局部凹凸性能快速准确地区分同一植株的不同形状、不同分布的组织器官。但同时也会陷入局部最优,产生明显的过分割现象,造成大量的计算浪费。本文加入的显著性点云,在突出背景和前景的同时,加强了超体聚类过程中同一组织的相似度。因此加入了显著性点云的LCCP算法能够在避免过分割的情况下高效地分割出植株粘连的不同组织部分。图3b中在稠密的树叶部分,显著性点云弱化了树叶之间的边缘信息,用高亮的像素值代替了原点云的纹理信息,增加了同类物体组织的相似度,将树冠和树干这一具有明显凹凸性特征的不同组织分割出来。而图3a,虽然也对树干和树冠进行了聚类分割,但树冠部分出现了明显的过分割现象,大大增加了进一步提取树冠实现变量喷雾的难度。
图3 植株点云粘连组织分割Fig.3 Plant point-cloud adhesion tissue segmentation
1.3.3Nanoflann算法
Nanoflann算法[27]是从内存和编译的角度来对近邻搜索进行优化。其次它还可以在近邻搜索前直接定义目标点云的最小包围盒,避免了近邻搜索中的重复计算,对不同类型的数据兼容性更高,适用性更广泛。本文在超体聚类搜索近邻点生成超体素块的过程中,针对Nanoflann算法加速的SSV超体聚类和基于Flann近邻搜索算法的SLIC聚类进行了快速性对比。通过对同一目标物体进行不同分辨率的下采样稀疏,获得不同点云数量的目标物体,然后进行对比分析,结果如图4所示。同一物体在不同稀疏度即不同点云数量的情况下,Nanoflann加速算法下的超体聚类相比与传统Flann近邻搜索的SLIC聚类,快速性得到了很大的提升。
图4 Nanoflann和Flann算法快速性对比Fig.4 Comparison of fastness between Nanoflann and Flann algorithms
1.3.4SSV-LCCP算法流程
本文提出的显著性植株点云超体聚类分割(Supervoxels based on salient point cloud-locally convex connected patches, SSV-LCCP)算法步骤如下:
(1)Kinect V2获取彩色图像后,将图像RGB颜色空间转换为CIELab颜色空间,并计算显著性特征值,构建颜色特征图。同时根据Itti算法获得亮度、方向特征图,通过加权平均融合这3幅特征图,构建多尺度下的显著性特征图。
(2)同步对齐显著性特征图和深度图像[21],融合获取显著性点云。
(3)八叉树[28-29]初始化点云,构建种子点云的K-D树[30]搜索方法。利用Nanoflann算法加速近邻搜索,并基于Mean-Shift算法,找出八叉树网格中满足阈值条件的局部密度最大点作为种子点。
(4)通过式(8)中获得的空间显著性特征距离d作为阈值,搜索种子近邻点,并对种子点进行最大递归深度的区域生长。当迭代次数m大于最大递归深度时,迭代终止,获得显著性超体素。其中最大递归深度由八叉树的分辨率和种子点分辨率计算得到,其计算公式为
(14)
式中Mdepth——最大递归深度
R——八叉树分辨率
δ——比例系数
图5 SSV-LCCP点云分割算法流程图Fig.5 Flow chart of SSV-LCCP point cloud segmentation
(5)将各超体素块重心作为顶点,各重心之间特征距离为边,构建邻接图。判断各体素块的凹凸性,并基于凸性的生长准则对超体素块进行LCCP再次聚类。
SSV-LCCP算法程序流程图如图5所示。
经过实践证明,本文算法可以具体应用于对目标植株的变量喷雾。本文通过Kinect V2对具体目标植株进行点云分割提取后获得单一树冠的点云目标[31],并根据提取的树冠具体目标控制长杆喷头电磁阀开关,对目标物体进行变量喷雾。如图6所示,图6a为实验小车平台,搭载了可控的带电磁阀喷头、用于检测目标植株喷雾区域的Kinect V2传感器、控制系统、药箱、驱动轮、喷杆。图6b为实验全景图。图6c为提取的树冠部分,为变量喷雾的主体目标,其余部分不进行喷雾。图6d为喷雾实验现场图,只有顶部正对树冠部分有水喷出,底部两个正对树干部分喷雾电磁阀喷头关闭。
图6 目标植株的变量喷雾实验Fig.6 Variable spray experiment of target plant
Kinect V2相机获取同步彩色图像并转换为显著性特征图。由图7可以看出,显著性特征图高亮区域突显了前景目标,简化了复杂场景。
图7 植株显著性特征图Fig.7 Salient pictures of plant
对显著性特征图和深度图像进行同步对齐融合,获得显著性点云。由图8可以看出,显著性点云颜色越亮的区域显著性特征值越大,被识别出的优先级越高。对该区域进行下一步超体聚类时也能更好地保护目标区域的边界属性。
图8 植株点云图Fig.8 Point clouds of plant
对获取的显著性点云进行超体聚类。由图9可以看出,原始点云的超体素块(图中多边形区域)杂乱没有规则,而显著性点云的超体素块更加趋于正方体(图中更加趋近于正方形区域)。由此可看出显著性点云超体素相较于原始点云在相同的体素分辨率下拥有更加规则的体素块和更好的边界性。
图9 植株超体聚类图Fig.9 Supervoxel clusters segmentation of plant
图10 植株LCCP聚类图Fig.10 LCCP clusters segmentation of plant
经过超体聚类后,对超体素块进行再次LCCP聚类,获得最终的聚类图像。图10a、10c所示为传统基于凸性的超体聚类(Simple linear iterative cluster- locally convex connected patches, SLIC-LCCP)的结果,图10b、10d为本文SSV-LCCP聚类效果。其中图10a相对于图10b单植株生成的树冠部分产生了多处过分割,图10c相对于图10d多植株部分的树冠与背景墙和多植株树冠部分均产生了一定的过分割。因此本文算法在显著性区域边界部分有更好的收敛性,分割效果更好。
2.2.1边界召回率
边界召回率在图像中用来评价图像边界分割的准确度。本文通过计算(2g+1)2范围内目标物体超体素的获得边界占真实目标物体的获得边界百分比来衡量超体素聚类的边界召回率,其中g=0.002 5h(h为体素块主对角线长度)。其计算公式为
(15)
式中TP——标记正确的边界
FN——标记错误的边界
G——超体素中标记的边界
S——超体素REC——召回率
其中召回率越高,代表点云超体素边界分割效果越好。
2.2.2过分割率
过分割率评价了属于同一物体的超体素中误分割的体素块占总分割体素块的百分比。其计算公式为
(16)
式中OV——误分割的体素数
OR——理论上正确分割的体素数
OS——过分割率
V——超体素中标记分割的体素
其中过分割率越低则目标物体的分割效果越好。
通过传统的超体聚类算法和SSV-LCCP聚类算法计算同一点云不同分辨率的边界召回率和过分割率来定量分析分割效果。从图11可以看出,同一目标物体在不同分割精度下(像素块数越多分辨精度越高),SSV-LCCP超体聚类的召回率和过分割率都要优于传统的SLIC-LCCP算法。其中本文算法召回率高出传统算法4%~5%,过分割率低于传统算法1%~3%,时间上传统算法在5 000个超体素块时耗时10.97 s,本文算法经过加速优化后降低至3.43 s。因此,本文改进算法,在边界召回率和过分割率上具有明显的优势,分割时间也相对较短。
为了验证本文算法的稳定性,对仿真植株每间隔30°获取一次点云图像,进行多次实验取误差平均值。表1为本文算法与SLIC-LCCP算法的误差对比分析表。由表1可见,在不同数量级的体素块分割聚类过程中,其召回率、过分割率和效率都得到显著改善。
图11 点云误差分析图Fig.11 Point cloud analysis diagrams
试验组算法试验次数体素数召回率/%过分割率/%时间/s200078.99.36.23传统算法50300083.110.77.23(SLICLCCP)400085.512.78.65单植株500086.715.110.97200084.78.52.25本文算法50300087.89.42.57400090.110.72.94500090.712.03.43试验组算法试验次数体素数召回率/%过分割率/%时间/s200076.38.96.07传统算法50300082.510.57.28(SLICLCCP)400086.112.48.49多植株500087.015.010.93200085.18.72.31本文算法50300088.39.72.63400090.910.62.92500091.211.93.47
(1)提出了基于显著性的超体素聚类分割算法。通过构建显著性特征图、融合深度信息构建显著性点云,提取明确的前景目标,大幅提高了分割效率和分割的准确性。
(2)在获取显著性点云后,在对目标植株进行超体聚类的过程中,基于Mean-Shift算法获取显著性区域优质种子点,能大幅减少稀疏区域的体素块,增加显著性区域的体素块。并且基于显著性点云的超体素块形状更加规则,具有更好的边界性,大幅提高了前景目标的边界召回率,降低了过分割率。
(3)在获取超体素块后,利用基于凸包的区域生长方法,能够很好地分割粘连物体,将树干和树冠从背景中分割出来的同时加以区分,分别用不同的颜色表示,方便后期变量喷雾的目标提取。
(4)利用Nanoflann算法对程序中近邻搜索进行优化加速,大幅提高了分割效率,其快速性也得到了显著提高。