专栏首页深度学习和计算机视觉机器视觉工程师必须了解的基础知识

机器视觉工程师必须了解的基础知识

CCD(像素)与视觉系统的基础知识

关于摄像元件 CCD

数码相机的构造与传统的胶片式相机(模拟式)基本相同。所不同的是数码相机中使用被称为 CCD 的光电转换元件代替胶片,图像则作为数字信息采入。 CCD 即相当于模拟式相机的胶片,那么它又是如何将图像转换为数字信号的呢?

CCD 是英语 Charge Coupled Device(电荷耦合元件)的缩写,是一种将图像转换为电信号的半导体元件。大小约为长宽各 1 厘米左右,由类似棋盘的格状排列的小像素 (pixel) 组成。

用相机拍摄风景时,拍摄对象发出的光通过镜头在 CCD 上成像。光到达 CCD 的某个像素时,将根据光的强度产生相应的电荷。将该电荷的大小读取为电信号,即可获得各像素上光的强度(浓度值)。

换言之,每个像素都是一个可以检测光强度的传感器(光电二极管)。所谓 200 万像素 CCD 就是一个由 200 万个光电二极管构成的集合体。

在检测位置及检测物体的尺寸均已确定的情况下,使用一个光电传感器就可以检测该位置是否存在该物体。但是,在生产线上的位置不确定、工件有不同尺寸,或者不只是检查工件是否存在,而是要测量工件大小、尺寸时,则使用一个光电传感器是远远不够的。 通过使用由数十万或数百万个传感器构成的 CCD,可以实现包括第一页中所述的四种检查在内的多种检查或检测。

视觉系统中像素数据的活用方法

前面谈到,CCD 的各像素可以检测光强度并使之数字化,而利用数十万到数百万个这样的数据就可以实现视觉系统。不知道大家是否可以理解? 作为本讲的最后部分,下面将简单说明一下各像素将光强度作为何种数据传给控制器、而控制器又是如何处理这样的数据的。

各像的数据(以最常见的黑白相机为例进行说明)

亮度的 256 等级示意图

大部分图像传感器可以根据光强度将数据分为 256 个等级(8 位)。在最基本的黑白处理中,黑色(纯黑色)的数值为 “0”,白色(纯白色)的数值为 “255”,其它处于两者之间的颜色则根据光强度转换成其它数值。 换言之,CCD 的每一个像素都有一个位于 “0” (纯黑色)与 “255” (纯白色)之间的数值。例如,对于黑、白各占一半的灰色,其数值为“127”。

图像是 256 级数据的集合体

CCD 的图像数据是构成 CCD 的各像素的数据的集合。 像素数据用 256 级浓淡数据加以表示。

  1. 原图像
  1. 用 2500 个像素显示的左图
  1. 放大眼睛部分后用 256 级数据加以表示

眼睛中央部分较黑,周围较淡,因此中央部分的数值是 “30”,周围部分的数值是 “90”。

如上图所示,图像数据的每一个像素都可以用 0 ~ 255 中的某一个数值加以表示。所谓视觉系统是指对于每一个像素,按照下例中所示的计算公式进行计算,然后找到图像上有特征的地方。

例1:损伤/欠缺检查

将检测区域分为多个分割(数像素角),计算各分割的平均浓度(0 ~ 255),然后加以比较。浓度值超过一定值的区域被视为有损伤或欠缺。

计算 4 像素角分割的平均值,然后与周围进行比较。 如上图所示,在红色分割内检测到损伤。

CCD基础和视觉系统 总结

视觉系统器可以利用摄像元件 CCD 中各像素的 256 级浓度数据,检测面积(即像素数量)、位置(即浓度变化点)损伤(浓度变化量)等。 通过高像素化(增加信息量)及高速化(更利于生产线作业),可以使视觉系统器更好地应用于各种生产活动中。

镜头选择基础和视觉系统

图像传感器的典型应用

视觉系统过程大致可分为如下四步:

1、拍摄 按下快门,拍摄图像。

2、传送 将图像数据由照相机传送到控制器。

3、处理 前处理: 对于图像数据进行加工,使其特征更加明显。 测算处理: 根据图像数据对于损伤、尺寸等进行测算。

