读论文-《基于计算机视觉的工业金属表面缺陷检测综述》

文章目录

读论文《基于计算机视觉的工业金属表面缺陷检测综述》,学习知识

1. 背景

1.1 工业需求

不仅影响外观,还可能影响产品的机械性能。

1.2 传统方法的局限

传统的金属表面缺陷检测主要依赖人工目视检测,这种方法效率低、主观性强,且受到人眼分辨能力限制。而且在此过程中人工抽检往往在工艺过程结束后进行, 即使发现缺陷, 过程损失也已发生, 无法对工艺参数进行及时调整.但是:检验员可以从多个角度和不同的光源方向下查看产品表面以进行判断. 而静态成像系统则难以做到大范围的角度调整

1.3 计算机视觉技术的优势

计算机视觉技术利用图像处理和模式识别方法,可以实现金属表面缺陷的自动检测。这种方法具有实时性强、效率高、节省人力成本, 不易受主观因素干扰等优点,逐渐成为金属制品表面缺陷检测的重要手段。

2. 技术流程

工业金属表面缺陷检测的大致技术流程可以概括为以下几个主要步骤:

2.1 光学成像

通过光学成像技术获取金属表面的二维或三维图像信息。二维成像技术主要包括角度分辨技术、色彩分辨技术和光谱分辨技术. 由于金属制品表面 往往颜色、材质单一, 因此色彩分辨技术和光谱分辨技术很少用于金属表面缺陷检测, 最常用的是角度分辨技术.

2.1.1照明方式

这可能包括使用不同的照明和成像技术,如明场照明、暗场照明、漫反射照明等,以适应不同的表面特性。

成像方式 主要应用对象 背景成像结果 缺陷成像特征 典型应用产品
明场照明 均匀的漫反射金属表面背景 明亮的均匀图像 缺陷会出现为暗点 表面粗糙度较高的铸坯、热轧钢带等产品
暗场照明 镜面金属表面 暗灰色图像 缺陷会出现为明亮特征 冷轧钢带、不锈钢等平滑金属表面
漫反射照明 凹凸不平或有压制纹理的金属表面 平滑过渡的图像 缺陷会形成阴影或高亮区域 金属表面具有纹理或压痕的产品
背光照明 金属产品外围轮廓 高对比度的轮廓图像 缺陷表现为清晰的投影 针对金属产品的边缘轮廓检测
2.1.2 缺陷和背景特性
  1. 金属表面反射性质:一般金属制品表面的反射性质介于漫反射和镜面反射之间。

  2. 角度分辨检测技术的关键因素:光源照射方向、表面法线方向与相机光轴方向之间的角度对比度、空间分辨率、光照一致性和曝光度。

  3. 划痕缺陷的识别

    • 划伤缺陷的宽度尺寸通常小于 0.2 mm,光学特性有明显的方向性。
    • 该缺陷存在大范围的视觉盲区,只有在特定照明角度下才会呈现高度反射。
    • 当光源方向平行于划痕时,划痕几乎不可见。
  4. 水渍、油渍缺陷的识别

    • 水渍、油渍在金属表面干涸后呈现圆形亮斑。
    • 在单一照明条件下,这些亮斑容易与圆形凹痕相互混淆。
  5. 成像方式的互补性

    • 大量研究表明,不同的成像方式之间具有互补性。
    • 采用复合光源成像系统能够有效提高表面检测的识别精度与稳定性。

2.2 图像预处理

对获取的图像进行预处理,以提高图像质量和缺陷的可检测性。这可能包括图像增强、特征提取、图像分割和拼接等技术。

2.3 缺陷检测

应用图像对比、统计模式识别、机器学习或深度学习等算法,从预处理后的图像中识别和分类缺陷。这可能包括模板匹配、图像分类、目标检测、图像语义分割和图像异常检测等多种方法。

2.4 结果分析和决策

根据检测结果,进行质量评估和决策。这可能涉及统计质量控制,以及根据检测结果调整生产过程。


3. 关键算法

全篇论文中提到的算法涵盖了计算机视觉和机器学习领域的多个方面,主要包括以下几类:

3.1 光学成像技术相关算法

  • 三维成像技术:如光度立体法、飞行时间法、扫描法、立体视觉法、结构光法和光场三维成像等。
