技术干货|如何解决工业缺陷检测小样本问题?

news2024/11/26 1:56:27

原创 | 文 BFT机器人 

在工业生产制造中,由于生产过程是一个多因素耦合的复杂过程,生产过程中的任何异常都会导致产品缺陷产生,及时识别异常产品的缺陷模式是提高生产质量和生产效率的有效途径,所以缺陷检测具有十分重要的研究意义。

早期的产品缺陷模式识别主要是通过机器学习方法进行的,如支持向量机、反向传播网络等。这些方法与用肉眼直接对产品缺陷进行识别相比,大大降低了工作量。但是这些早期方法存在以下不足:识别准确率低且需要大量的标签数据对模型进行训练。

近年来随着深度学习的发展,大量基于卷积神经网络的算法在视觉任务中大放异彩。由于卷积神经网络具有非常强大的特征提取能力,卷积神经网络在缺陷检测任务中得到了广泛的应用。

与传统的机器学习方法相比,基于卷积神经网络的深度学习方法在缺陷识别领域具有更高的识别准确率和工作效率。但是这种方法和机器学习方法具有同样的缺点,首先是模型训练需要大量的标签数据,而具有缺陷模式标签的图像是不容易获取的,因为获取带有产品缺陷模式标签的图像需要人工监督,即需要大量有经验的专业人员进行人工标注,这是非常昂贵且耗时的。

此外在某些高度自动化的生产场景中,产品的良率特别高,收集缺陷样本非常耗时,而当前的用于缺陷检测的深度学习方法大多是基于大量缺陷样本建立模型,缺陷样本的缺乏导致模型难以上线。

针对某些行业比如汽车行业的多型号小批量生产场景(每种型号产品只生产几天),在完成缺陷样本收集前某种型号产品已经不再生产了,这种场景下大量的缺陷样本收集是不可能的。此外,由于缺陷是由生产过程中的非受控因素产生的,缺陷的形态是多种多样的,各种形态的样本很难收集完整,这也限制了深度学习在工业检测领域的应用。

01

小样本检测算法

为了拓展深度学习在工业检测领域的应用范围及提升易用性,小样本检测算法的研究成为必然。

解决工业检测小样本问题有两种路径,第一种是工程路径,第二种是算法路径。其中工程路径常见有两种方法,第一种是基于真实产品手动制造缺陷,第二种是基于真实图像手动仿真缺陷。

这两种方法的优势在于操作简单,产生的缺陷也与真实缺陷比较接近,但劣势也比较明显。基于真实产品手动制造缺陷会对产品造成不可逆的破坏,对于高价值产品破坏成本较高,而且,因为缺陷均由非受控因素产生,手动制造的缺陷不一定与实际缺陷情况完成吻合,会存在一些差异。而基于图像手动仿真缺陷则存在对操作人员要求高,产生速度慢的问题。

因此,使用工程路径解决小样本问题可以在一些比较紧急的情况下使用,比如项目初期需要紧急上线时。

02

算法路径基本思路

从算法路径解决小样本问题,基本的思路有两种,第一种是增加样本,第二种是减少算法对样本的依赖。

1、增加样本

基于第一种思路的算法研究方向有数据增广和缺陷生成,其中数据增广在深度网络训练时为了防止过拟合已成为一个标准手段,站在工业检测的视角上看,数据增广是一种性价比比较高的扩增样本的手段,但因为目前数据增广的方法大多是基于一些传统图像处理方法,所以能仿真缺陷的位置和一些简单纹理变化,但无法仿真缺陷的形状和复杂纹理,所以数据增广一般作为一个基础手段,可以解决一部分小样本问题,对于一些简单场景是有帮助的。而要解决更复杂场景的样本生成问题,需要用缺陷生成算法。

我们将缺陷生成算法的研究分为三个阶段:第一阶段是单一产品单一型号缺陷生成;第二阶段是单一产品多型号缺陷生成;第三阶段是实现跨产品缺陷的生成。

当前缺陷生成算法大致可以分为两种:一种是自动生成算法,整个生成过程完全不需要人工干预,第二种是半自动生成算法,需要一些简单的人工交互。

自动生成算法的典型算法有DCGAN[1] 、WGAN[2] ,输入一张缺陷图像可以直接生成多张真实的缺陷图像。半自动生成算法的典型算法有CGAN[3] 、CVAE[4] 、Pix2Pix[5] ,需要人工交互给定缺陷生成的类别或形状,然后根据给定信息生成指定类型缺陷。但当前无论是自动生成算法还是半自动生成算法,对训练样本的需求量虽然比监督算法少,但还是有一定要求,而且目前还没有一种能在所有数据上通用的解决方案,当前仍需要针对不同的场景制定不同算法版本。通用的缺陷生成算法会这个研究方向下一步的重点。

2、减少算法对样本的依赖

算法路径解决小样本问题的第二个思路是减少算法对样本的依赖,基于这个思路衍生出两条算法路线:

  • 第一条路线是完全不需要缺陷样本的非监督学习算法,基于非监督算法训练模型时仅需要OK图像参与训练即可。

  • 第二条路线仍基于有监督算法,对缺陷样本的需求量大大降低。

