基于计算机视觉的标签定位检测
2018-09-05吴鹏飞常君明
吴鹏飞,常君明
(江汉大学 数学与计算机科学学院,湖北 武汉 430056)
0 引言
计算机视觉是使用计算机及相关设备对生物视觉的一种模拟,应用在人工智能、模式识别和三维分析等领域。在实际工程中对商品标签信息的识别尤为重要。基于视觉的定位检测可以有效识别标签,能快速准确定位标签[1],提高生产工作效率。
在工业领域中,图像背景一般都比较单一,所以目前大多采用颜色定位算法[2-4]进行定位。颜色定位算法是采用计算机识别物体的颜色从而使物体与背景分离,进而对物体进行定位。在检测时,计算机通过物体整体像素进行物体质心、角度等特征的求取。若物体所处背景一旦有颜色干扰,计算机便无法准确地对物体进行精确定位,降低了定位的精度,从而影响对物体位置特征的获取。当通过颜色算法定位后,由于需要计算物体整体像素来得到物体位置特征,大大降低了定位的速度。
本文在现有颜色定位算法的基础上,提出一种基于计算机视觉的标签定位检测算法[5],该算法在基于计算机视觉的标签图像定位检测中利用ROI对标签图像进行分割,提取有效的标签图像区域。用计算机视觉对获取的标签图像区域进行读取、分析与处理。寻找和绘制图像区域中的轮廓,用外接最小多边形对轮廓进行包围,同时对多个不同位置的标签实现精准定位。
1 标签图像预处理
1.1 目标区域快速获取
在基于计算机视觉的标签定位检测中,对所有图像区域进行处理会大大增加所需时间和降低处理的精度,因此会设置ROI选取目标区域,在设置了ROI以后就只需对分割出的目标区域进行分析,从而提高工作效率。常见的定义ROI区域有指定矩形区域和指定感兴趣行或列的范围两种方法。本文使用指定矩形区域设置ROI,将标签图像分割得到目标区域,提取标签图像中所需要的标签信息,使实验效果更佳。
1.2 目标区域降噪处理
在采集标签图像的场景中,由于光照等因素会使标签图像产生噪声,噪声会严重影响对标签图像信息的接收[6]。在基于计算机视觉的标签定位检测中,需要对选中的目标区域进行滤波降噪处理。滤波操作是标签图像预处理[7]中不可缺少的部分,滤波的效果好坏将直接影响到对标签的精确定位。
在实际工程领域中,进行滤波降噪的同时不能破坏目标区域的细节特征,且需使图像的清晰效果更好,而线性滤波中的高斯滤波就很好地符合此要求。高斯滤波是一种对整幅图像进行加权平均的滤波方法,有离散化窗口划窗卷积与傅里叶变换两种实现方式。用一个模板对目标区域图像的每一个像素进行扫描,用模板确定的领域像素的加权平均灰度值代替中心像素点的值[8],其中的3×3和5×5高斯卷积内核如图1和图2所示。
图1 高斯3×3卷积内核Fig.1 Gaussian 3×3 convolution kernel
图2 高斯5×5卷积内核Fig.2 Gaussian 5×5 convolution kernel
选用高斯滤波能更有效地保留边缘效果[9]。图3是视觉传感器采集到的未经处理的标签原始图像,图像上有许多噪声,影响了后续图像轮廓的提取。由图4可观察出原始图像经过高斯滤波处理后消除了高斯噪声,减少了图像的噪声点,使图像可观测信息更加突出。
2 目标区域边界增强
2.1 边界增强的目的
在去除目标区域图像噪声后,图像中还会有一些不需要考虑的小目标、小的孔洞及轮廓之间的连接物,有的轮廓还会有断痕,则需要进一步对标签图像进行降噪处理,利用阀值分割[10]将物体与背景分割,度量和提取标签图像中对应的形状,为定位检测做准备。在本实验中通过腐蚀、膨胀、开运算等操作以达到进一步去除噪声及平滑目标边界的功能[11]。
图3 原始图像Fig.3 Original image
图4 高斯滤波后的图像Fig.4 Image after Gaussian filtering
2.2 消除小面积轮廓与填补空洞
当目标区域图像经过降噪处理后,图像中仍然会有很多小面积轮廓和空洞,这些会影响标签轮廓的提取,需要选用膨胀、腐蚀操作对其进一步处理。膨胀就是求最大值,从数学角度来说膨胀操作就是将图像与核进行卷积,膨胀操作是扫描图像的每一个像素,与其覆盖的二值图像做与的运算。腐蚀操作则与膨胀操作相对应。膨胀与腐蚀的数学表达式如下:
将标签图像进行腐蚀和膨胀操作,由图5可知,先使用腐蚀操作去除标签图像中细小图像物体的边缘点。由图6可知,在腐蚀的基础之上再进行膨胀操作将物体内部的空洞去除,且将腐蚀后留下的大物体变回原来模样,有效分割出了独立的标签图像元素,从而不影响后续轮廓的提取。
图5 腐蚀图像Fig.5 Corrosion image
图6 膨胀图像Fig.6 Inflated image
2.3 目标区域边界平滑
在基于计算机视觉的标签定位检测中,选中的目标区域图像中会有很多突出物且物体边界不平滑,图像中局部亮度低的区域需要放大,进行开运算和形态学梯度操作可以很好地解决问题。形态学梯度是膨胀图与腐蚀图之差,形态学梯度操作可以在二值图像上将团块的边缘突出来,可以很好地保留标签图像的边缘轮廓。在膨胀与腐蚀的基础上,形态学梯度数学表达式如下:
在降噪处理、腐蚀、膨胀的基础上,对选取的标签图像进行边界平滑,具体效果如图7所示。可见标签信息之间的连接物已消除,图像边缘轮廓较为明显,平滑了标签图像中较大轮廓的边界,消除了图像中的突出物,更有利于标签最大轮廓的提取。
图7 开运算Fig.7 Open operation
3 属性特征的获取
3.1 区域图像特征提取
在区域图像的特征提取中,边缘检测[12]需要用滤波器来改善检测器的性能,并对区域图像的边缘进行增强处理,最后再通过二值阀值化来检测边缘,需要达到低错误率、高定位性和最小响应等要求。而多级边缘检测算法Canny算子正符合本实验要求,首先使用了高斯滤波来平滑一些纹理较弱的非边缘区域,从而更好地进行边缘检测。Canny检测需要利用Sobel滤波器来计算经过滤波后图像的梯度和方向角。Soble算子在水平与竖直两个方向进行求导。在水平方向将图像与一个奇数大小的内核Gx进行卷积,在竖直方向上与水平方向一致。有关数学表达式如下:
则可以求出近似梯度
把高斯滤波器和Sobel滤波器结合起来使用,进行噪声消除和最后的边缘检测会使实验效果更好。
3.2 寻求最大轮廓
虽然Canny算法很好地找到了标签图像轮廓边界的像素,但是并没有将轮廓的边缘像素组合起来。在标签图像上有很多的轮廓,标签图像中标签信息的轮廓肯定是最大的轮廓,找出最大轮廓就可以定位标签信息,利用最小多边形将最大的轮廓包围起来。
3.3 实验结果分析与比较
在标签的定位检测中,主要找出标签的质心与方向这两个基本的特性。在基于视觉的定位中找到标签图像中的最大轮廓,用最小多边形来包围最大的轮廓,可以直接找出最小多边形的位置特性来代替标签信息的特性,从而实现对标签信息的定位检测[13]。定位检测效果如图8和图9所示。由图8可知,先用最大轮廓来代替标签有效信息的轮廓,用最小矩形将两个标签最大轮廓包围,实现对标签的精确定位,再分别计算出两个不同位置最大轮廓的角度和质心特性,来代替两个标签的位置特性,从而实现对标签的快速、精确定位检测,所求不同标签的具体位置参数如图9所示。
图8 最大轮廓Fig.8 Maximum contour
图9 标签属性特征Fig.9 Tag attribute characteristics
在分析了基于计算机视觉的标签定位检测和传统方法的定位检测后,了解到了基于视觉的定位具有快速、复杂度较低等优势。传统方法对质心的计算需要对图像全部像素进行计算,计算量较大,导致计算速度慢。本文方法仅需要对最大轮廓像素进行计算,计算量较小,相对计算速度较快。在标签的方向角度计算上,本文方法对包围最大轮廓的矩形进行计算求角度,传统方法对不规则多边形计算求角度,相比之下本文方法复杂度低,计算速度快。具体对比如表1和表2所示。
表1 质心计算比较Tab.1 Comparisons of centroid calculation
表2 方向计算比较Tab.2 Comparisons of direction calculation
4 结语
本文利用ROI将图像的重要区域分割出来,用滤波操作对标签图像进行降噪预处理,利用膨胀、腐蚀、开运算和形态学梯度运算对标签图像进一步降噪处理并有效的保留边缘轮廓。找出所有轮廓,用多边形来包围最大轮廓以代表标签信息,求出多边形的质心和倾斜角度来代替标签信息的质心和倾斜角度,从而使实验的可行性更高。本文提出的基于视觉的标签定位检测算法与传统的定位检测方法[14]相比具有更高的检测精度和速度,大大提高了生产效率。随着自动化控制程度的提高和智能机器人的增加,基于计算机视觉的标签定位检测必将应用广泛。