检测技术 工作原理 应用场景 优点 缺点
光度立体视觉 (Photometric Stereo, PS) 通过多角度光源照射表面,相机捕捉图像,计算表面法向量和梯度,实现3D表面重建。 适用于微小缺陷捕捉。 空间分辨率不受视场限制,能捕捉微小缺陷,硬件成本低,兼容二维检测。 处理复杂曲面反射光较复杂。
飞行时间 (Time of Flight, TOF) 通过测量光的飞行时间差获取表面深度信息,直接TOF:光脉冲的飞行时间和间接TOF:光强度相位偏移。 适用于大视场、长距离和快速检测场景。 适合快速、大视场检测。 深度精度毫米级,不适用于高精度表面检测。
扫描法 利用光束扫描表面,测量3D信息,如单点飞行时间法、激光散射干涉法、色散共焦法等。 适用于光滑或透明的金属表面。 测量精度高,适合精细表面检测。 检测速度慢,效率低,不适合高速在线检测。
立体视觉 通过两个相机从不同角度拍摄同一目标,利用视差信息计算三维深度。 适用于深度检测和表面缺陷识别。如手机盖板 能获得高精度三维深度信息。 处理复杂,受限于硬件配置。
结构光法 激光投影仪投射光栅,相机捕捉投影图案,计算三维深度。 用于复杂形状金属表面检测。 测量精度高,亚像素级的高精度适合复杂表面检测。 灵活性差,硬件成本高,技术复杂。
光场 3D 成像 通过主镜头和微透镜阵列同时捕获不同深度的图像,计算出物体的三维结构。 适用于高精度要求的场景,如医疗成像、复杂工业表面检测等。 模仿昆虫复眼结构,能同时捕捉不同深度目标的 3D 信息,Raytrix 3D 相机实现了较高分辨率。 硬件成本高,目前仅有少数商用产品。
2D 成像技术 通过普通相机捕获二维图像,用于分析表面缺陷的纹理和颜色特征。 适用于检测金属表面的细小划痕、气孔、杂质等瑕疵。 1. 能获取高分辨率及高对比度图像,适合检测表面纹理、细小缺陷如划痕、气孔等。 2. 对微小缺陷的纹理细节检测能力较强。 无法获取深度和法线方向等三维信息,对伪缺陷如油污、锈迹易发生误判。
3D 成像技术 通过多视角或结构光等技术获取物体的三维信息,实现表面的形状重建。 适用于需要获取深度信息的场景,如工业质检、机器人导航等。 1. 可提供深度、褶皱、凹凸纹理等形状信息。 2. 更准确地判别缺陷的真实形状和大小。 空间分辨率较低,对微小缺陷不够敏感,且计算量较大。
混合成像技术 结合2D成像的纹理信息和3D成像的深度信息,融合两种成像方式的优势。 适用于高精度要求且成本允许的检测场景,如高端金属加工表面缺陷检测。 结合2D纹理细节和3D深度信息,更准确地判别缺陷,准确率高于单一成像方式 实现成本高,难以推广

3.2 图像预处理相关算法

3.2.1 图像增强

图像增强的三种常用方法,包括 基于滤波器的方法基于模型的方法基于机器学习的方法,最后总结了其中基于滤波器的方法、基于模型的方法 是基于传统图像去噪算法。

图像增强方法 工作原理 优点 缺点 应用场景
基于滤波器的方法 利用噪声能量和正常图像频谱分布的特点,设计带通滤波器抑制噪声。常见方法包括快速傅里叶变换和小波方法。 1. 计算量小。 2. 易于硬件实现。 1. 效果有限,难以处理复杂噪声。 2. 依赖人工设计滤波器,适应性差。 工业相机中集成,用于实时图像质量改善。
基于模型的方法 对噪声和复原图像进行建模,通过优化算法获取清晰图像,使用的模型包括非局部自相似模型、梯度模型、稀疏模型、马尔科夫随机场模型。 1. 能利用图像的先验信息,复原效果较好。 1. 计算复杂度高。 2. 需要准确的先验分布,模型选择困难。 用于噪声较为复杂的场景,如医学图像处理和高精度图像复原。
基于学习的方法 通过学习有噪声图像与正常图像之间的映射关系,可分为基于传统机器学习和基于深度学习的方法。深度学习方法逐渐成为主流,能整合进端到端网络。 1. 效果优于传统方法,尤其是深度学习方法表现突出。 2. 适应性强。 1. 深度学习方法需要大量标注数据进行训练。 2. 计算资源要求高。 缺陷检测、图像识别等需要高精度去噪的场景。
传统图像去噪算法 虽然基于深度学习的方法效果更好,但传统图像去噪算法因计算量小、硬件实现容易,仍然集成在工业相机硬件中用于改善图像质量。 1. 计算量小,实时性强。 2. 易于在硬件中集成。 1. 效果不如基于学习的深度方法。 用于实时性要求高的工业场景,如工业相机的硬件中集成。
3.2.2特征提取
  • 二维图像特征提取
