机器视觉检测相机基础知识 | 颜色 | 光源 | 镜头 | 分辨率 / 精度 / 公差

news/2024/12/24 6:16:52/

注:本文为 “keyence 视觉沙龙中机器视觉检测基础知识” 文章合辑。


机器视觉检测基础知识(一)颜色篇

 

视觉检测硬件构成的基本部分包括:处理器、相机、镜头、光源。

其中,和光源相关的最重要的两个参数就是光源颜色光源形状

一,什么是颜色?

颜色是通过眼、脑和我们的生活经验所产生的一种对光的视觉效应,我们肉眼所见到的光线,是由波长范围很窄的电磁波产生的,不同波长的电磁波表现为不同的颜色,对色彩的辨认是肉眼受到电磁波辐射能刺激后所引起的一种视觉神经的感觉。

颜色具有三个特性,即色相,饱和度和明亮度。简单讲就是光线照到物体,反射到眼中的部分被大脑感知,引起的一种感觉。通过 H(Hue,色相)、S(Saturation,饱和度)和 V(Value,明亮度)来表示,即我们常说的 HSV。当然,颜色有不止一种表示方法,RGB 三原色也是另外一种表示方法。但是对人类最直观感受的方式是 HSV。

img

二,什么是 HSV?

- 色相(Hue)

img

如果将色彩分类,可分为含有颜色的有彩色与不含颜色的无彩色(黑、白、灰)两种。

在有彩色中,红、蓝、黄等颜色的种类即称为 “色相(Hue)”。

img

作为主要色相有红、黄、绿、蓝、紫。以这些色相为中心,按照颜色的光谱将颜色排列成环状的图形我们称之为 “色相环”。使用此色相环我们即可求得中间色与补色。

- 饱和度(Saturation)

img

饱和度(Saturation)是指颜色的鲜艳度,表示色相的强弱。颜色较深鲜艳的色彩表示 “饱和度较高”,相反颜色较浅发暗的色彩表示 “饱和度较低”。

饱和度最高的颜色称为 “纯色”,饱和度最低的颜色(完全没有鲜艳度可言的颜色) 即为无彩色。

- 明亮度(Value)

img

明亮度(Value) 表示颜色的明暗程度。

无论有彩色还是无彩色都具有明亮度。明亮的颜色表示 “明亮度较高”,相反暗的颜色表示 “明亮度较低”。

无论有彩色还是无彩色,明亮度最高的颜色即为白色,明亮度最低的颜色即为黑色。也就是说,有彩色的明亮度可用与该亮度对应的无彩色的程度进行表示。

- HSV 的关系

用一张图来表示如下

img

三,补色

红与绿、蓝与橙等,在色相环中位于相对位置的色相组称为补色。

具有互补关系的颜色混合后变成无彩色。

颜料混合(减色法)时呈黑色,色光混合(加色法)时呈白色。

img

img

四,波长与颜色的关系

如果将自然光用棱镜分解,则可见无色的光呈现出 7 种颜色。

光的不同颜色是因波长而起,从波长较短的光到波长较长的光,依次变化的顺序是:紫、蓝、绿、黄、红。

各种颜色与波长的关系如下图所示。

img

img

由光的波粒二象性可知,短波长的蓝色光粒子性更强,实际应用中,更适合捕捉产品微笑的瑕疵创伤。

而红色光更适合需要穿透表面播磨检测内部的应用。


机器视觉检测基础知识(二)光源篇

 

接着上期内容,就视觉检测中十分常用的几类光源作一个简单介绍。

一,环形光源

较为常见的 LED 光源之一,提供基本的照明作用。

img

随着光源距离产品的工作距离 LWD 变化而产生的亮度分布,如下图暖色表示亮;冷色表示暗。

同时该图示是针对特定一款大小的环形光源的数据(下同)。

img

二,条形光源

较为常见的 LED 光源之一,可对长尺区域进行均匀照射,同时通过角度改变可以完成多种照明效果。

img

比如安装为斜向照射,以漫反射光进行拍摄、辨别,从而避免产生引起光晕的镜面反射光。

此外,还可将 CCD 与照明呈相同角度倾斜,以获取镜面反射光,从而突显出刻印等的边缘成分。

