Halcon 纹理缺陷检测 apply_texture_inspection_model
在纹理中找瑕疵。基于高斯混合模型(GMM)分类器的纹理检查模型,适用于图像金字塔,可以分析纹理的多个频率范围。
【要求】训练样本,必须完美无瑕疵。
【步骤】
1、创建模型
create_texture_inspection_model 或 read_texture_inspection_model
2、加载训练样本
add_texture_inspection_model_image
查看样本get_texture_inspection_model_image
保存样本write_object
移除样本remove_texture_inspection_model_image,可降低模型内存需求。
3、训练模型
train_texture_inspection_model
每层金字塔都会训练一个GMM模型,并确定该层的'novelty_threshold'(区分有无瑕疵的阈值)。
参数的获取与设定
get_texture_inspection_model_param
set_texture_inspection_model_param
'patch_normalization':'weber'对亮度鲁棒,‘none’需要亮度作为评判(默认)
'patch_rotational_robustness':'true'对旋转鲁棒,'false'需要旋转作为评判(默认)
加快训练的方法:
① 缩放训练样本(zoom),通常模型对低分辨率纹理瑕疵检测效果更好。
② 调低 'gmm_em_threshold',但会降低模型准确度,训练终止的条件之一,0.001(默认)。
【重要参数】
'levels':设置具体的金字塔层参与训练,纹理越粗糙,则较低的金字塔层级越可省略。默认auto。
'sensitivity':灵敏度,影响'novelty_threshold'的计算结果。负值会导致更高的阈值,从而更少的发现缺陷。默认0。
'novelty_threshold',阈值,自动计算得到,若结果不理想,可以手动微调。
4、测试
apply_texture_inspection_model
5、模型保存与释放
保存模型,write_texture_inspection_model
若模型不再需要,则释放clear_texture_inspection_model
【重要参数调节策略】
“ novelty_region”是通过组合不同金字塔等级的新颖性区域而生成的,即不同层级金字塔组成的交集区域。如果只有单层金字塔,那么该层的新颖性区域直接就是novelty_region。
若想查看各个金字塔等级的新颖性得分图像和新颖性区域,可以把'gen_result_handle'设置为'true',之后get_texture_inspection_result_object读取'novelty_score_image'和'novelty_region'。