4、输出结果 将处理结果以信号的方式输出到相连的控制装置( PLC 等)。

视觉系统流程图

大多数图像传感器制造商在产品目录中,对于第三步“处理”做了更多的说明。这表明这些厂家更重视控制器的处理能力。实际上,第一步“拍摄”才是得到正确、稳定的视觉系统效果所必需的最主要的步骤。而这一步的关键在于“镜头和照明的选择”在初级篇中,笔者将以“镜头的选择”为中心,介绍有关拍摄的知识。

拍摄对视觉系统造成的影响

  • Q 以杯体内侧异物及污点为拍摄对象时,以下2张图像中,哪一张可以在全范围内检测出微小的污点?
  • 答案当然是右侧的图像。

只有上半部分对焦的模糊图像

  • 杯体从上到下均对焦的图像

无论所用的控制器性能多强,都无法检测出左图中的微小污点。 如果具备正确的知识,即便是杯体这种上下存在高度差的工件,也可拍摄出右图这种全范围对焦的优质图像。

要点

对于视觉系统,拍摄是最重要的环节。 要实施高精度的稳定检测,下面3点最为重要。

将目标物拍摄得较大 拍摄对焦的图像 拍摄明亮清晰的图像

镜头的基础知识及选择方法

镜头的结构

照相机的镜头由多个镜片和光圈/调焦装置构成。

根据监视画面进行光圈调整和调焦,可以得到“明亮、清晰”的图像。 (有些镜头的调整装置是固定的)

※选择镜头时,视野、焦距、焦点、失真等都是需要考虑的因素。下面将只介绍最常用的“根据视野选择镜头的方法”以及“如何得到对焦良好的画面” (增加景深的方法) 这 2 点。

镜头的焦距及视野的计算方法

焦距是镜头的规格参数之一。 FA 镜头的焦距一般是 8 mm、16 mm、25 mm 或 50 mm。 根据拍摄时所需要的视野及焦距,可以计算出焦点对准的位置(WD,即工作距离)。

WD 与视野的大小由镜头的焦距及 CCD 尺寸决定。在不需要近摄环的最近距离以上时,可以根据下列公式进行计算。

WD :视野角=焦距:CCD 尺寸 例1 :镜头焦距 16mm、CCD 尺寸 3.6mm 时,为了得到 45mm 的视野,WD 应为 200mm

增加景深 (对焦时的高度范围)、得到清晰画面的方法

  • 镜头焦距越小,景深越大。
  • 与拍摄对象距离越远,景深越大。 →注意: 使用延伸环或微距镜头时,景深会变小。
  • 光圈越小,景深越大。 →对于同一只镜头而言,光圈越小,亮度越大,越容易聚焦。

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

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

下图所示为拍摄斜面上表示高度的胶带的情况。比较小光圈和大光圈时的拍摄效果。

不同镜头性能造成对比度的差别

下图是使用基恩士公司生产的高分辨率镜头 “CA-LH16” 和标准镜头 “CV-L16” 拍摄的同一物体的图像。 由于镜头的材料及构造的不同,造成图像质量也不相同。根据用途选择高分辨的镜头,可以得到高对比度的图像。

使用镜头 CA-LH16/CV-L16(基恩士)

检查目标物 复印纸

范 围 60mm/脏污大小: 约 0.3mm

24 万像素 CCD 与 200 万像素 CCD 的比较

下图所示是采用基恩士公司生产的 24 万像素照相机和 200 万像素照相机拍摄同一画面后,再经电脑放大后的图像。可以看到,使用 200 万像素照相机拍摄的图像更利于读取文字。这意味着成像质量可以直接影响视觉系统的精度。因此,应该根据使用目的,选择适宜的照相机。

放大图像的比较

200 万像素的图像在放大后,其边缘及细节仍然清晰。

参考: 不同照相机的成像质量

镜头的扭曲(失真)

什么是镜头的失真?

镜头的失真度是拍摄图像的中央部分与周围部分的变化比率。 由于存在像差,拍摄图像的周边部分会发生某种程度的扭曲现象。 失真可分为桶形失真和枕形失真两类。表示失真度的数值(绝对值)越小,则镜头的精度越高。 在测量尺寸时,应使用失真度小的镜头。一般说来,长焦距镜头的失真度会相对小一些。

桶形失真

枕形失真

镜头选择基础和视觉系统 总结

拍摄图像的质量是视觉系统的基础。在了解了选择镜头的基础知识后,可以拍摄出:

  1. 视野适宜,
  2. 图像整体聚焦良好,
  3. 亮度、目标物和背景对比度俱佳的清晰图像。

选择照明的三个步骤

  • 1、选择照明的方式(镜面反射光、漫反射光、透射光等)
  • 观察检测部位的特点(损伤、形状、有无等)。
  • 观察表面(平面、曲面、是否有凹凸不平等)加以决定。
  • 2、选择照明的方法*形状
  • 根据工件条件、设置条件等加以决定。
  • 环形光、低角度光、同轴光、碗光等。
  • 3、选择照明的颜色(波长)
  • 根据工件和背景的材料、颜色等加以决定。
  • 蓝色、红色、白色等。

照明器材的典型形状(LED)

选择照明:第一步(镜面反射、漫反射与透射)

LED 照明种类繁多,大体上可以分为如下三种。

  • 镜面反射型: 镜头接收的光线是来自拍摄对象的镜面反射光线。
  • 漫反射型: 避开来自拍摄对象的镜面反射光,而接收整体、均一的光线。
  • 透射型: 接收来自拍摄对象背景的光线。是一种检测轮廓的照明方式。

(1)镜面反射图像例 金属表面的刻印缺印检查

需要强调平坦的金属表面与凹凸不平的刻印部分之间的反差。

金属表面容易反射光线,因此最好是利用镜面反射光来强调表面与刻印之间的反差。

(2)漫反射图像例 透明胶带内部的晶片刻印检查

需要防止产生光晕,以强调晶片表面与刻印字符之间的反差。

透明带不会产生镜面反射,因此可以选择斜向照射的漫反射光。

(3)透射图像例 无纺布异物检查

异物与工件色调相似,从表面上看难以判别,因此需要强调异物与工件表面之间的反差。

虽然利用反射光难以观察到异物,但是只要异物的厚度、颜色与工件之间存在差异,则可以通过采用来自工件背面的透射光使异物的黑色阴影显现出来。

要点

选择照明的第一步是根据工件的形状及检查目的,确定镜面反射、漫反射、透射等照明方式。下一步是选择照明的尺寸及光线颜色,以确保所得到的图像适于检查目的。

选择照明:第二步(确定照明方法与光线形状)

(1)镜面反射图像例 玻璃端面欠缺检查

仅使用反射光的情况下

照明光线通过镜面反射随机映射在玻璃表面

【根据工件及检查目的选择照明】
  • 玻璃表面会映射照明光线。
  • 需要强调玻璃与背景之间的反差。
  • 最好使光线垂直照在工件上。
  • 应确保工件上方有一定空间。

因此选择同轴入射照明是最适宜的

(2)漫反射检查例 橡胶密封圈欠缺检查

仅使用反射光的情况下

不能看到圆周上的欠缺

【根据工件及检查目的选择照明】
  • 工件是用黑色橡胶制成的,因此不会发生镜面反射。
  • 欠缺部分也是黑色的,同样不会发生镜面反射。
  • 如果采用某种镜面照射角度,使欠缺部分发生镜面反射,则可以达到检查目的。
  • 可使光源接近工件。

因此选择低角度照明是最适宜的

(3)透射检查例 引脚形状检查

仅使用反射光的情况下

边缘部分没有反差复

【根据工件及检查目的选择照明】
  • 工件是金属材料制成的,表面凹凸不平,不能产生均匀的镜面反射。
  • 如使用透射光,则可以去除表面凹凸不平的影响,从而实现边缘检查。
  • 工件背面可以设置光源。

因此选择面光(背光)是最适宜的

采用背光照明后 复杂的轮廓变得清晰了。

要点

