刘丽娟,窦佩佩,王慧
(石河子大学信息科学与技术学院,新疆石河子,832003)
基于图像处理技术的果实识别是实现果实定位、自动化采摘和果树估产的基础。而自然环境中,果树场景多样性给果实识别带来了巨大挑战[1],如复杂多变的背景、光照强度的变化、果实间的重叠与遮挡等。自然环境下采集到的果实图片受光照变化、背景复杂等影响,导致目标识别的有效性降低。国内外学者针对此热点问题进行了研究[2-6]。闫彬等[2]对猕猴桃的RGB图像采用K-means聚类算法和最大类间方差法相结合提取出猕猴桃的果萼。闫建伟等采用RGB色差分量法和YCbCr颜色空间模型对刺梨图像进行两次阈值分割,最终刺梨果实识别正确率均高于92%。除了传统的基于颜色空间的阈值分割方法,也有很多研究者采用机器学习算法实现果实目标识别[7-11]。马晓丹等[10]提出了一种将量子遗传算法的全局搜索能力和模糊推理神经网络的自适应性相结合的算法来识别苹果果实。赵德安等[11]提出了基于YOLOv3深度卷积神经网络的苹果定位方法。
重叠与遮挡的果实图像中要提取出单一目标,研究较多的方法是通过重叠边缘拟合或插值算法分割出单一目标,如曲率分析算法[12-14]、模板匹配法[3, 15-16]、分水岭算法[4]、霍夫变换法[17-19]等。但由于自然环境下的分割目标存在噪声干扰或者细小纹理,并且目标果实不是标准的圆形,这些问题单一目标分割多次,过分割是目标识别算法中经常遇到的并且需要克服的问题。
针对上述问题,本文对自然环境下重叠或遮挡果实的图像识别定位算法进行研究。通过多通道颜色阈值分割算法识别出重叠目标,使用霍夫变换和圆形限制法识别并定位重叠或遮挡情况下的类圆单一个体目标,实现对成熟苹果图像的有效识别。
苹果图像的采集地点在新疆石河子市南区苹果种植基地,采集时间为2019年9月的上午和傍晚,均在自然光下采集。采集的图片包括了不同光照、单个果实、多个果实、重叠、遮挡等各种环境下的实际图片。
首先对图像进行预处理操作,包括两部分操作:为了便于分析,将图像统一剪裁成512像素×512像素大小;为了去除噪声干扰,应用双边滤波算法,这里的噪声主要包括因相机硬件或其他原因造成的噪声,或者是图像中的细小纹理,特别是苹果区域中的纹理,纹理细节太多会对识别精度有影响。
然后进行图像分割,获得苹果的二值图像,主要方法是:使用颜色空间转换,获得更容易凸显苹果区域的图像通道,这里经过多次试验选择lab颜色空间的a分量、YUV空间的U、V分量,分别利用改进后的直方图全局阈值法获得二值图像,再进行形态滤波操作,获得重叠与遮挡苹果目标的二值图像。
最后重叠与遮挡的果实图像中要提取出单一目标,根据苹果单一目标类圆的特性,应用霍夫变换分割目标,但此时会存在过分割现象,提出圆心限制条件,去除不符合要求的圆心,最终识别出重叠与遮挡苹果的圆心、像素大小和个数。
1.3.1 图像预处理
目前相机在自然环境中获取的照片已经非常清晰,但本文的识别算法是基于颜色的识别,图1中绿叶、树干、特别是苹果区域上的细小纹理会使得图像在识别过程中受到干扰,错误的把同一区域进行分类,因此对原始图像进行滤波来消除纹理噪声。为了保持边缘信息,且能达到降噪平滑的效果,本文选用双边滤波法进行噪声滤波。由图2可以看出经过滤波后的苹果和叶片区域更加平滑,且目标间的边缘信息仍能保留。
图1 原图
图2 滤波后图像
1.3.2 基于改进的多通道阈值分割算法
在进行图像分割时,选取适当的颜色空间是关键。不同颜色空间下的不同分量的灰度值之间存在很大差异,颜色空间转换的目的是找到能明显区分苹果目标和自然背景的颜色特征,目标与背景的灰度值差异越大越容易找到合适的阈值进行图像分割。目前相机获取的图像都是在RGB彩色空间下的,但RGB空间下的3个分量存在强相关性,用该空间的颜色特征来分割图像的准确率不高。本研究将自然环境下获取的RGB空间图像分别转换到YUV空间和Lab空间,获取多个通道的颜色特征,再进行阈值分割。
YUV空间是对RGB空间的线性转换,其中Y分量代表亮度,表示图像的灰度值,U、V分量代表色差,U表示蓝色偏移量,V表示红色偏移量。若只选取V分量作为颜色特征,在阈值分割时会受到蓝色天空的干扰,很容易把天空当作背景,把树叶和苹果当作目标。如图3所示为各分量直方图,图3(a)为U分量直方图,U分量图像是蓝色部分灰度值最大,可以观察出来此时的深谷在横坐标150左右,此时只能分割出天空和其他部分;图3(b)为V分量直方图,此时直方图呈双波谷,增加了阈值分割难度。因此选择用U分量图像先剔除蓝色天空部分,再用V分量中的剩余部分进行阈值分割,最终获得苹果目标的二值图像I_v。如图3(c)所示,为经过U_V分量阈值处理后的直方图,此直方图呈现明显的双峰单谷特性,很容易通过全局阈值分割出苹果目标。
通过式(1)计算出0为天空、1为树叶和苹果的二值图像I_u,其中Tu表示通过U分量图像Image_u的直方图hu计算得到的最佳全局阈值,i和j表示图像像素对应的行和列。
(1)
式(2)表示二值图像I_u与V分量图像相与,得到新的L_v图像,此图像天空部分全为0。
L_v=Image_v.×I_u
(2)
通过式(3)、式(4)计算出1为苹果目标、0为背景的二值图像I_v,如图4(a)所示。其中Tv表示通过L_v的直方图hv(需令hv(1)=0)计算得到的最佳全局阈值。
hv(1)=0
(3)
(4)
Lab空间是对RGB空间的非线性转换,其中L分量代表亮度,a、b分量代表色差,a分量表示从绿色到红色的变化,b分量表示从蓝色到黄色的变化。选取a分量作为颜色特征,因a分量图像直方图中的背景和目标有很明显的双峰,可以比较准确的选取到好的全局阈值Ta,得到1为苹果目标、0为背景的二值图像I_a,如图4(b)所示。
YUV颜色空间是对RGB空间的线性转换,而Lab颜色空间是对RGB颜色空间的非线性转换。通过线性和非线性转换的结合,最大限度的利用颜色信息去除背景。将两种分割结果I_v和I_a进行逻辑“与”运算,得到分割后的二值图像,如图4(c)所示。
分割后的二值图像存在大量的孤立误分割区域,和没有识别到的空洞,可通过形态学方法进行处理。采用8×8的圆形结构元对图像先进行开操作,再进行闭操作,最后进行圆形的孔洞填充,得到最终的重叠与遮挡苹果目标二值图像I,如图4(d)所示。
(a) U分量直方图
(c) U_V图像直方图
(a) I_v二值图像
1.3.3 基于改进的霍夫变换检测圆算法
苹果目标轮廓与圆相似,因此可以用圆来近似表示苹果的形状轮廓。霍夫变换(Hough Transformation)是图像处理中的一种特征提取技术,它通过一种投票算法检测具有特定形状的物体。Hough变换最早应用于直线的检测,后来引入更高维度的空间,可以实现圆形检测目的。
Hough变换检测圆的主要思想是:首先建立三维的Hough空间,以图像(二值图像边缘提取后的图像)上的每一个非零点为圆上一点,以已知的半径在参数平面上画圆,对圆上覆盖的坐标点进行投票,最后找出参数平面上的峰值,得到对应于原图中的圆心和半径。
针对本研究苹果单一目标的圆形检测,可以利用Hough变换检测二值图像中的圆,但由于苹果并不是标准的圆形,用Hough变换会在同一个苹果目标上检测到多个不同大小的圆,导致过分割问题,如图5所示为只用Hough变换检测圆的结果。本研究在Hough变换的基础上增加了圆形约束的步骤,如图6所示为使用圆形约束法后的结果。具体步骤分别包括估计圆心和半径、圆形约束2个方向,具体参数设置和步骤如下。
步骤一:估计圆心和半径。
1) 把形态学滤波后的二值图像进行sobel边缘检测,得到可能为圆形边缘的前景点edges。
2) 设置Hough变换检测圆参数:对检测圆的半径范围进行限制,取最小值min_r=0.05×min(nrows,ncols),最大值max_r=0.5×min(nrows,ncols),因图像大小均为nrows×ncols=512×512,则检测圆的最小值为min_r=25,最大值max_r=256。其中min(nrows,ncols)表示取图像行数nrows和列数ncols的最小值。检测时每次转过的角度angle=0.1 rad;阈值p的取值范围是[0, 1],对于多圆检测,阈值p不能设置太大,本研究经过多次试验,取p=0.5。
3) 假如图像中存在圆形,那么其轮廓必定属于前景点。将圆的参数轮廓方程由x-y坐标系转换到a-b坐标系,转换公式为a=x-r×cos(angle),b=y-r×sin(angle),其中(x,y)为前景点的坐标位置,(a,b)为可能圆心的坐标位置,r为对应圆心的半径。
4) 遍历所有的edges点,根据设定的圆半径范围[min_r, max_r],角度取值为angle下,在累加投票图中统计圆心位置满足a>0,b>0时出现的次数。一个edges点需在所有可能的角度方向、半径上投票。最终得到累加投票图hough_space(a,b,r)。
5) 在hough_space中找到最大值max_para,然后在hough_space图中找到值大于等于max_para×p的所有点,则对应的(a,b)为估计的圆心、r为半径。其中p为设定阈值。
1) 对两个圆的圆心坐标限制条件。圆心必须要在图4(d)中苹果目标二值图像亮区。
2) 去掉大圆套小圆中的小圆。可利用公式d+r2≤r1,判断若满足此公式条件,去掉半径较小的圆。
图5 霍夫变换法检测出的苹果
图6 圆形约束法检测出的苹果
本研究算法分为3部分,即预处理、图像阈值分割、圆形检测。阈值图像分割的目的是得到重叠与遮挡苹果目标二值图像,圆形检测的目的是根据二值图像检测其中的圆并标注圆心和半径。阈值图像分割的质量决定了圆的检测效果,圆形检测能识别并定位苹果目标个体。
2.1.1 分割算法的效果分析
为了验证本研究算法——基于改进的多通道阈值分割算法,分别用直接Otsu、Kmeans迭代算法作对比,对自然环境下的苹果图像进行分割。原图为图1,本文算法结果为图4(d),直接Otsu和Kmeans迭代算法的识别结果如图7所示。
从图7可以看出,Otsu算法不能准确的识别出苹果目标,包含了许多树枝等其他信息;Kemans迭代算法虽然没有枝条等信息,但果实部分缺失严重,不能完整识别苹果部分。这是由于Kemans算法中有一个分类个数k需要人为确定,而自然环境下的苹果图像背景复杂,不能简单的把分类个数定为2,于是选择了手肘法计算分类个数,又导致过分割现象。
(a) Otsu
为了定量分析分割算法的有效性,随机抽取50幅苹果目标图像样本,计算本文算法对目标分割的精度和实时性。将50幅图像中的苹果目标进行人工分割提取,得到图像中真实目标像素Tm,再利用分割算法,得到检测的目标像素个数Ta,利用式(5)、式(6)计算目标分割的精确度(Ac)和假阳性率(FPR)。
(5)
(6)
如表1所示为50幅图的平均精确度、平均假阳性率和平均运算速度。由表1可知本文算法的精确度为95.5%,明显高于Kmeans迭代法和直接Otsu法,本文算法的假阳性率为2.1%,明显低于其他两种算法,验证了算法的精度有效性。本文算法在Matlab上的运行速度为1.65,明显低于Kmeans迭代法,验证了算法的实时性。
表1 不同算法的分割试验结果Tab. 1 Segmentation results of different algorithms
2.1.2 圆形检测算法的效果分析
圆形检测的目的是对分割后的多个目标二值化图像进行单一个体识别和定位,但由于苹果目标边缘并不是完全的圆形曲率,会导致一个目标检测出多个大小不一的圆形。本文算法中圆形约束算法很好的解决了这一问题,把多余的圆形去除,定位正确的目标个体。在选取的50幅苹果目标图像样本中,均可以准确识别目标个数。如表2所示,随机选取5幅苹果图像,目标个数范围在1~9之间,从表2中可以看出应用圆形约束后可以精准检测出目标个数。
表2 圆形检测算法的试验结果Tab. 2 Results of circular detection algorithm
为进一步验证本文提出的自然环境下目标苹果识别算法的有效性,需要在各种实际条件下来检测,试验分别针对果实数目、遮挡情况、光照情况不同的苹果图像为试验材料,选择直接霍夫变换检测圆算法、圆形约束法作为圆检测算法对比。
2.2.1 不同数量苹果的检测效果
采集图片时,摄像头距离果树的远近不同,图片中的果实数目、大小也会不同。当果实数目较少、尺寸较大时,识别难度较低。但如果在多果实条件下,果实的尺寸变小、数目变多,识别难度增大。因此设置几种算法对不同数量苹果的检测效果对比,如图8所示为单个苹果目标的检测效果,图9为多个目标的检测效果。
(a) 原图
2.2.2 不同遮挡情况的检测效果
自然环境下的苹果生长形态不一,本节选取3个典型的遮挡情况,有果实间重叠、树叶遮挡、树枝遮挡,分别如图10~图12所示,从试验结果来看,均能准确识别苹果部分。
(a) 原图
(a) 原图
(a) 原图
(c) 霍夫变换检测圆算法 (d) 圆形约束算法
2.2.3 不同光照情况的检测效果
拍摄图片时,拍摄时间、拍摄时的光照角度都会对检测效果有影响,本节选取逆光光照弱时的苹果图像,逆光时苹果和枝叶的亮度明显降低,且分界线不明显,检测结果如图13所示,从试验结果来看,能准确识别苹果部分。
(a) 原图
本文提出了一种自然环境下重叠或遮挡苹果的图像识别方法,该方法成功实现果实个体目标分割与定位。
1) 算法包括图像预处理、图像目标分割和个体目标识别3个部分。选取双边滤波法对图像进行噪声滤波,选取lab颜色空间a分量,YUV空间U、V分量对图像进行阈值分割,获得苹果目标二值图像,采用霍夫变换和圆形约束法识别并定位单一苹果目标。
2) 在图像分割部分选用多通道的阈值分割算法,实现苹果目标与其他自然环境分离,平均精确度在95.5%,假阳性率在2.1%,在Matlab上的运行速度为1.65 s,与传统的Otsu和Kmeans迭代法相比,本文算法准确度高,速度快,且避免了过分割。 在个体目标识别定位部分,利用苹果目标的类圆性质,选择霍夫变换算法检测圆,并增加了限制圆心算法,使结果能准确识别并定位个体目标。
3) 为进一步验证算法的有效性,选取果实数目、遮挡情况、光照情况不同的苹果图像为试验材料,均能实现果实目标识别和定位。