非监督算法实现的思路大体上分为两种:

  • 一种是基于生成模型,基本思路是训练一个只能生成OK图像的生成网络,推理时针对输入的NG图像,找到一个与NG图像最接近的OK图像,然后求两张图的差异,根据差异大小判断是否为NG,典型算法有AE,VAE[6] ,Ano-GAN[7] 等。

  • 另一种思路是基于特征表示,基本思路是找个一个较好的特征表示,将OK图和NG图分别映射到高维特征空间,OK图对应特征点的类内距离很小,推理时一张图对应特征点与OK图特征簇的中心距离很远就可以判定为NG,典型算法有SVDD[8] 、OCSVM、DeepSVDD[9] 等。

基于有监督算法减少样本依赖的思路分为两种:

  • 一种是对输入数据进行归一化,降低不同缺陷样本之间的差异,归一化算法基于传统图像处理算法实现,需要针对不同场景做不同的算法设计,很难有通用性,因此仅作为一些临时处理手段。

  • 另一种思路是基于迁移学习,典型的算法研发方向是域适应(Domain Adaption,DA)和域泛化(Domain Generation,DG)。

DA处理的问题要求可以获取一部分目标域的图像,且不能实现跨类别的迁移,因此适合用于处理跨产品型号的问题。DG在DA的基础上,放宽了对目标域数据的要求,可以不需要目标域数据,且可以实现跨类别迁移,因此可以实现跨产品、跨型号、跨缺陷类别的迁移。

DA算法当前研究的基本思路有三种,一是基于差异度量,核心思路是找一个差异度量函数,让源域与目标域样本的特征在这个度量函数下最小,代表算法为MMD[10] ;二是基于对抗,核心思路是通过构造对抗网络,训练一个分类器让判别器无法区分数据是来自源域还是目标域,这样就实现了源域和目标域的融合,代表算法为Dom Confusion[11] ;三是基于重构,核心思路是将构造源域和目标域的通用特征,仅利用通用特征去执行相应的任务,代表算法为Domain Separation Networks[12] 。

DG算法当前的研究思路也分为三种,第一种是推理时选取一个分布最近的源域的模型直接使用,第二种是通过拆解域相关与域无关的组件并进行组合来实现对目标域数据的处理,第三种是训练得到域不变的特征[13] 。

03

总结

当前基于有监督的缺陷检测算法,在数据量充足的场景下已经逐步成功落地,但工业场景具有一定的离散性,大部分应用场景均为小样本检测场景,小样本问题的解决有助于将AI技术应用于千千万万工厂。

虽然当前针对小样本问题有一些初步的解决思路,但该问题的彻底解决需要更深入的研究及更大的投入。阿丘科技将AI For Every Factory作为使命,会坚定不移地持续研究小样本问题,也希望可以和有志于研究工业AI检测问题的工业人一起交流进步,推动小样本问题的彻底解决。

 

更多精彩内容请关注公众号:BFT机器人
本文为原创文章,版权归BFT机器人所有,如需转载请与我们联系。若您对该文章内容有任何疑问,请与我们联系,将及时回应。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/649974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

备份手机、电脑微信聊天记录并恢复

文章目录 前言一、手机聊天记录备份至电脑,再恢复1、在电脑新建一个文件夹保存备份文件2、按照下图操作3、最后备份文件大小4、恢复至手机 二、手机聊天记录同步至电脑1、在手机点击【我】--【设置】--【聊天】--【聊天记录迁移与备份】-【迁移】 总结 前言 最近需…

灰度图像点运算之线性变换

目录 note code test note // g(x,y) a * f(x,y) b code void line_convert_fun(uchar& in, uchar& out) {out -1 * in 255; } void img_line_convert(Mat& src, Mat& res) {if (src.empty()) {printf("src empty\n");return;}int src_rows…

【H5】移动端,常见界面布局模板

系列文章 【移动设备】iData 50P 技术规格 本文链接:https://blog.csdn.net/youcheng_ge/article/details/130604517 【H5】avalon前端数据双向绑定 本文链接:https://blog.csdn.net/youcheng_ge/article/details/131067187 【H5】安卓自动更新方案&a…

数据库入门上篇(数据库基础概念知识)

在这篇文章里,笔者将简单介绍数据库的起源和发展,数据库的分类,读完这篇文章,大家就对数据库有一个大概了解,也就是知道我们该学什么样的东西 为什么需要数据库 在如今的信息时代,各行各业每天都会产生大量…

11. python从入门到精通——异常处理及程序调试

目录 异常概述 异常处理语句主要有四种 程序调试:Python有两种常用调试方法 异常概述 异常:异常就是出现错误并且会中断程序的正常执行 异常处理语句主要有四种 示例库:在输入浮点数或除数为0时会异常 def division():功能:分苹果print…

【JMeter】threadNum:将接口查询结果列表按顺序赋值给各线程

使用JMeter做性能测试会遇到这么一个场景:后面的请求需要根据前面的查询列表结果通过正则表达式提取器取值后赋值,而后面用户的赋值必须是唯一的,此时该如何做? 如果按编程思维来说,这个问题并不难。只需要把前面的结…