img

单个条形光源直接照明的亮度分布:

img

凸显边缘的应用实例:

img

img

连接器行业,给产品的端子头部照明,可以获得很好的效果。

经过组合,还可以做成如下图的可以调整照射角度的照明搭配。

img

三,碗形光源

常见的 LED 光源,可以实现照明效果是均匀的无影光。

img

发光原理和亮度分布如下图:

img

应用实例

img

img

四,同轴光源

常见的 LED 光源,其突出特点是具备高对比度,在检测镜面、光泽面或希望以光泽差异进行辨别时非常有效。

img

照射原理如下图:

在这里插入图片描述

同轴光源从侧面将光线发射到半反射镜上,反射镜再将光线反射到工件上。镜面反射光可以返回到 CCD,而工件表面如刻印伤痕等凹凸不平的部分产生的漫反射光则不能接受到。这样就使得工件的边缘点形成了对比度。而且,来自工件的光线越远,不能接受到的漫反射光就越多,形成更大的图像对比度和清晰度。

亮度分布如下

img

应用实例

img

五,低角度光源

img

和同轴光源的平行照射的理念正好相反,通过从小角度或几乎平行的角度照射 LED,可仅突出边缘,轮廓或者表面的缺陷划伤。

img

通常检测工件的边缘或表面上的瑕疵对于标准的直接照明都很困难。但低角度光源从很小的角度将光线直接照射到工件上,由于光的方向几乎与表面平行,所以表面高度的变化都会改变到 CCD 的光路,从而突出变化。

应用实例

img

六,点光源

特点是节省空间,同时可以实现小范围高亮度照明。

img

此外,可以与 C 接口长焦镜头配合使用,在没有空间安装的地方,实现远距离照明。

img

同时,如果和远心镜头配合,还可以作为平行光源使用。

img

七,多角度光源

更加柔和的照明,以及放在不同高度可以实现不同的效果。

img

应用实例

img

八,背光光源

以上介绍的各个通用照明的相同点是:光源位于相机和工件之间,使用正面打光,通过获取工件表面的反光而获得工件的表面信息。

背光源与通用照明的不同之处是:通常情况下使用时工件位于背光和镜头之间,通过工件阻挡光线通过,获取工件的轮廓信息。

img

背光光源通常情况下的安装图

在这里插入图片描述

应用实例

img

以上介绍的即为常用的 LED 光源标准品类型。当然对于特殊的应用,也有很多种尺寸和形状的定制光源,有配合线扫描相机的线性光源,配合 2.5D 相机的多方向发光光源,配合贴片检测的多色 AOI 光源等等。

市面上专业的光源供应商有日本的 CCS,国内的 V-light,OPT,CST 等。


机器视觉检测基础知识(三)镜头篇

 
img

完成视觉检测的基本却重要的部分除了颜色,光源,还有镜头部分。

一,什么是镜头?

简单讲镜头就是在其一端收集物体的光线,并将光线在另一端汇聚为实像,并投影到接收面的物体。此时,汇集光线的点称为焦点,镜头中心到焦点的距离称为焦点距离

当镜头为凸镜时,焦点距离将根据镜头的厚度(膨胀)程度不同而各不相同,膨胀程度越大焦点距离越短。

img

二,镜头的重要参数

玩摄影的朋友都知道,镜头几个基本的参数包括焦距(长焦,广角,变焦范围),F 值(表征透光率)等。

而工业用镜头与之相比,更关注以下几个参数:

1,WD(Work Distance,工作距离)

WD 表示焦点对准拍摄对象时,镜头顶端到拍摄对象的距离。也称为作动距离。

当为 CCD 时,比例公式工作距离:视野=焦点距离:CCD 尺寸成立。

2,焦点距离(焦距)

FA (Factory Automation) 镜头中有代表性的镜头为焦点距离为 8 mm /16 mm /25 mm /50 mm 等规格的镜头。

根据想要拍摄的拍摄对象所需的视野和焦点距离,可以求出对焦位置=WD(工作距离)。

img

WD 和视野的大小由镜头的焦点距离和 CCD 的尺寸来决定。

