基于背景饱和度压缩与差异阈值分割融合的香蕉串识别*
2021-07-15付根平陈天赐张世昂黄伟锋杨尘宇朱立学
付根平,陈天赐,张世昂,黄伟锋,杨尘宇,朱立学
(1. 仲恺农业工程学院自动化学院,广州市,510225; 2. 仲恺农业工程学院机电工程学院,广州市,510225)
0 引言
香蕉作为岭南的特色水果和经济作物,种植规模大,适收期的香蕉串质量约30 kg,目前香蕉串采收为人工方式,劳动强度大、采摘效率低、人工成本高,严重制约香蕉的产业发展和经济效益[1-2]。而机器人可实现香蕉串采摘的机械化和智能化,不仅可以提高采摘效率、降低生产成本,还能解决劳动力短缺问题[3-4]。然而,准确、快速地识别香蕉串是机器人完成采摘作业的前提和关键。
国内外学者对柑橘、香蕉等果蔬识别方法[5-17]进行了研究,主要采用传统的图像处理技术,基于果蔬与环境背景的颜色差异以及果蔬规整的形状进行识别,如Zhuang等[11]利用柑橘与环境背景的颜色差异通过增强色差取得了较好的识别效果;赵相飞[13]基于纹理颜色对温室大棚内与背景颜色相近的黄瓜进行识别,但大棚中光照等环境因素较为理想,干扰较少;Lü等[14]利用局部极值法和苹果的形状特征进行了较好的识别;吴佩等[15]提出了基于形状拟合与颜色模糊评判的香蕉识别方法,能够较好地识别出香蕉,但试验环境不是自然香蕉园,而且该方法需依赖香蕉的外形;Peng等[16]利用边缘检测算法和支持向量机对水果进行识别和分类,香蕉的识别准确度较高。
上述果蔬识别方法对于自然环境中香蕉串的识别存在以下问题:(1)适收期的香蕉颜色与环境背景相似,比苹果、柑橘等颜色差异明显的水果识别难度更大;(2)香蕉串外形不规则,难以像苹果、柑橘等采用类圆形拟合;(3)自然香蕉园环境的不确定性和光照变化的干扰,如蕉叶容易反光、透光及遮挡香蕉串,从而影响香蕉串的图像采集质量和识别准确度。
基于卷积神经网络的图像识别已被广泛应用于农业等领域。部分学者采用卷积神经网络等深度学习方法对水果进行识别,取得了较好的结果[18-23]。例如,Yu等[23]通过掩膜区域卷积神经网络在非结构化环境下进行草莓识别,准确率较高。Chen等[24]基于深度学习方法对苹果和橘子进行识别并计数,采用英伟达泰坦X级别GPU,其成本较高,且网络模型需迭代多次才能收敛,训练时间较长。虽然卷积神经网络能获得较好的识别效果,但耗时、费力、应用成本高。此外,卷积神经网络结构复杂,训练的参数很多,故图像样本量巨大、训练时间较长;而且训练好的卷积神经网络部署到采摘机器人上难度也很大,因为它对系统的硬件配置和兼容性要求较高。
而传统图像识别方法对硬件要求不高,实时性好,在机器人上部署便捷,但容易受光照变化以及茎叶颜色与香蕉串相似度高等环境因素影响,导致香蕉串识别的准确度不高,因此,提出一种基于图像背景饱和度压缩与差异阈值范围分割融合的方法,对自然香蕉园环境中适收期的香蕉串进行识别。根据香蕉串图像HSV空间饱和度分量各灰度等级的像素比例自适应提取香蕉串区域的饱和度阈值并据此确定伽马系数,然后对图像背景做伽马变换或半值压缩以降低灰度值,增强香蕉串对比度;接着以大、小阈值范围分别对背景压缩后饱和度分量与色调分量的差值图像进行分割,并做孔洞填充和连通域提取,将获取的背景噪声与大、小阈值范围的分割结果做差值融合去噪,从而得到噪声点少、准确度高的香蕉串。
1 背景饱和度压缩与差异阈值分割融合的香蕉串识别
由于适收期的香蕉串颜色与环境背景相似度较高,同时光照变化、叶片和香蕉串反光等因素的影响,使得在RGB图像中识别香蕉串准确度低、噪声点多。而通过分析HSV颜色空间发现,香蕉串的饱和度S值较大,超过大部分的环境背景,可以通过饱和度阈值进行分割;香蕉串的色调H值与环境背景基本一致,难以直接通过阈值识别;此外,光照对图像的影响主要体现在强度分量V中,所以为了减少光照影响,在香蕉串识别时不考虑强度分量。因此,选择在饱和度分量S和色调分量H的差值图像中进行香蕉串识别。显然,要先将采集的香蕉串图像从RGB颜色空间转换成HSV,为便于计算,将HSV颜色空间各分量归一化成0~255范围。
为了提高香蕉串的识别准确度和鲁棒性,提出基于图像背景饱和度压缩和差异阈值分割与融合的香蕉串识别方法,实现流程如图1所示。为了减少计算量,提高识别速度,先压缩原始香蕉串RGB图像分辨率,再将图像转换到HSV颜色空间,然后对图像背景饱和度做伽马变换和半值压缩以增强香蕉串区域与环境背景的对比度,接着以差异阈值范围,结合孔洞填充和连通域提取形态学处理方法对饱和度分量与色调分量的差值图进行分割、提取、融合,从而得到准确度高、噪声点少的香蕉串。
图1 香蕉串识别流程
1.1 基于自适应阈值提取的图像背景饱和度压缩
分析发现,HSV颜色空间香蕉串的饱和度值高于大部分环境背景,而色调值较为相似,强度空间受光照影响较大。因此,对不同饱和度阈值区域的图像背景做伽马变换或半值压缩以降低其灰度值,增强香蕉串区域的对比度、提高可分割性,其流程如图2所示。
图2 伽马变换和半值压缩的图像背景饱和度压缩流程
1.1.1 香蕉串区域的饱和度阈值自适应提取
为了只压缩图像背景的饱和度而保持香蕉串区域的不变,必须先确定香蕉串区域的饱和度阈值。而基于图像样本自适应提取香蕉串的饱和度阈值,先根据图像饱和度分量中各灰度等级的像素个数及其所占比率确定香蕉串区域的饱和度参考阈值,然后做相应的修正,进而得到香蕉串区域的饱和度阈值。
若饱和度图像分辨率为M×N,统计出灰度等级k的像素个数为nk,则其在图像中所占比率
(1)
式中:L——饱和度的最高灰度等级,L=255。
由于饱和度图像中香蕉串区域的灰度等级较高,故可剔除低灰度等级区域,以缩小统计范围,提高图像处理速度,因此,选取合适的灰度等级c,仅在高于c的灰度等级区域(c,L)内提取香蕉串区域的饱和度参考阈值m。为了增强可靠性,采用区域灰度等级比率总和最大法来确定香蕉串的饱和度参考阈值m。将灰度等级区域(c,L)按顺序以长度r均分成q个子区域,然后分别统计各子区域中r个灰度等级在图像中所占比率的总和
(2)
考虑到香蕉串区域的灰度等级在图像中所占比例均较大,由概率统计可知,比率总和最大的子区域即为香蕉串饱和度参考阈值的潜在区域。因此,先由式(3)遍历出q个灰度等级子区域中比率总和最大值P(t)所对应的子区域t,再由式(4)遍历出子区域t内所占图像比率最高的灰度等级,即为香蕉串区域的饱和度参考阈值m。
P(t)=max(P(i)),i=1, 2, …,q
(3)
m↔max(p(k)),k=r×(t-1),…,(r×t)-1
(4)
接着按式(5)、式(6)修正饱和度参考阈值m,即得香蕉串区域的低饱和度阈值η、高饱和度阈值μ。
η=m-δ
(5)
μ=m+δ
(6)
式中:δ——饱和度阈值的修正量。
1.1.2 低饱和度图像背景自适应伽马变换
伽马变换的基本形式
s=auγ
(7)
式中:u——伽马变换输入灰度值;
s——伽马变换输出灰度值;
γ——伽马系数;
a——伽马变换常数。
当式(7)中伽马系数γ取不同值时可得到图3所示的伽马变换曲线,其中伽马系数γ大于1时,对灰度等级较低的区域压缩效果明显,符合对香蕉串低饱和度图像背景区域的压缩要求。
为了实现饱和度空间的自适应伽马变换,由低饱和度阈值η确定伽马系数γ。由图3可知,伽马变换的输入和输出灰度值范围均为0~1,而低饱和度阈值η的范围为0~255,故须先归一化,即η/255。通过试验可知,η的压缩率取5/6时可较好地压缩图像背景饱和度,将其代入式(7)可得求解伽马系数γ的方程式
(8)
由式(8)解出伽马系数γ后,进行图像遍历,对小于低饱和度阈值η的背景饱和度按式(7)做伽马变换以降低其灰度值,从而增强与香蕉串区域的对比度。
图3 伽马变换示意图
1.1.3 高饱和度图像背景的半值压缩
香蕉叶片经透光会大幅提高其饱和度值,甚至超过香蕉串,但与香蕉串区域的饱和度值差异并不明显,这将对香蕉串的识别产生干扰。因此,需对高饱和度的图像背景区域进行压缩以提高香蕉串的对比度。
分析图像中高饱和度的背景区域发现,其灰度值归一化后通常大于0.9,由图3可知,该区域的灰度值经伽马变换后压缩率较小,其输出灰度值可能落在香蕉串区域,将会影响香蕉串的识别准确度,因此,高饱和度的图像背景不宜采用伽马变换压缩。由于香蕉串区域的饱和度值处在180~230的区域,而高饱和度图像背景处在230~255的区域,半值压缩后其饱和度区域为115~128。显然,高饱和度背景区域半值压缩后与香蕉串区域的饱和度存在一定差值,所以对高饱和度区域采用半值压缩,即
(9)
式中:x——半值压缩的输入饱和度值;
y——半值压缩的输出饱和度值。
1.2 差异阈值范围分割与融合的香蕉串识别
为了尽可能减少光照影响,同时进一步提高对比度,将背景压缩后的饱和度分量S和色调分量H做差值,然后对该S-H差值图像进行香蕉串识别。
由于不同阈值范围对香蕉串的分割效果影响较大。大阈值范围分割的香蕉串完整度较高,但背景噪声较多,需要进一步滤除噪声;而小阈值范围分割的香蕉串完整度相对较差,但背景噪声也相对减少。然而,可采用孔洞填充、连通域提取等形态学处理技术先从大、小阈值范围的分割结果中提取背景噪声,再与分割结果做差值融合以滤除其中的背景噪声,即差异阈值范围分割与融合的香蕉串识别方法,实现流程如图4所示,主要操作步骤如下。
图4 差异阈值范围分割与融合的香蕉串识别流程
Step1:以大阈值范围对S-H差值图像进行分割,提取出完整度高但噪声点多的香蕉串。
Step2:以小阈值范围对S-H差值图像进行分割,提取出完整度较差但噪声点少的香蕉串。
Step3:对Step2分割结果进行孔洞填充、连通域提取,并去除最大的连通域,从而获取部分背景噪声。
Step4:由于Step3获取的背景噪声同样存在Step1分割结果中,故将Step1分割结果与Step3获取的背景噪声做差值融合,减少部分背景噪声与香蕉串区域的连通。
Step5:对Step4的结果再做孔洞填充、连通域提取,并去除最大的连通域,即得Step4结果中的背景噪声。
Step6:将Step4的分割结果与Step5提取的背景噪声做差值融合,得到准确度高、噪声点少的香蕉串。
该方法通过连续对大、小阈值范围分割的结果进行孔洞填充和连通域提取,获取背景噪声,并做差值融合去噪,从而识别出准确度较高的香蕉串。此外,阈值范围的确定与自适应确定饱和度阈值方法类似,根据各灰度等级像素个数在S-H差值图像中所占比率最大确定香蕉串区域的中心阈值,再进行修正得到大、小阈值范围。
为了评估本文方法对香蕉串的识别效果,采用交并比方式定义香蕉串的识别准确度
(10)
式中:T——香蕉串分割区域与实际区域的交集像素;
R——香蕉串分割区域与实际区域的并集像素。
准确度ρ的取值范围为0~1,其值越大表明本文方法对香蕉串识别的准确度越高。
2 试验及结果分析
为了验证本文方法对香蕉串的识别效果,在自然香蕉园中强光、弱光、遮光、反光、透光等环境下采集适收期香蕉串的RGB图像样本,并将其分辨率压缩至560像素×300像素。所用计算机的CPU型号为英特尔i7-9750H、6核12线程、基准频率为2.6 GHz,内存为16 G,在MATLAB2018b软件平台下进行试验。
2.1 香蕉串图像背景的饱和度压缩试验
选取图5(a)所示RGB图像样本,其中香蕉串与香蕉茎叶等环境背景的颜色非常接近,转换至HSV颜色空间后各分量如图5所示。其中,图5(b)所示色调分量H中香蕉串与环境背景的差异性不大,故难以直接进行分割;图5(c)所示饱和度分量S中香蕉串亮度高于环境背景,表明其饱和度值较大;而光照的影响主要体现在图5(d)所示强度分量V中。
(a) RGB
为说明香蕉叶片透光对图像背景的影响,将图6(a)、图6(c)所示RGB图像转换至HSV颜色空间,并做差值运算、区间提取和二值化处理生成图6(b)、图6(d)所示二值图,其中白色区域主要是香蕉串,但还有部分是叶片透光区域,因为强光照射蕉叶产生透光而增强了饱和度,使其接近甚至高于香蕉串,难以直接通过香蕉串阈值将其滤除,故需要压缩叶片透光区域的饱和度,增强与香蕉串的对比度。
以图5(c)所示饱和度图像为例,采用本文所述饱和度阈值自适应提取方法在灰度等级大于c=150的区域提取出参考阈值m=204、低饱和度阈值η=191、高饱和度阈值μ=217,如直方图7所示。将η值代入式(8)解得伽马系数γ=1.63,然后对小于阈值η的低饱和度区域做伽马变换,对大于阈值μ的高饱和度区域做半值压缩。
(a) RGB图1
图7 饱和度阈值自适应提取示意图
背景饱和度压缩前、后的直方图如图8、图9所示,对比可知,香蕉串潜在区域的灰度等级基本不变,而压缩后大部分背景饱和度的灰度等级分布在160以内,其中在80以内和115~125范围内的像素个数明显增多。显然,背景饱和度压缩较好地增强了香蕉串潜在区域的对比度。
图8 图像背景未压缩的饱和度直方图
图9 图像背景压缩后的饱和度直方图
为进一步说明伽马变换和半值压缩的效果,对图5(c)中背景饱和度做不同程度的压缩,再与图5(b)色调分量做差值,并进行阈值分割和二值化处理,结果如图10所示。图10(a)中背景饱和度未压缩,分割出了较多的区域,对香蕉串的分割识别干扰较大;图10(b)只做伽马变换,噪声区域明显减少,表明伽马变换降低了大部分环境背景的饱和度值;图10(c)中香蕉叶片透光区域进一步减少,表明半值压缩能有效降低光照在饱和度空间的影响。
(a) 未压缩
由图5(c)饱和度分量做伽马变换和半值压缩后,与图5(b)色调分量做差值S-H,其直方图如图11所示,呈双峰状,其中,香蕉串潜在区域的灰度等级集中在110~170区域内,而噪声区域的灰度等级分布在100以内,因此,能较好地对香蕉串进行分割。
图11 饱和度分量和色调分量差值直方图
2.2 差异阈值分割与融合的香蕉串识别试验
由图11可知,香蕉串潜在区域位于饱和度分量与色调分量差值直方图中灰度等级较大的峰值区域,先由灰度等级比率最大法提取出峰值152,再以±20对其修正得到132~172的小阈值范围,然后对香蕉串进行阈值分割、孔洞填充和连通域提取,结果如图12所示。同理,以±30对峰值修正得到122~182的大阈值范围,对香蕉串进行分割,结果如图13所示。
(a) 小阈值范围分割
(a) 大阈值范围分割
图12中,小阈值范围分割的香蕉串噪声相对较少,但完整度较差。而图13中大阈值范围分割的香蕉串完整度较好,但背景噪声较多,这表明以单个阈值范围难以分割出理想的香蕉串。因此,采用本文大、小阈值范围分割与融合的香蕉串识别方法,实现过程如图14所示,其中大阈值范围分割后香蕉串的识别准确度ρ为0.512 9,经第一次差值融合后ρ为0.696 5,而第二次差值融合后ρ为0.844 1。由图12~图14的结果对比可知,本文方法识别的香蕉串不仅准确度较高,而且有效滤除了背景噪声。
为了验证本文方法的适用性和鲁棒性,选取环境背景与香蕉串颜色相似度较高,以及存在光照不均、反光、透光的112个图像样本进行试验,并由式(10)计算香蕉串的识别准确度ρ,统计结果如表1所示,其中,高于0.85的占比39.29%;介于0.80~0.85的占比46.43%;低于0.80的占比14.28%;而高于0.80的占比超过85%。
图14 差异阈值分割与融合识别香蕉串的流程
表1 香蕉串的识别准确度Tab. 1 Accuracy of recognition for bunch of bananas
将图像样本的识别结果用包含香蕉串所有像素的最小外接矩形标记,如图15所示,红色矩形下的数字表示香蕉串的识别准确度ρ,示例图像样本香蕉串的识别准确度大部分高于0.80,其中最高的为0.877 5。试验结果表明,本文方法鲁棒性较强,能较好地适应不同光照和环境颜色,香蕉串的识别准确度较高。
图15 香蕉串识别示例
为进一步说明本文方法的优越性,与直接采用阈值分割方法(简称“直接分割法”)识别香蕉串的时间和准确度ρ进行对比,随机选取10个图像样本,试验结果如表2所示。其中,本文方法对香蕉串的识别准确度均高于0.81,最高的为0.864 2,而直接分割法的识别准确度大部分低于0.80,最低的仅为0.571 4。由于本文方法需要先压缩图像背景饱和度,并且通过大、小阈值范围分割的结果融合去噪得到香蕉串,增加了处理步骤,故耗时更长。据表2可知,本文方法的耗时在0.51~0.57 s之间,而直接分割法的耗时相对较短,在0.45 s以内,最短的约0.29 s。相比之下,本文方法增加了一定的耗时,但香蕉串的识别准确度ρ提高幅度较大,因此,在满足机器人采摘作业实时性要求下,能够提高香蕉串的采摘作业效率和可靠性。
表2 不同方法的香蕉串识别结果Tab. 2 Result for bunch of bananas recognition by different methods
3 结论
本文研究了基于图像背景饱和度压缩与差异阈值范围分割融合的香蕉串识别方法。
1) 分析了香蕉串图像HSV颜色空间各分量特征、区域灰度等级以及像素分布特点。根据香蕉串饱和度图像中各灰度等级的像素比例自适应提取香蕉串潜在区域的高饱和度阈值μ=217、低饱和度阈值η=191,然后由低饱和度阈值η求解出伽马系数γ=1.63,并对小于低饱和度阈值η的区域做伽马变换,对大于高饱和度阈值μ的区域做半值压缩,从而增强了香蕉串的对比度。
2)以大、小阈值范围分别对饱和度分量与色调分量的差值图像进行分割,然后对分割结果进行孔洞填充和连通域提取,并将获取的背景噪声与大、小阈值范围的分割结果做差值融合去噪,从而得到准确度较高、噪声点少的香蕉串。
3) 试验表明,对自然香蕉园环境中不同光照下采集的图像样本,香蕉串的识别准确度高于0.85的占比39.29%,介于0.80~0.85的占比46.43%,低于0.80的占比14.28%。本文方法具有较好的适用性和鲁棒性,香蕉串的识别准确度较高,满足采摘机器人的作业要求。