刘 慧 朱晟辉 沈 跃 汤金华
(江苏大学电气信息工程学院, 镇江 212013)
果园树干信息采集与处理是研究果园生态的重要内容,对果树喷雾[1-2]、树干直径测量[3-4]、植株信息分类[5]、病害监测[6]、冠层体积测量[7]等有重要作用。果树的种植布局较为规整,为果园机器人的导航提供了理想的环境。果园中还存在着一些非树木对象,如灯柱、树干支撑架、果农等,这些复杂且动态的环境影响了农业机器人的导航精度。因此,实时且精确的树木识别与定位就显得尤为重要。
近年来,许多国内外研究人员针对树木识别进行了大量的研究。CHEEIN等[8]通过提取树干的HOG特征,并利用SVM分类器进行树干识别,但无法区分圆柱状物体。SHALAL等[9]利用激光传感器测量树干宽度,并设定感兴趣区域(ROI),利用相机根据ROI内RGB颜色和边缘特征识别树干,而设定的ROI会包含树叶部分,导致误差增大。CHEN[10]利用摄像头获取环境图像,通过轮廓提取、训练多特征分类器识别树木,并利用超声波传感器进行定位,但分类器框选树干面积过大,无法精确提取出树干。周俊等[11]仅用二维激光传感器对树木进行检测,却无法识别非树干对象。
在图像信息分割方面,国内外学者也进行了广泛的研究[12]。BOYKOV等[13]提出Graph Cuts算法,同时利用了图像的灰度信息和区域边界信息,进行全局最优求解,保证了分割效果的可靠性,然而运算时运用了大量的矩阵广义向量,其分割结果更倾向于具有相同的类内相似度。ROTHER[14]以Graph Cuts为基础,提出了GrabCut算法,其通过非完全标记方法,对前景和背景的颜色空间建立高斯混合模型(GMM),用迭代算法取代一次最小估计,完成能量最小化。MACQUEEN[15]提出的K-均值聚类算法具有简单、高效、时间复杂度低等特性,目前在分割识别方面被广泛使用[16-18]。
本文采用融合深度和纹理特征的树干分割算法对彩色图像进行分割,首先通过简单线性迭代聚类(Simple linear iterative cluster, SLIC)算法生成超像素,随后通过色调和宽度特征对树干进行识别,并选取树干所属的超像素块作为树干的ROI分割结果。
实验地点分为室内和室外。室内实验选用仿真绿色植株作为仿真对象,实验分3组,分别为单植株实验、多植株实验和多植株加障碍实验。如图1a所示,单植株实验的植株高1.8 m,多植株实验的植株高度分别为1.4 m和1.2 m。室外实验如图1b所示,在种植密集且排列整齐的植株前,将Realsense传感器安装在遥控小车上,在植株前行驶并连续拍摄两侧植株。
图1 植株图像采集平台Fig.1 Plant image acquisition platform
本文采用Intel公司的Realsense d435传感器,如图2所示,结合OpenCV库获取彩色图像和深度图像。Realsense d435 传感器性价比高,体积小巧,使用轻便,无需搭载外接电源,通过自带的USB接口与计算机相连进行数据传输。
图2 Realsense传感器实物图Fig.2 Schematic of Realsense sensor1、4.深度传感器 2.红外投射器 3.彩色相机
1.2.1传统SLIC超像素分割算法
SLIC算法是由ACHANTA等[19]于2012年提出,利用图像中像素之间的颜色相似度和空间距离进行迭代聚类,其优点在于生成的超像素块邻域特征比较明显,便于将庞大的像素点整合成像素块进行处理。相比较其他的超像素分割算法,SLIC算法运行速度更快、轮廓提取更为理想。
在SLIC算法中,首先将彩色图像中RGB颜色空间转换为Lab颜色空间。其中,L表示颜色空间从纯黑到纯白的亮度,取值区间为[0,100],a表示由绿到红的维度,取值区间为[-128,127],b表示由黄到蓝的维度,取值区间为[-128,127]。随后初始化聚类中心,本文彩色图像分辨率为640像素×480像素,由经验取400个聚类中心。之后在每个聚类中心3×3邻域内重新选取梯度最低的像素点作为新的聚类中心,其中梯度度量的计算方法如下
G(x,y)=‖I(x+1,y)-I(x-1,y)‖2+
‖I(x,y+1)-I(x,y-1)‖2
(1)
式中I(x,y)——图像中坐标为(x,y)点的色彩特征向量
G(x,y)——图像中坐标为(x,y)点的梯度
在初始化聚类中心后,为每个聚类中心周围的像素点分配类标签,并计算其与聚类中心的颜色距离和空间距离。计算方法如下
(2)
(3)
(4)
其中
式中dc——颜色距离ds——空间距离
N——彩色图像中总像素点数
K——聚类中心个数
D′——像素点与聚类中心的距离
Ns——超像素内最大空间距离
Nc——超像素内最大颜色差
li、ai、bi——像素点i在Lab颜色空间下L、a、b分量的值
xi、yi——像素点i在彩色图像中的坐标值
lj、aj、bj——像素点j在Lab颜色空间下L、a、b分量的值
xj、yj——像素点j在彩色图像中的坐标值
由于每幅图像中像素之间的颜色差异不同,Nc难以直接定义,在SLIC算法中设定Nc的值为m,m为每个超像素内最大的Lab颜色差,且在单个图像中取固定值,m的取值范围通常为1~40,当m越大时,超像素的形状越规整,由于树干轮廓凹凸起伏,本文需将其轮廓完整提取出来,故由经验取m为10。
对于每个分割好的超像素块,计算其中每一个像素点的L、a、b、x、y5维特征均值,并将其作为新的聚类中心。为了加快算法运行速度,迭代次数取4。最后,由于多次迭代后会出现超像素块不封闭的情况,通过遍历像素块,将孤立的小像素块合并到周围最大的像素块中,所以最终得到的超像素块的个数通常会低于预先设定的个数。
1.2.2LBP纹理特征
LBP(局部二值模式)是一种运用于灰度图的纹理度量,由OJALA等[20]提出,其具有尺度不变和旋转不变的特点,因此在本文提出的方法中得到了应用。对于灰度图中的任一像素点p,其LBP值可以通过比较该像素点与其邻域内像素点p*的灰度进行计算。计算方法如下
(5)
式中gp——点p的灰度
gp*——点p*的灰度
P——邻域像素点数量
s——变量与0的比较函数
1.2.3基于纹理和深度信息的超像素块合并
在实际应用中,SLIC超像素分割物体时通常会出现过分割,这将增加整个算法的运行时间,所以本文通过相邻超像素块之间纹理特征与深度信息的关系合并超像素块,减少超像素块的个数,从而降低后续工作的复杂度,提高算法的精确度。合并流程如下:
(1)扫描每个分割好的超像素块Np,建立深度直方图fD和LBP纹理直方图fL。
(6)
(7)
其中
式中d(p)——p点深度
K1——Np内最大深度
K2——Np内最大LBP值
f——变量值比较函数
δ(p)——像素点有效性判断函数
k1、k2——采集到的有效深度、LBP值
由于Realsense深度摄像头采集的最小有效深度为0.2 m,所以k1的最小值为0.2 m。
(2)归一化深度直方图和LBP纹理直方图。
(3)选用归一化互相关计算该超像素块Np与相邻超像素块Mp之间纹理特征和深度信息的相似度sim(Np,Mp)。计算方法如下
(8)
式中ω——深度信息和纹理特征的权重,取0~1
fDNp——超像素块Np的深度直方图
fDMp——超像素块Mp的深度直方图
fLNp——超像素块Np的LBP纹理直方图
fLMp——超像素块Mp的LBP纹理直方图
(4)将相似的超像素块合并成一块超像素块,然后重复步骤(1)直至全部合并完成。
本文利用深度摄像头采集到的深度图像对树干宽度进行检测,并解决了深度图像中物体边缘存在空洞导致宽度不连续的问题。
其中,Realsense深度摄像头的景深(FOV) (水平×垂直×对角线)为91.2°×65.5°×100.6°,RGB传感器FOV(水平×垂直×对角线)为69.4°×42.5°×77°[21],而在经过深度图像和彩色图像配对之后,深度摄像头的景深(FOV) (水平×垂直)经计算,变为53.4°×42.5°,所以可得深度图像同行像素内相邻像素点的角度为
(9)
式中n0——所计算的有效像素点与前一有效像素点之间的无效像素点数量
col——深度图像的列数
θ——相邻像素点的夹角
在林道中,深度摄像头水平安装在实验车上,通过获取深度图像中间一行像素每个像素点的深度,并根据相邻像素点之间的深度差Δd判断是否位于同一物体表面。
Δd=|dp-dp*|
(10)
式中dp——当前计算的有效像素点深度
dp*——当前像素点的前一有效像素点深度
在扫描树干时,可以将树干截面视为一个规则的圆形,所以扫描得到的树干弧长如图3所示,由此可得树干直径w为
图3 摄像头扫描树干示意图Fig.3 Schematic of tree trunk scanned by camera
(11)
式中n——弧线上像素点的数量
rm——摄像头到树干的最小深度
β——扫描树干截面的角度
Si——树干截面上像素点的集合
图4 树干横截面示意图Fig.4 Tree trunk cross-section diagram
如图4所示,由于不同宽度的树干表面像素之间的深度差不同,选取树干边缘两个相邻像素点之间的深度差作为树干表面像素的最大深度差
(12)
同时,经实际测量,由于树干表面凹凸不平,Realsense深度摄像头在光照条件下测量树干的深度误差为±0.02 m,所以设定当深度差Δd<Δdmax+0.02时,判定前后两个像素点处于同一物体表面。
基于多特征融合的树干快速分割算法步骤如下:
(1) Realsense深度摄像头采集前方彩色信息和深度信息,并对彩色图像和深度图像进行配准。
(2)对彩色图像进行超像素分割,并根据彩色图像中的纹理信息和深度图像中的深度信息对分割后的超像素块进行合并。
(13)
其中
(14)
(5)对树干色调的累计分布函数Fcdf(cROI)的阈值TLc进行估计,将计算所得的Fcdf(cROI)与TLc进行比较。若Fcdf(cROI) 基于多特征融合的树干快速分割算法流程图如图5所示。 2.1.1SLIC超像素分割与合并 通过Realsense摄像头获取室内植株彩色图像,如图6所示,分别对单植株、多植株、多植株加障碍进行处理。 通过SLIC算法对原始图像进行超像素分割,分割后的图像如图7所示,其中树干部分产生了一定的过分割,这对ROI区域的提取有一定的影响。因此需要对超像素块进行合并。如图8所示,合并后的区域特征被完整的提取出来,而由于树叶与背景部分的连接处存在一些过分割、室外背景较为复杂等问题,在合并时相邻超像素块的纹理和深度有一些差异,所以未能合并成较大超像素块,但由于后期定位时无需用到,所以对本文算法并无干扰。 2.1.2树干区域分割 首先,对合并后的图像进行宽度检测,只保留宽度在阈值范围内的超像素块,并将其作为ROI区域进行检测,分割后的ROI区域如图9所示。 图5 树干分割算法流程图Fig.5 Flow chart of tree trunk segmentation algorithm 图6 室内植株原始图像Fig.6 Original images of indoor plants 图7 SLIC算法分割效果图Fig.7 SLIC algorithm segmentation renderings 图8 超像素块合并效果图 Fig.8 Superpixel blocks merge renderings 图9 ROI区域提取图Fig.9 ROI region extraction diagram 图10 树干色调直方图Fig.10 Tree trunk Hue histogram 表1 树干与障碍物色调统计结果Tab.1 Tree trunk and obstacle Hue statistical results 图11 过滤障碍物后室内树干ROI图Fig.11 ROI region diagram of indoor tree trunks after filtering obstacles 2.1.3树干分割误差分析 (1)召回率 召回率和准确率是图像分割中用来评价图像分割准确度的重要指标。本文通过计算树干ROI内真实树干的像素点数量占树干总像素点数量的百分比来衡量树干分割的召回率,计算公式为 (15) 式中TP——标记正确的像素点数量 FN——尚未标记的像素点数量 其中,召回率越高,表示树干分割效果越好。 (2)准确率 准确率表示树干ROI内真实树干的像素点数量占树干ROI区域内总像素点数量的百分比。其计算公式为 (16) 式中FP——标记错误的像素点数量 其中,准确率越高,表示树干分割效果越好。 (3)室内分割误差分析 通过将GrabCut算法、K-均值聚类算法与本文算法进行比较,计算相同情况下室内植株树干的分割效果(计算机配置为戴尔 XPS13-9380, Intel Core i7-8565U CPU 4.60 GHz, 16 GB RAM)。 图12 室内植株分割效果图Fig.12 Indoor plant segmentation rendering 室内实验选用单植株作为实验对象,图12a为植株真实区域图,采用Photoshop进行手动分割获取。比较图12b~12d,结果如表2所示,本文算法分割室内植株的召回率和准确率均优于GrabCut算法和K-均值聚类算法。其中本文算法的召回率分别比GrabCut算法和K-均值聚类算法高8.5个百分点和4.9个百分点,准确率分别比GrabCut算法和K-均值聚类算法高3.9个百分点和7.5个百分点, 时间上GrabCut算法和K-均值聚类算法分别耗时0.51 s和2.98 s,本文算法经过加速优化后降低至0.17 s。 如图13所示,室外实验选用移动状态下RGB-D相机扫描的某一帧作为实验对象。由于RGB-D相机有效深度为10 m,通过设定深度阈值将远处的树干滤除,利用本文算法对前方树干进行扫描自动分割,最终结果如图14所示。 通过比较GrabCut算法、K-均值聚类算法与本文算法对室外植株树干的分割效果,本文算法分割出的树干轮廓更贴合真实树干的形状。图15a为植株真实区域图,采用Photoshop进行手动分割获取。 表2 传统图像分割算法和本文分割算法对室内植株分割效果对比Tab.2 Comparison of traditional image segmentation algorithm and segmentation algorithm for indoor plant 图13 室外植株原始图像Fig.13 Original images of outdoor plants 图14 室外植株动态分割效果图Fig.14 Dynamic segmentation rendering of outdoor plants 图15 室外植株动态分割效果图Fig.15 Dynamic segmentation rendering of outdoor plants 3种算法的分割效果如图15b~15d,对比结果如表3所示。本文算法动态分割室外植株的召回率和准确率均优于GrabCut算法和K-均值聚类算法。其中本文算法的召回率分别比GrabCut算法和K-均值聚类算法高10.7个百分点和9.9个百分点,准确率分别比GrabCut算法和K-均值聚类算法高0.4个百分点和4.2个百分点,时间上GrabCut算法和K-均值聚类算法分别耗时0.80 s和5.86 s,本文算法经过加速优化后降至0.23 s。 对室内、室外植株实验进行计算可得,本文算法的平均召回率和平均准确率分别为87.6%和95.0%,CrabCut算法分别为78.0%和92.8%,K-均值算法分别为80.2%和89.1%。 图16为小车动态分割树干的深度拼接图。在小车1 m/s匀速行驶的状态下,RGB-D相机采集深度图像的帧率为30 f/s,以2.4 Hz频率选取采集的深度图像进行树干分割,并将处理后的深度图像实时拼接在一起,最终分割出的树干效果满足果园定位导航的需求。 (1)提出了基于多特征融合的树干快速分割算法。通过对彩色图像进行SLIC超像素分割,并根据相邻超像素块的纹理和深度信息对分割后的超像素 表3 传统图像分割算法与本文分割算法对室外植株分割效果对比Tab.3 Comparison of traditional image segmentation algorithm and segmentation algorithm for outdoor plants 图16 室外植株动态分割深度拼接图Fig.16 Dynamic segmentation depth stitching image of outdoor plants 块进行合并,降低了后续工作的复杂度,提高了算法的精确度。 (2)本文算法在检测树干宽度后,计算符合宽度条件的树干ROI内的色调均值和均方差,并以此计算ROI内色调的累计分布函数,提高了树干的识别率。 (3)通过获取室外树干分割图像,实现实时拼接分割后的深度图像,标识出分割的树干轮廓,并加以区分,为后期定位导航提供参照物。2 结果与分析
2.1 室内植株实验
2.2 室外植株实验
3 结论