Detecting of Cracks and Scratches读书笔记

2024-03-21 15:12

本文主要是介绍Detecting of Cracks and Scratches读书笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 引子

最近在做之前工作的资料整理,无意间翻到基于图像处理的划痕检测文章,网址都失效了 。OK,让我们开始吧。网址:http://www.qualitymag.com/articles/91490-detecting-of-cracks-and-scratches

检测产品表面缺陷,诸如污点、龟裂和刮痕,这是一项对于人或者机器视觉来说很难的工作。这些缺陷具备随机的形状和低对比度,而且容易被产品的自身的纹理或者模式所掩盖。用机器视觉的方法检测需要了解这些缺陷的样子、尤其是光线、摄像头分辨率、部分展示描述和高大上的机器视觉算法。

Understand the Task

了解这些缺陷是如何产生的会给你一些关于这些缺陷如何出现在图片上的一些想法。一些先验知识会提高缺陷检测的稳定性通过机器视觉手段分析限定的区域、结构和缺陷发生的方向。

在这个复杂的检测任务上,人类检测员的认定有可能根据不同的因素导致不同的认定结果,然后机器视觉可以给出始终一致的认定结果。

由于这些缺陷是低对比度的,合适的光照可以放大对比度,光照对于缺陷检测是一个尤其重要的因素。

摄像头和焦距照出来的图片必须保证龟裂和刮痕超过3个像素大小。

Shading Correction

如果刮痕和龟裂的强度很好的体现在机器自然纹理之上或者之下,这个检测任务貌似很简单。利用强度阈值仅仅显示龟裂和刮痕的像素,并且统计检测出来的缺陷信号

然而,在阈值之外的像素值可能由于不均与的光照强度而误判为龟裂或刮痕,实际上并不是。阴影校正可以去除光照强度的不同,从而提高刮痕检测效果。阴影校正的典型做法是空间域滤波或者根据基准图对输入图片进行划块。

空域高通滤波可以放大高频刮痕和龟裂并且去除由于光照强度而产生的低频信息变化。不幸的是,这个高通滤波只可以放大表面纹理,但是带噪声的图片会很难检测准确。

除了放大高频信息,我们还可以减少低频信息。首先,对输入图片进行均值滤波。接下来,减去输入图片的低通图片,留下高通的部分(刮痕和龟裂)。

基准图是临时对一系列的没有刮痕的图片做平均。基准图展示了光照分布。接下来,根据基准图划分输入图像从而消除光照的影响。

Golden Reference Methods

大部分零件都有出现反射和transmission variations现象会模糊刮痕和龟裂。我们可以通过对已知的好零件的图像精确地定位来生成golden基准图。

Repetitive Pattern Removal by Matched Filters

Golden基准的方法可以去除重复零件模式,比如说网格。

基本的方法是根据零件的重复模式的部分建立一个匹配空域滤波器,然后利用滤波器过滤掉模式,留下完整的表面刮痕,并为表面缺陷优化信噪比。运用匹配滤波器的优势是具备滤波器与输入图片之间定位不匹配的容忍度,随着标准化的不同,容忍度是可以变化的。

一个已知的具备重复模式良好图片可以使用快速傅里叶变化去生成匹配滤波器。在空域中,根据匹配滤波器把输入图片划块。如果我们不在表面刮痕的位置和结构,这些刮痕有的时候可以在空域中被检测出来。

Structural Methods

架构化方法是利用刮痕结构的先验知识去提高检测效果。例如刮痕一般出现在图片中的点是近似为一条线的。

两种结构化方法,数字形态学和霍夫变换。

数字形态学,腐蚀膨胀

霍夫变换,坐标系转换

这篇关于Detecting of Cracks and Scratches读书笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

《C++标准库》读书笔记/第一天(C++新特性(1))

C++11新特性(1) 以auto完成类型自动推导 auto i=42; //以auto声明的变量,其类型会根据其初值被自动推倒出来,因此一定需要一个初始化操作; static auto a=0.19;//可以用额外限定符修饰 vector<string> v;  auto pos=v.begin();//如果类型很长或类型表达式复杂 auto很有用; auto l=[] (int

读书笔记(一):双脑记

谁又知道年轻人那反复无常的大脑有着怎样的运行机制?尽管他们的大脑已被荷尔蒙折腾地七荤八素;却偶尔还会有灵感跻身夹缝之间; 层级化:每时每刻,人类都在进行抽象化,也就是说,从客观事实中发展出更具普遍意义的理论和知识。利用这种方法,我们得以不断地开发出新的更为简洁的描述层级,方便我们那容量有限的大脑加以处理。分层的概念几乎可以应用于任何复杂系统,甚至包括我们的社交世界,也即是人们的个人生

