基于MATLAB金属表面缺陷分类与测量的GUI设计

前言:
好久不搞图像处理了(一年了吧),终于大三有门图像处理的选修课有个课设,我就怀着强迫症的思想把它好好做了下(话说好久没看其他专业课了。。。),其他两名女生全程躺。。。算法不好,脑子有点蠢熬夜太多了),这个是我的课设论文,所以没有代码。。。可能文章布局太乱,直接粘贴的,不想弄了。

1题目内容及要求

1.1题目内容

金属板广泛应用在工业生产与生产生活的各方面。由于金属板制造过程涉及到的设备、工艺等多因素的影响,金属板表面容易出现种类较多、形态各异的缺陷,这些缺陷对金属板的耐磨性、抗腐蚀性、电磁特性及美观性都会造成不同程度的影响,最终影响金属板的电磁特性和涂镀效果。因此对于生产金属板的企业来说,表面缺陷检测是必不可少的一个工序,一方面可以通过表面缺陷检测及时检测到缺陷产品,保证所产金属板的质量,维护企业的信誉,另一方面也可以通过分析检测结果及时发现生产过程中存在的问题,并及时解决[1]。我们将依据网上提供的金属表面缺陷照片数据集为图片来源,构造相应的算法对金属表面的缺陷进行检测,识别,分类与大小测量。

1.2题目要求

金属表面缺陷识别与分类有以下具体要求:
(1)依据金属表面缺陷图片的特性,对图片进行适当的灰度变换(对比度增强与滤波处理)
(2)对金属表面缺陷图片进行全局优化阈值分割;
(3)提取二值图片区域边界坐标;
(4)对金属缺陷进行特征提取;
(5)对金属缺陷进行分类有监督训练;
(6)完成对金属缺陷类型的判断与位置大小的计算;
(7)完成金属缺陷检测的GUI设计。

2.题目分析

我们查阅相关资料了解到常见的金属表面缺陷主要有如下几种,其分别是:细裂纹(crazing),表面杂质(inclusion),斑点(patches),麻点(pitted surface),轧入氧化皮(rolled-in scale)与划痕(scratches)。其分别对应图(a)-图(f)。

在这里插入图片描述

图2-1 金属表面缺陷分类

我们只考虑其中的三种类型:表面斑点(图b),表面轧入氧化皮(图(e))与表面划痕(图(f))。

图像处理的主要步骤有:对比度增强,滤波处理,阈值分割,形态学处理,特征提取,分类训练,缺陷位置大小计算及GUI集成操作显示。

Step.1:对比度增强

由于照明方式等缘故,我们发现原始图像中的金属表面缺陷和整个金属表面背景之间的灰度差较小,灰度范围较小,因而其对比度较低,金属缺陷并不明显,这不利于图像的后期处理,我们需要使用一些方法来增加图像的对比度。常见的对比度增强方法有对数变换,幂律变换,灰度级分层,灰度归一化,对比度拉伸,直方图均衡化,直方图规定化等。考虑到不同照片的背景光强并不相同,所以恒定参数的方法(如对数变换,幂律变换,灰度级分层,对比度拉伸)并不对所有图片适用,故我们考虑使用灰度归一化和直方图均衡化。

Step.2:滤波处理
拍摄照片时,在采集过程将会不可避免的引入各种噪声,包括高斯噪声和椒盐噪声等。同时,金属表面本身就具有一定的纹理。噪声和纹理将一定程度上将金属表面缺陷掩盖,从而导致会提取中产生错误,我们需要先对图像进行滤波处理以减少后续误检测。滤波方法主要分为空域滤波与频域滤波,且二者的关系满足卷积定理。其中空域滤波主要有均值滤波,中值滤波,高斯滤波与双边滤波;频率滤波注意有傅里叶变换滤波,离散余弦变换滤波与小波变换滤波。这些算法虽然可以减少噪声,但是也会滤除部分细节信息,导致某些缺陷细节的丢失。所有我们需要寻找新的滤波算法来实现。

Step.3:阈值分割

我们得到滤波图像后,还需要进行二值化阈值处理,从而恰当提取出缺陷信息。传统的阈值分割需要确定阈值,但对于不同复杂的金属缺陷图片,我们无法对所有的图片使用相同的阈值,我们拟使用全局/局部优化阈值分割,自动确定最佳的阈值。

Step.4:形态学处理

受限于原图质量与图像阈值分割算法,二值图像中某些应该连通的区域可能被阈值分割了,例如划痕缺陷由于在某处灰度值较低而被错误分割,导致一条划痕可能会被分离为多个线段。故我们需要进行闭运算来连接临近物体。同时,图片中某些缺陷较大(例如划痕宽度较大),在后续边缘检测后,一条直线的两个边缘相距较大,直线提取算法会误将同一根线作为两根相互平行划痕。故我们还需要对缺陷进行细化操作。

