计算机视觉学习——表面检测

小古在本学期选修了《计算机视觉原理与应用》,学习了有关表面检测的相关知识。

“表面检测”应用案例学习报告

摘要随着计算机技术、人工智能技术、图像处理及识别技术的发展,机器视觉技术为传统的工业自动化带来了技术性的革新,提高了自动化产品质量和生产力。本文通过表面检测技术完成对表面出现划痕或者褶皱类缺陷的识别任务,以满足在工业生产中对存在瑕疵产品的筛选,并且使用机器视觉识别产品物理缺陷可明显提高检测效率。本文使用图像平滑、阈值分割、区域特征、区域形态学、连通区域提取、仿射变换等几种图像处理算法对物品进行表面检测,通过表面检测缺陷识别使到物品表面缺陷清晰可见。通过此案例了解到在机器视觉表面缺陷检测项目中,图像处理和分析算法时非常重要的部分。

关键字:机器视觉;表面缺陷检测;图像处理;检测算法

1  表面检测应用案例的背景和意义

        传统的产品表面质量检测主要采用人工检测的方法,人工检测不仅存在检测效率低下而且还受检测人员主观因素的影响,容易对产品表面缺陷造成漏检,尤其是变形较小、畸变不大的夹杂缺陷漏检,极大降低了产品的表面质量,从而不能够保证检测的效率与精度,所以已经开始了向机器视觉表面检测的转型。在这种背景下,本项目旨在通过此应用案例设计完整的缺陷表面检测算法流程,推动表面检测由人工检测向工业自动化转变。

1.1 表面检测应用案例背景

1.1.1 工业产品表面检测背景

        中国是一个制造大国,每天都要生产⼤量的工业产品。随着工业发展的不断进步,对产品质量的要求越来越高,不仅要有好的使用性能,还要有良好的产品外观,即良好的表面质量。但是在制造产品的过程中,表面缺陷的产生往往是不可避免的。⼀般而言,表面缺陷是产品表面局部物理或化学性质不均匀的区域,如金属表面的划痕、斑点、孔洞,纸张表面的色差、压痕,玻璃等非金属表面的夹杂、破损、污点,等等。表面缺陷不仅影响产品的美观和舒适度,而且⼀般也会对其使用性能带来不良影响,所以对产品的表面缺陷检测这一环节非常重要。

1.1.2 基于机器视觉的表面检测技术

        机器视觉技术是一种无接触、无损伤的自动检测技术,是实现设备自动化、智能化和精密控制的有效手段,具有安全可靠、光谱响应范围宽、可在恶劣环境下长时间工作和生产效率高等突出优点。机器视觉检测系统通过适当的光源和图像传感器(CCD摄像机)获取产品的表面图像,利用相应的图像处理算法提取图像的特征信息,然后根据特征信息进行表面缺陷的定位、识别、分级等判别和统计、存储、查询等操作。机器视觉表面缺陷检测系统主要包括图像获取模块、图像处理模块、图像分析模块、数据管理及人机接口模块。

        在本案例中主要是对图像处理模块和图像分析模块进行一些学习。

        图像处理模块主要涉及图像去噪、图像增强与复原、缺陷的检测和目标分割。由于现场环境、相机获取图像时光电转换等因素都会使图像产生噪声,这些噪声降低了图像的质量从而对图像的处理和分析带来不良影响,所以要对图像进行预处理以去噪。图像增强目是针对给定图像的应用场合,有目的地强调图像的整体或局部特性,将原来不清晰的图像变得清晰或强调某些感兴趣的特征,扩大图像中不同物体特征之间的差别,抑制不感兴趣的特征,使之改善图像质量、丰富信息量,加强图像判读和识别效果的图像处理方法。图像复原是通过计算机处理,对质量下降的图像加以重建或复原的处理过程。图像复原很多时候采用与图像增强同样的方法,但图像增强的结果还需要下一阶段来验证;而图像复原试图利用退化过程的先验知识,来恢复已被退化图像的本来面目,如加性噪声的消除、运动模糊的复原等。图像分割的目的是把图像中目标区域分割出来,以便进行下一步的处理。

        图像分析模块主要涉及特征提取、特征选择和图像识别。特征提取的作用是从图像像素中提取可以描述目标特性的表达量,把不同目标间的差异映射到低维的特征空间,从而有利于压缩数据量、提高识别率。表面缺陷检测通常提取的特征有纹理特征、几何形状特征、颜色特征、变换系数特征等,用这些多信息融合的特征向量来区可靠地区分不同类型的缺陷; 这些特征之间一般存在冗余信息,即并不能保证特征集是最优的,好的特征集应具备简约性和鲁棒性,为此,还需要进一步从特征集中选择更有利于分类的特征,即特征的选择。图像识别主要根据提取的特征集来训练分类器,使其对表面缺陷类型进行正确的分类识别。

