机器视觉系统集成
机器视觉(machine vision)作为光电技术应用的一个特定领域,目前已经发展成为一个前景光明、活力无限的行业,年平均增长速度超过20% 。机器视觉广泛应用于微电子、电子产品、汽车、医疗、印刷、包装、科研、军事等众多行业。涉及技术一致,应用差异明显,是各种机器视觉应用系统的共同特点。
机器视觉系统集成时,涉及到多门技术,最基本的系统也需要照明、成像、图像数字化、图像处理算法、计算机软件硬件等,稍微复杂一点的系统还会用到机械设计、传感器、电子线路、PLC、运动控制、数据库、SPC等等。要把这么多不同方面的技术和知识组合到系统里,使其相互完美配合并稳定地工作,对系统集成人员提出了很高的要求。作者根据多年的经验,讲解了机器视觉系统集成时所涉及的各种技术、需要综合考虑的因素以及评估机器视觉系统项目成功的可能性的方法。
中国经济经过数十年的高速发展,在很多领域完成了从无到有、从不能到可以的跃变,现在已经到了提高生产效率和产品质量、残酷竞争的阶段,很多原来使用的人工工序正逐渐被机器所取代,从而对机器视觉系统产生了越来越多的需求。而机器视觉技术本来就是为了解决生产中的各种问题发展起来的。在人类的生产活动中,人的眼睛担负着很多重要的任务,例如放置和固定工件、观察和估计位置、检测外观尺寸、确定产品的一致性、检验产品质量等。这些工作正在越来越多地被机器视觉系统取代,一方面是随着对生产速度和产品质量的要求越来越高,对检测速度和精度的要求超过了肉眼的能力;另一方面是因为成像技术、计算机技术或图像处理技术的发展,机器视觉系统能够完成的任务越来越复杂,成本也越来越低。然而,机器视觉技术作为一门新兴技术,引人中国时间并不长,真正有经验的系统集成人员也不多,而机器视觉系统涉及到照明、成像、电子、自动控制、计算机软件硬件、机械设计、传感器、光学等各方面,把这些不同的技术集成到1个系统内,并使其相互完美配合工作,本身就是艰巨的任务。本文试图根据作者多年的经验,就机器视觉系统集成技术给出一些建议,期望能够帮助使用机器视觉系统的用户评估其系统并在做出合理决策时提供参考,给研制系统的技术人员和公司提供一些成功的经验。本文将介绍需求分析、资源配置、系统集成等几个方面的内容。
需求分析
准确地描述机器视觉系统需要完成的功能和工作环境,对于整个机器视觉系统的成功集成是至关重要的。对于需求的描述,实际定义了视觉系统工作的场景,而围绕这个场景设计1个系统来获取合适的图像,并提取有用的信息或控制生产过程就是我们工作的目标。这个步骤看起来如此简单,以至于经常被忽略。有时候用户在生产过程中产生了某种需求,但是由于知识面和技术方面的原因,用户不知道自己需要什么样的视觉系统,或者不能准确描述自己的需求,而这时系统集成商自己经验不足或没有给以足够的重视,就不能帮助用户来明确系统的功能细节,这个系统集成开发过程注定要走弯路,甚至最终失败。
所以,系统集成的第1步就是明确用户需求!一般情况下可以使用下面的表格来帮助我们实现此目标。
问题 | 说明 |
检测什么东西? | 检测的目标物是什么?形状是什么样的? |
检测哪些指标? | 具体检测什么指标?有无?状态?尺寸?位置?粘连?差异?毛刺?颜色 |
目标多大? | 物体具体尺寸是多少? |
工作距离? | 安装摄像机到被测物体的距离最大允许多远?能否自由调节? |
分辨率多高? | 测量尺寸精度要求是多高? |
检测速度多快? | 全自动测量还是手动?每分钟测量多少个? |
安装空间 | 被测零件周围是否有安装光源的位置?是否有适合安装摄像头的位置?怎样固定比较合适? |
颜色? | 被测物体是什么颜色?我们是否需要对颜色判别?是否可以利用颜色差异帮助我们实现检测目的? |
材质 | 物体是什么材料的,表面光学性质怎样? |
合格判据? | 合格/不合格的定义 |
工位信号? | 有工位触发信号还是需要自动连续拍摄图像? |
剔除或控制方式 | 是否需要自动剔除次品或控制机器动作?怎样对不合格品进行剔除?使用什么信号格式,在什么位置进行? |
工作环境 | 工作环境的温度、湿度、粉尘、防水、杂散光线情况 |
交货日期 | 这是不言而喻的 |
资源配置
机器视觉系统集成时,涉及到多门技术,最基本的系统也需要照明、成像、图像数字化、图像处理算法、计算机软件硬件等,稍微复杂一点的系统还会用到机械设计、传感器、电子线路、PLC、运动控制、数据库、SPC等等。显而易见,要把这么多不同方面的技术和知识组合到1个系统里,使其相互完美配合并稳定地工作,对系统集成人员提出了很高的要求,需要根据具体的需求来确定所需要配置的资源和对策。
1、机械设计
由于需求不同,对机械部分的要求差别很大,如果是全自动的机器视觉系统,机械部分一般需要完成的功能有理料、输送、定位、剔除、下料等功能,而有的机器视觉系统则只需要适当的固定支架来固定相机、镜头和计算机即可,差别很大。例如,制药生产线上使用的西林瓶灯检机,需要完成理瓶、输送、旋转、刹车急停、相机同步、快速归位、下料、分流剔除等多个动作,而且需要提供多达15个检测工位,以完成液体内部悬浮物、玻璃碎屑、瓶身破损、细菌群落、瓶口封装、瓶底等多项指标的检测,各种机械零件多达上千个,系统非常之复杂;而停车场使用的车牌识别系统的机械部分则非常简单,只需要相机固定和保护等安装配件即可。一般系统集成商不愿意介入特别复杂的机械设计,一方面是因为在用户的观念中,机械设计没有太多的技术含量;另一方面是机械加工周期较长,1个小小的设计错误也会导致返工,时间拖得较长。所以,虽然在很多情形下,机械设计在机器视觉系统中占了很大的比重,而且是关键部分,但投入相对较少,导致整个系统开发过程不顺利。有时候,和制造机械设备的公司合作是最好的选择。需要指出的是,对于需要复杂机械系统的全自动系统,由于大多数系统只能针对特定的产品工作,所以,除非生产量达到一定数量,或者该产品会生产很长时间,一般情况下,半自动系统就足够了。自动系统开发周期长,成本高,生产过程中换型困难,而半自动系统只需要更换1个夹具,重新设置检测指标和合格判据就可以了。
2、照明光源
这个看似简单的照明系统是机器视觉系统最为关键的部分,直接关系到系统的成败,其重要性无论如何强调都是不过分的。好的设计能够使我们得到1幅好的图像,从而改善整个系统的分辨率,简化软件的运算,而不合适的照明,则会引起很多问题。例如花点和过度曝光会隐藏很多重要的信息;阴影则会引起边缘的误检;而信噪比的降低以及不均匀的照明会导致图像处理阈值选择的困难。在实际应用中,得到场景的图像很容易,但是得到1幅适合机器视觉算法要求的图像则很难,因为被测目标多种多样,形状大小不同,检测指标各异,而且各种材料的反光特性及颜色也不一样,要把所需要检测的特征突显出来,而对不需要的特征加以抑制,并不是简单的任务。这主要通过设计或选择合适的照明光源来解决。针对特定的物体和场景,设计/选取成本低廉、安装简单、照明效果好的照明系统,就是我们搭建机器视觉系统首先需要完成的任务。那么什么样的图像才是好的图像呢?一般说来,1幅好的图像需要满足以下条件:
1、充分利用视场使被检测物体特征充满视场,从而可以最大限度地利用系统的分辨率;
2、对比度合适灰度级的最大值接近255,而最小值接近0;
3、焦距准确 图像没有因为景深或运动而不清晰;
4、照明均匀,避免反光;
5、图像畸变小;
6、感兴趣的特征容易被检测识别,其他特征不显示或得到抑制。如果选择的光源,能使图像达到这些基本的要求,就完成了机器视觉系统集成的第1步。
3、成像系统
前面的讲座中,已经介绍了图像采集技术,这里不再赘述,只是从系统集成的角度,简单列举选择这些硬件的原则。
由于相机镜头和板卡经过多年的发展,目前已经相当成熟,而且在国内市场上,选择的余地也不大,一般是本着经济的原则,够用就好。
选择相机时,我的建议是,如果可能,就用USB接口或1394接口的相机,这样可以省掉1个板卡的费用,以后硬件或软件升级时工作量会小一些。对于高端的应用,除了CameraLink,似乎别无选择。最新开发的GigE接口相机,由于TCP/IP协议Packet传输的特性,在某些场合是不能保证数据的实时性的,但其最大的优点是,数据线距离可以很长,主机可以安装在办公室内,这样现场就只需要适当地安装和保护相机和镜头。镜头的可选择性更少,除了Computar,Nikon,Tamron,Navitar及Moritex几个制造商外,市场上也没有多少选择空间,当然大多数情况下,也就够用了。如果需要更好的成像效果,可以采用单反相机镜头,这样做一般需要转接口。Fujinon在厦门有生产,可是国内市场上未见销售。德国CarlZeiss镜头很好,可惜价格太贵,不太适合中国市场。
计算机系统
机器视觉系统的最佳配置,是使用工控机还是使用嵌入式系统?在这个问题上,见仁见智,各有优缺点,主要还是看使用的场合和系统的需求。2种系统的主要特点见下表:
项目 | 工控机 | 嵌入式 |
图像处理能力 | 高 | 低 |
扩展性 | 好 | 差 |
体积 | 大 | 小 |
现场安装 | 难,需要机柜 | 容易 |
价格 | 低 | 高 |
垄断程度 | 低 | 高度垄断 |
稳定性 | 较好 | 非常好 |
设置操作 | 容易,键盘、鼠标或者触摸屏 | 较难,一般用JOYstick |
运行操作 | 自动 | 自动 |
维修 | 简单 | 原供货商才能维修 |
通过这些对比可以看出,如果安装空间允许,选择基于工控机的视觉系统还是有更多的优点的。但是,如果现场必须使用体积很小的嵌入式系统,那么我们别无选择。各公司的成熟产品一般都采用了嵌入式主机,例~HKeyence,0mron,Siemens,Cognex等。这更多的是由于商业销售的考虑,因为这样做可以保证自己产品的独特性,给差异化销售找到借口;另一方面可以使用户自己不能更换零件,从而保证售后服务的利润。
4、图像处理
图像处理作为机器视觉系统必不可少的部分,显得如此重要,以至于很多情况下,初学乍到的人会以为图像处理就是机器视觉。其实,我们所说的图像处理实际包含了图像增强和图像分析2个部分。图像增强是指经过某种处理,使图像改变,实现对比度提高、清晰度增加、特征突出等目的;而图像分析是指经过某种运算,来提取某种有用的信息,如有无、好坏、位置等,以便用来进行判断或控制。例如,如何使模糊的图像恢复到清晰,是典型的图
像增强处理,只要得到清晰的图像就达到了目的;在繁忙的机场抓拍过往旅客的面孔,找到可疑恐怖分子,则是典型的图像分析过程。
经过多年的发展,图像增强算法已经基本成熟,例如提高对比度的灰度拉伸、假彩色、边缘提取、滤波、傅立叶变换、小波变换等。在机器视觉系统集成时,这些一般都是在图像分析前作为图像预处理进行的,而图像分析算法才是机器视觉真正需要解决的问题。
通过针对某个真实场景的图像,设计1种算法,来得到有用的信息,完全依赖于技术人员的经验和能力。在这个过程中,公司投入了大量时间和金钱来进行研究,而得到的算法往往具有经济价值,公司或个人都会严格保密。例如,如果机场候机厅里只有1个乘客,那么设计个算法来找到这个乘客的位置,是相对容易的,很多公司或个人都可以实现,而且使用的方法或者计算时间也差不多,而要在成千上万的游客中,找到具有某个特定特征的乘客,就不是那么容易了,各人设计出的算法肯定千差万别,谁能够在最短时间内最可靠地找到目
标,就是最有价值的。这种情况下,除了经验之外,灵感和创造能力也很重要。也就是说,作为系统集成所需要的图像处理算法,需要很多的实践经验,而这些算法大多不是能够从书本或文章里学到的。
6、自动控制
作为1个子系统完美配合工作中的机器视觉系统,自然会用到光电传感器、数字IO接口、PLC、运动控制等工业控制元器件,这些方面的知识也是必不可少的。虽然如此,这些都是成熟的技术,有基本的知识直接拿来使用就可以了,不需要我们重新设计,而且零件供应商也会提供一定的技术支持。一般在整个系统的开发过程中,这方面花费的时间和精力是最少的。
系统集成
明确了我们的需求,估计了我们需要配置的资源,理解了各子系统需要完成的工作,就到了把这些知识综合考虑组成1个整机系统的时候了。把这些不同领域里得到的零部件组合在一起,希冀打开电源时就能够完美的工作,是不太现实的。这个过程里有很多意想不到的问题需要解决。一般情况下,我们需要遵循一定的原则,才能使出现的问题最少。这里根据我们的经验给出一些建议。
1、尽量使用能够采购的零件(off—the—shelfcomponents):在可能的情况下,应当尽可能使用现成的备件,如镜头、相机、板卡等,能够买到的东西就不要自己做。我已经多次看到不同的公司和研究室为了节省成本,自己设计制造很容易买到的零件,结果浪费了很多时间,走了很多弯路。例如,有1个公司咨询为什么成像效果不好,我去现场一看,他们使用了1个直径20毫米的凸透镜作为镜头,为了节省成本,15元人民币买来的,可想而知成像效果如何,岂不知连SONY 也不得不向CarlZeiss采购镜头!
2、分而治之(divide and conquer):把系统分割成多个模块,把每1部分集成到一起,确保能够正确地工作,然后再把这些模块组成1个大系统。这和软件开发常用的方法是一样的,只有把1个大的系统分割成小到我们能够很容易处理的小块,才能够有效的完成。这也需要富有经验的项目负责人来完成这项工作。
3、充分考虑现场条件:在实验室里开发的系统,安装到使用现场后常常碰到问题。这主要是环境光、电磁干扰和振动几个方面的原因造成的。机器视觉系统毕竟使用了光学系统,安装现场的照明情况或自然光的影响,有时会导致我们设计的算法根本无法工作,从而致使系统失败;工厂的供电一般是带有各种电磁干扰的,很容易从电源线或其他地方进入计算机系统,从而导致系统不能稳定工作。如果系统时而工作正常,时而死机,一般都是这个原因造成的。另外,工业现场各种机器同时工作,有时振动会导致问题。例如,如果算法采用两幅图像相减的方法,肯定不能正常工作,因为振动导致的图像移位,使得图像已经对不准了。这种情况下,尺寸测量也会产生误差。所以,系统集成的过程中,最好能够模拟现场情况,否则很难1次成功。
4、把困难乘2:在新产品开发过程中,往往会遇到意想不到的问题。例如,有时候1根电线接触不良就会导致整个系统不工作,而查找这个问题并不是1件容易的事;有时软件有小小的问题,改成正确的代码只需要几分钟,但是也许2个星期也找不到问题所在。所以,整个系统集成时,碰到的问题和解决问题需要的时间往往比预计的要多。越是复杂庞大的系统,越是如此。一般我们需要把已知需要解决的问题总数乘以2或3,才能真正地做出切合实际的工作计划。