2024.09.07【读书笔记】| SMRTLink工具对PB组装疑难解答

在使用SMRT Link的pb_assembly_hifi命令进行组装分析时,可以参考以下步骤和信息: 使用pbcromwell show-workflow-details pb_assembly_hifi命令查看该工作流的详细信息。这将帮助你了解所需的输入参数和可选输入参数。 根据工作流的要求,你需要准备相应的输入文件。例如,对于单样本基因组组装,需要CCS(连续测序)的fastq文件路径作

密码学读书笔记小结

密码学是保证消息的私密性和完整性以及消息认证的基础。加密算法的选择和密钥的管理是安全机制的效率、性能和可用性的关键。 公钥加密算法: 分发密钥比较容易,但是对大数据量的加密性能较差密钥加密算法: 更适合大批的加密任务混合型加密协议: 例如TLS,先用公钥加密建立一个安全通道,然后使用通道交换密钥,并将此密钥用于后续数据交换。 对分布式系统攻击的分类: 窃听: 未经授权获得消息副本伪装: 在未

《设计模式:可复用面向对象软件的基础》读书笔记(3)

这篇博客记录了书中《第3章:创建型模式》里的要点。 介绍 创建型设计模式抽象了实例化过程。 在这些模式中有两个不断出现的主旋律: 他们都将关于该系统使用哪些具体的类的信息封装起来。他们隐藏了这些类的实例是如何被创建和放在一起的。 整个系统关于这些对象所知道的是由抽象类所定义的接口。因此,创建型模式在什么被创建、谁创建它、它是怎样被创建的,以及何时被创建等方面给予你很大的灵活性。 下面将这

《程序员修炼之道》读书笔记(8):注重实效的项目

第8章:注重实效的项目 随着项目开动,我们需要从个体的哲学与编码问题,转向为项目级别的问题。 本章将讨论影响项目成败的几个关键区域。 41《注重实效的团队》 本书在先前讨论了帮助程序员个体更好的方法,这些方法对团队也有效。 下面将针对团队,来重述前面部分章节。 不要留破窗户。团队不应该容忍那些小小的、无人修正的不完美。煮青蛙。团队更容易被煮熟,因为每个人都觉得别人会在监视环境的变化。交流

Linux程序设计读书笔记------入门

第一章 入门   1:什么是Unix Unix是Open Group管理的一个商标,它指的是遵循特定规范的计算机操作系统 2:什么是Linux Linux是一个可以自由发布的类Unix内核实现,他是一个操作系统的底层核心 3:Linux应用程序表现为两种特殊类型的文件:可执行文件和脚本文件 4:Linux文本编辑器:Vim,Emacs等 5:库文件   1:静态库:.a   2

《Cloud Native Data Center Networking》(云原生数据中心网络设计)读书笔记 -- 10数据中心中的BGP

本章解答以下问题: ASN,团体(community),属性(attribute),最佳路径这些BGP术语是什么疑似?在数据中心中应该使用eBGP还是iBGP?在数据中心使用BGP时,应采用什么ASN编号方案?在数据中心使用BGP时,应如何修改BGP的计时器? BGP 基本概念 BGP协议概述 BGP 是一种路径矢量路由协议。“矢量”是一个数组或列表。因此,路径矢量路由协议是一种构建并分发

刘润《关键跃升》读书笔记6

把教练传授内容的知识含量分成五个级别:⽩⽔级、啤酒级、⻩酒 级、红酒级和⽩酒级(⻅图3-4) 第⼀个层级是⽩⽔级(0°)。教练在传授的时候,什么都没有教,只 会训⼈。 ⼆个层级是啤酒级(3°~5°)。教练会传授⼀定的知识,这种知识叫 经历。 教练告诉员⼯,⾃⼰⼀路是怎么⾛过来的。他做员⼯的时候,也是天 天被⽼板骂,那怎么办?骂就听着,错了就改,硬扛着向前⾛。“当时 遇到了……能挺过来真是不容易…

2024.09.04【读书笔记】|如何使用Tombo进行Nanopore Direct RNA-seq(DRS)分析

文章目录 Tombo快速使用介绍模型介绍RNA修饰分析步骤特异性替代碱基检测(推荐)De novo canonical model comparison ONT全长转录组分析步骤疑难解答Minimap2在比对nanopore直接RNA-seq数据时的最佳实践和参数设置有哪些?featureCounts在进行RNA-seq定量分析时,如何选择最合适的参考基因组注释文件?Tombo序列重校正过程