方法类别 工作原理 代表特征或技术 优点 缺点 应用实例
统计法 将纹理和形状看作随机变量,利用统计量表述纹理的随机变量分布。 1. 灰度共生矩阵 (GLCM) 2. 局部二值模式 (LBP) 3. 方向梯度直方图 (HOG) 4. 尺度不变特征变换 (SIFT) 5. Haar-like 特征 1. 直接量化纹理特征,易于理解和实现。 2. 性能稳定,适合简单场景。 1. 依赖手工设计特征,适应性较差。 2. 对复杂纹理和噪声鲁棒性差。 1. GLCM 是最常用的纹理特征,在许多研究中略优于 Gabor 滤波器和 LBP 方法。 2. 钢板表面缺陷检测系统结合了 GLCM、Gabor 小波和 HOG 特征,准确率达 95%。
信号处理法 通过设计滤波器将图像纹理转化到变换域,利用响应的能量准则提取纹理特征。 1. 傅里叶变换 2. Gabor 滤波器 3. 小波变换 4. Laws 纹理 1. 可处理频率域信息,适合检测周期性纹理。 2. 对于有方向性的纹理特征具有较好效果。 1. 对参数和滤波器设计有较高要求。 2. 计算复杂度高,实时性差。 Gabor 滤波器常用于检测不同方向的纹理。
模型法 尝试通过拟合模型,将模型参数作为纹理特征,包括随机马尔科夫场 (MRF)、分形模型和自回归模型。 1. 随机马尔科夫场 (MRF) 2. 分形模型 3. 自回归模型 1. 模型可提供高度定制的纹理描述。 1. 参数估计困难,模型复杂。 2. 对数据依赖性强,泛化能力不足。 1. Liu 提出的 Haar-Weibull-variance (HWV) 模型,检测率达 96.2%。
深度学习法 自动从大量数据中学习图像特征,主要包括基于卷积神经网络 (CNN) 和基于 Vision Transformer (ViT) 的方法。 1. CNN (深度卷积网络) 2. ViT (Vision Transformer) 1. 无需手工设计特征,能够自动学习复杂纹理。 2. 对于大数据集效果显著,具有良好的泛化能力。 1. 需要大量标注数据进行训练。 2. 计算资源要求高。 1. CNN 在小数据集表现较好,而 ViT 在大规模数据集预训练后表现优异,适合高难度任务的特征提取。
  • 三维图像特征提取
    以下是整理后的表格,关于三维成像检测技术及其应用、优缺点等内容:
方法 工作原理 应用场景 优点 缺点
三维点云数据 通过激光或其他传感器捕捉物体表面点的集合,构建三维空间数据,再通过处理点云数据提取特征,如曲率、法向量等。 用于复杂结构或表面有缺陷的物体,如金属表面、工业零件检测等。 提供丰富的空间信息,适用于复杂缺陷检测任务。 点云数据较为稀疏,传统2D图像处理方法不适用,需要额外的特征提取方法,处理复杂度较高。
手工特征提取 使用几何属性(如曲率、法向量、关键点和描述符)来提取三维点云的局部或全局特征。 主要用于简单表面缺陷检测、基础结构分析等。 直观易理解,适用于较简单的场景,能够提取特定几何特征,具有较好的可解释性。 对复杂背景的分析能力较差,无法应对更为复杂的场景或缺陷类型,依赖于手动设定参数。
深度学习提取 通过深度学习网络(如PointNet、PointNet++、PointMLP等)从三维点云数据中自动学习特征,尤其是复杂非结构化数据。 高精度检测场景,如汽车零件、航空部件、3D打印等领域的缺陷检测。 自动化学习复杂特征,适应性强,处理复杂场景时表现出色,适合大规模数据集。 计算量大,模型训练过程复杂,通常需要大量数据集来支持,硬件资源要求高。
3.2.3图像分割

在大多数工业场景下仅对产品某一块区域是否 存在缺陷感兴趣, 因此需要先定位感兴趣区域 (Region of interest, ROI) 后, 再对ROI区域进行缺陷 检测和分类, 以降低计算消耗并提高检测效率. 图 像分割的原则是使划分后的子图保持内部相似性最 大、同时子图之间相似性最小.

方法 工作原理 应用场景 优点 缺点
阈值法 通过设置一个或多个阈值将图像的像素划分为不同的区域,通常是根据灰度值或颜色来进行分割。 适用于对比度明显、目标与背景差异较大的场景,如产品瑕疵检测、表面划痕检测等。 计算简单,适用性广,实时性强,适合硬件实现。 对噪声和光照变化敏感,不适用于复杂背景或对比度不明显的图像。
区域生长法 通过选择种子点,基于邻域像素相似性逐步扩展区域,直到相邻像素与种子区域不再相似,从而完成分割。 在结构均匀或有明确区域边界的场景中使用,如金属表面瑕疵或破损检测。 能够有效分割出边界明显的区域,适合处理连通区域的检测。 计算量较大,种子点选择对结果有较大影响,易受噪声干扰。
分水岭算法 将图像看作拓扑表面,根据灰度梯度寻找局部最小值,从而对图像进行分割,类似于水流从高处流向低处的过程。 适用于检测出明显边界的图像,常用于医学图像分析和工业瑕疵检测。 对边界检测非常敏感,能够精确分割有明显边界的区域。 容易产生过分割现象,需要结合预处理方法,如平滑或标记法来避免噪声影响。
边缘检测法 通过检测图像中像素的梯度变化或不连续性,提取出物体的边缘并进行分割,常用的方法有Canny、Sobel等。 常用于产品表面缺陷检测、零件轮廓识别等场景。 对边界的检测较为精确,能够分割出物体的边缘部分,算法计算量小。 对噪声和纹理变化敏感,易受外界干扰,需结合其他方法提高鲁棒性。
小波变换法 将图像进行多尺度分解,利用小波系数提取不同尺度下的图像特征,从而实现图像分割。 适用于复杂纹理的缺陷检测,如纺织品或金属表面缺陷。 能够多尺度分析,适合处理复杂纹理图像,保留图像的细节信息。 计算量较大,参数选择复杂,需优化算法以适应实时应用场景。
主动轮廓模型 基于能量最小化原理,通过曲线的收缩或扩展,使得曲线逐步贴合物体的边界,实现图像分割,典型的模型包括Snake模型。 适用于复杂边界的分割任务,如工业零件、金属制品的缺陷检测。 能够精确捕捉到复杂边界,适用于形状不规则的物体。 对初始轮廓依赖较大,计算复杂度较高,容易陷入局部最优解,需结合其他方法优化。
3.2.4图像拼接

