基于机器视觉的餐盘检测定位系统的研究
2019-01-19胡国清
汪 聪,胡国清,
(1.华南理工大学 机械与汽车工程学院,广州 510641;2.广东肇庆市科华食品机械实业有限公司,肇庆 526000)
0 引言
随着我国高等教育事业的迅猛发展,截止2017年6月,全国普通高等学校已达2914所,高校食堂总数过万,每天约有2800万人就餐。从而导致食堂等候时间过长、人工打菜分量缺少标准等弊端一一暴露出来,为了解决人工售饭存在的问题,设计了一套基于机器视觉的机器人自动打菜系统来代替人工打菜。该系统的关键在于餐盘位置的识别,并通过机械手爪将菜品放入合适的区域。晏祖根[1]等基于并联机器人、机器人视觉等技术,构建了用于食品包装的高速机器人分拣系统。浙江大学的杨皋[2]基于视觉处理软件HALCON开发了一套基于机器视觉的餐盘缺陷检测系统,检测速度可达4000个/时,缺陷检测准确率在95%以上。
1 系统总体方案设计
系统主要由视觉模块、执行模块以及控制模块三部分组成,如图1所示。其中视觉模块负责图像处理部分,当餐盘经流水线运动到相机位置,触发光电开关,相机开始拍照,机器人控制器接收经过图像处理定位后的坐标,将菜品放入指定区域。图2展示了系统的工作流程。
2 餐盘图像处理
2.1 图像预处理
图1 系统总体方案设计
图2 系统工作流程图
在相机图像采集及传输过程中,可能会由于信号干扰引入噪声,严重影响后续图像处理效果,因此需要对采集的图像进行预处理。对于空间图像滤波而言,通常会选定由一个邻域以及对该邻域包围的图像像素执行的预定义操作组成的空间滤波器。在图像中的任意一点(x,y),滤波器的响应g(x,y)如式(1)所示。
式中w(s,t)为滤波器在(s,t)处的像素值,f(x,y)为原图像在(x,y)处的像素值。
高斯滤波是一种线性平滑滤波,对于抑制服从正态分布的噪声十分有效,广泛应用于图像处理的减噪过程。一维零均值高斯函数如式(2)所示。
式中,高斯分布参数σ决定了高斯函数的宽度。对于二维图像处理,常用二维高斯函数来生成高斯滤波器,二维高斯函数如式(3)所示。
虽然高斯滤波可以去除图片中的噪声,但同时也会模糊图像的边缘信息,对高频细节的保护并不明显。
小波变换在时域和频域都具有良好的局部化特性,被广泛应用于众多的学科和领域,包括信号分析的滤波、去噪、压缩,图像处理的图像压缩、图像去噪、边缘提取等方面。
由于数字图像是二维信号,将小波变换应用到图像处理中时,需要将一维小波变换推广到二维。给定尺度函数和平移基函数:
其中i指出图像中的不同方向的小波,则大小为M×N的图像f(x,y)的离散小波变换为:
式中,j0是一个任意开始的尺度,系数定义了f(x,y)在尺度J0处的近似,而系数对尺度j≥j0附加了水平、垂直和对角方向的细节。
数字图像的二维离散小波变换可通过数字滤波器向下采样实现:先对行方向与低通小波滤波器进行卷积处理,再对它的列向下取样,得到两幅子图像。然后,沿列的方向对两幅子图像进行滤波并向下取样,将图像分解成四个子图像分别反映了水平和垂直方向的低频成分、水平方向的低频成分和垂直方向的高频成分、水平方向的高频成分和垂直方向的低频成分、水平方向的高频成分和垂直方向的高频成分。对图Wϕ重复进行小波变换分解就可得到n级分解图。图3给出了基于Haar小波的餐盘图像二级分解效果图。
图3 小波变换效果图
将含有噪声的图像经过小波变换多尺度分解后,需要在各尺度进行降噪处理。由于经过小波变换后,有效信号的小波系数的模值较大,而噪声对应的小波系数的模值较小。对经过小波变换后的信号设定一个阈值,当小波系数小于该阈值时,则认为这时的小波系数是由噪声引起的,当小波系数大于该阈值时,则认为这时的小波系数是由信号引起的。设定小波变换的阈值系数,将低于其阈值的小波系数设为零,可以有效抑制噪声干扰并保留边缘细节。
将经过阈值处理后的图像通过离散小波反变换(如式(8)所示)后,可得到去噪后的图像处理结果。
图4从左到右依次为经过灰度变换的餐盘灰度图,经过高斯滤波后的图像以及经过小波变换滤波后的图像,可以看出高斯滤波已经模糊了图像细节,而基于小波变换的滤波在滤波的同时仍能很好地保留图像的边缘信息。
2.2 边缘提取
边缘检测是基于灰度突变来进行图像分割的最常用的方法,图像的边缘连接处会发生明显灰度变化,而图像的梯度则反映了边缘处的强度和方向。要得到图像的梯度,首先要在图像的每个像素位置(x,y)处计算偏导数∂f/∂x和∂f/∂y,如式(9)、式(10)所示:
图4 滤波效果图
梯度用∇f来表示,并使用向量来定义:
传统的Canny算法是一种简单有效地边缘检测算法,具有信噪比大,检测精度高等优点。但也存在不足之处。
1)Canny算法使用高斯滤波器进行去噪处理,但在去除噪声的同时也模糊了边缘信息。
2)在图像的梯度幅值计算上,传统Canny算法对噪声比较敏感,容易检测出一些假边缘或者丢失一些真实的边缘信息。
3)由于需要使用高低阈值来检测边缘,而且对于不同的图像,设定的阈值也不同,需要多次人工实验来确定阈值。
针对以上问题,本文采用以下方法对传统Canny算法进行改进,作为餐盘区域的边缘检测算法。
1)使用上文提到的双边滤波器代替高斯滤波器进行图像的滤波处理,在去除噪声的同时保留图像的边缘细节。
2)使用模板大小为3×3的Sobel算子计算图像的梯度,降低对噪声的敏感程度。
3)在阈值的选择上,采用Otsu提出的基于最大类间方差的法的最佳全局阈值处理。假定阈值为k,定义类间方差:
2.3 餐盘特征提取
经过边缘检测之后图像的边缘轮廓已经被正确检测出来,但由于非线性光照、餐盘本身的雕刻花纹以及餐盘油污等因素,会导致部分噪声边缘也同时被检测出来,因此,我们需要对边缘检测结果作进一步处理。
通过餐盘的外形特征,餐盘的尺寸为350×260mm,长宽比约为1:1.35,餐盘面积约为910cm2,同时考虑到不同的餐盘之间的尺寸误差,设置误差范围为±2,依次寻找边缘中所有的包围轮廓,然后根据寻找到的包围轮廓面积,长宽比等条件进行筛选,剔除面积过大或者过小,长宽比不符合要求的噪声边缘轮廓,最后可得到餐盘的边缘轮廓如图5所示,中心点为根据图像矩计算出的餐盘中心点。
图5 轮廓筛选结果
同时,令∆Dij表示第i块餐盘在第j次定位时的定位误差∆D,根据式(14)所示,统计所有的餐盘定位精度σ=3.7025pixel,转化为实际距离精度δ=0.798mm,式中:
3 结束语
本文基于机器视觉搭建的餐盘检测定位系统,比较了高斯滤波和基于小波变换的阈值滤波的效果,并选用基于小波变换的阈值滤波进行图像的去噪处理。通过改进的Canny算法提取餐盘的边缘轮廓,并利用餐盘特征筛选出正确的边缘轮廓信息,通过实验证明,餐盘定位精度可达0.798mm,满足实际生产需求。
表1 餐盘定位提取结果