例如:焦点距离为 16 mm 镜头,CCD 尺寸 3.6 mm 时,如果想把视野设为 45 mm,则 WD 变为 200 mm。

WD : 视野 = 焦点距离 : CCD 尺寸

3,视野

视野指工作距离范围中的拍摄范围。一般来说,拍摄对象和镜头的工作距离越长,则视野越广(视野角)。另外,视野的广度由镜头的焦点距离来决定。相对于视野,使用镜头可以拍摄的范围的角度,我们称为视角或者视野角。镜头的焦点距离越短,则视角越大,视野也就越广。相反,焦点距离越长,则可以放大远处的拍摄对象。

img

4,景深

景深是指使人感觉镜头对焦的深度范围(拍摄物体侧的距离)。范围较大时,称为「景深深」,相反范围较小时称为「景深浅」。严谨的来说,对焦位置只有一个,只不过肉眼在一定的范围内感觉图像能够清晰成像,我们将此范围称为景深。

如下图所示,我们在拍摄斜面上粘贴表示高度的胶带的这个对象时,针对调大光圈的情况和调小光圈的情况进行比较。

img

调小光圈时的图像 (CA-LH25) / 调大光圈时的图像 (CA-LH25)

最终的景深需要实测才能知道。因为除了镜头本身的结构外,影响景深的因素还有很多:

  1. 镜头本身。

  2. 光圈越小,景深越大。

  3. 照明越亮,景深越大。(快门速度越慢,景深越大)

  4. 焦距越小,景深越大。

  5. WD 工作距离越大,景深越大。

  6. CCD 的单个像素直径越大,景深越大。

5,镜头的分辨率

镜头的分辨率不光使用在图像处理中,它是指所有光学测量仪器中使用的镜头可以观察的最小间隔。如分辨率为 10 μm 的镜头,可以清晰的观察线宽为 10 μm、间距为 10 μm 并列条纹线。分辨率不足时,人们感觉 2 根线好像重叠在一起。这时候,需要更高分辨率的镜头。

6,镜头的倍率

所谓倍率,是指检测对象的实际大小与通过光学测量仪器成像大小的比率。以往在通过显微镜的接眼部观察时,我们使用光学倍率这一概念,但是近年来由于可以将观测对象物显示在液晶显示器上的系统不断增多,显示器倍率这一概念也已经普及。

光学倍率用数码相机的原理考虑时,光学倍率可以通过「CCD 有效像素大小 ÷ 视野」来求得。
显示器倍率显示器倍率可以通过「显示器对角 ÷ CCD 素子对角 × 光学倍率」来求得。

F = f/D [F:F 值 D: 镜头的直径 f: 镜头焦点距离]

7,F 值

F 值(或者光圈值)是指表示镜头的明亮度的基准。准确的来说,就是镜头的焦点距离除以镜头直径(口径)得到的值。F 值的「F」来源于 focal (焦点的)这个词。

事实上,镜头并不会让所有光线都透过,其中的一部分会反射。而且,为了减少像差使用多个镜头时,透过的光量会变少。

因此,光的透过量较多,可以获得明亮成像的镜头我们称为「亮」,相反光的透过量较镜头则称为「暗」。镜头的焦点距离和直径的关系,是可以大大影响镜头明暗的要素之一,也即 F 值。这个值较小的镜头称为「亮镜头」,较大的镜头称为「暗镜头」。一般的小型相机都会在镜头旁刻上「F = 2.5」「1:2.5」的标记,这就表示 F 值为 2.5。

在相机镜头的性能上,如果 F 值达到 2.0 左右,则表示这个相机的明亮等级非常高。

8,歪曲像差(失真)

歪曲像差(失真)表示通过镜头成像的图像发生歪曲的状态。

事实上不存在形状完美的镜头。因此,虽然从理论上来说,直射光通过镜头后会沿着直线传播,而实际上光通过镜头后会向外侧或者内侧歪曲。前者称为「桶形失真」,后者称为「枕形失真」。一个镜失真的参数以百分比表示。

桶形失真 / 枕形失真

三,远心镜头

大家都有这种印象,一个物体在人眼看来,会有近大远小的现象。这是因为物体近的时候,在视网膜上投影大,小的时候,投影小。镜头也是一样,因为近大远小的原因,会产生误差。特别是在做尺寸测量的时候,就尤其关键。

