基于深度图像的球形果实识别定位算法

2022-11-03 11:12:16柳长源赖楠旭毕晓君
农业机械学报 2022年10期
关键词:中心点识别率梯度

柳长源 赖楠旭 毕晓君

(1.哈尔滨理工大学测控技术与通信工程学院, 哈尔滨 150080; 2.中央民族大学信息工程学院, 北京 100081)

0 引言

果实的识别定位是果实采摘机器人研究的核心,其算法研究一直存在着三大重点难题,分别是光照问题[1-2]、遮挡问题[3-4]以及近色背景果实识别问题[5-6]。其中,光照问题随着图像处理技术的逐渐成熟而基本得到解决,遮挡问题也随着三维视觉工具的产生,逐渐有了解决方案。但是由于彩色二维图像本身存在的弊端,近色背景果实识别问题目前仍是难点。

目前,国内外对于近色背景果实识别问题的解决方案主要是采用模板匹配或机器学习的方法。文献[7-9]采用了传统图像处理的方法,利用图像增强或对比度直方图均衡化的方法增强果实与背景的颜色差,然后通过开闭操作以及Hough圆等算法实现对果实的识别,文献[10-15]通过对果树图像进行预处理,提取果实和枝叶的灰度或纹理特征来构成训练集,并搭建卷积神经网络模型实现对绿色果实的识别。此类算法实际上都是利用了果实与背景图像颜色之间的细微差异作为识别的特征,因此此类算法的鲁棒性都比较差,极易受到光照的影响,而且算法往往只适用于单一种类的果实。由此可见,利用果实颜色特征来处理近色背景果实识别问题并不是理想的解决方案。

深度图像[16]是一种将摄像头到场景中各点距离作为像素值的图像,它可以直接反映出物体表面的三维形状信息。在果实识别定位研究领域中,它常用来处理果实的重叠和遮挡问题[17-19],但这些应用仅仅利用了果实和背景之间的层次关系,并没有充分利用到深度图像中的三维信息。实际上大部分果实都是近球形,而这个几何特征在深度图像中能够被很好地体现。

因此,为找出解决近色背景果实识别问题的方案,本文舍去传统算法中常用的颜色特征,改为从果实几何形状的角度进行研究,设计一种基于深度图像的球形果实识别定位算法。

1 实验设备和信息采集

深度摄像头目前主要分为结构光摄像头[20]和TOF(飞行时间)摄像头[21]。结构光摄像头的成像原理为红外激光器向外发射红外散斑,再用红外摄像头接收反射的结构光图案,然后进行深度信息的解算,这种方法计算量少,功耗低,近距离范围精度更高,但其发射的红外散斑非常容易被自然光所淹没,因此不适合在室外环境下应用。而TOF摄像头的成像原理则是红外发射器发射调制过的光脉冲,然后用接收器接收反射回来的光脉冲,并根据光脉冲的往返时间计算与物体之间的距离,这种方法成像快,功耗高,对图像边缘信息保留得更完整且不受光照影响。因此,考虑到采摘机器人常工作于室外复杂环境,本文采用RealSense AXON M5 型TOF摄像头作为深度信息采集设备,该摄像头尺寸仅有55 mm×18 mm×10.6 mm,分辨率为640像素×480像素,视场角为60°×45°,有效深度范围为0.3~1.2 m。

实验对象为高1.6 m的仿真果树模型,果树安装有20颗绿色果实(可随意更换位置),拍摄距离为0.3~0.7 m,由于果实通常都是处于悬挂状态,枝叶大多处于果实的上方,由下而上的拍摄角度能够有效降低果树枝叶对果实遮挡的影响,因此实验主要采用正视和仰视的角度对果树进行拍摄,总共获得50幅果树深度图像及其对应彩色图像。实验平台采用Intel RealSense SDK工具包和Visual Studio 2015软件平台实现深度摄像头对果树图像的采集,并搭配OpenCV库和PCL点云库2个API实现对深度图像的运算处理,彩色图像用于实验结果对比验证,摄像头采集的果树彩色图像和深度图像如图1所示。

图1 RealSense采集的图像Fig.1 Image acquisition by RealSense

2 算法原理