1.2 此应用案例的意义

        在工业生产中的产品质量检测环节中表面检测技术非常重要,此应用案例通过机器视觉算法、图像处理等技术来完成对物品表面是否存在缺陷的检测过程,从而在存在表面缺陷的条件下及时识别出缺陷情况。此应用案例综合运用图像处理的相关知识来检测工业产品是否存在表面缺陷,虽不如深度网络模型检测缺陷的准确率,但是由于成本过高和深度学习的不可解释性,使用传统图像处理方法检测产品缺陷检测在工业上仍占着很大一部分比例,此外,在深度网络机器视觉检测表面缺陷也是需要图像处理作为模型训练时的基础。所以可通过此应用案例推广工业生产中的机器视觉表面缺陷检测应用,进而提高表面缺陷检测精度和生产效率。

2  本案例中视觉算法的整体设计流程

2.1 表面检测应用案例的视觉算法设计

        本案例整体的算法较为简单,主要是完成一些简单的图像处理之后利用算法进行缺陷检测就可以了。要实现对物体表面的缺陷检测,首先需要借助摄像头、光学镜头等图像获取模块获取物体表面图像,然后使用动态阈值分割算法将感兴趣的区域从图像中分割出来,然后将整个边界区域内的空洞填充,再使用腐蚀运算将分割区域中的干扰去掉,之后根据需要可使用区域形态学分割算法将分割区域内部的感兴趣区域或边界分割出来,要将划痕等缺陷分割出来,可以使用开运算、仿射变换等算法进行运算,最后便可以使用动态阈值分割操作对感兴趣区域进行缺陷检测了。本案例通过对门把手划痕的检测为例。

2.2 本案例表面检测操作流程

        对于表面检测常使用暗场直接正面照明,可以使用LED环形光照明,这种照明方式使得表面划痕清晰可见。由于设备问题,本案例使用《机器视觉算法与应用》书籍提供的暗场照明得到的门把手图像(图1)。首先我们要利用阈值分割算法将门把手从图像中分割出来,由于边缘局部比背景亮,所以可以采用动态阈值算法进行分割操作。

计算机视觉学习——表面检测_第1张图片

                图1 

        使用均值滤波器来估计局部背景的灰度值,均值滤波器大小可以按照门把手在图像中最小的尺寸进行选择,以此可更好地抑制分割噪声,这样比背景高出指定灰度值的所有图像结构被分割出来以产生高亮的边界区域(图2)。为得到完整的门把手区域,要将动态阈值运算后得到的边界区域内的空洞填充(图3)。

计算机视觉学习——表面检测_第2张图片计算机视觉学习——表面检测_第3张图片

                 图2                                                       图3

        确定需要检测的平面,需要从分割结果中去掉门把手的亮边界和中间4个小的正方形的亮边界。在分割区域中杂点和小的突出物会导致计算错误,需要对填充后的图像中门把手区域使用腐蚀运算将干扰去掉。可以基于门把手的方向和尺寸使用区域形态学分割算法将内部的4个正方形分割出来。这样划痕仍会在分割出的亮的边界区域中。最后需要将划痕从分割结果中分离出来才能进行缺陷检测。内部正方形尺寸与整个门把手尺寸是成一定比例的,比例大小可通过简单的计算得出,然后利用放射变换将结构元素进行适当调整(图4)。然而得到的结果仍含有门把手外边界,可进行开运算,然后取和腐蚀后的门把手区域的交集。最后对门把手区域与内正方形的差进行检查并做相应处理如开运算、膨胀操作(图5)。

计算机视觉学习——表面检测_第4张图片计算机视觉学习——表面检测_第5张图片计算机视觉学习——表面检测_第6张图片

                                                         图4

 计算机视觉学习——表面检测_第7张图片

                         图5 

        至此便可以进行缺陷检测了,缺陷检测时使用动态阈值分割操作,使用中值滤波器估计背景。为了区分噪声和缺陷,可以通过膨胀将缺陷区域中小的缝隙闭合,而交集运算是不影响各成分的连通性的,于是通过膨胀仅是增加了连通区域的轮廓,最后选出所有比预定最小划痕大的区域便完成了表面缺陷检测了。 