为了解决这个问题,就产生了远心镜头。简单讲就是不会因为 WD 工作距离的远近而在投影端产生大小变化的的镜头。

对于有厚度测产品,也会照出截面的效果。

一般的镜头

物体侧远心镜头

远心镜头主要应用于精密测量。在精密光学测量系统中,由于普通光学镜头会存在一定的制约因素,如影像的变形、视角选择而造成的误差、不适当光源干扰下造成边界的不确定性等问题,进而影响测量的精度。而远心镜头(Telecentric 镜头)能有效降低甚至消除上述问题,因此 Telecentric 镜头已经成为精密光学量测系统决定性的组件,其应用领域也越来越广泛。

远心镜头和普通镜头的简单对比如下:

普通镜头优点成本低,实用,用途广。
普通镜头缺点放大倍率会有变化,有视差。
普通镜头应用大物体成像。
远心镜头的优点放大倍数恒定,不随景深变化而变化,无视差。
远心镜头的缺点成本高,尺寸大,重量重。
远心镜头的应用度量衡方面,基于 CCD 方面的测量,微晶学

LumiTrax™案例:反光消除

 

img

大家是否有这样的经验,视觉检测过程中反光问题时有出现,导致检测不稳定。或者是因为晴天和阴天的影响,导致检测失效。

大部分情况光源是无法调整的,环境光更是难以控制。有一种做法是使用图像滤波器来处理图像。会有帮助,但是很多情况下帮助有限。滤波器于图像就像是化妆于女孩子的容貌,如果女孩子漂亮的话,根本不需要化妆;如果不漂亮,浓妆艳抹也很难满意。所以,获取检测标的突出于背景的原始图像是关键。这也是为什么有句话说,稳定检测 70% 的精髓在于打光(即获取原始图像)。

下图是麦弗逊结构悬架的部件之一,弹簧。该案例是通过检测色标的颜色和个数来区别弹簧类型。图中的弹簧有反光。

img

经过 LumiTrax™去除环境光和防止光晕的特殊处理的功能后,得到下图(其原理请参考历史文章)。完全消除了反光。

img

同样,以下三组图左右两边也是消除反光之前和之后的效果对比图。得到了右图漂亮的原始图片。

img

img

img

然后通过 HSV 功能对相近的颜色进行准确的提取。如左图即为第一色块的 HSV 参数,从而可以对相近颜色进行准确区分。

img

从而不同色标都可以准确识别。

img

四个不同颜色色标的检测效果图。

img

同样,下图 OCR 检测,可以看到反光处的文字读取不可行。

img

但但是通过去除反光的功能,原本看似不可能的 OCR 检测马上轻松搞定(观察文字切割的清晰波形图)。

img

下图颜色检测也是,因为反光的原因,颜色饱和度很差,而消除反光后,颜色变得清晰易于识别。

img

最后,需要强调一下的是,消除反光只是 LumiTrax™能拍出的三种图像之一,此外还有普通图片和 2.5D 图像。

三种图像之间可以交叉进行位置补正和计算。


机器视觉检测相机选型:分辨率,精度,公差

 
视觉检测 分辨率,精度,公差?

视觉行业的初学者,甚至是做了 1-2 年的销售也许还会困惑这样的事情 —— 在拿到检测要求后,不知道根据图纸上的公差,应该选用多少万像素的相机。同时还不明确为什么要三个类似的专有名词来描述同一个事情。

这一期内容就是为大家详细介绍:分辨率,精度,公差的关系,从而指导相机的选型。

分辨率(Resolution)

img

img

比如我要看的产品大小是 30mm10MM,使用 200 万像素(1600pixel1200pixel)的相机。因为产品是长条形,为了把产品都放入到视野内,我们计算分辨率的时候要考虑长边对应,此时分辨率为

精度(Accuracy)

精度的单位是 mm。根据产品表面和照明状况的不同,我们可以通过放大图像观察辨别稳定像素的个数,从而得出精度。如果条件不允许实际测试观察,一般的规律是,如果使用正面打光,有效像素为 1 个,使用背光,有效像素为 0.5 个。

