专栏名称: OpenCV学堂
一个致力于计算机视觉OpenCV原创技术传播的公众号!OpenCV计算机视觉与tensorflow深度学习相关算法原创文章分享、函数使用技巧、源码分析与讨论、,计算机视觉前沿技术介绍,技术专家经验分享,人才交流,学习交流。
目录
相关文章推荐
工业能源圈  ·  中国船企海外仲裁案大逆转!扬子江船业超60亿 ... ·  2 小时前  
苏州新闻  ·  苏州港“朋友圈”,再+1! ·  昨天  
幸福东台  ·  临时停航!封航! ·  3 天前  
51好读  ›  专栏  ›  OpenCV学堂

anomalib | 工业异常缺陷检测从训练到部署

OpenCV学堂  · 公众号  ·  · 2024-06-13 20:39

正文

点击上方 蓝字 关注我们

微信公众号: OpenCV学堂

关注获取更多计算机视觉与深度学习知识

前言

Anomalib 是英特尔主导的开源工业缺陷异常检测深度学习框架,包含主流的异常检测模型训练支持,包括:
CFlowPatchcoreFastflowPaDimEfficien_AD
等超过17种模型支持,支持私有/自定义数据集训练与部署。当前最新的版本v1.1,支持对异常缺陷的分类与缺陷区域的分割定位两种检测方式。

Anomalib库安装

最新v1.1版本支持的Python SDK最低版本为3.10,正常的安装只需要执行下面命令行即可
pip install anomalib openvino
另外一种安装方式从源码安装,首先下载执行完成以后可以尝试运行
https://github.com/openvinotoolkit/anomalib/releases/tag/v1.1.0
解压缩到一个指定目录,然后在该目录下面执行:
pip install –e .anomalib install
这样就可以完成安装了。

自定义数据模型训练

anomalib官方提供了自定义数据集训练的指南,对应的数据集下载地址为:
https://github.com/openvinotoolkit/anomalib/releases/download/hazelnut_toy_dataset/hazelnut_toy.zip
下载数据集以后,创建一个dataset.yaml的数据集描述文件,贴上下面的内容:

其实我后来发现task字段是可以不填的,它会根据是否有mask文件夹来决定任务类型是分类还是分割。

然后直接运行下面的命令行即可开始训练
anomalib train --data synthetic.yaml --model anomalib.models.Patchcore
第一次会从HuggerFace下载模型,但是很不幸的又挂了,无法下载,设置一下镜像网站即可正确下载:


再次执行训练命令行以后,真的可以训练了


发现训练了一个epoch就停止了,尝试修改max_epochs这个参数,发现居然被重载为1

然后求教了一位大神得到答案是:

意思是不用修改,1已经是最好的超参数了,改就是浪费电力跟算力。

模型导出与推理

这块官方也没有给出特别明确指南,只是在帮助文档上有个函数,里面包含了一些参数,通过我的一通尝试跟折腾以后,发现通过命令行是可以直接从ckpt导出onnx文件的,导出的命令行参数如下:
anomalib export --export_type onnx --export_root ./results --ckpt_path ./results/Patchcore/hazelnut_toy/v4/weights/lightning/model.ckpt --model anomalib.models.Patchcore
导出以后ONNX格式文件,针对分割任务有两个输出,图示结构如下:


直接使用OpenVINO推理演示如下:


运行测试结果:



OpenCV4系统化学习


深度学习系统化学习


推荐阅读

OpenCV4.8+YOLOv8对象检测C++推理演示

ZXING+OpenCV打造开源条码检测应用







请到「今天看啥」查看全文