开发者实战 | 荣旭智能基于 Anomalib 打造智能光学字符瑕疵检测系统

2023/08/07 17:00
阅读数 177
AI总结

点击蓝字

关注我们,让开发变得更有趣

文章作者:伍增  邓书梦  广东荣旭智能技术有限公司



1

AI 技术在外观瑕疵检测应用中的

挑战


人工智能 (AI) 技术作为“未来数十年”最先进的生产力代表之一,正在赋能各行各业。在智能制造领域,AI 技术被广泛应用于外观瑕疵检测,也称为 AI 工业质检。IDC 预计,2025年中国工业 AI 质检整体市场将达到9.58亿美元(约合人民币62亿元),2021-2025年 CAGR 为28.5%,如下图所示。


图片来源:https://www.idc.com/getdoc.jsp?containerId=prCHC49755922


在外观瑕疵检测领域,广东荣旭智能技术有限公司作为一家定制化 AI 视觉检测系统/一体化检测装备供应商,已耕耘了十多年,落地超过200多种 AI 质检设备,并将 AI 技术和行业应用经验集成到了图形化 AI 视觉开发平台中,通过零代码方式,快速落地 AI 质检设备。

了解广东荣旭智能技术(请复制链接到浏览器)

https://www.gdrosmart.com/

https://www.gdrosmart.com/product_view_266_109.html


荣旭图形化 AI 视觉开发平台


在 AI 工业质检的实践中,即便应用了迁移学习,也需要在产线上对每种瑕疵收集几十张负样本。假定瑕疵A的发生率为0.1%, 为了收集50张瑕疵 A 的负样本,则需要等待50,000个产品制造出来,不仅难度大,而且耗时长,成本高。


收集满足迁移学习需求的负样本,已经成为 AI 瑕疵检测应用中的重大挑战之一。


当前,解决该挑战的思路主要有两个:


一种思路是应用 Zero-Shot Learning (零样本学习)技术,当前最火爆的计算机视觉 Zero-Shot, Learning 模型是 Meta 发布的 SAM 大模型,以及后续的改进系列,例如,FasterSAM、MobileSAM 等等。


另一种思路是应用无监督学习技术,即无需收集负样本,只需要学习少量正样本,便可以检测出异常样本。当前在 AI 工业质检中应用广泛的无监督异常检测深度学习库 Anomalib, 链接:

https://github.com/openvinotoolkit/anomalib



本文将介绍基于 Anomalib英特尔开发者套件打造智能光学字符瑕疵检测系统。



2

项目背景与技术方案


印刷字符瑕疵检测是一个在制造线终检段的刚性需求,如下图所示,任何有字符瑕疵的产品都不能流出工厂。当前,行业中普遍采用的是 OCR、OCV 以及模板匹配的方式来识别,由于不同行业的产品表面都不一样,背景复杂多变,要准确提取并识别字符瑕疵存在一定难度,而且效率低,误判高,操作复杂。


字符瑕疵及检测结果


荣旭智能光学字符瑕疵检测系统,基于 Anomalib 工具包和英特尔开发者套件,搭载工业相机及工业镜头完成原型样机设计,如下图所示。


光学字符瑕疵检测原型样机


3

软件技术方案与实现


荣旭智能光学字符瑕疵检测系统的软件实现主要由三步实现:


1. 安装 Anomalib 和 OpenVINO

2. 训练正样本并导出 OpenVINO 模型

3. 验证检测结果


第一步,安装 anomalib 和 OpenVINO,命令如下所示:


pip install anomalibpip install openvino-dev

向右滑动查看完整代码

第二步,训练正样本并导出 OpenVINO 模型。首先,请在 

datasets\MVTec\bottle\train\good 放置23张正常的 OCR 字符图片



然后,请在 

datasets\MVTec\bottle\test\good 放3张正常的 OCR 字符图片


接着,请在 

datasets\MVTec\bottle\test\contamination 放一张字符缺的 OCR 字符图片


并修改 

rc/anomalib/models/padim/config.yaml 文件,如下所示:

optimization:  export_mode: "openvino" # options: openvino, onnx

向右滑动查看完整代码


修改之后,模型训练完毕后会直接生成 OpenVINO 的模型


最后,输入命令,等待训练完成:

python tools/train.py --config src/anomalib/models/padim/config.yaml

向右滑动查看完整代码

第三步,验证检测结果


训练完成后,在 

results\padim\mvtec\bottle\run\images\good下是 ok 图片的验证结果,正常的图片是没有误识别的,如下图所示:



在 results\padim\mvtec\bottle\run\images\contamination 下是我们放置的一个 NG 图片,结果如下:



可以看到,缺陷正常识别出来了


使用 OpenVINO 实现推理程序,结果如下所示:



经过 OpenVINO 优化后,该算法在 N5105 CPU 上运行速度大约200ms左右,iGPU 的运行速度大约100ms左右,完全满足大多数光学字符瑕疵检测的速度需求。



4

总结与展望


荣旭智能基于 Anomalib 打造光学字符智能解决方案,在保证检测效率可行的前提下,可以大大地降低收集负样本的成本,提升模型的训练和部署效率,对于 AI 二分类 (OK/NG) 应用多了一个更优的选择方案。


下一步我司将使用 OpenVINO 的 NNCF 工具包,对 Anomalib 模型进行 INT8 量化,进一步提高在英特尔开发者套件上的推理速度,并将这套智能光学字符解决系统应用于磁芯元器件、IC 半导体、车载电子变压器等领域。


广东荣旭智能技术有限公司官网:

https://www.gdrosmart.com/

--END--


             
             
             
你也许想了解(点击蓝字查看)⬇️
➡️ OpenVINO™ DevCon 2023重磅回归!英特尔以创新产品激发开发者无限潜能
➡️ 5周年更新 | OpenVINO™  2023.0,让AI部署和加速更容易
➡️ OpenVINO™5周年重头戏!2023.0版本持续升级AI部署和加速性能
➡️ OpenVINO™2023.0实战 | 在 LabVIEW 中部署 YOLOv8 目标检测模型
➡️ 开发者实战系列资源包来啦!
➡️  以AI作画,祝她节日快乐;简单三步,OpenVINO™ 助你轻松体验AIGC
➡️  还不知道如何用OpenVINO™作画?点击了解教程。
➡️   几行代码轻松实现对于PaddleOCR的实时推理,快来get!
➡️   使用OpenVINO 在“端—边—云”快速实现高性能人工智能推理
➡️  图片提取文字很神奇?试试三步实现OCR!
➡️ 【Notebook系列第六期】基于Pytorch预训练模型,实现语义分割任务
➡️ 使用OpenVINO™ 预处理API进一步提升YOLOv5推理性能


            
            
            

扫描下方二维码立即体验 

OpenVINO™ 工具套件 2023.0


点击 阅读原文 立即体验OpenVINO 2023.0

文章这么精彩,你有没有“在看”?

本文分享自微信公众号 - OpenVINO 中文社区(openvinodev)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
AI总结
返回顶部
顶部