基于图像处理的番茄表面高光去除方法
作者: 阮子行 黄勇 王梦 史强 张金玲
摘 要:为解决光照不均匀导致的番茄表面出现块状的高光区域而干扰视觉算法识别精度的问题,采用图像分割、图像滤波和图像融合相结合的高光去除方法。通过试验验证,该方法在单个番茄与多个番茄情况下都表现较好,并且峰值信噪比(PSNR)和结构相似性(SSIM)两个指标的平均值为0.954和28.91。结果表明,该方法能有效去除番茄表面的高光,研究结果对指导番茄加工流水线改造具有一定意义。
关键词:图像处理;高光去除;滤波;番茄
中图分类号:S641.2 文献标志码:A 文章编号:1673-2871(2023)04-064-07
Highlight removal method of tomato surface based on image processing
RUAN Zihang1, 2, HUANG Yong1, 2, WANG Meng1, SHI Qiang1, ZHANG Jinling1
(1. College of Mechanical and Electrical Engineering, Xinjiang Institute of Engineering, Urumqi 830023, Xinjiang, China; 2. College of Mechanical and Electrical Engineering, Xinjiang Agricultural University, Urumqi 830052, Xinjiang, China)
Abstract: In order to solve the problem of blocky highlight area on tomato surface caused by uneven illumination, which interferes with the recognition accuracy of visual algorithm, a highlight removal method combining image segmentation, image filtering and image fusion was adopted. Experimental results showed that the proposed method performed well in the case of single tomato and multiple tomatoes, and the average values of peak signal-to-noise ratio(PSNR)and structural similarity(SSIM)were 0.954 and 28.91. The results showed that the method could effectively remove the highlight on tomato surface. The results have certain significance for guiding the transformation of tomato processing line.
Key words: Image processing; Highlight removal; Filtering; Tomato
新疆一直被称为水果之乡,种植的番茄等水果具有独特的天然优势:昼夜温差大并且昼长夜短,雨水较少,十分有利于番茄生长与抵抗病虫害。独特的环境气候为大规模番茄种植、加工创造了有利的条件,番茄加工产业也是新疆独特的“风景”[1]。由于现代机械自动化设备的快速发展,图像处理技术早已应用在水果种植、采摘、加工等一系列过程中。将图像处理技术应用在水果质量分拣过程中[2-4],代替传统的人工方式,可以更好地解放生产力,降低生产成本,并且避免人工长时间工作导致分拣质量不一致而影响产品质量的情况。图像采集过程中,图像质量与环境有着密切的关系,特别是环境光照成为影响机器视觉应用成功的关键因素之一。
在生活中,由于环境光照不均匀,会使得番茄表面出现块状高光亮斑,高光会一定程度地掩盖物体本身的颜色、纹理等视觉特征,可能会导致算法将高光的区域误判成缺陷或其他特征,降低图像识别、目标检测以及场景判断的精确度和鲁棒性,给后期处理带来无法忽视的阻碍。郑利华等[5]在HSV空间修正高光区域,通过多项式修正V值,直方图修正H值,低于阈值的S分量在动态范围内压缩,从而实现高光区域的消除,这是一种比较简单常用的修正方式,效果也十分明显。Yang等[6]通过采集多视角的图像,利用多张图像合成的方式去除引起高光的镜面反射分量。Feng等[7]提出了一种基于固有分解和二色反射模型将不饱和像素与色散联系起来的无监督k-means聚类方法来恢复不饱和高光。同时,设计了一种自适应方向方法以及高斯概率分布模型来恢复饱和高光。王祎璠等[8]通过显著性模型,检测物体上的高光区域,利用改进算法将高光图像的邻域和边缘像素信息,对检测出的高光区域进行修复。
笔者提出一种结合图像分割、图像滤波和图像融合的高光去除方法。设计思路为首先分析高光特性,选择合适的颜色空间提取番茄表面高光区域,其次使用图像均值滤波的方式处理高光区域,最后将处理后的高光区域和原图像中非高光区域进行图像融合,研究结果可为番茄的检测、识别相关算法提供一定的技术支持。
1 材料与方法
1.1 高光提取
1.1.1 高光性质 根据双色反射模型[9],反射分为两类,一类是为漫反射,如图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中番茄表面出现的白色斑点则为高光亮斑。
根据统计发现白色亮斑处亮度值高或饱和度低。选择在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值在高光区与非高光区均有明显的幅度变化,说明通过这些变量分割高光区与非高光区存在可行性。
根据软件统计可以得到图2中番茄的高亮区数据范围,得到相对应的阈值,在HSV空间中的V值分布在200~255,S值分布在0~165,HSI空间I值分布在165~255,S值分布在0~165,YIQ空间中的Y值分布在195~255,通过3个空间相关分量的阈值范围将高光区分割出来。
使用分割函数将区域分割出,函数模型定义为:
[g(x,y)=0 if(x,y)≥T1 if(x,y)<T] 。 (1)
式中T为各空间最优阈值。
在这3个不同的空间中进行试验,试验结果见图4。通过3个空间中的分量的阈值范围,将高光区分割出来,图像高光区被分割出后,高光区以亮度值0赋予,此刻高光区域显示为黑色,非高光区保持番茄原来的样貌。如图4所示,高光区是一个非规则的区域。通过YIQ空间中的Y分量分割,很多高光区并未分割出来,而青果上出现部分过度分割的现象,整体效果不如HSV空间和HSI空间的双阈值分割的效果。HSV空间和HSI空间进行分割的效果对比中,HSV空间将更多的细微的高光区域分割出来,视觉效果相对更好。
分别统计YIQ、HSI和HSV 3个空间分割出的高光区像素数目与手工标记出的像素数目并进行对比,取图2(像素数4000×3008)得到对应统计数据(表1)。
通过MATLAB计算出不同空间分割方法的像素数占比,由表1可见,相对YIQ空间和HSI空间,在HSV空间的错检率分别下降0.13%和0.01%,漏检率也分别下降0.25%和0.11%,高光像素的错检率和漏检率都相对较低,说明选择在HSV空间分离高光分量的精确度更高。
1.2 高光去除
番茄外形主要为类似椭圆的形状,凸起的弧面使得表面高光区域主要分布在相对靠近形状的中心位置,且呈现狭长的形状分布。由于一般图像都具有局部连续性,这些都为均值滤波实现高光消除提供了前提。
如果把一个二维的数字图像当作一个二维函数f(x,y),函数中x值和y值便是每个像素所在的空间位置坐标,故称为空间域。在此空间实行的滤波称之为空间域滤波。滤波的过程就是模板中心点在图像f(x,y)中依次移动,当模板中心点与图像f(x,y)的像素点(x,y)重合时,滤波器在此处进行数学逻辑计算[12],计算逻辑是根据模板中的内容,通过事先给定的函数关系R进行计算[13],当模板采用3×3的模板W时公式如下:
R=W(-1,-1)f (x-1,y-1)+W(-1,0)f(x-1,y)+…+W(0,0)f(x,y)+…+W(1,1)f(x+1,y+1)。 (2)
根据高光区的像素值由临近非高光区像素值代替,实现高光消除为思路,为此采用均值模板进行掩膜滤波。均值模板要求参与决定新像素g(x,y)的所有领域的像素值的权重均为1,则在领域中每个像素的贡献值都相同,即要保证整个模板系数相同并且系数和为1,故在计算后需要除以参与计算的像素数目[14],使得新图像的灰度值与原来图像保持一致,这里采用一个(2K+1)×(2K+1)的正方形模板SE,模板公式如下:
[SE=1(2K+1)21…1⋮⋱⋮1…1(2K+1)(2K+1)]。 (3)
其中,2K+1表示滤波核的大小,K为正整数。
设定模板SE大小时,模板过小,会出现高光像素周围不存在非高光像素的情况,则无法进行有效的全部消除高光;模板过大就会造成不必要的像素模糊。为了避免出现以上2种情况,保证图片的整体质量,需要使得模板SE掩盖在高光区时,模板仅存在较少的像素在非高光区,进行高光消除的同时图像的模糊程度得到控制。