友思特应用 | 高精度呈现:PCB多类型缺陷检测系统

2024-04-10 20:36

本文主要是介绍友思特应用 | 高精度呈现:PCB多类型缺陷检测系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

导读

PCB等电子产品的精密生产制造过程中,往往需要将缺陷问题100%高精度暴露。友思特 PCB 多类型缺陷检测系统,借由Neuro-T深度学习模型自动排查全部微小缺陷,为工业 PCB 生产制造提供了先进可靠的质量保障。


在现代制造业中,尤其是在高精度要求的电子制造领域,诸如印刷电路板(PCB)生产的过程中,高效且准确地识别和分类多种类型的缺陷至关重要。

针对缺陷检测需求,常见的解决方案有两种:(1)基于目标正常图像数据的模板匹配;(2)训练深度学习模型检测目标缺陷。

第一种方式虽然在特定场景下有效,但面对复杂和多变的实际生产条件,这些方法往往受限于它们的灵活性和鲁棒性。第二种方式不仅能够处理传统技术难以解决的复杂缺陷类型,还能通过不断的学习优化,提高检测的准确性和效率,具有更强的鲁棒性和泛化能力。

友思特技术团队通过 Neuro-T 的 Segmentation(实例分割)模型,搭建了 PCB 多类型缺陷检测系统,为工业 PCB 的生产制造提供了可靠的质量保障。

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

友思特 Neuro-T 支持八种不同的深度学习模型,其中六类模型适用于缺陷检测领域。具体而言:

有监督学习模型

  • 分类:简单分类目标缺陷的有无,精度高

  • 实例分割:准确识别并分割目标的缺陷区域,精度最高,适合占像素点少(低至10像素点)、形状较简单的缺陷

  • 目标检测:识别和定位目标的缺陷区域,精度高,适合占像素点稍多、形状较复杂的缺陷

  • GAN:人工生成目标的缺陷图像,弥补缺陷数据量不足的问题

无监督学习模型

  • 异常分类:分类目标缺陷的有无,精度高于分类模型(可设置异常阈值),主要适用于数据缺乏场景

  • 实例分割:准确识别并分割异常目标的缺陷区域,精度略低于实例分割模型(可设置异常阈值),主要适用于数据缺乏场景

PCB的六种常见缺陷类型

①missing_hole(焊盘缺失)

图片

②mouse_bite(线路缺口)

图片

③open_circuit(断路)

图片

④Short(短路)

图片

⑤Spur(毛刺)

图片

⑥Spurious(伪铜)

图片

PCB 多类型缺陷检测系统

友思特 PCB 多类型缺陷检测系统主要由 Neuro-R、IDS相机 和 VST-2D 软件组成。PCB缺陷检测模型使用 Neuro-T 中的实例分割模型,通过对数据集进行标注、训练、微调实现,而后独立于 Neuro-T 脱机运行,通过 Neuro-R 实现在主机上运行推理。VST-2D 软件是友思特自研视觉软件,对接 IDS 相机的实时图像流,获取 PCB 的实时图像数据,结合 Neuro-R 调用 Neuro-T 训练的模型,实现缺陷区域的识别、缺陷类型确定以及定位分割并将结果呈现于界面。

系统组成图

图片

系统检测效果图

图片

友思特 Neuro-T 实例分割模型训练 PCB 缺陷检测模型具体操作步骤

1.1 新建项目

图片

1.2 新建数据集

图片

1.3 导入图像数据

图片

2.1 创建标签集

图片

2.2 选择模型类型(Segmentation)

3.1 创建缺陷类别

图片

3.2 选择标注工具

图片

3.3 开始数据标注

图片

  • 数据量较少的情况下,可以手动一一标注;数据量较多时,一一标注耗时耗力,可以使用友思特 Neuro-T 自动标注功能来完成标注工作
  • 项目共693张图像,标注139张,剩余使用自动标注功能完成

  • 自动标注功能的具体步骤为:

1、标注部分数据

图片

2、划分训练集和测试集

图片

3、训练标注模型

图片

4、加载标注模型

图片

5、选中图像自动标注

图片

标注完成的结果图如下所示:

图片

4.1 划分训练集和测试集

图片

4.2 训练模型

图片

4.3 查看模型结果

图片

模型评估结果解读:

图片

IoU (Intersection over Union) 交并比,对于特定的一个实例,指模型预测区域与真实区域的交集比上它们的并集:

图片

式中P为模型预测区域,R为真实区域,单位为像素点个数。

对于深度学习模型,IoU≥50%才算成功被检测出来且效果较好。

准确率 (Accuracy) ,衡量模型在所有类别上整体预测的准确程度:

图片

精确率 (Precision) ,衡量模型将数据预测为缺陷的精准程度:

图片

召回率 (Recall) ,衡量模型成功找到缺陷的能力:

图片

精确率和召回率的调和平均值 (F1 Score) ,综合考虑精确率和召回率两个指标:

图片

式中:

  • TP为正确判断为A类缺陷(真实也是A类缺陷)的数量

  • TN为错误判断为A类缺陷(真实为非A类缺陷)的数量

  • FP为正确判断为非A类缺陷(真实为非A类缺陷)的数量

  • FN为错误判断为非A类缺陷(真实为A类缺陷)的数量。

本应用案例有六类缺陷,对每类缺陷的指标取均值。

模型检测效果图

图片

黑色字样+黄色框:原始标注结果

紫色字样+阴影框:预测结果

友思特缺陷检测系统套装

Neuro-R

图片

Neuro-R 可实现无缝整合训练软件创建的模型至支持各种环境和编程语言的运行时 API,其独特性在于——不仅仅是简单地传递模型推断结果,还可以利用各种 API 以创造性的方式从多个模型生成结果,Neuro-R 是友思特缺陷检测系统套装的重要组成部分。

Neuro-T

图片

Neuro-T 使用简单的图形用户界面,通过自动优化深度学习模型结构和训练参数来创建出性能最佳的模型,无需任何深度学习经验,即可运行自己的深度学习项目。在系统中,Neuro-T 是用于训练模型的核心工具。

2D 工业相机

图片

友思特 2D 工业相机结合了支持USB3视觉标准的高质量全局快门传感器技术和具有成本效益的uEye XCP相机平台,是流行的USB2接口的uEye LE相机系列的最佳、高性能和长期替代品。借助友思特自研视觉软件 VST-2D,对接IDS相机的实时图像流,即可获取PCB的实时图像数据。

欢迎访问官网,探索丰富案例:https://viewsitec.com/neurocle/

这篇关于友思特应用 | 高精度呈现:PCB多类型缺陷检测系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

Java Stream流之GroupBy的用法及应用场景

《JavaStream流之GroupBy的用法及应用场景》本教程将详细介绍如何在Java中使用Stream流的groupby方法,包括基本用法和一些常见的实际应用场景,感兴趣的朋友一起看看吧... 目录Java Stream流之GroupBy的用法1. 前言2. 基础概念什么是 GroupBy?Stream

python中列表应用和扩展性实用详解

《python中列表应用和扩展性实用详解》文章介绍了Python列表的核心特性:有序数据集合,用[]定义,元素类型可不同,支持迭代、循环、切片,可执行增删改查、排序、推导式及嵌套操作,是常用的数据处理... 目录1、列表定义2、格式3、列表是可迭代对象4、列表的常见操作总结1、列表定义是处理一组有序项目的

C#中的Converter的具体应用

《C#中的Converter的具体应用》C#中的Converter提供了一种灵活的类型转换机制,本文详细介绍了Converter的基本概念、使用场景,具有一定的参考价值,感兴趣的可以了解一下... 目录Converter的基本概念1. Converter委托2. 使用场景布尔型转换示例示例1:简单的字符串到

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat