机器视觉与图像分析技术详解
一、要点
1.与视觉相关的项目并非全都需要咨询专家的服务;在硬件供应商和开发工具供应商的帮助下,缺乏视觉系统开发经验的开发者通常也可以完成大部分(即使不是全部)开发工作,并且为他们的公司节省费用。
2.在开始视觉系统开发之前,你必须回答大约五六个问题;你的答案将基本决定系统的硬件成本。
3.你只要选择能够在菜单驱动环境中能使你开始设备开发工作,然后通过图形编程或语法编程来完善程序,就可大大提高效率。
4.习惯于视觉系统在安装之后需要悉心呵护的观念;你常常无法预见在系统运行一段时间之后可能有必要调整算法的各种理由。
成功地开发一种基于视觉的设备可能需要很多专业知识,以致许多打算这样做的开发者都不愿意尝试这种任务,而转向求助于那些通过掌握技术的方方面面细微差别建立自己职业生涯的咨询专家。通常,一位咨询专家不仅可以为你节省数倍咨询费的费用,而且还可以节省大量宝贵的时间。即使这样,有些适用于基于视觉的系统开发的紧缩包裹型软件包却使那些没有机器视觉或图像分析经验的人能泰然承担的项目数量不断增加。
如果你缺乏适当的经验,则要走好的第一步是设法确定哪些任务需要外界帮助,哪些任务是你有可能用预包装软件自己迅速完成的。提供开发工具和硬件的厂商通常可以帮助你做出这种判断。在很多情况下,这些厂商的网站都有帮助做出这种决定的工具。给一个这样的厂商打个电话,你通常就可以与一位能搜集有关你设备信息的应用工程师取得联系。在适当的时候,大多数厂商会向你推荐他们熟悉其工作情况的咨询专家。通常,最经济的办法就是,某个项目中仅仅某些部分使用咨询帮助,例如照明部分。
图像分析和机器视觉是相关而又不同的两个领域。从某种意义上说,图像分析是机器视觉的一部分。然而,从另一种意义上说,图像分析是一门更广的学科。实际上,这两领域的分界线常常是模糊不清的。
机器视觉应用通常具有商业味道。例如,机器视觉是许多制造过程的关键部分。另一方面,"图像分析"--按多数人的理解--更可能应用于科学研究实验室。一些专家说,图像分析常常处理的操作不及机器视觉处理的操作明确。对未知物体,例如学术实验室中(图1)或者甚至临床病理学实验室中的动物组织细胞的图像进行表征或分类就是一例。
图1冷泉港(纽约)实验室霍华德休斯医学院的一个研究小组利用Matlab及其图像捕获和图像处理工具箱来研究哺乳动物的大脑如何运作。利用图像捕获工具箱,研究人员就可将显微镜图像从摄像机直接流式传输到Matlab,并可利用图像处理工具箱功能来分析一段时间内的图像。为了一按按钮就能进行捕获和分析,研究人员在Matlab中创造了生动的图形用户界面。
在机器视觉中,你通常对照相机或图像传感器所观察的物体有一般的了解,但你需要获得更具体的信息。产品检测设备属于机器视觉这一类。例如,你知道一幅图像描绘的是哪种印制电路板模型,但是你必须确定所有元件的类型是否正确以及位置是否得当。确定元件是否正确和位置是否适合当然要涉及到图像分析,但是这种分析比临床实验室中的那种分析更为直观。
二、机器视觉任务的分类
几位专家将主要机器视觉任务分为以下几类:
1.对诸如垫圈、螺母和螺栓等元件进行计数,并从噪声背景中提取可视信息。
2.测量 (也称为测定) 角度、尺寸以及相关位置。
3.读出,包括诸如从条形码中获取信息、对蚀刻在半导体芯片上的字符的OCR(光学字符识别)以及读出二维DataMatrix码等操作。
4.对物体进行比较,例如,将生产线上的单元与同样类型的KGU(已知优质单元)进行比较,找出诸如缺少元件或标签等的制造缺陷。这种比较可能是简单的图样相减,也可能涉及到几何或矢量图形匹配算法。如果被比较物体的尺寸或方向各不相同的话,就必须采用后者。比较的类型包括检测物体的有无、匹配色彩和比较印刷质量。被检查的物体可能与阿司匹林药片一样简单,其正确标记需在包装之前加以验证。
上述列表由于很具体,所以可能意味着你可以利用菜单驱动的基于图形的开发工具来创建机器视觉设备,而不是使用如C++这样的基于文本的语言来编写代码。尽管具有长期用基于文本的语言对机器视觉设备进行编程的开发者通常更愿意坚持使用他们多年来成功运用的工具,但你的确可以使用多种菜单驱动的图形化应用开发软件包之一。虽然业界中的一些人对这种不愿改变的倾向颇有微词,但要问一问自己,如果你聘请来处理某种设备的咨询专家第一次尝试使用新软件包来完成你的工作的话,你的感受如何呢?
即使在各种基于图形的工具当中,供应商们也把那些真正提供可编程能力的和那些仅允许用户配置设备的区分开来。这种可配置的方法能让你更快捷地使设备运行,并能提供许多开发者所需的灵活性。编程功能可为开发者提供更大的灵活性,但却会延长开发时间-特别是对于那些第一次使用一种工具的人来说更是如此。在某些情况下,可配置的方法和可编程的方法都以同样的语言产生输出,从而使你能利用编程功能来修改或提高你用可配置的方法创建的设备(图2)。这样的灵活性的潜在好处是巨大的:你可以使用更强大的工具来完善某种设备,并可借助基本的工具,迅速使之在原始级工作。这种方法可降低在完善方法上浪费时间的可能性,而你后来发现这些方法存在根本缺陷。
图2利用Data Translation公司的Vision Foundry进行设备开发的主要替代技术例证了工具箱的优越性,工具箱使你可以利用可配置的基于菜单的交互式工具快速验证概念,然后再通过编程功能改进其设备。在Vision Foundry中,你可以通过编写直观的脚本来完成大部分编程任务。
三、正在发生的调整
也许更重要的是如何利用两种方法的轻松互换使用来简化许多机器视觉设备中正在进行的不可避免的调整。例如,在AOI (自动光学检验)中,你或许希望剔除任何与KGU不同的UUT (被测单元)。唉,如果采用这种策略,检验过程大概会剔除你生产的大部分单元,即使其中大多数单元具有可以接受的性能。说明由于次要差别而导致AOI系统剔除一个优质部件的简单例子就是UUT使用的某个元件的日期代码与KGU上的等效元件的日期代码不同。
此时,你可在设备的设计期间预见到数据代码问题,并确保系统忽略包含日期代码的区域内的图像差别。遗憾的是,尽管如此,其它次要差别更难预料,你必须预计到你发现这些次要差别时需要修改设备。实际上,一些AOI系统的软件几乎能自动地进行这样的修改;如果你告知系统它剔除了优质单元,则软件就会将单元的图像与原始KGU进行比较,并在有差别的区域内不再对随后的单元进行检验。
不过,这样的方法有时候会产生并不令人满意的结果。假设检验系统安装在一间有外部光线可以从窗户进入的房间内,从而使UUT的照度发生变化。虽然检查员可以不假思索地适应这种变化,但是这样的变化会导致视觉系统将相同物体的图像分为不同物体的图像,从而引起不可预料的检验失败。尽管遮住窗户可以防止外部光线进入,但是调整测试程序使KGU在各种照明极端情况下都能通过也许更加经济合算。
即使如此,这个例子也指出了照明在机器视觉和图像分析中的重要性。照明本身就是一门科学或艺术。各种各样的照明技术具有不同的优点和弱点,而对UUT的照明方法可以解决或改进普通的机器视觉问题(参考文献1)。
四、项目成本及时间期限
机器视觉项目的成本相差很大。有几个这样的项目的成本不超过5000美元,其中包括硬件、预包装软件开发工具以及设备开发者的工时成本。不过,如此低廉的项目成本很可能不包括为了达到满意性能而对设备进行调整和调试的成本。在成本范围的另一端,项目成本超过一百万美元。这类项目中最常见的可能就是在汽车和航空工业中对自动生产线的重大改进。根据一些供应商说,最常见的项目成本通常从数万美元到略
评论