锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

机器视觉系列(一)——概述

时间:2022-08-16 23:30:00 型粉尘传感器智能折光传感器keyence传感器mu彩色感光剂膜厚传感器压强传感器芯片

一、定义

美国制造工程师协会机器视觉分会和美国机器人工业协会自动化视觉分会对机器视觉进行了以下定义:机器视觉是一种通过光学装置和非接触式传感器自动接收和处理真实物体图像以获取所需信息或控制机器人运动的装置。一般来说,机器视觉是用机器模拟生物宏观视觉功能,代替人眼进行测量和判断。 首先,通过图像传感器将被摄取的目标转换为图像信号,传输到特殊的图像处理系统,并根据像素分布、亮度和颜色转换为数字信号;然后,图像处理系统计算这些信号来提取面积、长度、数量、位置等特征;最后,根据预设的允许度和其他条件输出结果,如尺寸、角度、偏移来看,尺寸、角度、偏移量、数量、合格/不合格、是否通过光学装置获取真实物体的信息以及相关信息的处理和执行都是机器视觉,包括可见视觉和非可见视觉,甚至人类视觉无法直接观察到物体内部信息的获取和处理。

二、机器视觉与计算机视觉的区别

计算机视觉Computer Vision的关键词是Computer,机器视觉Machine Vision的关键词是Machine,这间接表达了两者的不同侧重点。一般来说,计算机视觉更注重图像分析,回答是什么的问题;机器视觉更注重图像处理的结果,目的是控制下一个行为,回答如何的问题。
计算机视觉一般使用
相机设备,可以是工业相机、高速相机、简单相机等,主要是人眼生物视觉模拟,如人眼将图像转化为图像,计算机视觉任务是将数字图像转化为生动、有意义、上下文场景,输出内容是计算机模拟人类对图像的观察和理解。相机拍摄的图像只存储在计算机中的数字集合中。计算机视觉所做的是从数字的集合中提取所需的信息,如图中的物体、位置和状态,以实现对客观世界场景的感知、识别和理解。总之,计算机视觉主要强调赋能计算机,使其能够看到和理解世界上的每一个物体。
机器视觉是光学成像、传感器、视频传输、机械控制、摄像传感器、视频传输、机械控制、相机控制、图像处理等技术,每个环节都会影响最终的检测结果。从功能上看,机器视觉不像计算机视觉那样关注对象是什么
本质上,两者都属于视觉技术,共享相同的理论系统,但计算机视觉更注重理论算法的研究,如计算机领域的深度学习有许多前沿算法,但这些算法在实际应用中仍有各种局限性,在实际工程中还有很长的路要走。机器视觉是一种着陆技术,更注重实际应用,强调算法的实时性、高效率和高精度。 机器视觉的优点是,机器视觉可以很好地取代人眼,如在各种恶劣环境下进行高速实时检测。机器视觉也广泛应用于机器人研究,是机器人的眼镜,指导机器人的移动和操作行为。机器视觉和计算机视觉的发展方向和应用领域是不同的。

三、机器视觉系统的组成

完整的机器视觉由以下部分组成:
①一个或多个工业相机(包括可见光、非可见光、多光谱);
照明光源(包括可见光、非可见光、激光、闪光);
③光学系统(包括一个或多个透镜组和滤光片);
④机械部件(为整个机器视觉系统提供安装参考和部件调节功能);
⑤电气部分(主要是电源、布线和数据接口);
⑥硬件部分(包括工业控制机、嵌入式系统、图像采集卡、传感器、触发器、执行器),机器人可视为与机器人合作的机器视觉系统的执行器;
⑦算法;
⑧软件系统(包括人机交互界面、与其他类计算机设备的通信模块、远程维护模块、离线更新模块)。

四、知名机器视觉企业