本文提出的算法流程为:首先采集果树的深度图像,利用深度图像求出各像素点的梯度向量,然后将梯度向量看作运动矢量场,并计算出矢量场的散度,根据散度最大原则从矢量场中找出辐散中心点,并利用果实和叶片等深图像的差异从辐散中心点中筛选出果实中心点,以果实中心点为起点采用八方向搜索方法搜索出果实边界点,将果实边界点依次连接提取出果实部分图像导入点云,最后根据果实图像部分点云采用随机采样一致性(Random sample consensus,RANSAC)算法[22-23]求出目标果实的拟合球形,进而得出果实的尺寸以及空间位置。

2.1 深度图像梯度计算

由于在深度图像中像素的特征表现为灰度,会随着物体表面深度的增加而增大,因此在深度图像中,果实与背景的分割并不能像彩色图像那样直接通过设置灰度阈值来实现,而深度图像实际上表现的是物体的三维信息,因此需要从形态的角度来找出它们之间的特征差异。

为了描述深度图像中果实与背景的形态特征,本文采用了计算深度图像梯度的方法。深度图像的梯度即深度图像中的深度分量D在x和y方向上的偏导数Dx、Dy,梯度向量V计算公式为

(1)

但在图像处理领域中,无法直接对像素进行求导,因此将像素点某一方向上深度分量的偏导数看作是该像素点的灰度在该方向上变化的差值,由于距离较近的像素点灰度差值太小,无法得出有效的梯度,因此在计算过程中需以k个像素点作为采样间隔提取像素点的灰度来计算深度图像梯度,计算公式为

Xij=Di(j+k)-Di(j-k)

(2)

Yij=D(i+k)j-D(i-k)j

(3)

式中Xij——深度图像中第i行第j列像素的横向梯度

Yij——深度图像中第i行第j列像素的纵向梯度

Dij——深度图像中第i行第j列像素的灰度

k——梯度采样间隔

其中,k的取值可根据果实的尺寸以及摄像头精度进行设置,本文k取值为4~6,k取值越小则越有利于梯度向量表示物体表面的形态特征,但取值过小则会因计算出过多的无效梯度而对后续算法造成影响。

计算出图像梯度后,将每个像素点用梯度向量Vij表示为

Vij=(Xij,Yij)

(4)

图2为将深度图像梯度向量可视化后的图像,通过观察梯度向量图可以发现,由于果实接近于球体模型,表面呈现出凸曲面的特性,其梯度图像表现为梯度向量从球心出发向四周延伸,且越接近球心部分梯度越小,越接近边缘部分则梯度越大。而对于背景部分,大叶片由于接近片体,其梯度图像表现为梯度向量朝着一个方向均匀变化的特性,小枝叶背景则呈现出杂乱的无序状。利用该梯度向量图中果实与枝叶背景的梯度特征差异,便可实现对果实中心的粗定位。

图2 梯度向量可视化图像Fig.2 Gradient vector visualization images

2.2 辐散中心点提取算法

散度是气象学中描述空气从四周汇合到某一点或从某一点处发散程度的量,本文将其引入用于果实中心的定位提取。

在气象学中,流体在运动中集中的区域称为辐合,运动中发散的区域称为辐散。而在梯度向量图中,每个梯度向量实际上都可以看作是一个流体的运动矢量,而梯度向量图中果实图像部分的矢量正好表现为辐散的特性,因此,可以将梯度向量图看成一个矢量场,然后通过计算散度的方式求出矢量场中的辐散中心,进而得出果实中心的位置。

由散度定义可知,散度在辐散中心处取得最大值,在辐合中心处取得最小值。而从梯度向量图可以看到,果实中心点位置正好处在辐散中心点附近,即果实中心点位置在梯度向量图中散度极大值处取得,散度计算公式为

(5)

辐散中心定位结果如图3所示。

图3 辐散中心定位示意图Fig.3 Diagram of divergence center positioning

2.3 果实中心点筛选算法

通过梯度向量计算散度来提取辐散中心的方法,实际上就是将深度图像数字离散化后进行的数学运算,并不能保证提取出的辐散中心点便是所需要的果实中心点,由于树叶的弯曲以及枝叶背景等随机因素检测出许多误判点。因此,为了剔除这些误判点对后续算法的干扰,需要对所有辐散中心点进行分析处理,筛选出果实中心点。

果实中心点的筛选算法主要利用了果实部分等深图形与背景等深图形的差异来进行区分。图4为深度图像绘制出等深曲线后的等深图,通过观察等深图可以发现,在果实图像部分,等深图像会呈现出类似年轮的形状,而果实中心处的图形也是接近圆形的形状,背景枝叶部分的等深图形表现为长条状或杂乱的小圆点。因此便可利用此特征,通过检测辐散中心点处等深图形的形状来检测该辐散中心点是否为果实中心点。

图4 果树等深图Fig.4 Contour map of fruit tree

具体操作如图5所示,以辐散中心点为起始点,采用漫水填充算法对起始点附近灰度相同的像素点进行填充标记,然后做出填充图形的最小外接矩形,并将最小外接矩形的高宽比以及矩形框内标记像素点占比作为果实中心点的判别依据,判别函数关系式为

(6)

式中H——最小外接矩形框高度

W——最小外接矩形框宽度

A——最小外接矩形框内标记像素数

δE——高宽比以及宽高比阈值

δT——矩形框内标记像素点占比阈值

由于误判点处的等深图形可能会呈现出小圆点的形状,从而也可满足式(6)中的判断依据,因此,该算法还需进行二次判别来提高筛选的准确性。当检测到辐散中心点处的等深图形满足一次判别条件后,继续采用漫水填充算法重新将起始点附近灰度相同以及比起始点灰度大1的像素点进行填充标记,并做出最小外接矩形根据式(6)进行判别,若二次判别该辐散中心点处的等深图形也满足判别条件,则将该辐散中心点标记为果实中心点。

图5 果实中心点判别示意图Fig.5 Diagrams of fruit center point discrimination

2.4 果实图像分割算法

由于深度图像无法像彩色图像一样有明显的边界信息,可以得出完整的连通域图像,因此本文算法采用先定位后分割的方法。通过前文的方法已经从深度图像中得到了果实中心点的位置,下一步则是对果实边界进行搜索完成果实图像的分割。虽然在深度图像中很难得到物体完整的轮廓信息,但可以利用三维物体的边界特征搜索出三维物体的边界点,从而实现三维物体图像的分割。

通过观察果实的等深图和梯度向量图可以发现,越靠近果实边界位置的像素灰度越大,梯度也越大,且果实图像部分各处的梯度向量方向均为由果实中心指向果实边界。因此,根据此特征,本文采用了八方向搜索方法以灰度、梯度和梯度方向三者作为判别依据来搜索果实的边界点。具体操作为:从果实中心点出发,沿八方向按指定步长根据判别函数关系式搜索果实边界点,判别函数关系式为

(7)

式中Dn、Dn+1——沿搜索方向第n、n+1步像素的灰度

Vn、Vn+1——沿搜索方向第n、n+1步像素的梯度向量

δG——梯度向量模的大小阈值

δθ——梯度向量角度偏差阈值

搜索出果实图像边界点后将8个边界点依次连接形成一个闭合的区域,区域内的图像便是分割出的果实图像,分割结果如图6所示。虽然该分割算法并没有得到完整的果实图像,但从三维的角度来看,分割出的果实部分图像已经足以表达出果实外表面的曲面信息,可以为后续的算法提供足够的样本数据,且该算法步骤简单,能够减少大量的计算时间。

图6 果实部分图像分割示意图Fig.6 Image segmentation diagrams of fruit parts

2.5 果实三维形状拟合算法

深度图像在处理三维问题上一直存在着天然的优势,因此它非常适合用来进行果实的空间定位以及处理果实重叠和遮挡问题。前文介绍的所有算法实际上都是基于二维图像的处理算法,由于果实识别定位算法的最终目的是要获取果实的空间坐标以及半径信息以便于进行后续采摘任务,因此还需要将深度图像转换为三维点云,从三维空间领域来对果实进行识别定位。

RANSAC是一种随机参数估计算法,可以从样本中随机抽出一个样本子集,使用最小方差算法估计这个子集的模型参数,然后计算所有样本与该模型的偏差,并经过反复迭代最终得出样本的最佳模型参数,该算法常用于特征匹配、点云分割和三维模型处理领域。本文将其用于果实部分点云的三维形状拟合,获取果实的拟合球形参数。

具体步骤为:首先将分割出的果实部分图像转换为三维点云数据,转换后的每个点云都相当于三维空间中的1个点。然后从点云中随机抽取出1个子集并估计出球面模型,待估计的球面数学模型为

(x-x0)2+(y-y0)2+(z-z0)2=r2

(8)

式中 (x,y,z)——样本点云空间坐标

(x0,y0,z0)——拟合球面模型球心空间坐标

r——球面模型半径

估计出球面模型后计算所有点云到这个模型的距离,剔除掉距离过大的点并将处于距离阈值范围内的点定义为局内点。重复以上步骤,经过多次迭代,选取包含局内点最多的球面模型进行输出,拟合结果如图7所示。

图7 RANSAC拟合球形可视化图像Fig.7 Visualizations of RANSAC fitted spherical images

RANSAC拟合算法可以利用物体的部分点云通过其几何特征去估算物体的整体结构。这意味着对于重叠和被遮挡的果实,即使只能够获取到残缺的部分果实图像,但利用RANSAC算法也可以对其进行拟合补全,得到完整的果实拟合球形。拟合出的球形球心坐标可近似认作果实的实际空间坐标,拟合球形的半径也可认作是果实的实际半径。

RANSAC算法还可以作为误判检验的最后一层保障,由于叶片表面的曲率相较于果实表面曲率要小很多,当叶片图像被误判为果实图像并且当作输入样本进行RANSAC算法拟合时,拟合出的球面模型半径会远大于实际的果实半径,因此,可以通过设置拟合球形半径阈值,进一步剔除误分割的背景图像,增加算法的准确性。本文所有算法的最终实验结果如图8所示。

图8 果实识别定位结果可视化图像Fig.8 Visual images of fruit identification and location

3 实验结果与分析

3.1 算法准确性与误差分析

为检测本算法中果实识别定位的准确性和鲁棒性,对果树模型进行多角度拍摄以及果实模型随机摆放,包含独立果实、重叠果实、遮挡果实等情况果树图像共计50幅,每幅图像中果实数量为5~12颗,识别结果如表1所示。其中,果实模型实际半径均约为5 cm,采用卡尺进行果实实际距离检测,以果实中心到摄像头拍摄平面距离作为实际深度距离,以果实中心到地面的高度与摄像头中心到地面高度的差值作为实际垂直距离,正确识别率为样本图像通过算法拟合出的球形数量与人工识别的果实数量比值的均值。

表1 不同遮挡情况下果实识别定位效果Tab.1 Fruit recognition and positioning results under different shading conditions

由表1可以看出,在果实被遮挡面积小于50%的情况下基本都能被正确地识别定位出准确位置和实际尺寸,且误差都能控制在1 cm范围内。但对于被遮挡面积超过50%的果实则识别率较差,且识别出的果实半径偏差较大。

对被遮挡面积大于50%的果实识别率较差的问题进行分析,分析结果如图9所示。由于本文算法采用的是先定位后识别的方法,因此对于果实的识别定位依赖于对果实中心点的搜索,而在实际情况中,果实由于存在被遮挡的情况,果实中心位置可能会被枝叶和果实遮挡,从而在梯度向量图中果实部分的梯度向量无法显示出辐散的特性,而是表现为梯度向量朝一个方向变化,即片体的特性,因此会被误判为背景图像从而无法被正确识别。

图9 被遮挡果实漏判原因分析图Fig.9 Analysis maps of leakage reasons for obscured fruits

而被遮挡面积大于50%的果实识别半径偏差较大的原因在于,果实被遮挡面积过大,导致最终获取的果实部分点云较少,从而使得果实表面的曲率信息表示不完整,因此拟合出的球形半径与实际果实半径偏差较大。

由此可见,本文算法虽然从果实形态角度进行识别定位,可以忽视光照以及果实颜色对识别过程造成的影响,但其缺点在于其识别的准确率受遮挡面积的影响较大,且还会受到拍摄角度的影响,果实能否被正确识别取决于果实表面的凸曲面是否被完整拍摄,曲面中心位置是否能被有效识别。

3.2 算法效率分析

果实识别定位算法最终是服务于水果采摘机器人的研究应用,因此,其对算法的实时性也有一定的要求。表2为从果树深度采集图像中提取10幅图像其算法计算时间统计结果。由表2可以看出,平均每幅图像的处理时间约为12 s,其计算速度与图像中的果实数量成正比,原因在于,算法中果实图像分割部分的处理时间实际仅为0.5 s左右,但最后的RANSAC算法由于需要进行复杂的拟合迭代步骤,因此处理时间较长,计算速度约为每颗果实0.8 s。但在实际的果实采摘过程中,果实是逐一进行摘取的,而本文算法中每颗果实的平均识别时间仅约为1.3 s,因此可以满足水果采摘机器人的实时性要求。

表2 算法计算时间统计结果Tab.2 Algorithm calculation time statistics