'novelty_score_image'通过'novelty_threshold'阈值分割出感兴趣区域(红色)
上述方式可以知道在哪些金字塔等级上检测到哪些类型的缺陷,来决定调整【重要参数】。如选择特定的金字塔层级。
注意:如果参数'gen_result_handle'设置为'true'创建了结果句柄,则最后需要释放clear_texture_inspection_result
【其他】
序列化、反序列化模型serialize_texture_inspection_model、deserialize_texture_inspection_model。
【术语解释】
Patch:相邻像素的集合。
Novelty Score:在测试过程中,将测试图像的纹理特征与纹理检查模型进行比较,并计算它们的'novelty score'。 该值越大,单个纹理特征越不适合纹理检查模型的可能性越大。
Novelty Threshold:Novelty Score高于该阈值,则纹理有缺陷。
参考网站:Texture Inspection [HALCON Operator Reference / Version 17.12] (mvtec.com)
Halcon案例:
apply_texture_inspection_model.hdev、apply_texture_inspection_model_simple.hdev
Halcon 纹理缺陷检测 apply_texture_inspection_model的更多相关文章
- halcon——缺陷检测常用方法总结(特征训练)
引言 机器视觉中缺陷检测分为一下几种: blob分析+特征 模板匹配(定位)+差分:halcon--缺陷检测常用方法总结(模板匹配(定位)+差分) - 唯有自己强大 - 博客园 (cnblogs.co ...
- halcon——缺陷检测常用方法总结(频域空间域结合)
摘要 缺陷检测是视觉需求中难度最大一类需求,主要是其稳定性和精度的保证.首先常见缺陷:凹凸.污点瑕疵.划痕.裂缝.探伤等. 缺陷检测算法不同于尺寸.二维码.OCR等算法.后者应用场景比较单一,基本都是 ...
- 图像处理笔记(二十):LAWS纹理滤波应用于缺陷检测
LAWS纹理滤波 texture_laws(Image, 原图像 ImageTexture, 输出值,滤波后图像 FilterType, 过滤器类型 Shift, 灰度值转换,滤波后的灰度值可能会比较 ...
- halcon——缺陷检测常用方法总结(光度立体)
引言 机器视觉中缺陷检测分为一下几种: blob+特征(官方示例surface_scratch.hdev) blob+差分+特征(官方示例pcb_inspection.hdev) 光度立体 特征训练 ...
- halcon——缺陷检测常用方法总结(模板匹配(定位)+差分)
引言 机器视觉中缺陷检测分为一下几种: blob分析+特征 模板匹配(定位)+差分 光度立体:halcon--缺陷检测常用方法总结(光度立体) - 唯有自己强大 - 博客园 (cnblogs.com) ...
- halcon——缺陷检测常用方法总结(测量拟合)
引言 机器视觉中缺陷检测分为一下几种: blob分析+特征 模板匹配(定位)+差分:halcon--缺陷检测常用方法总结(模板匹配(定位)+差分) - 唯有自己强大 - 博客园 (cnblogs.co ...
- python opencv 图片缺陷检测(讲解直方图以及相关系数对比法)
一.利用直方图的方式进行批量的图片缺陷检测(方法简单) 二.步骤(完整代码见最后) 2.1灰度转换(将原图和要检测对比的图分开灰度化) 灰度化的作用是因为后面的直方图比较需要以像素256为基准进行相关 ...
- Opencv+Python实现缺陷检测
实验七.缺陷检测 一. 题目描述 对下面的图片进行缺陷检测操作,请详细地记录每一步操作的步骤. 第一站图片是标准样品,后面几张图中有几个样品有瑕疵,需要你通过计算在图片上显示出哪张是合格,哪张 ...
- Halcon学习笔记之缺陷检测(二)
例程:detect_indent_fft.hdev 说明:这个程序展示了如何利用快速傅里叶变换(FFT)对塑料制品的表面进行目标(缺陷)的检测,大致分为三步: 首先,我们用高斯滤波器构造一个合适的滤波 ...
随机推荐
- 使用 WinAFL 图片解析软件进行模糊测试 - FreeImage 图片解析库
看雪链接:https://bbs.pediy.com/thread-255162.htm
- Intel汇编程序设计-整数算术指令(中)
7.3 移位和循环移位的应用 7.3.1 多双字移位 要对扩展精度整数(长整数)进行移位操作,可把它划分为字节数组.字数组或双字数组,然后再对该数组进行移位操作.在内存中存储数字时通常采用的方式是 ...
- 获取InputStream对象的方法
获取InputStream对象的方法 getResourceAsStream(String path) 默认path路径位于Class所在Module的src目录下 . InputStream is ...
- C# 通过DataSet 获取SQL 存储过程返回的多个结果集(tables)
测试数据:Northwind 链接地址: https://files.cnblogs.com/files/louiszh/NorthWind.zip 首先创建一个测试存储过程: IF EXISTS ( ...
- 关于Java的 long,float 类型
发现了这么一个坑: 1.2f+3.4f=4.60000014305114751.2d+3.4d=4.6
- Java集合详解(三):LinkedList原理解析
概述 本文是基于jdk8_271源码进行分析的. LinkedList底层是基于链表实现.链表没有长度限制,内存地址不需要固定长度,也不需要是连续的地址来进行存储,只需要通过引用来关联前后元素即可完成 ...
- CentOS下cpu分析 top
CentOS下 cpu 分析-top 时间:2017-03-20 12:09来源:linux.it.net.cn 作者:IT 一. 前言 我们都知道windows下对各个运行的任务,要通过任务管理 ...
- 013.Python的文件操作
一 文件操作 fp = open("打开的文件",mode="模式选择",encoding="编码集") open 函数 返回一个文件io对 ...
- TEB 系统综合误差
TEB 系统综合误差 和森世籍 聊天得知 该TEB 包括 传感器误差 温度 系统误差等等
- git使用简单教程-(转自linux人)
什么是Git Git是目前世界上最先进的分布式版本控制系统.最初由Linus Torvalds编写,用作Linux内核代码的管理.如果你是windows用户,看到这里你可能会担心"是不是只能 ...