由于机器视觉注重服务于工业自动化,基于我国工业自动化的发展过程,外国企业在技术水平和应用领域都领先于国内企业。
国外顶尖的机器视觉企业有:日本基恩士Keyence、美国
康耐视Cognex、德国MVTec、瑞士堡盟Baumer;
国内顶尖的机器视觉企业有:海康机器人、大恒图像、中科院部分研究所。
由于机器视觉产品的核心竞争力不是算法,而是传感器、光学系统和精密机械,日本和德国在精密制造领域处于领先地位,由于上述关键部件的限制,中国在短时间内无法达到相同的水平。

五、机器视觉应用行业

根据工业生产类型,机器视觉技术的应用越来越多,无论是小批量车间生产、大规模离散生产、连续工艺生产、实验室级检验。
在各种工业行业中,由于德国和日本首先使用机器视觉技术来解决汽车行业的生产需求,它在汽车行业得到了最广泛和成熟的应用。目前,它已广泛应用于
芯片、新能源、航天、医疗、电子、食品、包装等行业。

六、机器视觉应用任务类型

这是本文的关键。
识别码识别:即使用物体上的标记来识别物体,通常是标准化的条形码或二维码,但也可以是自定义代码。典型的应用是物流控制和物流。
目标识别:用形状/几何、尺寸、颜色、结构/拓扑或纹理等特征来识别目标。目标识别包括目标变体的差异,并有许多应用,特别是作为许多其他任务的辅助科学。例如,位置识别或完整性检查可能需要事先识别场景中的正确目标。3D数据越来越多地用于目标识别,这实际上为该领域增加了一个新的维度,并允许使用新的方法来匹配和评估对象的特征,例如通过辅助计算机设计 (CAD) 比较数据。
位置识别:表示使用特征计算和匹配方法在预定的坐标系中确定目标或目标的特定点的位置和方向。典型的特征是重心坐标和方位角。典型的应用程序是机器人指南、取放操作和插入机器。一个有趣的变化是反向应用程序,即使用图像来确定相机系统本身的位置和方向(视觉指南),例如,使用独立的机器人来确定它们的位置。
完整性检查:表示工件组装的正确或错误的分类。它检查所有组件是否存在并处于正确的位置,通常作为将工件传输到下一个组装步骤的先决条件,或在释放要包装和交付的工件之前进行最终检查。
检查形状和尺寸:确定几何的重点是准确和准确的测量。随着产品质量标准的不断提高,这一领域的重要性也在增加,因为产品必须满足越来越严格的公差要求。可以找到任何需要检查工件或工具是否符合标称尺寸的应用程序。由于所需的精度,这些任务通常对传感器设备和检查站的机械结构有很高的要求。
表面检查:可分为定量表面检测,旨在确定表面粗糙度和定性表面检测,重点是识别凹痕、划痕、污染或与所需表面特征的偏差,如颜色或纹理等表面缺陷。为了判断表面质量,可能需要定量测量几何特性。
按应用目的可分为:
检验,也就是说,检查生产过程后的工件是否正确。这曾经是大多数图像处理系统的情况。检查通常是指检查缺陷,如凹痕、划痕、尺寸错误等。它顺利地集成到验证中,视觉系统验证预期状态是否实际存在。各种识别任务都属于这种类型。
监控,也就是说,观察生产过程是否正确。例如,用摄像头观察激光焊接过程,检查焊接过程中熔池的大小是否正确。它可以进一步扩展到控制,即利用机器视觉系统的结果来改变或控制过程,可以作为统计过程控制或直接反馈控制。例如,当使用视觉系统的轮廓测量来指导龙门机器人沿测量轮廓分配胶水或密封剂时。
大致认为:这些检验任务的输出结果是离散值(或不,或者一个序数,总共有几个)。这些监控任务的输出结果是连续值(即整数或浮点数)。
经过多年的发展,中国的许多成熟的应用领域已经饱和,这些饱和领域主要是测试这种输出离散值的任务。目前,国内机器视觉从业者正在扩展到更多的领域。我现在主要做的是扩展到工艺行业。在这些新领域,我主要监控此类输出连续值的任务。

七、深度学习在机器视觉中的应用