Step.5: 特征提取

该部分可以使用两种方法,一种是基于通用的特征提取算法(例如HOG, LBP, Haar算法等);另一种是基于我们所要检测的特定金属缺陷进行特定的特征来直接对划痕进行分类。我将分别对这两种方法进行测试。

Step.6: 分类训练

如果我们使用了通用的特征提取算法,我们将要对其进行分类监督训练,常用的监督学习算法包括:K临近算法(KNN),朴素贝叶斯算法,决策树算法,支持向量机(svm),逻辑回归等。由于支持向量机具有优秀的泛化能力,且在小样本训练集能够得到比其他算法好的多的效果[6],我们拟选择支持向量机算法。

Step.7: 缺陷位置大小计算

我们提取到缺陷后,需要不同特征来表征缺陷的大小与位置。对与’轧入氧化皮’,我们使用’轧入氧化皮’个数来表征缺陷大小,用其质心表征其位置;对于斑点,我们使用斑点中的面积占整个图片的比例来表征缺陷大小。对于划痕,我们使用划痕的两个端点来表征缺陷位置,用划痕长度标准缺陷大小。

Step.8: GUI设计

为了方便用户使用,我们设计了GUI界面,能够选择电脑中的图片,且能在点击’图像处理’后显示提取到的缺陷信息(类型与位置大小),对于划痕长度,我们能够让用户输入相机的焦距与物距长度,从而根据几何光学知识计算出实际划痕大小,并将每个划痕的像面大小与实际大小显示出来。同时GUI能够让用户通过按键前往数据集的下载网站。

3.解决问题的方法及原理

3.1 对比度增强

3.1.1灰度归一化

灰度归一化可使使一幅图像像素的灰度值分布在0~255之间,避免图像对比度不足(图像像素亮度分布不平衡)从而对后续处理带来干扰。其基本原理如下所示。
在这里插入图片描述

2 直方图均衡化

直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。我们尝试使用普通的直方图均衡化算法,发现其效果较差。其与原图相比效果如下:
在这里插入图片描述

图3-1-1 原始图片 图3-1-2 直方图均衡化后的图

可见,轧入氧化皮缺陷对比度提高的同时,其背景的对比度也被放大,导致背景中偏黑的部分变得与轧入氧化皮灰度相同,难以将其提取。传统直方图均衡化均衡整个图片的直方图分布,这种均衡化对于灰度对比度较小的部分效果较好,但对于灰度对比度较大的部分效果较差。我们发现上图中没有缺陷部分(低对比度)的对比度得以提升,但是对于含有缺陷的部分(高对比度),其对比度增加并不明显。故我们考虑使用自适应直方图均衡化(AHE),它通过计算图像每一个显著区域的直方图,来重新分布图像的亮度值,因此它更适合于用来改善图像的局部对比度,以及增强图像边缘信息,利于分割。但是,自适应直方图均衡化(AHE)有一个缺陷,就是它在增强对比度的同时也会增强图像同质(均匀)区域的噪声,以 AHE为基础的对比度受限的自适应直方图均衡化(CLAHE)可以有效降低这种噪声的增强。CLAHE中,每一个像素邻域都要进行对比度限制[4]。其具体做法(见图3-1-3)是对原始的直方图分布设定一个阈值,将大于阈值以上的部分剪切掉(钳位),将剪切部分的先进行均衡化处理,再将剪切部分的均衡化后叠加到剩余的直方图分布上(即给直方图加了一个’直流偏置’),之后在对新的分布进行均衡化处理,这样就能减少噪声的影响。由于原始图像被分割成若干个不重叠的子图像,经过上面过程处理后的各个子图像分解处将会出现明显的灰度不连续现象(有明显的分块),为了消除这种不连续分块现象,我们只对于每个区域中央部分的像素进行均衡化处理,对于边缘像素,我们依据其四邻域的像素点灰度值对其进行双线性插值以消除这种“分块”效应[5]。同时这一过程减少了均衡化函数的计算次数,所以也提高了计算速度。
在这里插入图片描述

图3-1-3 对比度受限自适应直方图均衡化过程(CLAHE)

3.2 Gabor滤波

传统的滤波算法,例如均值滤波,高斯滤波等往往无法在特定的应用领域产生较好的效果,争对特定的应用领域,我们需要查询相关的文献资料了解合

  • 54
    点赞
  • 288
    收藏
    觉得还不错? 一键收藏
  • 86
    评论
评论 86
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值