他们都开始偷偷学习高性能计算了 | 学习高性能计算需要哪些前置知识?

随着大模型的越演越烈,高性能计算这一领域被越来越多的人所熟知。未来的超算互联网时代,不懂高性能计算更是难以适应未来时代的发展与变化。很多同学都想学习高性能计算,今天作为国内首家专注高性能计算人才培养的专业机构就帮大家梳理一下&a…

接连三预测成真,75%的参与率,华为、阿里、腾讯纷纷介入

Cartner预测:75%参与率 去年,Cartner预测,75%的大型企业将使用至少四种低代码/无代码开发工具,用于IT应用开发! 可以感受的到,这几年低代码以突飞猛进的速度在各领域中得到应用。可以预见的是,…

如何 Java 中的大量的 if else 判断?

目录 问题出现: 如何 Java 中的大量的 if else 判断? 解决方案: 1.策略模式 2.工厂模式 3.映射表 4.反射配置文件------极力推荐使用!!!!! 问题出现: 如何 Java 中的…

STM32F407ZGT6 LQFP144 uart 打印输出

STM32F407ZGT6 AX58100 ETHERCAT芯片软件,需要查看SSC 协议栈运行情况,UART输出状态信息。 STM32F407ZGT6 驱动库使用标准库,虽然老,但是够用。 1.STM32F407ZGT6 芯片情况 STM32F407ZGT6 作为AX58100 的主控 2.板子硬件 STM3…

mysql双主不一致数据修复

参考: pt-table-checksum — Percona Toolkit Documentation pt-table-sync — Percona Toolkit Documentation #对比host1 test库与备库差别 pt-table-checksum hhost1,proot,P3306,uroot -d test --recursion-method processlist --no-check-binlog-format -…

Spring Boot进阶(52):Spring Boot 如何集成Flyway并初始化执行 SQL 脚本?| 超级详细,建议收藏

1. 前言🔥 在我们的认知中,我们会使用 SVN 或 Git 进行代码的版本管理。但是,我们是否好奇过,数据库也是需要进行版本管理的呢? 在每次发版的时候,我们可能都会对数据库的表结构进行新增和变更,…

微机保护的数据采集系统(1)

一、模拟五输入电路概述 模拟量输入电路是微机保护装置中很重要的电路。保护装置的动作速度和测量精确度等性能都与该电路密切相关。模拟量输入电路的主要作用是隔离、规范输入电压及完成模数变换,以便与CPU接口,完成数据采集任务。因此这部分电路又称数…

iOS —— xcode14兼容 iOS9~iOS10系统

xcode14兼容 iOS9~iOS10系统 在Xcode升级到Xcode14以后,系统的支持版本升级到了iOS11.0。但是我们项目需要支持iOS9,脚本打包错误提示: The iOS deployment target IPHONEOS_DEPLOYMENT_TARGET is set to 9.0, but the range of …

鼠标的移入、移出事件

目录 一、mouseover和mouseenter 二、mouseout和mouseleave 三、重点总结 在原生JS中鼠标移入移出事件有四个,分别为mouseover ,mouseout ,mouseenter,mouseleave,其中mouseover和mouseenter为移入事件,mouseout和mouseleave为移出事件&…

IDEA提交过滤target、idea、iml、vscode、build、iws、imlz、ipr、xls、rebel.xml

一、问题截图(IDEA提交过滤target、idea、iml、vscode、build、iws、imlz、ipr、xls、rebel.xml) 二、解决 添加.gitignore提交到仓库,就可以了 HELP.md target/ !.mvn/wrapper/maven-wrapper.jar !**/src/main/** #!**/src/test/**### STS …

交换机中光口是如何配置的

在往期的文章中我们有介绍到电口和光口的概念,以及两者之间的区别。本期文章我们来了解一下交换机光口的是如何配置的。 一、交换机光口是如何配置的 1、确认光口类型:首先,确定光口插槽使用的光模块类型(如SFP、SFP、QSFP等&am…

掌握5个关键点,搞定语音识别测试!

现在市面上的智能电子产品千千万,为了达到人们使用更加方便的目的,很多智能产品都开发了语音识别功能,用来语音唤醒进行交互; 另外,各大公司也开发出来了各种智能语音机器人,比如小米公司的“小爱”&#…

Redis实战案例2-基于Redis实现共享session短信登录

1. 实现Redis替代session的业务流程 保存用户登录信息采用Hash结构; key要保证唯一,用随机生成的token(随机字符串)作为key; 并且要保证客户端可以携带key去redis取出value,之前采用session方式是Tomcat自动…

实在智能RPA亮相2023全球人工智能技术博览会,“能对话的数字员工”引领智能自动化新篇章

随着ChatGPT火爆全网,人工智能再次成为学术界和科技领域“新宠”,一场“智能革命”的序幕悄然掀开。 6月13日,“智能驱动 砥砺前行”为主题的2023全球人工智能技术博览会在杭州未来科技城学术交流中心圆满落下帷幕。此次博览会以展示智能科技…