在工业金属板和带加工场景中,由于检测对象的尺寸通常较大,需要同时满足大视场和高分辨率成像的需求,通常会采用以下方法来实现:

步骤 说明
图像匹配 (Registration) 通过计算多个图像坐标系之间的几何变换矩阵,找到图像之间的几何对应关系。图像匹配通常依赖于图像特征(如角点、边缘、纹理)来确保不同图像之间的准确对齐。计算图像之间的几何变换矩阵,找到图像之间的几何对应关系。常用的技术包括特征点匹配和几何变换估计。
重投影 (Reprojection) 将图像根据几何变换投影到同一坐标系。通过几何变换整合多个视角或位置的图像,形成完整的大图像。
融合 (Blending) 对重叠区域的图像进行融合处理,减少接缝和色差,实现图像的平滑过渡。融合技术可以使用加权平均、图像融合算法等方法。
  • 应用场景
方法 应用场景
扫描成像 大面积表面检测,如金属板表面缺陷检测。适用于细致扫描大面积区域。
阵列成像 多传感器组合获取大幅面图像,适用于需要高分辨率和大视场的检测需求。
图像拼接技术 需要将多个图像合成为一幅完整大图像的场景,如工业金属表面在线缺陷检测。
多通道成像 需要捕捉不同特征的场景,如金属表面检测中的凹凸纹理、油污、指纹等缺陷。

这种方法能够有效提高大尺寸金属板表面的检测效率,满足高分辨率成像需求,同时减少算法的复杂性。

3.3 缺陷检测相关算法

3.3.1模板匹配

模板匹配 是一种有效的检测方法,特别适用于正常样本高度相似,而缺陷样本与正常样本仅在小范围内有差异的场景。模板匹配的基本原理是利用已知模板图像寻找待检图像中相似的子图像,并通过相似度度量计算模板与待检样本的差异,来判断是否存在缺陷。

优点:原理简单,易于实现,算法要求低。 适合在高重复性的产品中进行快速、准确的缺陷检测。

缺点:需要事先制作标准模板,无法处理产品间差异较大的情况。

对于如金属铸坯等正常样本本身差异较大的产品,模板匹配的效果较差。

模板匹配的主要方法
方法类别 原理 优点 缺点
基于灰度匹配 将一个匹配窗口与模板图像的灰度阵列逐像素比较,利用相似性度量方法进行搜索匹配(如相关匹配算法)。 计算量小、易于硬件实现,适合实时处理。 需要图像之间有大量的重复像素,易受噪声和光照变化影响。
基于特征匹配 利用点特征、边缘特征或区域特征进行匹配,包括Harris特征、SURF特征、Sobel边缘算子等,通过在特征空间中度量相似性。 对图像的尺度、旋转、光照变化具有较强的鲁棒性。 复杂度较高,需要更多的计算资源,匹配精度依赖于特征提取的效果。
图像几何变换与搜索策略

由于成像条件和定位方式的变化,待检图像和模板之间可能存在几何位置差异。常见的几何变换包括:

  • 刚体变换:保持物体的形状和尺寸,只进行平移和旋转。
  • 仿射变换:包括平移、旋转、缩放和剪切。
  • 投影变换:允许图像在透视效果下发生变形。
  • 多项式变换:适用于复杂的非线性变换。

为了解决这些几何位置差异,使用适当的搜索策略寻找几何变换参数的最优解:

搜索策略 说明
穷尽搜索 通过逐个检查搜索空间中的所有可能位置,找到相似度最高的匹配。
分层搜索 通过多层次的图像金字塔逐步进行搜索,先从低分辨率开始,再逐渐提高分辨率,减少计算量。
遗传算法 利用自然选择和基因遗传的思想,通过进化过程找到最优解,适合全局优化。
神经网络 通过训练神经网络模型,自动从数据中学习特征并进行匹配,具有自学习和自适应的能力。
3.3.2图像分类

在工业表面缺陷检测领域,图像分类是一个重要的技术途径,它通过将已知的缺陷归类,并通过算法为样本分配标签,从而实现最小的分类误差。结合滑动窗口法,可以实现粗粒度的缺陷定位;而与图像分割技术相结合,则可以实现像素级的缺陷边界检测。

传统机器学习方法

在传统机器学习中,统计模式识别 是一种基本方法。它通过有限的样本集,根据某些准则学习一个模型,利用特征空间将样本分类。为提高分类效果,通常结合图像预处理技术来抑制噪声,并通过特征提取特征选择优化分类模型。常用的分类器包括贝叶斯分类器、决策树、线性判别器、K近邻法、支持向量机(SVM)等。

  • 贝叶斯分类器:基于贝叶斯网络,通过概率模型进行分类。例如,文献中提出的三维特征钢块表面缺陷检测方法,利用浮动搜索算法优化贝叶斯网络,分类准确率达到98%。
  • 决策树:结合主成分分析(PCA)和引导聚合(Bagging)技术用于钢铁表面缺陷分类,能够实现实时检测。
  • SVM:文献中提到利用二维激光传感器采集图像数据,结合灰度共生矩阵(GLCM)特征训练SVM模型,实现96%以上的检测精度。
  • K-means聚类:适用于缺乏标注数据的无监督分类问题,可以有效解决缺乏先验知识的"冷启动"问题。
  • 集成分类方法:通过加权融合多个弱分类器生成强分类器。例如,基于AdaBoost的多分类器组合方法用于钢轨表面缺陷识别,检测精度较高。