在选择了镜面反射、漫反射或透射等照明方式后,根据检查目的、背景、周围环境等确定照明类型。 一般说来,镜面反射可选择同轴入射照明、环形照明或棒型照明,漫反射可选择低角度照明、环形照明或棒型照明,透射可选择面照明或棒型照明。其中环形照明及棒型照明的设置距离更加灵活,因此应用范围更广。

选择照明:第三步(决定光线颜色及波长)

最后根据工件及背景来选择光源颜色。 使用彩色照相机时一般会使用白光。如果使用黑白照相机,则需要掌握下面介绍的知识。

利用补色进行检测

为了检测纸箱中是否有红色包装的点心,分别使用了白色、红色及黑色的 LED 光源。下图所示为三种光源造成的对比度差异。

小知识

补色: 色相环图中相对的颜色互为补色。用补色光照射时会产生近似黑色的效果。

利用波长进行检测

透过包装薄膜拍摄晶片上的刻印文字。与蓝色相比,选择薄膜透射率更高(散射率较低)的红色光源可以产生更好的反差。

波长不同的光线具有不同的颜色、透射率(例如波长较大的红色光线具有较高的透射率)、散射率(例如波长较小的蓝色光线具有较大有散射率)等特性。

照明的理论知识 总结

选择适宜的光源可以得到良好的拍摄效果,从而有利于提高视觉系统效果。 选择光源时有一定的规律可循。一般说来,可按照下列步骤选择最理想的光源。

  • 决定镜面反射、漫反射、透射
  • 决定光源形状(制式)和尺寸
  • 决定光源颜色(波长)

本文分享自微信公众号 - 小白学视觉(NoobCV),作者:新机器视觉

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 工业镜头和民用镜头的区别在哪里?

    光学镜头一般称为摄像镜头或摄影镜头,简称镜头,其功能就是光学成像。镜头是机器视觉系统中的重要组件,对成像质量有着关键性的作用,它对成像质量的几个最主要指标都有影...

    小白学视觉
  • 【从零学习OpenCV 4】图像矩的计算与应用

    矩是描述图像特征的算子,被广泛用于图像检索和识别、图像匹配、图像重建、图像压缩以及运动图像序列分析等领域。本节中将介绍几何矩与Hu矩的计算方法以及应用Hu矩实现...

    小白学视觉
  • CCD图像传感器工作原理图解

    1969年,沃勒德‧保尔(Willard Boyle)与乔治‧艾沃德‧史密斯(George E. Smith)于美国电报电话公司的贝尔实验室(AT&T Bell...

    小白学视觉
  • 15.python 字典dict

    前面的课程讲解了字符串str/列表list/元组tuple,还有最后一种比较重要的数据类型也需要介绍介绍,那就是python字典,俗称:dict.

    猿说编程[Python和C]
  • PyTorch实现自由的数据读取

    很多前人曾说过,深度学习好比炼丹,框架就是丹炉,网络结构及算法就是单方,而数据集则是原材料,为了能够炼好丹,首先需要一个使用称手的丹炉,同时也要有好的单方和原材...

    用户1332428
  • 解决:Error while compiling statement: FAILED: SemanticException [Error 10007]: Ambiguous column refere

    微风-- 轻许--
  • PHP常用函数 获取小程序登录OpenID

    本文采用CC BY-NC-SA 3.0 Unported协议进行许可,转载请保留此文章链接

    Debug客栈
  • 10 个方便的Bash别名

    你有多少次在命令行上输入一个长命令,并希望有一种方法可以保存它以供日后使用?这就是 Bash 别名派上用场的地方。它们允许你将长而神秘的命令压缩为易于记忆和使用...

    机智的程序员小熊
  • 树莓派64位系统Debian 9先行测评:性能最高提升30倍

    采用64位处理器的树莓派3B,虽然具有64位硬件,但是系统还没有跟上节奏。官方尚未正式发布64位Raspbian,近期有团队移植了Debian 9 arm64到...

    Debian社区
  • Python基础-字符串的使用

    字符串解释:字符串是不可变的,所有元素赋值和切片赋值操作都是非法的,属于序列一种(字符串、元组、列表)。

    py3study

作者介绍

精选专题

活动推荐

扫码关注云+社区

领取腾讯云代金券