这个例子我们取 1 Pixel,得到精度为 0.019mm 约等于 0.02mm。

img

公差(Tolerance)

一般情况下,精度和公差的对应关系如下:

【最小可检测尺寸】=10 倍精度 (精度小一个数量级)本例: 0.2mm, +0.1mm
【外观容差】=4 倍精度本例:最小可检测的瑕疵或者污点大小为 0.08mm

对一个项目来讲,我们是先从图纸上读到公差的要求。然后再根据上述关系,反推得出我们需要多少像素的相机。

我们准备了一个表格,输入视野,即可自动算出不同相机的精度矩阵,方便快速选型。需要的客户可以发送邮件到 info@keyence.com.cn 免费索取。

Field of View × 30mm

Camera Types1 Pixel Resoluiton3 Pixel Resoluiton5 Pixel Resoluiton10 Pixel Resoluiton
21M pixel 5120×40960.006 mm0.018 mm0.029 mm0.059 mm
5M pixel 2432×20500.012 mm0.037 mm0.062 mm0.123 mm
2M pixel 1600×12000.019 mm0.056 mm0.094 mm0.188 mm
0.3M Pixel 640×4800.047 mm0.141 mm0.234 mm0.469 mm

via:

  • 视觉沙龙 | 基恩士中国官方网站
    https://www.keyence.com.cn/landing/gen/vision_salon.jsp

http://www.ppmy.cn/news/1557661.html

相关文章

Python 异步协程:从 async/await 到 asyncio 再到 async with

在 Python 3.8 以后的版本中,异步编程变得越来越重要。本文将系统介绍 Python 标准库中的异步编程工具,带领大家掌握 async/await 语法和 asyncio 的使用。 从一个简单的场景开始 假设我们在处理一些耗时的 I/O 操作,比如读取多个文件或处理…

基于cobra开发的k8s命令行管理工具k8s-manager

基于cobra开发的k8s命令行管理工具k8s-manager 如果觉得好用,麻烦给个Star!通用配置1 node 分析所有node的资源情况2 analysis 分析Node节点上的资源使用构成3 image 获取指定namespace的所有镜像地址4 resource 获取指定namespace的所有limit 与 Requests大小5 top…

BERT模型入门(1)BERT的基本概念

文章目录 BERT是Bidirectional Encoder Representations from Transformers的首字母简写,中文意思是:Transformer的双向编码器表示。它是谷歌发布的最先进的嵌入模型。BERT在许多NLP任务中提供了更好的结果,如问答、文本生成、句子分类等&…

01.02、判定是否互为字符重排

01.02、[简单] 判定是否互为字符重排 1、题目描述 给定两个由小写字母组成的字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。 在这道题中,我们的任务是判断两个字符串 s1 和 s2 是…

《类和对象:基础原理全解析(上篇)》

目录 一、浅谈面向过程和面向对象二、C 中的结构体(struct)1. C 中 struct 的使用 三、C 中的类(class)四、类的封装性1. 类成员的权限控制关键字2. 权限控制关键字的使用 五、类的六大默认成员函数介绍六、构造函数1. 使用构造函…

go基本知识与语法入门

Go 语言(又称 Golang)是一种由 Google 开发的开源编程语言,设计目标是简洁、高效、并发友好,适合用于构建高性能的系统和网络应用程序。Go 语言的语法相对简单,非常适合大规模软件开发。 1. 基本结构 Go 程序的基本结…

Jenkins 持续集成部署——Jenkins实战与运维(1)

一、Jenkins 相关配置及代码发布 1. Jenkins 发布 php 代码 1.1 安装插件 先进入“系统管理”,再进入“管理插件”,在“已安装”中检查是否有“Git plugin”和“Publish Over SSH”两个插件,如果没有则需要安装,到“可选插件”中…

HTTP 请求Media typetext/plain application/json text/json区别

这三种媒体类型表示的是内容在 HTTP 请求或响应中传输时的格式和语义,它们之间的主要区别如下: 1. text/plain 用途: 表示纯文本内容,没有格式化和结构化要求。 内容特征: 是简单的纯文本,没有特定的语法结构。 通常不包含…