阮子行,黄 勇,王 梦,史 强,张金玲
(1.新疆工程学院机电工程学院 乌鲁木齐 830023;2.新疆农业大学机电工程学院 乌鲁木齐 830052)
新疆一直被称为水果之乡,种植的番茄等水果具有独特的天然优势:昼夜温差大并且昼长夜短,雨水较少,十分有利于番茄生长与抵抗病虫害。独特的环境气候为大规模番茄种植、加工创造了有利的条件,番茄加工产业也是新疆独特的“风景”[1]。由于现代机械自动化设备的快速发展,图像处理技术早已应用在水果种植、采摘、加工等一系列过程中。将图像处理技术应用在水果质量分拣过程中[2-4],代替传统的人工方式,可以更好地解放生产力,降低生产成本,并且避免人工长时间工作导致分拣质量不一致而影响产品质量的情况。图像采集过程中,图像质量与环境有着密切的关系,特别是环境光照成为影响机器视觉应用成功的关键因素之一。
在生活中,由于环境光照不均匀,会使得番茄表面出现块状高光亮斑,高光会一定程度地掩盖物体本身的颜色、纹理等视觉特征,可能会导致算法将高光的区域误判成缺陷或其他特征,降低图像识别、目标检测以及场景判断的精确度和鲁棒性,给后期处理带来无法忽视的阻碍。郑利华等[5]在HSV空间修正高光区域,通过多项式修正V 值,直方图修正H 值,低于阈值的S 分量在动态范围内压缩,从而实现高光区域的消除,这是一种比较简单常用的修正方式,效果也十分明显。Yang 等[6]通过采集多视角的图像,利用多张图像合成的方式去除引起高光的镜面反射分量。Feng 等[7]提出了一种基于固有分解和二色反射模型将不饱和像素与色散联系起来的无监督k-means 聚类方法来恢复不饱和高光。同时,设计了一种自适应方向方法以及高斯概率分布模型来恢复饱和高光。王祎璠等[8]通过显著性模型,检测物体上的高光区域,利用改进算法将高光图像的邻域和边缘像素信息,对检测出的高光区域进行修复。
笔者提出一种结合图像分割、图像滤波和图像融合的高光去除方法。设计思路为首先分析高光特性,选择合适的颜色空间提取番茄表面高光区域,其次使用图像均值滤波的方式处理高光区域,最后将处理后的高光区域和原图像中非高光区域进行图像融合,研究结果可为番茄的检测、识别相关算法提供一定的技术支持。
1.1.1 高光性质 根据双色反射模型[9],反射分为两类,一类是为漫反射,如图1 中左图所示,当光线照射到不平整的物体表面时,光线会向着各个方向发射,光线均匀分散,不会出现局部光线过于强烈。另一类则是镜面反射,如图1 中右图所示,当光线照射到平整的表面时,光线朝着一个方向传播,就会一定程度导致光线过于强烈,出现高强度白色亮斑,称之为高光。
图1 漫反射(左)和镜面反射(右)
1.1.2 试验环境 笔者试验所用的所有番茄样本均采集于新疆乌鲁木齐番茄市场,品种为里格尔87-5 和石番15 号,采用一加8 手机完全随机采集3张番茄图片并进行3 次重复试验求平均值。试验时间为2021 年7-9 月,试验地点为新疆工程学院实验室。所用试验环境如下:电脑操作系统为64位Win10 家庭版,图像处理软件平台采用Matlab2020a,图像分析软件采用Image-Pro Plus6.0,采用三星16 G 内存、三星512 G 固态硬盘。
1.1.3 颜色空间选择 颜色空间的选择对精准分割出番茄表面的高光区域至关重要。图2 中番茄表面出现的白色斑点则为高光亮斑。
图2 番茄高光图片展示
根据统计发现白色亮斑处亮度值高或饱和度低。选择在RGB、HSV、HSI、YIQ 等常见颜色空间进行特征获取,在RGB、HSV、HSI、YIQ 的颜色空间中,RGB 空间中图像亮度信息是由R、G、B 值三者共同决定的,光线亮度变化对R、G、B 3 个值影响是显著的[5],无法将亮度信息从RGB 模型中单独分离出来,所以在RGB 模型空间中完成高光去除,其算法的鲁棒性也较差。
在HSV 空间、HSI 空间、YIQ 空间中,亮度参数独立于颜色特征,在HSV 空间、HSI 空间中,颜色主要由色调参数H 决定,YIQ 空间中颜色由I(色彩从橙色到青色)、Q(色彩从紫色到黄绿色)参数共同决定。HSV 空间的饱和度S 和明度V,HSI 空间的饱和度S 和亮度I,以及YIQ 空间的亮度Y 分量都将决定亮度特征[10-11]。故将以上3 个空间作为高亮区提取的待选空间。在图2 中截取局部高光区域,分析番茄表面高光与非高光区域的参数区别,选择与高光更相近的青番茄果实区域为背景,更便于发现高光区域与背景的特征参数区别。
根据Image-pro plus 6.0 软件获得高亮区与背景在各个空间参数。由图3 可以看出,在HSI 空间的饱和度S 和亮度I,HSV 空间的饱和度S 和明度V 以及YIQ 空间的Y 值在高光区与非高光区均有明显的幅度变化,说明通过这些变量分割高光区与非高光区存在可行性。
图3 番茄高光区各空间分量值分布
根据软件统计可以得到图2 中番茄的高亮区数据范围,得到相对应的阈值,在HSV 空间中的V值分布在200~255,S 值分布在0~165,HSI 空间I值分布在165~255,S 值分布在0~165,YIQ 空间中的Y 值分布在195~255,通过3 个空间相关分量的阈值范围将高光区分割出来。
使用分割函数将区域分割出,函数模型定义为:
式中T为各空间最优阈值。
在这3 个不同的空间中进行试验,试验结果见图4。通过3 个空间中的分量的阈值范围,将高光区分割出来,图像高光区被分割出后,高光区以亮度值0 赋予,此刻高光区域显示为黑色,非高光区保持番茄原来的样貌。如图4 所示,高光区是一个非规则的区域。通过YIQ 空间中的Y 分量分割,很多高光区并未分割出来,而青果上出现部分过度分割的现象,整体效果不如HSV 空间和HSI 空间的双阈值分割的效果。HSV 空间和HSI 空间进行分割的效果对比中,HSV 空间将更多的细微的高光区域分割出来,视觉效果相对更好。
图4 番茄高光区对应HSV、HSI 和YIQ 空间处理效果
分别统计YIQ、HSI 和HSV 3 个空间分割出的高光区像素数目与手工标记出的像素数目并进行对比,取图2(像素数4000×3008)得到对应统计数据(表1)。
表1 不同空间效果对比
通过MATLAB 计算出不同空间分割方法的像素数占比,由表1 可见,相对YIQ 空间和HSI 空间,在HSV 空间的错检率分别下降0.13%和0.01%,漏检率也分别下降0.25% 和0.11%,高光像素的错检率和漏检率都相对较低,说明选择在HSV 空间分离高光分量的精确度更高。
番茄外形主要为类似椭圆的形状,凸起的弧面使得表面高光区域主要分布在相对靠近形状的中心位置,且呈现狭长的形状分布。由于一般图像都具有局部连续性,这些都为均值滤波实现高光消除提供了前提。
如果把一个二维的数字图像当作一个二维函数f(x,y),函数中x值和y值便是每个像素所在的空间位置坐标,故称为空间域。在此空间实行的滤波称之为空间域滤波。滤波的过程就是模板中心点在图像f(x,y)中依次移动,当模板中心点与图像f(x,y)的像素点(x,y)重合时,滤波器在此处进行数学逻辑计算[12],计算逻辑是根据模板中的内容,通过事先给定的函数关系R进行计算[13],当模板采用3×3 的模板W时公式如下:
根据高光区的像素值由临近非高光区像素值代替,实现高光消除为思路,为此采用均值模板进行掩膜滤波。均值模板要求参与决定新像素g(x,y)的所有领域的像素值的权重均为1,则在领域中每个像素的贡献值都相同,即要保证整个模板系数相同并且系数和为1,故在计算后需要除以参与计算的像素数目[14],使得新图像的灰度值与原来图像保持一致,这里采用一个(2K+1)×(2K+1)的正方形模板SE,模板公式如下:
其中,2K+1 表示滤波核的大小,K为正整数。
设定模板SE大小时,模板过小,会出现高光像素周围不存在非高光像素的情况,则无法进行有效的全部消除高光;模板过大就会造成不必要的像素模糊。为了避免出现以上2 种情况,保证图片的整体质量,需要使得模板SE掩盖在高光区时,模板仅存在较少的像素在非高光区,进行高光消除的同时图像的模糊程度得到控制。
通过图5 可见,均值模板滤波后的图像与原图像进行对比可以发现高光区域已经被周围非高光区填补,但是整个图片高频细节也随之消失,使得整幅图模糊不清。
图5 均值滤波效果
平均模板滤波也是一种减少和抑制噪声的数字图像处理手段,整幅图进行滤波后会造成非高光区域的高频率细节信息特征丢失,使得整体模糊不清。所以将图片进行滤波,高光区域填补后,再次分割出高光区域如图6-A 所示,该区域由周围像素填充。滤波填充后高亮区域A 图与原非高亮区域B 图进行叠加融合,综合2 幅输入图像的信息,与融合前的2 幅图像相比,获得更高质量的输出图像,得到一张去除高光且保留非高光细节的图像,如图6-C 图所示。
图6 番茄高光区融合
通过高光提取、高光消除和图像融合实现番茄表面的高光消除。并以此方法进行3 组示例试验,对比表面高光消除前后的效果,如图7 所示。
图7 中3 个示例中高光消除前后对比,可以看到通过该方法高光区域得到了明显的去除,定性表明该方法在番茄表面具有较好的去除高光效果。图8 依次为图7 中的灰度值结果,可以看出,图8-A即示例1 中处理前灰度值在210~250 之间的像素、图8-B 即示例2 中处理前灰度值在180~250 之间的像素和图8-C 即示例3 中处理前灰度值在170~250 之间的像素值在处理后均已消失。此范围也就是高光区域所在范围,由此可以定量证实该方法去除高光的可行性。
图8 高光处理前后灰度值对比
前两组试验是对多个番茄重叠集中的图片进行分析,高光区呈现的形状主要是零散的狭长光斑,高亮区相对不明显。采用该试验方法对单颗番茄进行试验,结果如图7-C 即示例3 所示,效果依旧明显,番茄高亮区呈圆形,且高亮区数目较少但占整个番茄比重较大,目标背景存在枝叶的情况复杂。由处理前后的图片对比可以看出高光区域被很好地消除,灰度直方图也显示高光区域被去除,说明该方法在此类情况下效果依旧较好。为进一步评价高光去除后的图像品质,在其中引入了峰值信噪比(PSNR)和结构相似性(SSIM)2 种全参考的图像品质评估指标。
峰值信噪比由于便于计算和理解被普遍使用,单位为dB。结构相似性主要从图像的亮度、对比度、像素结构3 个角度来对比2 幅图像的相似程度。笔者试验中的3 幅图的峰值信噪比值(PSNR)和结构相似性(SSIM)统计结果如表2 所示。
表2 质量评价指标数据
笔者的算法与其他算法的峰值信噪比值(PSNR)和结构相似性(SSIM)对比结果如表3 所示。与参考文献7 中的方法相比,笔者的算法对应的峰值信噪比(PSNR)和结构相似性(SSIM)两个指标相对参考文献7 中方法有大幅度提高,可见笔者的方法在视觉上和图像质量数据分析上均具有良好的有效性。
表3 质量评价指标数据对比
目前对番茄表面的高光消除的研究并不多,笔者提出一种基于颜色空间的番茄表面高光消除方法,该方法利用HSV 空间的S 和V 分量进行高光区域分割,利用均值滤波去除高光,并试验证明该方法的可行性。郑利华等[5]、王中任等[15]均通过在颜色空间进行直方图均衡化和多项式调校,实现高光区域的消除,其优势是方法简单效果明显,但是控制的变量较多。Yang 等[6]通过多视角图像合成的方式去除高光分量,在实际情况下多视角图片通常不易采集。
李明悦[16]将高光稀疏性与带有稀疏性约束的非负矩阵分解问题相结合,从而实现高光消除。Feng等[7]提出了一种基于固有分解和二色反射模型将不饱和像素与色散联系起来的无监督k-means 聚类方法。两者均将高光问题转为数学模型求解高光分量实现高光的消除,该方法相对较为复杂,不方便操作。王祎璠等[8]通过显著性模型,对检测出的高光区域进行修复。笔者的方法对颜色空间的阈值进行分割,不影响非高光区的信息特征,仅针对高光区域进行处理,对图片整体信息影响较小。笔者的研究针对番茄表面高光的消除方法,相比其他方法更加简单方便且实时性更强,但是当出现大面积高光时存在高光中心区域的像素值偏差较大的问题。该方法在单个番茄和多个番茄聚集高光面积较小的情况下都有较好的去高光效果,在番茄识别检测领域具有一定的应用前景。