与传统视觉算法相比,深度学习有两个优点:
更能适应复杂的场景和低质量的图像。也就是说,当生产现场由于条件有限,无法提供理解的成像条件(如外部灰尘、光线、人的干扰,或拍摄成像没有高对比度)时,深度学习也可以获得更好的处理结果,从而可以满足实际任务的需要。在应用传统视觉算法的机器视觉中,它主要通过照明和机械部件的移动和屏蔽来为拍摄成像提供良好的物理条件。
算法处理的准确性。也就是说,当用户对系统的最终处理结果有较高的精度要求时,如高精度语义分割或目标检测,使用深度学习可以获得更好的效果,从而满足实际任务的需要。在应用传统视觉算法的机器视觉中,主要通过提高相机分辨率、高精度光学元件、机械运动辅助等方法来解决。
与传统视觉算法相比,深度学习主要有四个缺点:
花费时间多。深度学习是完全数据样本驱动的方法,需要采集大量图像,这严重拖长了算法部署时间。此外,如果用户对效果不满意,他们需要收集更多的图像一场景的部署过程中,它比传统的视觉算法花费更多的时间。深度学习算法的后续维护成本明显高于传统视觉算法。但对于不同的场景,这取决于场景之间的数据差异,这可能与传统视觉算法所需的时间相似。
运行功耗大。深度学习是一种强大的计算方法,常用于加速推理GPU。这将导致芯片长期高负荷运行和温升。在工业现场,由于全年连续运行,机器视觉系统也将全年连续运行。对于几个GPU中国企业用户普遍对能耗不敏感。但由于能耗的原因。我国企业用户非常关心高功耗运行导致芯片使用寿命缩短和故障率上升的问题
③计算速度慢。因为在工业项目中,如果使用深度学习,通常与传统的视觉算法一起使用,只使用传统的视觉算法的部分内容替换用深度学习,单纯的依靠深度学习实现端到端的部署运营,往往会在实际使用中出现鲁棒性差或开发时间长等问题。既然是深度学习+传统视觉,那么无论是使用GPU加速、还是FPGA加速、以及流水线技术,都不可避免的涉及到数据在不同处理器间的切换,所以不会比传统视觉算法快。
④硬件占用空间大。由于使用GPU或其它辅助加速芯片,其一般都会比传统视觉算法需要占用更大的物理空间,而这在工业现场中,也是一个需要考虑的问题。
综合深度学习的优点和缺点,我总结的深度学习在机器视觉中的应用场景如下
①如果用户有钱、现场条件好,优先采用堆高性能硬件(高分辨率相机、高精度机械机构)的方式解决,尽量不使用深度学习。
②如果用户追求高精度,不管实际是否使用,都要将深度学习列在技术方案中,以备在传统视觉算法无法满足精度需求时,尝试用深度学习提高精度。
③如果现场条件差(主要指机械设备和生产环境),一定使用深度学习,其主要是利用深度学习算法的适应性,来弥补硬件条件差的不足,因为很有可能无法获得理想的拍摄成像,也没有足够的资金对现场硬件进行改造。
④如果准备产品标准化大范围应用,则尽量不要使用深度学习。因为标准化本身就是为了降低成本和维护工作量,而使用深度学习使你很难做到这一点。
顺便说一下,对于国外的顶级机器视觉企业,其对于机器视觉系统的产品定位是属于非接触传感器或仪器仪表,都是大批量标准化产品,因此很少在其产品中使用深度学习。即使在深度学习大红大紫的今天,企业也只是将深度学习作为产品的一个可选附加功能,供用户自行开发使用,而不自己实际使用。我国由于机器视觉从业者大多数都是在应用端部署一线,才广泛使用深度学习。这也与我国机器视觉产品用户,对于深度学习的缺点不太在意有关。

八、机器视觉应用的认知误解

