新闻中心
行业动态 | 工业机器视觉技术
一套完整的视觉检测系统主要包含图像采集部分和图像分析部分,而图像采集部分主要由工业相机、工业镜头以及机器视觉光源承担。机器视觉的功能包括:物体定位、特征检测、缺陷判断、目标识别、计数和运动跟踪。正是由于机器视觉系统可以快速获取大量信息,而且易于自动处理,也易于同设计信息以及加工控制信息集成,因此,在现代自动化生产过程中,人们将机器视觉系统广泛地用于工况监测、成品检验和质量控制等领域。
机器视觉作为智能制造的大脑和眼睛,是工业互联网边缘层的重要数据入口:工业互联的趋势要求生产控制系统集成到上层的制造管理系统,并最终接入企业管理系统,实现信息从生产现场到管理层的贯通,行业内的企业、行业协会、产业联盟在机器视觉互联互通方面,正在不断合作和投入,制定数据接口、通讯协议等基础共性标准。
以前一直在实验室,接触的是图像的算法部分,至于是机器视觉还是计算机视觉傻傻分不清楚,也没有细分的必要,后来实习进入工业界,发现还是有必要把机器视觉单独拿出来,给他一个名分,同时整理一下自己对机器视觉的认识。
机器视觉,机器排在前面,当然离不开机器,机器越来越智能,代替人的工作,我们称之为机器人,经过多年的发展,工业机器人进化到第三代,第一代示教再现机器人,就是固定点位运动,第二代加入了对工作环境的仿真再规划路径,第三代智能机器人则加入了各种传感器,使之灵活调整工作状态,加入了工业相机则引入了机器视觉这一概念,"机器视觉",即采用机器代替人眼来做测量和判断。
机器视觉系统是指获取图像,然后将该图像传送至处理单元,通过数字化处理,根据像素分布和亮度、颜色等信息,来进行尺寸、形状、颜色等的判别。进而根据判别的结果来控制现场的设备动作。现在工业上主要用来装配定位,产品识别,尺寸测量,质量检测等方面。
机器视觉特点:
1、机器视觉是一项综合技术,其中包括数字图像处理技术,机械工程技术,控制技术,电光源 照明技术,光学成像技术,传感器技术,模拟与数字视频技术,计算机硬件技术,人机接口技术 等这些技术在机器视觉中式并列关系,相互协调 应用才能构成一个成功的工业机器视觉应用系统。2、机器视觉更强调实用性,要求能够适应工业生产中恶劣的环境,要有合理的性价比,要有通用的工业接口,能够由普通工作来操作,有较高的容错能力和安全性,不会破坏工业产品,必须有较强的通用性和可移植性。
3、对机器视觉工程师来说,不仅要具有研究数学理论和编制计算机软件的能力,更需要的是光、机、电一体化的综合能力。
4、机器视觉更强调实时性,要求高速度和高精度,因而计算机视觉和数字图像处理中的许多技术目前还难以应用于机器视觉,他们的发展速度远远超过其在工业生产中的实际应用速度。
因为自己半路出家当了程序员,专业方向又是图像处理,通过视觉软件进入机器视觉行业,所以首先查阅资料了解行业成熟软件及库函数。
软件开发平台-编程语言
机器视觉当前的比较流行的开发模式是“软件开发平台+工具包”。在实际视觉项目中,软件平台的目的就是为客户做出一个应用程序,让客户一目了然地看到其产品的各项数据,例如:产量、日期、报表、NG/OK量、故障信息、调试信息、设置参数、操作工具、整个视觉控制系统等。
典型的机器视觉系统可以分为:图像采集部分、图像处理部分和运动控制部分。基于PC的视觉系统具体由如图1所示的几部分组成:
①工业相机与工业镜头——这部分属于成像器件,通常的视觉系统都是由一套或者多套这样的成像系统组成,如果有多路相机,可能由图像卡切换来获取图像数据,也可能由同步控制同时获取多相机通道的数据。根据应用的需要相机可能是输出标准的单色视频(RS-170/CCIR)、复合信号(Y/C)、RGB信号,也可能是非标准的逐行扫描信号、线扫描信号、高分辨率信号等。②光源——作为辅助成像器件,对成像质量的好坏往往能起到至关重要的作用,各种形状的LED灯、高频荧光灯、光纤卤素灯等都容易得到。
③传感器——通常以光纤开关、接近开关等的形式出现,用以判断被测对象的位置和状态,告知图像传感器进行正确的采集。
④图像采集卡——通常以插入卡的形式安装在PC中,图像采集卡的主要工作是把相机输出的图像输送给电脑主机。它将来自相机的模拟或数字信号转换成一定格式的图像数据流,同时它可以控制相机的一些参数,比如触发信号,曝光/积分时间,快门速度等。图像采集卡通常有不同的硬件结构以针对不同类型的相机,同时也有不同的总线形式,比如PCI、PCI64、Compact PCI,PC104,ISA等。
⑤PC平台——电脑是一个PC式视觉系统的核心,在这里完成图像数据的处理和绝大部分的控制逻辑,对于检测类型的应用,通常都需要较高频率的CPU,这样可以减少处理的时间。同时,为了减少工业现场电磁、振动、灰尘、温度等的干扰,必须选择工业级的电脑。
⑥视觉处理软件——机器视觉软件用来完成输入的图像数据的处理,然后通过一定的运算得出结果,这个输出的结果可能是PASS/FAIL信号、坐标位置、字符串等。常见的机器视觉软件以C/C++图像库,ActiveX控件,图形式编程环境等形式出现,可以是专用功能的(比如仅仅用于LCD检测,BGA检测,模版对准等),也可以是通用目的的(包括定位、测量、条码/字符识别、斑点检测等)。
⑦控制单元(包含I/O、运动控制、电平转化单元等)——一旦视觉软件完成图像分析(除非仅用于监控),紧接着需要和外部单元进行通信以完成对生产过程的控制。简单的控制可以直接利用部分图像采集卡自带的I/O,相对复杂的逻辑/运动控制则必须依靠附加可编程逻辑控制单元/运动控制卡来实现必要的动作。
一个完整的机器视觉系统的主要工作过程如下:
1、工件定位检测器探测到物体已经运动至接近摄像系统的视野中心,向图像采集部分发送触发脉冲。
2、图像采集部分按照事先设定的程序和延时,分别向摄像机和照明系统发出启动脉冲。
3、摄像机停止目前的扫描,重新开始新的一帧扫描,或者摄像机在启动脉冲来到之前处于等待状态,启动脉冲到来后启动一帧扫描。
4、摄像机开始新的一帧扫描之前打开曝光机构,曝光时间可以事先设定。
5、另一个启动脉冲打开灯光照明,灯光的开启时间应该与摄像机的曝光时间匹配。
6、摄像机曝光后,正式开始一帧图像的扫描和输出。
7、图像采集部分接收模拟视频信号通过A/D将其数字化,或者是直接接收摄像机数字化后的数字视频数据。
8、图像采集部分将数字图像存放在处理器或计算机的内存中。
9、处理器对图像进行处理、分析、识别,获得测量结果或逻辑控制值。
10、处理结果控制流水线的动作、进行定位、纠正运动的误差等。
到底如何学习机器视觉?
为了说明这个问题,我觉得应该先要简单地说明另一个问题:国内外机器视觉发展的不同。我本人认为,只有先搞清了两边的不一样,才便于说清如何下手学习。 国外机器视觉发展到今天,已经从“一包到底”式的工作程序,发展到了细致分工的阶段了。由于篇幅问题。就不细讲这一行当如何从“一包到底”发展到细致分工过程。
一句话,国外机器视觉发展到今天,已经可以清清楚楚分为三个部分:
1,底层开发部分。
2,二次开发部分。
3,最终使用部分。于是在国外,从事这一行业的人现在也就可以简单而清楚地分成三种人:
1,底层开发的人(从事底层开发工作的人)。
2,二次开发的人(从事二次开工作的人)。
3,使用及操作机器视觉系统的人(从事最终使用工作的人)。