3  所使用的图像处理技术

3.1 图像分割

3.1.1 全局阈值分割

        阈值分割是图像分割算法中最简单的分割算法。阈值分割操作被定义为:

        ​​​​​​​                                          (1)

阈值分割将图像ROI R内灰度值处于某一指定值范围内全部点选到输出区域S中,由于阈值对于ROI中的所有点都是相同的,所以此操作也叫作全局阈值分割。经常使用  。如果光照能保持恒定, 阈值 能在系统设置时被选定且永远不用被调整。既然阈值分割是基于灰度值自身的, 所以只要被分割的物体和背景之间存在非常显著的灰度差时,都能使用阈值分割。

3.1.2 自动阈值分割

        固定阈值仅在物体的灰度值和背景的灰度值不变时效果很好,但是照明变化后物体和背景的灰度值就会发生变化。即便使用的照明是恒定不变的,相似物体间不同的灰度值分布也会使固定阈值分割的结果不理想。这时候就不能对两幅图像使用同样的阈值,因此,理想情况下希望有一种能够自动确定阈值的方法。其中Otsu算法用得较多,该方法通过一定程度上最大化背景和目标区域灰度值的可分离性,使用这两个类别的类间方差来衡量可分离性。

                      (2)

 这里,  表示的是 b 位图像的最大灰度值,  u_{j}(k)表示所有灰度值从 0 到  k 的灰度直方图的 j 阶矩。 

                                             (3)

         h_{i}是灰度值 i 的出现概率, 通过等式 (4) 给出。最佳阈值 t 由等式 (2) 的是大化结果给出。

                                                                     (4)

        n表示在图像感兴趣区域中的像素点总数,n_{i}表示图像中灰度值是的像素点的总数。

3.1.3动态阈值分割

        当直方图中存在双峰的假设不成立时,基于直方图计算得到的阈值效果便不太好,这时不能找到一个对整幅图像都适用的固定阈值。针对局部区域,其中感兴趣的物体一般都会比背景更亮或更暗,因此,需要指定一个像素必须比其所处的背景亮多少或暗多少,而不是指定一个全局阈值。可以使用滤波处理的输出结果作为对背景灰度值的估计,然后将图像与其局部背景进行比较的操作就被称为动态阈值分割处理。

        用 f_{r,c}表示输入图像,用 g_{r,c}表示平滑后的图像,则对两物体的动态阈值分割处理为:

                                              (5)

而对暗物体的动态阈值分割处理是:

                                                     (6) 

3.2 区域形态学

3.2.1 形态学操作

        形态学,即数学形态学,主要应用是从图像中提取对于表达和描绘区域形状有意义的图像份量,使后续的识别工做能抓住目标对象最为本质(最具区分能力)的形状特征,如边界、骨架和连通区域等;同时细化、像素化和修建毛刺等技术也经常应用于图像的预处理和后处理中,是图像加强技术的有力补充。基本思想是用具备必定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析识别的目的。形态学图像处理的应用能够简化图像数据,保持它们基本的形状特性,并除去不相干的结构。

        所有的区域形态学处理能根据六个简单的操作来定义:并集,交集,差集,补集,平移和转置。

        两个区域R和S的并集是所有位于R或者S内的点的集合:

                           (7)

并集的一个重要特性是其操作的可交换性:,并且并集操作是可结合的:。计算两幅二值图像并集时仅需要对两图像进行逻辑或or运算即可。

        两个区域R和S的交集是不但位于R内又位于S内的所有点的集合:

                                          (8)

 交集操作也是可交换和可结合的,并且,在二值图像上求交集时仅需对两图像进行逻辑与and运算即可。

        两个区域R和S的差集是位于R且不能位于S内的所有点的集合:

                                                      (9)

差集计算是不能交换的,也是不能结合的。注意差集可以根据交集和补集来定义。一个区域R的补集被定义为不位于R内的所有点的集合:

        ​​​​​​​        ​​​​​​​        ​​​​​​​                                                               (10)

由于一个有限区域的补集是无限的,所以不能用二值图像来表示,因此对于以二值图像表示的区域,定义不含补集的操作是重要的。

        根据一向量t来平移某个区域被定义为

        ​​​​​​​                      (11)

         一个区域的转置被定义为关于原点的一个镜像:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​                                                                 (12)

在以上这些操作中,转置是唯一需要挑选特殊点(原点)的操作,所有其他的操作都不依赖于坐标系的原点,即它们是平移不变的。

