侵权投诉
当前位置:

OFweek电子工程网

放大/调整/转换

正文

机器视觉与图像分析技术详解

导读: 与视觉相关的项目并非全都需要咨询专家的服务;在硬件供应商和开发工具供应商的帮助下,缺乏视觉系统开发经验的开发者通常也可以完成大部分(即使不是全部)开发工作,并且为他们的公司节省费用。

  一、要点

  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中,你可以通过编写直观的脚本来完成大部分编程任务。

1  2  下一页>  
声明: 本文由入驻OFweek公众平台的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

我来说两句

(共0条评论,0人参与)

请输入评论

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号