基于深度学习的方法

传统机器学习方法依赖人工特征设计和数据分布假设,在工业生产环境中难以适应复杂的噪声和光照变化。随着深度学习技术的崛起,特别是卷积神经网络(CNN)的应用,表面缺陷检测获得了更高的精度。

  • 直接用CNN分类:最早的深度学习应用之一是在钢轨表面缺陷检测中,CNN结构简单,包含少量卷积层和池化层,在数据集上达到了较低的错误率。
  • 深度度量学习 :通过孪生网络三元网络学习图像间的相似度,用于细粒度识别和匹配任务。孪生网络通过比较两幅图像的相似度进行分类,而三元网络通过训练在特征空间中区分同类与不同类样本。
误检率(FPR)和漏检率(FNR)

在工业缺陷检测中,用户更关注误检率 (FPR)和漏检率 (FNR)。通常对FNR的要求非常严格(如小于0.03%),这对深度学习模型提出了极大的挑战。FPR和FNR在某些情况下呈逆相关性,即降低FPR往往会增加FNR。通过绘制PR曲线 (Precision-recall curve)和ROC曲线 (Receiver operator characteristic curve)可以全面评估模型性能,并通过AUROC平均精度(AP)来量化性能。

3.3.3目标检测

在工业生产中,目标检测 是最接近于表面缺陷检测的任务,广泛应用于金属表面缺陷的自动检测。目标检测将目标的识别定位合并为一个任务,对于需要在实时场景中处理多个可能重叠的缺陷目标,准确性和实时性都是系统的重要能力。

基于深度学习的目标检测模型主要分为两类:

模型类型 精度 速度 适用场景
二阶段模型 高精度,特别是复杂背景下 相对较慢 适用于高精度、小目标检测,如复杂工业检测场景
一阶段模型 精度略低,但适合大目标 更快,适合实时检测 适用于实时在线检测,如生产流水线监控
1. 二阶段模型
模型名称 提出年份 特点与改进 应用领域
R-CNN 2014 首次引入候选框生成和分类两阶段的检测流程 一般工业缺陷检测
SPP-net 2015 通过空间金字塔池化减少了重复计算,提升检测速度 多尺度目标检测
Fast R-CNN 2015 将候选框和特征提取统一到同一个网络,提高检测效率 小目标检测
Faster R-CNN 2016 将候选框生成与分类整合到一个网络,大幅提升性能 广泛的工业缺陷检测
Mask R-CNN 2017 加入语义分割分支,适合复杂目标检测和语义分割 铁轨、隧道等表面缺陷
Cascade R-CNN 2018 使用级联检测器提升候选框质量,改进了检测精度 金属缺陷检测
二阶段模型首先生成可能包含缺陷的候选区域,然后对这些候选区域进行分类和定位。这种方法通常具有较高的检测精度,适用于对精度要求较高的场景。
工作流程:
  • 第一阶段:使用区域建议网络(Region Proposal Network, RPN)生成候选区域。
  • 第二阶段:对候选区域进行分类(判断是否为缺陷)和边界框回归(精确定位缺陷位置)。
经典算法:
  • R-CNN 系列
    • R-CNN:最早的二阶段模型,通过选择性搜索生成候选区域,对每个区域进行特征提取和分类。
    • Fast R-CNN:改进了 R-CNN 的速度,使用共享卷积特征,并引入 ROI Pooling 层。
    • Faster R-CNN:将 RPN 集成到网络中,进一步提高了检测速度和精度。
Faster R-CNN网络结构:
  • 特征提取:使用卷积神经网络(如 VGG、ResNet)提取图像特征。
  • 区域建议网络(RPN):在特征图上滑动窗口,生成候选区域。
  • ROI Pooling:将候选区域映射到特征图上,统一大小。
  • 分类和回归:对每个候选区域进行分类和边界框回归。
2. 一阶段模型
模型名称 提出年份 特点与改进 应用领域
YOLO 2016 全局图像一次预测目标类别和位置,实时检测性能好 工业生产实时监控
YOLOv4 2020 引入PAN网络进行特征融合,提升多尺度检测能力 钢带缺陷检测
YOLOv5 2020 结合高效特征提取和数据增强,具备更高检测速度和精度 金属表面缺陷检测
EfficientDet 2020 使用特征金字塔和自适应金字塔融合,平衡检测速度和精度 铁轨表面缺陷检测

一阶段模型不需要生成候选区域,直接在特征图上进行目标的分类和定位。这种方法通常具有较高的检测速度,适用于实时检测场景。

工作流程:
  • 特征提取:使用卷积神经网络提取图像特征。
  • 直接预测:在特征图上直接预测目标的类别和位置。
经典算法:
  • YOLO 系列
    • YOLOv1:首次提出的实时目标检测模型,将图像划分为网格,每个网格直接预测目标的类别和边界框。
    • YOLOv3 / YOLOv4 / YOLOv5:在 YOLO 的基础上,不断改进网络结构和训练策略,提高了检测精度和速度。
YOLOv4网络结构:
  • Backbone(主干网络):如 CSPDarknet53,用于提取图像特征。
  • Neck(颈部网络):如 PANet,融合不同尺度的特征。
  • Head(检测头) :在不同尺度的特征图上进行目标分类和定位。
    为便于理解目标检测的两类模型及其应用特点,以下通过多个表格对比和展示相关信息。
性能评估与数据集
  1. 性能评估指标
  • 平均精度(AP):在指定的 IoU 阈值下,计算模型的平均精度。
  • 平均精度均值(mAP):对多个类别的 AP 求平均值。
  • 多 IoU 评估:将 IoU 阈值从 0.5 到 0.95 划分为多个值,计算不同阈值下的 AP,并取平均值,得到更全面的性能评估。
  • 检测速度:以每秒处理帧数(FPS)表示,评估模型的实时性。
  1. 常用数据集
  • NEU-DET(Northeastern University surface defect database)
    • 包含 6 种钢带表面缺陷,每种类别提供 300 张标注了边界框的灰度图像。
    • 常用于模型的训练和测试,评估检测算法的性能。
  • GC10-DET
    • 包含 10 种金属表面缺陷的图像数据集。
  1. 不同方法在 NEU-DET 数据集上的性能对比
方法 mAP(%) FPS 备注
Faster R-CNN 78.0 7 二阶段模型,精度较高,速度较慢
YOLOv4 80.4 45 一阶段模型,精度和速度均衡
Deformable DETR 82.7 12 基于 Transformer,提高了小目标检测精度
YOLOv5 76.3 60 一阶段模型,速度最快
DCN(可变形卷积网络) 83.5 10 最高的检测精度,计算量较大
3.3.4语义分割

在工业场景中,表面缺陷的形态和分布可能非常复杂,使用传统目标检测网络难以精确描述缺陷的边界和形状。这时,语义分割网络的引入可以有效地解决这一问题,能够将缺陷区域以像素级的精度进行标记,不仅能分割出缺陷的类别和位置,还能精确描述其几何特性(例如,长度、宽度、面积、轮廓等)。

1. 全卷积神经网络 (FCN)

全卷积神经网络是一种经典的图像语义分割方法,结构由三部分组成:卷积层、上采样层、跳级连接(Skip Layer)。与传统的CNN网络不同,FCN不使用全连接层,所有层均为卷积层,最终通过上采样恢复到与原图相同的尺寸,从而输出像素级的分类结果。

然而,由于多次下采样导致位置信息丢失,分割结果通常较为粗糙。为改善这一问题,跳级连接技术被引入,将深层特征与浅层特征进行融合,能够提升分割的精度。

模型名称 关键特点 改进措施
FCN 通过卷积层和上采样实现像素级分类 使用跳级连接缓解位置信息丢失的问题
U-net 对所有下采样的特征图与上采样特征图进行融合 使用concat堆叠特征图,提升分辨率和加快收敛速度
SegNet 解码器使用编码器中的池化索引上采样 提升边界轮廓的质量,减少参数数量
2. 基于上下文信息的方法

语义分割网络不仅要进行像素级标注,还要充分考虑像素之间的上下文语义关系。全卷积神经网络(FCN)的单一损失函数无法有效处理这种上下文信息,卷积神经网络(CNN)的感受野也限制了其捕获全局上下文信息的能力。因此,近年来涌现了多种基于上下文信息的分割方法:

方法名称 主要原理 特点
条件随机场 (CRF) 增加像素之间的空间约束,相似点标记为同一类别 优化分割结果,提升局部特征信息依赖性
循环神经网络 (RNN) 将CRF近似为RNN结构,实现端到端的语义分割网络 结合CNN的特征提取与RNN的序列建模能力
多尺度特征融合 结合大尺度的全局信息和小尺度的局部信息 提供丰富的上下文信息,改进细节分割
图卷积网络 (GCN) 对无向图的边和顶点应用卷积操作,提取3D点云特征 已应用于三维表面缺陷的检测任务
全卷积神经网络的代表模型
  • U-net:一种改进的全卷积神经网络,广泛应用于医学图像分割、工业缺陷检测等领域。相比FCN,U-net通过更深层次的特征融合提升了分割的精度,特别适用于复杂形状的缺陷检测任务。

  • SegNet:该模型在解码器部分使用了编码器中的池化索引进行上采样,以此提升边缘轮廓的分割精度,减少了模型的参数量,适用于大规模工业表面缺陷检测任务。

数据集

在工业表面缺陷检测领域,常用的语义分割数据集包括MT(磁瓦表面缺陷数据集)和RSDDs(钢轨表面离散缺陷数据集)。这些数据集提供了在不同光照条件下的表面图像及像素级的缺陷标注,能够支持模型的有效训练。

