当前位置:   article > 正文

基于 Anomalib和英特尔开发套件 的SIMOTECH在线缺陷检测系统

anomalib

作者:深圳市思墨科技有限公司   高级架构师  蓝贵琳

本案例适用于x86以上英特尔平台

介绍

Anomalib Github 地址

Anomalib 是一个深度学习库,旨在收集最先进的异常检测算法,以便在公共和私有数据集上进行基准测试。Anomalib 提供了近期文献中描述的异常检测算法的几种即用型实现,以及一套便于开发和实现自定义模型的工具。该库重点关注基于图像的异常检测,算法的目标是识别异常图像或数据集中图像的异常像素区域。

Anomalib 具有以下特点:

  • 有大量现成可用的深度学习异常检测算法和基准数据集
  • 基于 PyTorch Lightning 编写了一套最大化通用的模型,可以帮助我们减少大量模板代码,可以帮助我们将更多的精力放在重要的事情上。
  • 所有模型均可导出到支持英特尔硬件加速的 OpenVINO 格式 。
  • 一套推理工具,用于快速、轻松地部署标准或自定义异常检测模型。
  • 在CPU上就可以实现毫秒级的检测
  • 仅需少量的良品图片,进行几分钟的训练,即可完成一个在线异常检查的应用。

针对我们的检测应用,以上算法均能满足需求的前提下,我们选用了速度最快的 STFPM-ResNet18 模型来进行测试。详见论文: STFPM

原理

异常检测的基本原理是使用一组教师-学生网络做特征比对, 比对差异较大的即为异常图像.

在此基础上, 发展出了 STFPM、 PaDiM、 PatchCore、 EfficientAD 等算法。 他们的差异主要在于神经网络结构、用于全局分析的特征编码器、自动编码器、多层特征混合计算、损失评估算法等不同。

优势

对比传统的异常检测算法,我们需要针对不同的产品编写一套针对性的检测代码,还需要一定量的不良品来测试和优化检测算法。而使用机器学习方法,我们只要统一的一套通用的训练程序和几张良品图片即可。

检测过程

训练

我们将Anomalib算法集成到深圳思墨科技的SIMOTECH在线缺陷检测系统,基于英特尔开发者套件,实现训练和推理

在训练过程中,我们采集了 3 张良品的 pcb 电路板图片来进行训练。
经过约 200 epoch 训练后,损失降到了 1.0 以下。

检测

使用训练好的模型来检测一些样品, 均能正确检出异常:

部署

使用 OpenVINO 提供的工具将模型导出到 OpenVINO:

  1. from openvino.tools import mo 
  2. from openvino.runtime import Core, serialize 
  3.  
  4. # Convert model to openvino.runtime.Model object 
  5. ov_model = mo.convert_model(model) 
  6.  
  7. # Save openvino.runtime.Model object on disk 
  8. serialize(ov_model, "test_model.xml"

将导出的模型拷贝到 英特尔开发套件上,使用 Anomalib 的推导工具 openvino_inference.py 即可在 英特尔开发套件上进行加速推导。

SIMOTECH训练及部署的完整过程参见下面的视频:

基于 Anomalib和英特尔开发套件的的效果缺陷检测系统

总结

在没有经过调优的情况下,我们的模型仅使用了 3 张良品照片进行简单的训练,即可上线检测并取得不错的效果。通过使用 Anomalib 我们不仅可以使用少量的良品特征快速构建一个异常检测应用,还可以免去收集不良品特征的过程。结合英特尔开发套件可以快速将应用部署到产线上。

深圳市思墨科技有限公司简介:

深圳市思墨科技有限公司是一家专注于工业物联网技术研发、系统集成和应用解决方案提供的高科技企业。我们拥有一支专业的技术团队,长期致力于智慧物联网领域,将新一代连接技术、统一物联网平台和可视分析技术应用于工业智能制造现场,推动企业的信息化升级,助力企业实现数字化转型。我们致力于为客户提供专业的工业物联网解决方案,帮助企业实现智能化、高效化和可持续发展。

www.simotech.cn

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/447172
推荐阅读
相关标签
  

闽ICP备14008679号