3.3 实地实验与结果分析

由于本文算法研究设计过程中的实验对象为实验室内的果树模型,因此为了验证本文算法的真实有效性和实用性,进行了实地果树的拍摄验证实验。

实验地点位于广东省惠州市惠东县中塘聚丰园水果种植基地,分别对黄柠檬(半径约2.7 cm)、青柠檬(半径约2.7 cm)、沃柑(半径约3.8 cm)3种水果进行拍摄实验,每种水果各获得40幅深度图像及其对应的彩色图像,实验结果如图10和表3所示。

图10 3种果实识别定位结果示意图Fig.10 Images of three fruits identification and location

由表3可以看出,在无遮挡的情况下本文算法对于3种颜色的果实都能有效地识别出其位置和半径,且识别率都较为接近。黄柠檬、青柠檬和沃柑的平均识别率分别为75.7%、74.8%、82.3%,黄柠檬和青柠檬识别率明显低于沃柑识别率,原因在于黄柠檬和青柠檬的果实半径较小且果实形状为椭圆形,使其更易受到果实重叠和枝叶遮挡的影响,同时受到深度摄像头本身精度的限制,越小的果实可获取的果实部分点云数量就越少,即可用于果实三维形状拟合的样本点云数量就越少,从而拟合出的果实表面曲率误差就越大,使得识别率下降。因此在目前使用设备的制约下,本文算法更适用于半径为3.3 cm以上的果实,对于半径为3.3 cm以下的果实,其识别率则会随着半径的减小而降低。

表3 3种水果识别定位效果统计结果Tab.3 Statistical results of identifying and locating effects of three fruits

由此可见本文果实识别定位算法可以不受果实颜色以及光照环境的影响,果实识别率仅与果实的尺寸和形状有关,能够轻松应对近色背景果实识别、阴暗环境果实识别、强曝光环境果实识别(图11)等彩色图像难以解决的果实识别问题,但该算法受果实和枝叶遮挡的影响较大,当果实被遮挡的面积过大则会大幅降低果实的正确识别率。

图11 强曝光环境果实识别定位示意图Fig.11 Images of fruit identification and location in intense light environment

4 结论

(1)基于深度图像的球形果实识别定位算法能够从深度图中实现果实的识别定位。算法从果实三维形态的角度完成果实的识别定位任务,能够有效解决传统算法中易受光照的影响及无法解决近色背景果实识别困难的问题。

(2)基于深度图像的球形果实识别定位算法是一种先定位后识别的由粗及精的定位方法。通过计算深度图像的梯度向量,利用果实接近球形的特征,实现对果实中心点的定位,并在后续算法中设置了果实中心点的检验以及果实图像的分割步骤,最后利用三维球形拟合算法对果实部分图像进行拟合补全,计算出果实的真实尺寸以及空间位置。算法适用于所有近球形果实的识别定位,可直接获取果实三维空间坐标,有利于采摘机器人高效地完成采摘任务。

(3)基于深度图像的球形果实识别定位算法仅利用单一的深度图像信息进行果实的识别定位,能够不受颜色信息对识别定位的影响,且该算法采用三维角度的识别定位方法,能够有效处理果实重叠和遮挡问题。但其缺点是算法依赖于对果实中心点的提取,对于果实中心位置被遮挡果实则无法进行识别定位。

(4)通过实地实验,得到黄柠檬、青柠檬、沃柑3种果实的平均识别率分别为75.7%、74.8%、82.3%,每颗果实的识别时间约为1.30 s。结果表明,该算法具有较高的抗扰性、准确性和实时性,且无需分类器、机器学习等复杂结构,能够直接应用于采摘机器人对果实的识别定位操作。

猜你喜欢
中心点识别率梯度
一个改进的WYL型三项共轭梯度法
Scratch 3.9更新了什么?
电脑报(2020年12期)2020-06-30 19:56:42
一种自适应Dai-Liao共轭梯度法
应用数学(2020年2期)2020-06-24 06:02:50
基于类图像处理与向量化的大数据脚本攻击智能检测
计算机工程(2020年3期)2020-03-19 12:24:50
如何设置造型中心点?
电脑报(2019年4期)2019-09-10 07:22:44
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
一类扭积形式的梯度近Ricci孤立子
提升高速公路MTC二次抓拍车牌识别率方案研究
高速公路机电日常维护中车牌识别率分析系统的应用
汉字艺术结构解析(二)中心点处笔画应紧奏