[Halcon学习笔记]机器视觉缺陷检测常用方法对比总结

1、介绍

缺陷检测时机器视觉需求中最复杂难度较大的一类需求。究其原因,主要是在项目开发过程中首先要保证检测的稳定性和精度,又要实现缺陷检测的通用性,常见的缺陷:凹凸、污点瑕疵、划痕、裂缝、伤痕、毛刺等等类型种类繁杂,缺陷检测不同于尺寸、二维码、OCR识别等算法。后者的应用场景比较单一,基本使用一些成熟的算法实现,最多增加一些定位、图像增强的算法,应用门槛相对较低,也比较容易做成通用的产品或工具。但缺陷检测主要针对工业场景,不同的行业的需求和重点都有差别,这导致不同的行业所使用的缺陷算法迥然不同,这也注定了缺陷检测被工业场景非标定制所束缚。随着缺陷检测要求的不断提高和技术的不断发展,机器学习和深度学习也成了缺陷领域一个不可或缺的技术难点。

2、缺陷检测目前解决方案

2.1 传统算法检测缺陷

优点:可根据需求和图像进行不同需求的开发,可直观展示效果;
缺点:调试难度大,图像变化后会导致检测算法不稳定进而需要反复调参,而且复杂缺陷误检的概率较大,兼容性不好,很难做成通用效果。

2.2 机器学习检测缺陷

一般使用类似MLP的一些单层神经网络,对缺陷特征进行训练分类,该方法需要事先提取出缺陷部分,一般用来与传统分割法搭配使用,达到缺陷检测分类的效果。

2.3 深度学习检测缺陷

优点:通用性好,可以通过迭代训练模型不断提升某个产品的检测准确度。
缺点:需要大量的数据样本(缺陷样本),而且缺陷种类越多,特征性越模糊,检测精度要求越高,其需要的缺陷样本就越大,而且深度学习中的缺陷样本需要人工去标注标签,样本越大,手动标注的工作量也越大,训练的周期也越长。只适合产品产量大且缺陷样本较多的案例。

2.4 深度学习检测缺陷(迁移学习方法)

其操作方法如2.3,但同一行业或相似行业有大量的缺陷样本库,如果深度训练网络具有泛化和迁移的特点,可以在常规缺陷少的情况下,根据统一行业缺陷进行迁移学习训练,进而解决缺陷样本少的问题。该方法我感觉会成为后面工业领域检测瑕疵的一个大趋势,但是需要一些公司去收集各种行业的缺陷类型图片和训练的网络模型,并共享出来,然后后来者可以使用迁移学习的方法学习前人训练好的模型。然后不断的丰富缺陷样本和训练模型。

3、总结

目前机器视觉中缺陷检测主要分为以下几种:

1 Blob分析+特征提取
2 模板匹配(定位)+查分
3 光度立体
4 特征训练
5 测量拟合
6 频域+空间域
7 深度学习

以后的笔记中再详细介绍各种缺陷检测方法使用的场景和实际案例。

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

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

相关文章

uniapp 使用sqlite时无法读取到db文件中的数据