作为一个机器视觉从业者,我们要对机器视觉的适用范围有清晰的认知,这是我们个人技术水平的体现。我基本从事的都是利用机器视觉进行定量检测的工作,因此只关注于该方面。
既然是用机器视觉进行定量检测,那么用户一定是拿你的机器视觉产品与传感器或仪器仪表进行对比和应用。这就要求相关机器视觉产品必须能提供像传感器或仪表的性能指标。
传感器的性能分为静态性能和动态性能:
①静态性能是指当传感器输入信号处于稳定状态时,其输出与输入之间呈现的关系。传感器的静态性指标主要有测量范围、精度、稳定性、灵敏度、线性度、迟滞、重复性和可靠性等。
②传感器要检测的输入信号是随时间而变化的,传感器的性能应能跟踪输入信号而变化,这样才可以获得准确的输出信号。如果输入信号变化太快,传感器就可能跟踪不上,通俗来说就是来不及反应。传感器这种跟踪输入信号变化的特性就是动态特性,它是传感器的重要特性之一。传感器的动态特性指标主要有频率特性和阶跃特性。频率特性主要是指频率响应时间、幅频特性、临界频率等。
好在国内用户对于传感器的这些性能指标不是全部都关心,一般重点关注以下3个性能指标:
测量范围
测量精度
测量频率
然后我们来说4个认知误解:
使用工业相机不能定量测亮度
我们一般理解的物体的亮暗是光度量,在计算时需要使用视觉函数,其实是一个主观量(即因人而异),不具备定量测量的意义。为了能够定量测量,需要使用客观量,即物理上的亮度luminance,本质上是特化的辐射功率指标。光源在某方向上,能量越集中,传递面积越小,则亮度越强(越密集)。照度是某个面上被照亮的程度,等价于“光的压强”。像衡量室内明暗程度使用照度,规定办公桌面上的照度不小于500lux=500lm/m2,就是桌子上每平米有500lm(流明)的光通量。亮度的单位lm/sr/m2,是每平米光源每一度发散角内的光通量,是视觉能量的功率,这类似于压强,但压强只考虑面积因素,亮度还要考虑发散程度。lm/sr(流明每立体角)衡量了一个点光源每单位立体角上的光通量,写作cd(坎德拉)=lm/sr,因此最终的亮度单位是cd/m2。单光源固定位置上,亮度和照度成正比,多反射面或者多光源时,照度受场景的干扰。通过透镜的汇聚作用,可以将照度转变为亮度,通过照度间接测量亮度。而没有校准的亮度只是相对亮度。像素相当于一个小型的照度仪。
在这里插入图片描述
相机拍出的像素是(相对)亮度,距离远近不影响结果;而闪光灯打到墙上是照度,越远则越暗。用于测量光线的是照度计,无论怎么测量亮度,都需从照度间接测得。根据上面的解释:照度=lm./m2,亮度=lm/sr/m2,亮度有2~3个要素需要测量:
<1>光源面积;
<2>单位角内光通量。
这里引用知乎用户@荆慢慢2.0文章的内容和附图来说明

单位角上的光通量可以用照度计间接测量。必须尽可能让照度计只接收到光源发出的光线。根据光线直线传播的原理,从探测器的视角看上去,应该是这个样子的:

这样既可避免光线来自光源(本例中的手机),而不是反光或者背景光线。测量后进行计算。

上述简化实际测量中:
<1>0.87m的地方实测照度是6.1 lux
<2>换算到1m处的照度是6.1/0.87^2=4.62lux,按角度取即4.62lm/sr
<3>屏幕尺寸11.67cm6.4cm, 亮度即4.62/11.67cm/6.4cm=619cd/m2
而官方已知亮度数据为600cd/m2。如果要可靠测量单点亮度需使用专用的点式亮度计。
工业级测量亮度的关键需考虑因素有:杂散光影响、测量距离、灵敏度。如果要测量整个场景的亮度,需要使用场景亮度计:

这种专业仪器价格昂贵,可使用相机近似代替。相机的CMOS实际上相当于阵列式的获取相对总光通量,即相机传感器测量的是曝光量,单位为lux/s。曝光出来的读数是相对亮度,但不知道绝对亮度是多少。这就是使用相机测量的坑点。最好的办法当然是利用一个现成的点式亮度计,对同一个东西(要黑白的就行),同时测量和拍摄,得到的结果就是这个像素的亮度。由于色阶之间关系是固定的,因此只需校准一个即可,问题是我们一般是没有点式亮度计。有误差的替代方案有:
<1>从ISO定义估算,其是最不准确的方式,取ISO100为F1.0和1s曝光下得到0Ev的亮度,此时大概为中性灰,即亮度为0.125cd/m2,于是计算公式为:
亮度 = 0.125cd/m2 * ISO
快门*光圈(倒数)^2
因为镜头折光的损失,这个结果肯定被低估。
<2>用弥散光源和照度计测量。对于理想漫反射体,亮度和照度的换算公式为:L = M/π。例如用照度计在一个漫反射体下测得3060lux的照度,那么发光体的亮度就是974.5cd/m²。但漫反射跟照度计读数之间的换算不是如此理想的,还需要乘上系数。
如果你不管其他误差的话,到这一步就算完成校准了,无论是发散角还是光圈快门,都在校准里被确定了。只要再获得响应曲线(亮度和像素的关系),就能解算亮度。
响应曲线的获得使用的是已经很成熟的自校准技术,随便哪个HDR软件都能得到,比如Photoshop自带的。这种方式,首先要求拍摄一序列不同曝光的照片,然后再导入软件内进行计算即可。比如Photoshop自带的HDR Pro:

整个测量过程的误差来源有:

到此你可以理解了,工业相机输出的虽然是量化的(相关)亮度,但由于其关系非线性,各种硬件造成的测量误差,所以你无法说明,通过相机和算法的处理结果是测量的亮度值。如果必须要测量亮度,则必须使用专用的光源和光路系统,建议使用场景亮度计进行测量。

使用工业相机不能定量测颜色
物体表面色本身并不发光,由于光的照明才显现颜色。而物体表面的性状又影响它的颜色。物体表面色一般分为反射色和透射色两大类。根据它们的不同特性,进行颜色测量时的标准照明和观测条件也不同。大部分物体表面都属于混合反射,既有镜面反射成分,又有漫反射成分,而其中只有漫反射部分的通量才构成色刺激,对色度有贡献。
颜色是个心理、生理和物理量。所有的物体颜色不论是发光色或表面色,都有三个共同的特性,又叫颜色的三属性:色调、明度和彩度。
<1>色调表示红、黄、绿、蓝、紫等颜色特性色调是区分颜色的重要特性。
<2>明度表示物体表面相对明暗的特性,明度与光亮度成正比,明度与反射比成正比,即光亮度越高明度越高,物体表面反射比越高明度越高。
<3>饱和度表示颜色的纯度,即具有相同明度值的颜色离开中性灰色的程度。
用物理量值来表示颜色,以及采用仪器对颜色进行测量的方法,都是以人眼色觉的实验规律为基础的。利用均匀颜色空间的三维空间概念,可以通过公式计算两个颜色在知觉上的颜色差异△E,即在色空间中两个颜色点之间的距离。色差△E具有重要的工业意义,比如印染行业,为了定量评价产品颜色质量,人们总是希望能够用一个简单的量值来衡量色差,但由于颜色的特性,决定了它必须用颜色三属性来综合评价。均匀色空间的建立,使得用仪器测量颜色和视觉色差紧密相连。国际标准使用CIE色度系统来表示:
<1>CIE Luv色差公式:

<2>CIE Lab色差公式:

CIE Luv可能是表达具有均匀色品图的空间的最好系统,它不太可能被另一空间系统所取代。而CMC公式是在CIE Lab的基础上,一种更复杂的色差公式,在印染工业中已经显示出对小色差可以提供比CIE Lab公式更好的相关性。CMC色差计算公式为:

任何一个颜色的三刺激值X、Y、Z测量和计算,都必须在特定的条件下进行。物体表面色是由物体对光的反射、透射和吸收等的选择性、照明光源的光谱功率分布和观察者的色觉特性所决定的。在需要计算色差时,无论采用哪个颜色系统,都要求相对参考白色,一般是用特定光源照明下的完全漫射体,或者是指定的白色或高透射物体。
工业上获得三刺激值的方法主要有如2种:光谱光度测量法、色度计法。光谱光度法测量先得到光谱反射因数,然后根据色度学公式计算三刺激值和色品坐标,测量准确可靠,被各个国家作为标准测量方法。色度计结构简单,操作简单实用,其测量准确度依赖于色度计对色匹配函数的匹配程度,其要求仪器必须满足Luther条件:

但实际情况是没有一种仪器能100%满足卢瑟条件,都只能是近似满足,所以其测量精度不高。
由于只有物体表面对光的漫反射成分对色度有贡献,因此在测量颜色时,专业仪器都会严格要求照明光源、照明距离、照明直径,从而避免光污染。另外相机在拍摄时,主要考虑的是成像效果,而不是人眼感受,因此其对于三原色的响应频率曲线与人眼有很大差别,为此还需要关闭相机的各种数据功能(白平衡、增益),并对相机的成像结果进行数值校正。

另外彩色相机与黑白相机相比,其成像结果对温度变化更敏感,因此,你还需考虑如何消除相机的温升,以避免成像结果发生漂移。
到此你可以理解了,跟测量亮度一样,由于测量颜色对照明和光路系统的严格要求,以及相机本身的工作原理,你也无法说明,通过相机和算法的处理结果是测量的颜色值。如果必须要测量亮度,建议使用分光测色仪或色差计进行测量。

工业相机的测量量到底哪个是准的
在测试技术领域,测量的准确度是个相对概念,世界上的所有测量都有误差。所以这里的测量量准是指测量值变化呈线性,且误差相机较小。
工业相机能提供测量量包括:
<1>分辨率;
<2>像元大小和间距;
<3>帧率;
<4>曝光时间;
<5>感光成像输出值。
分辨率和像元大小及间距,由于是人工精密加工制造的,这两个量符合准的定义。但由于成像结果还受到镜头的影响,要想使拍摄的图像在长度测量上保持准,最好搭配高精度的双远心镜头使用。
而对于帧率和曝光时间,其受到硬件电路和软件程序的共同控制。如果单纯依靠软件触发的话,无论采用哪种采集模式,其都会存在时间抖动。好在如果采用外部硬件触发,其也是可以符合准的定义的。至于感光成像输出值,我们已经从前面两个问题获知,其都不满足线性变化的条件。
另外,相机成像最终还要通过软件进行处理,为此还要注意处理器芯片、操作系统、自编写程序的影响。如果要保证高准确度,则还必须使用多核处理器和实时操作系统
基于以上情况,你可以了解为什么多数机器视觉应用都是定性判断,而定量判断的机器视觉应用难度会很大。而且对于定量的机器视觉应用,也都是利用图像中的像素数,而不是像素值来进行测量的了。

是不是机器视觉的测量精度就提不上去
当然不是,看看基恩士推出的各种传感器的指标,你就知道在精密测量领域,基于机器视觉反而最主要的技术手段。另外,高精度测量表面质量的白光干涉仪,流体测速的激光散斑测速仪,用于精密分析的三维电子
显微镜,这些都是机器视觉系统。


只不过要想使用机器视觉进行高精度测量,一方面对测量环境有要求;另一方面不能只依靠软件算法,更多的需要光学系统和机械系统来进行加持。具体的测量精度还与测量方法原理和目标大小有关。

参考资料:
《机器视觉算法与应用》,清华大学出版社
《Handbook of Machine and Computer Vision——The Guide for Developers and Users》,Alexander Hornberg,Wiley
《数字光学测量技术和应用》,国防工业出版社
《为你点歪技能树:亮度测量的基本原理和HDR亮度测量》,https://zhuanlan.zhihu.com/p/36896863
《KEYENCE产品综合目录》

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章