描绘未知:数据缺乏场景的缺陷检测方案

2024-01-25 11:20

本文主要是介绍描绘未知:数据缺乏场景的缺陷检测方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

了解更多方案内容,欢迎您访问官网:neuro-T | 友思特 机器视觉 光电检测;或联系销售经理:18124130753

导读

深度学习模型帮助工业生产实现更加精确的缺陷检测,但其准确性可能受制于数据样本的数量。友思特 Neuro-T 视觉平台克服了数据缺乏状况的困难,通过零代码设置GAN模型无监督学习模型,轻松实现缺陷图像的标注、绘制和导出。

工业应用中存在较多的缺陷检测需求。针对缺陷检测需求,常见的解决方案有两种:

  1. 基于目标正常图像数据的模板匹配;

  2. 训练深度学习模型检测目标缺陷。

其中,第2种方式具有更强的鲁棒性和泛化能力。然而由于深度学习模型的准确率跟数据量的大小挂钩,深度学习缺陷检测方案面临着缺乏足够的缺陷样本进行模型训练的问题。

友思特推出 Neuro-T 机器视觉软件平台,通过GAN无监督学习模型两种不同的手段,以两种不同的方式形成数据缺乏场景的缺陷检测方案

友思特Neuro-T支持的深度学习模型类型

友思特 Neuro-T 支持八种不同的深度学习模型。

其中,GAN通过少量缺陷样本,训练缺陷生成模型并生成大量缺陷图像,从而解决缺陷数据缺乏的问题;无监督学习模型中的异常分类异常分割,只需用大量正常的图像数据和少量的缺陷图像进行训练,即可输出检测异常图像的深度学习模型。

有监督学习模型

  • 模型训练数据包括输入图像的特征标签/目标值

  • 训练过程中,模型尝试通过特征和标签之间的联系来学习如何预测/分类。

无监督学习模型

  • 模型训练数据只包含输入图像的特征,无标签/目标值;

  • 模型尝试发现数据中的模型或特征关系,而非预测特定的输出。

监督学习

分类

图片

将图像分类成不同的类别或OK/NG组别

实例

分割

图片

分析图像中检测到的物体形状并圈选

目标

检测

图片

检测图像中物体的类别、数量并定位

OCR

字符

识别

图片

检测和识别图像中的字母、数字或符号

旋转

图片

旋转图像至合适的方位

GAN

对抗生成网络

图片

学习图像中的缺陷区域并生成虚拟缺陷

无监督学习

异常

分类

图片

在大量正常图像和少量缺陷图像上训练以检测异常图像进行分类

异常

分割

图片

在大量正常图像和少量缺陷图像上训练以检测异常图像并定位缺陷位置

GAN模型

生成对抗网络 (Generative Adversarial Network, GAN) 是一种深度学习模型,由生成器 (Generator) 和判别器 (Discriminator) 组成。

生成器网络以随机噪声为输入,通过层层映射和转换逐渐生成逼真的数据样本。判别器网络则被训练用于区分生成器产生的样本与真实样本。两部分通过对抗训练的方式相互博弈,学习数据的分布,使得生成器可以生成逼真的数据样本,而判别器则可以对真实样本和生成的样本进行有效区分。

生成器的目标是最大化判别器无法区分生成样本和真实样本的概率。而判别器的目标是最小化其错误率,即尽可能准确地区分生成样本和真实样本。通过反复迭代优化,生成器和判别器逐渐互相提高,并最终达到一种动态平衡状态。

GAN模型广泛应用于文本、图像、音视频数据生成等场景。

Neuro-T GAN模型生成缺陷图像操作步骤

01 训练GAN模型

1.1.1 新建项目

图片

1.1.2 新建数据集

图片

1.1.3 导入图像数据

图片

1.2.1 创建标签集 

图片

1.2.2 选择模型类型(GAN)

图片

1.3.1 标注数据

图片

1.3.2 完成标注

图片

可以使用涂刷的方式选中缺陷区域

也可以用画笔绘制任意多边形圈选缺陷区域

1.4.1 划分训练集/测试集

图片

1.4.2 缺陷图像/正常图像

图片

缺陷图像设置为训练集,将正常图像设置为测试集

1.5.1 输入训练模型名称

图片

1.5.2 训练生成GAN模型

图片

1.5.3 查看模型结果

图片

02 创建缺陷图像

2.1.1 进入生成中心(Generation Center)

图片

2.1.2 新建任务

图片

2.2.1 导入正常图像

图片

2.2.2 加载GAN模型

图片

用于创建缺陷的图像数据必须跟用于训练GAN模型的数据对应,后续将用这些正常图像生成缺陷图像。

①绘制生成缺陷:自定义模式Custom mode

2.3.1① 选择缺陷生成类型

图片

2.3.2① 绘制缺陷

图片

2.3.3① 完成绘制

图片

2.3.4① 准备生成

图片

2.3.5① 生成缺陷图像

图片

应用于比较直观的缺陷,可以使用先前训练的缺陷形状(Stamp)绘制缺陷,也可以使用画刷工具(Brush)自由绘制缺陷

②绘制生成缺陷:随机模式Random mode

2.3.1② 选择缺陷生成类型

图片

2.3.2② 设置缺陷数

图片

2.3.3② 生成缺陷图像

图片

2.3.4② 得到缺陷图像

图片

2.3.5② 导出图像数据

图片

应用于比较抽象的缺陷批量缺陷图像的生成,可一键实现在所有正常图像上绘制缺陷得到缺陷图像,软件界面可查看生成的批量缺陷图像并导出。

Neuro-T无监督学习模型

输出异常分类or检测模型操作步骤

(1)与使用Neuro-T训练其他深度学习模型一样的步骤,新建项目 → 新建数据集 → 导入图像数据 → 新建标签集 → 选择标签集对应的深度学习模型类型。

(2)对于异常分类模型:只需类比分类模型,给数据添加正常or异常的标签;对于异常分割模型:给数据添加正常or异常的标签,进一步地,对于异常的图像数据,需要圈选or涂选出异常区域。

(3)训练模型,查看模型检测结果,可以通过设置敏感度阈值(Sensitivity Threshold)来过滤检测出的图像异常部分,从而满足实际的应用需求。

友思特Neuro-T应用案例

1. 制造业

图片

电池缺陷检测

钢材表面缺陷检测

2. 医疗业

图片

胸部CT病灶检测

图片

腹部超声异常检测

这篇关于描绘未知:数据缺乏场景的缺陷检测方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/643105

相关文章

Java注解之超越Javadoc的元数据利器详解

《Java注解之超越Javadoc的元数据利器详解》本文将深入探讨Java注解的定义、类型、内置注解、自定义注解、保留策略、实际应用场景及最佳实践,无论是初学者还是资深开发者,都能通过本文了解如何利用... 目录什么是注解?注解的类型内置注编程解自定义注解注解的保留策略实际用例最佳实践总结在 Java 编程

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代