3.2.2 闵可夫斯基加法和膨胀

        区域形态学处理方法通常要涉及到两个区域,一个是我们要处理的那个区域R,另一个区域被称为结构元,用S表示。第一个形态学处理操作方法是闵可夫斯基加法和膨胀。闵可夫斯基加法定义为: 

  (13)

第一个公式是指通过闵可夫斯基加法运算后可得到所有点的集合。第二个公式是指取出S中所有点,根据这些点所对应的向量来平移区域R,然后对全部平移得到的区域取并集。第三个公式是于第二个公式相对称的,根据R中的全部点来平移S。第四个公式是指在平面内移动转置后的结构元,任何时刻当转置后的结构元平移到与区域存在至少一个公共点时,可拷贝此评议后的参考点到输出点中。

        而闵可夫斯基要求在转置后结构元至少与区域存在一个公共点,针对这一点可以使用膨胀操作,此操作能够返回所有平移后的参考点,在这些位置时结构元自身与区域存在至少一个公共点。膨胀操作可定义为

        ​​​​​​​                                                 (14)

3.2.3 闵可夫斯基减法和腐蚀

        第二个形态学处理操作方法时闵可夫斯基减法和腐蚀。由下式定义:

      (15)

第一个公式是指取区域交集。第二个公式可认为是用S中所有向量s来移动区域R,区域内全部点必须都被包含在所有平移得到的区域内。第三个公式表示转置后的结构元可以在整个平面内移动,如果转置后的结构元被完全包含在区域R中,就将其参考点加入到输出结果中。与闵可夫斯基的区别在于要求结构元必须全部被包含在区域内。与膨胀类似,在闵可夫斯基减法中使用转置结构元被称为腐蚀,定义如下:

        ​​​​​​​                ​​​​​​​                                     (16)

        腐蚀和膨胀最有用处的应用是计算区域的边界,这一应用对表面缺陷检测意义重大。

3.2.4 开运算和闭运算

开运算定义为:

        ​​​​​​​        ​​​​​​​        ​​​​​​​                                  (17)

因此,开运算是先进行腐蚀操作后再紧接着进行一个使用同样结构元的闵可夫斯基加法。第二个等式告诉我们能通过在整个平面内移动结构元来直观地看出开运算的处理过程。任何时刻当结构元完全位于区域内时将平移后的整个结构元加到输出区域内(而不是腐蚀操作中的平移后的参考点)。并且开运算无须考虑参考点的位置,相对于结构元是平移不变的,而且开运算是幂等的,即多次使用与一次使用得到的结果是一致的。

闭运算定义为:

                                                               (18)

运算是先执行一个膨胀操作后紧接着再用同一个结构元进行闵可夫斯基减法。不幸的是没有简单的公式能直观地表达闭运算的处理过程。第二个等式实际上是由开运算和闭运算的对偶性得到的,对前景的一个闭运算等同于对背景的一个开运算,反之亦然:

        ​​​​​​​        ​​​​​​​        ​​​​​​​                                    (19) 

闭运算相对于结构元也是平移不变的,并且也是幂等的。  

         闭运算与开运算是对偶的,这一特性可用来合并彼此分开的物体,这些物体间的缝隙小于结构元,如果使用类似圆或矩形作为结构元,闭运算能够用来填充空洞及消除比结构元小的缺口以平滑区域的边界。

        除了上述几种图像处理技术,此案例还用到了另外几种常用的图像处理技术:均值滤波、仿射变换及连通区域提取。

        均值滤波是典型的线性滤波算法,是指⽤当前像素点周围n x n个像素值的均值来代替当前像素值。使⽤该⽅法遍历处理图像内的每一个像素点,可完成整幅图像的均值滤波。均值滤波处理作用主要是降低图像噪声干扰,实现图像平滑,模糊等功能。

        仿射变换是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。其在图像处理中的作用主要是对图像中物体进行平移和角度旋转修正。

        连通区域提取是各种图像处理工作中很重要的预处理工程,通常是在分割算法处理后进行的操作,分割后得到的区域中所包含的多个物体在返回结果中一般是彼此独立的。通常情况下,我们所感兴趣的物体是由一些相互连通的像素集合而成。在需要将前景目标提取出来以便后续进行处理的应用场景中都能够用到连通区域分析方法,通常连通区域分析处理的对象是一张二值化后的图像。

你可能感兴趣的:(计算机视觉,学习,计算机视觉,图像处理,机器视觉)