什么是视觉检测?
视觉检测是一项旨在发现表面问题或缺陷的任务。它常用于制造、建筑和航空航天等领域。
自动化视觉检测系统
在制造业中,自动化视觉检测系统搭载高分辨率的相机,可以高效地检测到人眼难以觉察的微米级甚至纳米级缺陷。然而,当存在未知缺陷或多种不同缺陷时,可能会发生误检测,这是一项重大挑战。因此,采用深度学习技术的软件,如 MATLAB® 和 Computer Vision Toolbox™ Automated Visual Inspection Library,将发挥更重要的作用。
使用 MATLAB 和 Computer Vision Toolbox 开发自动化视觉检测系统
使用 MATLAB 和 Computer Vision Toolbox Automated Visual Inspection Library,您可以开发视觉检测系统。MATLAB 支持从图像采集到算法开发乃至部署的完整工作流。借助 MATLAB 中的交互式 App,工程师可以探索、迭代和自动化算法,从而提高工作效率。他们可将这些方法应用于许多工业应用。
成功案例:汽车和航空航天行业中的自动化视觉检测
例如,汽车部件制造商武藏精密工业每月以人工目测方式检测的部件约有 130 万个。通过使用 MATLAB 开发基于深度学习的方法来检测和定位不同类型的异常,该制造商构建了自动化视觉检测系统,用于检测圆锥齿轮。据预计,最新的方法将大幅减少公司的工作量及其成本。
同样,空中客车构建了稳健的视觉检测人工智能 (AI) 模型,用来自动检测多个飞机部件中的各种缺陷,以确保飞机在服役前毫无缺陷。借助 MATLAB,空中客车工程师能够在短时间内以交互方式构建算法原型并测试缺陷,从而简化了此过程。
缺陷检测过程:数据准备、人工智能建模和部署
缺陷检测过程可以分为三个主要阶段:数据准备、人工智能建模和部署。
对于视觉检测,异常图像有时很少见或呈多样化。在这种情况下,您可以训练一个异常检测器。这是一种训练时只需使用正常图像的无监督学习。如果有足够数量的异常图像,则有监督学习应会派上用场。
在下一节中,您可以了解异常检测方法(无监督学习)和目标检测方法(有监督学习)的必要步骤和实用的 MATLAB 功能。
视觉检测过程中的数据准备
数据来自多个数据源,并且通常是非结构化的含噪数据,这使得数据准备和管理既困难又耗时。如果对数据集中的图像进行预处理,则可以提高异常检测的准确度。
使用 MATLAB 进行图像预处理
MATLAB 提供了若干 App,用来支持各种预处理方法。例如,通过 MATLAB 中的图像配准器,您可以探索各种算法来配准未对齐的图像,从而使人工智能模型更容易检测到缺陷。
MATLAB 提供了自动化功能,用来加速标注过程。例如,图像和视频标注器可以应用自定义语义分割或目标检测算法,以标注图像或视频帧中的区域或目标。
视觉检测过程中的人工智能建模
视觉检测中所用异常检测方法的特征
可用于视觉检测的异常检测器包括:
- 全卷积数据描述 (FCDD)
- FastFlow
- PatchCore
下表分别列出在训练和推断期间使用的这些异常检测方法的特征和性能。这些方法通过 Computer Vision Toolbox Automated Visual Inspection Library 提供。
训练方面 | PatchCore | FastFlow | FCDD |
输入图像大小 | 首选小到中(由于大图像存在内存限制) | 首选小到中(由于大图像存在内存限制) | 小到大(高分辨率图像) |
模型大小 | 中到大(可随压缩比的值而变化) | 中到大 | 小(最轻量级模型) |
性能速度 | 快速 | 快速 | 最快 |
小样本训练机制 | 支持 | 不支持 | 不支持 |
视觉检测中的异常阈值和可解释人工智能
对于异常检测方法,异常阈值的自动计算有助于避免由于人为判断的不同而导致的差异。通过使用可解释的人工智能视图进行评估,可以浏览和解释分类结果。
视觉检测中用于有监督学习的预训练网络
将深度学习应用于有监督学习有两种方法。一种方法是从头开始构建并训练深度网络。另一种方法是调整和微调预训练神经网络,亦称迁移学习。这两种方法都很容易在 MATLAB 中实现。
使用深度网络设计器构建、编辑和训练深度学习网络
检测和定位缺陷的目标检测
YOLOX 等目标检测用于对图像中的缺陷进行检测、定位和分类。YOLOX 目标检测模型采用一种单阶段、无锚点方法,有助于对小型目标进行检测。与以前的 YOLO 模型相比,该模型可以大幅减小模型大小并提高计算速度。用矩形感兴趣区域 (ROI) 标注的导出数据用于训练目标检测模型。
视觉检测系统的部署
代码生成和部署框架
深度学习模型必须集成到更大的系统中才能发挥作用。MATLAB 提供了代码生成框架,使得在 MATLAB 中开发的模型可以随处部署,而不必重写原始模型。这样,您便能够在整个系统中测试和部署模型。
先部署到嵌入式硬件平台
MATLAB 使您能够将深度学习网络部署到各种嵌入式硬件平台,例如 NVIDIA® GPU、Intel® 与 ARM® CPU、Xilinx® 以及 Intel SoC 和 FPGA。借助 MATLAB,您可以轻松探索和部署到嵌入式硬件。
示例和操作方法
软件参考
另请参阅: MATLAB 在图像处理和计算机视觉领域的应用, Deep Learning Toolbox, 模式识别, 计算机视觉, 制造分析, Image Acquisition Toolbox