数据集名称 数据类型 缺陷类别 特点
MT 磁瓦表面 5类缺陷 提供正常和缺陷表面图像
RSDDs 钢轨表面 离散缺陷 提供像素级标注的缺陷图像
视觉转换器(ViT):在图像语义分割中的应用。

视觉转换器(Vision Transformer,ViT)是一种基于自注意力机制的图像分类模型,由Google在2020年提出。与传统卷积神经网络(CNN)不同,ViT直接将图像的像素分块(patch)并通过Transformer模型进行处理,利用自注意力机制来捕捉图像的全局特征。以下是对ViT的详细介绍。

1. ViT的基本原理

ViT的核心思想是将图像处理问题转化为处理一系列图像块(patches)的问题,类似于处理序列数据。它不依赖卷积操作,而是借鉴了Transfor mer在自然语言处理中的成功经验,将图像划分为多个固定大小的图像块,然后使用Transformer架构处理这些图像块。

1.1 输入处理
  • 图像分块(Patches) :首先,将输入图像划分为多个固定大小的非重叠图像块,每个块被展平成一个向量。例如,给定一个图像的大小为 224 × 224 × 3 224 \times 224 \times 3 224×224×3,如果使用 16 × 16 16 \times 16 16×16 的图像块,则会得到 14 × 14 = 196 14 \times 14 = 196 14×14=196 个块,每个块包含 16 × 16 × 3 = 768 16 \times 16 \times 3 = 768 16×16×3=768 个像素值。
  • 线性嵌入:每个图像块通过线性变换映射到固定长度的向量表示(类似于词嵌入在自然语言处理中的作用:词嵌入的核心思想是将每个单词表示为一个低维、密集的向量。通过在大规模语料上训练模型,使得具有相似语义的词的向量在高维空间中更接近。)。
  • 位置编码:由于Transformer对输入序列的位置不敏感,因此需要添加位置编码,帮助模型感知图像块的相对位置。
1.2 Transformer编码器

图像块的序列经过位置编码后,输入到标准的Transformer编码器中。Transformer编码器主要由自注意力机制和前馈神经网络组成,能够高效地捕捉图像的全局依赖关系。具体包含:

  • 多头自注意力(Multi-head Self-Attention):计算不同图像块之间的相互关系,捕捉图像的全局信息。
  • 前馈神经网络(Feed Forward Neural Network, FFN):对自注意力结果进行进一步的特征处理。
  • 残差连接和层归一化(Layer Normalization):保证模型的稳定性和训练效率。
1.3 输出处理

经过多层Transformer编码器处理后,得到的序列特征中包含了全局的图像信息。最后通过一个分类头(一般是MLP)对特征进行分类,输出类别。

2. ViT的优势
  • 全局信息捕捉:相比于CNN,ViT在捕捉图像全局特征上具有优势,CNN由于其局部感受野,难以在较早的层次捕捉到全局信息。
  • 计算效率:对于较大的输入图像,ViT的计算效率可能比深度CNN更高,因为不需要进行复杂的卷积操作。
  • 扩展性好:ViT可以较为简单地扩展到更大的模型和数据集上,在大规模图像分类任务中表现优秀。
3. ViT的劣势
  • 需要大规模数据集:由于ViT不具备卷积网络中的局部特征提取机制,它依赖于大量的训练数据来学习有效的特征。如果没有足够的数据,ViT的表现可能不如CNN。
  • 缺乏先验知识:CNN利用了图像的局部结构和位置信息作为先验,而ViT完全依赖于数据学习,导致在小数据集上表现欠佳。
4. ViT的应用
  • 图像分类:ViT在ImageNet等大型数据集上取得了非常好的效果,在图像分类任务中逐渐成为CNN的有力竞争者。
  • 目标检测和分割:ViT的自注意力机制也被应用于目标检测、图像分割等任务,通过与其他深度学习模型(如FPN、Mask R-CNN)结合,提升了检测和分割精度。
  • 跨模态学习:ViT还可以与其他领域的Transformer模型结合,进行跨模态的学习任务,如图像-文本联合建模等。
  • 度量学习:如孪生网络、三元网络等。
  • 生成对抗网络(GAN):用于图像异常检测。
  • 标准化流(Normalizing flows):用于图像异常检测。

3.3.5 异常检测

针对工业生产场景中表面缺陷检测问题,特别是在缺乏标注数据的情况下,无监督或弱监督的图像异常检测技术已经成为有效的解决手段。这类方法主要通过分析正常样本的分布,然后根据异常样本与正常样本的差异进行检测。

1. 传统方法概述

传统的异常检测方法主要依赖手工设计特征,使用统计、距离或低秩分解等方法进行检测。以下是几种常见的传统检测方法:

方法类型 核心思想 优点 缺点 应用场景
基于统计的方法 学习正常样本在特征空间的分布,检测偏离该分布的异常样本 理论清晰、模型可解释性强 特征设计复杂,泛化能力弱 适用于特征分布明确的场景
基于距离的方法 通过度量样本点与正常样本之间的距离,检测异常 不需要复杂模型,计算相对简单 对异常点的距离度量敏感,依赖训练数据分布 适用于样本空间结构简单的场景
基于图像低秩分解的方法 将图像分解为低秩背景和稀疏异常区域 无需训练即可分解异常和背景,适用于周期性纹理图像 计算量大,难以实时检测 适用于纹理背景明显的工业图像
基于稀疏编码重构的方法 对正常样本拟合,异常样本无法被良好重构,从而产生大误差 不依赖先验知识,适应性强 字典构建耗时,模型对高维数据不适 适用于复杂周期性和随机纹理图像
2. 基于深度学习的图像重建技术

相比于传统方法,基于深度学习的图像重建技术在异常检测中表现出了更强的适应性和扩展性。深度学习模型可以自动学习样本的特征,无需手动设计特征。

方法类型 核心思想 优点 缺点 应用场景
变分自编码器 (VAE) 对正常样本进行编解码,重构图像,检测重构误差 无监督训练,仅需正常样本 可能在异常样本中重构出类似正常样本的图像,误判率高 适用于未知类型缺陷的场景
生成对抗网络 (GAN) 通过生成器与判别器对抗训练,生成接近正常样本的图像 图像生成质量高,适应复杂分布 训练复杂,对生成器和判别器的平衡要求高 适用于复杂背景下的图像生成
标准化流 (Normalizing Flows) 通过一系列可逆变换,将简单分布转换为复杂分布,生成异常检测 能够生成样本的概率分布,理论上可以生成多样复杂样本 计算复杂,推理速度有限,难以实时应用 适用于需高精度检测的场景
结合自编码器与GAN的方法 增加判别器对自编码器进行对抗训练,提升重构图像质量 结合GAN与自编码器的优势,图像生成与重构精度高 训练复杂,模型较大,需大量计算资源 适用于高精度检测与定位的场景
MSCDAE 通过多尺度自编码器重构图像,提高异常区域的定位精度 多尺度特征融合,定位异常区域更加精准 重构多个尺度需要较高计算资源 适用于纹理复杂的工业图像检测
CS-Flow 结合不同尺度的特征图,通过标准化流进行多尺度特征处理 能生成高置信度的异常检测结果,检测效果好 模型较为复杂,对硬件要求高 适用于高精度缺陷检测任务
FastFlow 快速映射输入特征到目标分布,实现端到端的实时检测 实时检测效果好,适合工业环境中的实时缺陷检测 对特定分布的样本检测效果较好,对通用性要求较高 适用于工业流水线的实时检测

4. 现存问题与发展趋势

4.1 存在的问题

  • 光学成像方案的选择:需要根据具体应用场景选择合适的光学成像方案,同时要平衡硬件成本、算法精度和检测速度。
  • 数据集的局限性:公开数据集相对匮乏,且不同成像方式导致数据集之间差异大,预训练和迁移学习效果受限。
  • 样本不均衡问题:缺陷样本相对稀少,导致传统机器学习算法难以达到理想的检测效果。

4.2 未来的发展趋势

  • 特殊光学成像技术的发展:针对不同工业生产场景特点,发展特殊光学成像技术。
  • 数据集的构建:构建公开的大型金属表面缺陷数据集,促进预训练和迁移学习技术的发展。
  • 样本不均衡问题的解决:研究数据增广、合成和生成等方法,以及小样本学习和弱监督学习模型,以提高检测算法的可靠性。
  • 检测算法的优化:根据不同应用场景,选择和优化合适的算法,如二维或三维成像技术、图像处理方法和缺陷检测算法。
  • 实时性和可靠性的提升:提高检测系统的实时性和可靠性,使其更适用于工业在线检测和质量控制。

参考论文:伍麟,郝鸿宇,宋友.基于计算机视觉的工业金属表面缺陷检测综述[J/OL].自 动化学报. https://doi.org/10.16383/j.aas.c230039

读一篇论文确实挺累的。这么整理了一下,还是有所收获,以后常看常新,多学多练。打卡

相关推荐
Charles Ray8 分钟前
C++学习笔记 —— 内存分配 new
c++·笔记·学习
重生之我在20年代敲代码9 分钟前
strncpy函数的使用和模拟实现
c语言·开发语言·c++·经验分享·笔记
m0_6090004217 分钟前
向日葵好用吗?4款稳定的远程控制软件推荐。
运维·服务器·网络·人工智能·远程工作
我要吐泡泡了哦1 小时前
GAMES104:15 游戏引擎的玩法系统基础-学习笔记
笔记·学习·游戏引擎
骑鱼过海的猫1231 小时前
【tomcat】tomcat学习笔记
笔记·学习·tomcat
开MINI的工科男1 小时前
深蓝学院-- 量产自动驾驶中的规划控制算法 小鹏
人工智能·机器学习·自动驾驶
AI大模型知识分享2 小时前
Prompt最佳实践|如何用参考文本让ChatGPT答案更精准?
人工智能·深度学习·机器学习·chatgpt·prompt·gpt-3
贾saisai3 小时前
Xilinx系FPGA学习笔记(九)DDR3学习
笔记·学习·fpga开发
北岛寒沫3 小时前
JavaScript(JS)学习笔记 1(简单介绍 注释和输入输出语句 变量 数据类型 运算符 流程控制 数组)
javascript·笔记·学习
烟雨666_java3 小时前
JDBC笔记
笔记