问题 {“code”:-1404,“message”:“android.database.sqlite.SQLiteException: no such table: user (Sqlite code 1): , while compiling: select * from user, (OS error - 2:No such file or directory),http://ask.dcloud.net.cn/article/282”} at pages/index/index.vu…

Python内置对象

Python是一种强大的、动态类型的高级编程语言,其内置对象是构成程序的基础元素。Python的内置对象包括数字、字符串、列表、元组、字典、集合、布尔值和None等,每种对象都有特定的类型和用途。 01 什么是内置对象 这些对象是编程语言的基础构建块&…

STP环路避免实验(思科)

华为设备参考:STP环路避免实验(华为) 一,技术简介 Spanning Tree Protocol(STP),即生成树协议,是一种数据链路层协议。主要作用是防止二层环路,并自适应网络变化和故障…

【AI案例】做AI视频如何实现数字人实时口型同步

首先,这个方案提供了一个令人瞩目的实时唇语同步API。这一技术能够将任何视频与任何语言的音频进行视觉配音,而且无需繁琐的训练过程。这样的功能极大地拓宽了视频内容的传播范围,使得无论语言背景如何,人们都能够理解并享受视频内容。 其次,这个API的适用性非常广泛,无…

Unity2D实现鼠标拖动物体移动(简单好抄)

1.新建脚本,并将脚本拖到你想要拖动的物体上即可 using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine;public class text : MonoBehaviour {private Vector3 offset;public int x 1;void OnMouseDown(…

第十三届“中关村青联杯”全国研究生数学建模竞赛-A题:多无人机协同任务规划(续)

目录 7.2 模型三的建立与求解 8 问题四:针对远程雷达的分步优化模型 9 问题五:模型分析

【Pandas】(2)DataFrame

Pandas 的 DataFrame 是一个二维的、大小可变的、异质型表格数据结构,带有标签化的轴(行和列)。简单来说,你可以将 DataFrame 看作是一个 Excel 表格或 SQL 数据表,在数据分析和数据处理中非常有用。 创建 DataFrame DataFrame 可以通过多种方式创建,最常用的是直接从字…

SAP前台处理:物料主数据创建<MM01>之销售视图

一、背景: 终于来到了物料主数据,我觉得物料账是SAP最重要的一项发明,也一直是SAP的一项重要优势,物料账记录了一个个物料的生生不息; 本章主要讲解物料主数据和财务相关的主要内容:这里特别提示由于作者…

matlab软件基础

第1讲 MATLAB初步 MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。MATLAB和Mathematica、Maple并称为三…

Linux 发布项目到OpenEuler虚拟机

后端:SpringBoot 前端:VUE3 操作系统:Linux 虚拟机:OpenEuler 发布项目是需要先关闭虚拟机上的防火墙 systemctl stop firewalld 一、运行后端项目到虚拟机 1、安装JDK软件包 查询Jdk是否已安装 dnf list installed | grep jd…

Redis数据结构对象中的类型检查与命令多态、内存回收

类型检查与命令多态 概述 redis中用于操作键的命令基本上可以分为两种类型。其中一种命令可以对任何类型的键执行,比如说DEL命令、EXPIRE命令、RENAME命令、TYPE命令、OBJECT命令等. 而另一种命令只能对特定类型的键执行,比如说 1.SET、GET、APPEND、…

OPTEE v3.20.0 FVP环境搭建

目录 一、前提条件 二、下载fvp代码 三、下载工具链 四、下载Foundation_Platform FVP平台 五、编译及运行 一、前提条件 1、安装如下的依赖工具 sudo apt-get install android-tools-adb android-tools-fastboot autoconf \ automake bc bison build-essential ccache c…

windows管理github代码

资料 windows SSH下载github

预处理 #pragma 命令详解

目录 1.引言 2.#pragma once 3.#pragma waring(...) 4.#pragma comment 4.1.lib 4.2.linker 5.#pragma region … /endregion … 6.#pragma optimize 7.#pragma message (message string) 8.#pragma omp parallel for 9.#pragma pack([ show ] |…

51单片机—AD/DA

目录 1.AD/DA元件介绍 2.运算放大器 3.原理分析 4.性能指标 5.内部芯片时序 6.程序实操 7.原理图 1.AD/DA元件介绍 一般传感器的值会随参数的值变化,AD一般对电压进行转换,AD有多个通道,但是DA只有一个通道,且AD的运用较为广…

路由器怎么做端口映射

路由器在网络中起到了连接不同设备和提供网络服务的重要作用。端口映射是一项常见的操作,它允许外部网络中的设备通过路由器访问内部网络中的设备。我们将介绍如何在路由器上进行端口映射的设置。 理解端口映射 在开始操作之前,我们需要了解一些基本概念…

反射 Reflection

反射 反射的概念 反射机制允许程序在执行期借助于ReflectionAPI取得任何类的内部信息(比如成员变量,构造器,成员方法等等),并能操作对象的属性及方法。反射在设计模式和框架底层都会用到加载完类之后,在堆中就产生了一个Class类型…

前端之各浏览器间差异和平台的兼容性问题

目录 这些差异和兼容性问题主要源于以下方面为解决这些兼容性问题,常用的做法包括浏览器的差异主要体现在它们对于 HTML、CSS 和 JavaScript 的解析和渲染上。为了处理不同浏览器和平台的兼容性问题,我们可以采取以下几个步骤:IE、Firefox、S…

GET请求和POST请求

GET请求和POST请求是HTTP协议中最常用的两种请求方法,它们在Web开发中起着至关重要的作用。 GET请求 用途:用于请求指定资源的表示形式,通常用于获取数据。幂等性:GET请求是幂等的,即多次请求同一资源应该返回相同的…

Flutter 在 Windows 下的开发环境搭建(Flutter SDK 3.19.2)【图文详细教程】

Git 下载与安装 对于 Flutter 3.19,Git 版本需要 2.27 及以上 Git 下载: Git 官网:https://git-scm.com/Git 下载淘宝镜像:https://registry.npmmirror.com/binary.html?pathgit-for-windows/ 对于 Git 的安装教程,…