机器视觉与图像分析技术
或许你依然希望能得到咨询专家的协助,不过紧缩包裹型(Shrink-Wrapped)开发东西包现在现已使得短少专业经历的开发者也能够照样承当更多依据视觉的项目。
要点
● 与视觉相关的项目并非全都需求咨询专家的效劳;在硬件供货商和开发东西供货商的协助下,短少视觉体系开发经历的开发者一般也能够完结大部分(即便不是悉数)开发作业,而且为他们的公司节约费用。
● 在开端视觉体系开发之前,你有必要答复大约五六个问题;你的答案将底子决议体系的硬件本钱。
● 你只要挑选能够在菜单驱动环境中能使你开端设备开发作业,然后经过图形编程或语法编程来完善程序,就可大大进步功率。
● 习惯于视觉体系在装置之后需求尽心呵护的观念;你常常无法预见在体系运转一段时刻之后可能有必要调整算法的各种理由。
成功地开发一种依据视觉的设备可能需求许多专业知识,致使许多计划这样做的开发者都不情愿尝试这种使命,而转向求助于那些经过把握技能的方方面面细微不同树立自己职业生涯的咨询专家。一般,一位咨询专家不只可认为你节约数倍咨询费的费用,而且还能够节约大量名贵的时刻。即便这样,有些适用于依据视觉的体系开发的紧缩包裹型软件包却使那些没有机器视觉或图画剖析经历的人能恬然承当的项目数量不断添加。
如果你短少恰当的经历,则要走好的第一步是设法断定哪些使命需求外界协助,哪些使命是你有可能用预包装软件自己敏捷完结的。供给开发东西和硬件的厂商一般能够协助你做出这种判别。在许多情况下,这些厂商的网站都有协助做出这种决议的东西。给一个这样的厂商打个电话,你一般就能够与一位能收集有关你设备信息的运用工程师取得联系。在恰当的时分,大多数厂商会向你引荐他们熟悉其作业情况的咨询专家。一般,最经济的办法就是,某个项目中仅仅某些部分运用咨询协助,例如照明部分。
图画剖析和机器视觉是相关而又不同的两个范畴。从某种含义上说,图画剖析是机器视觉的一部分。可是,从另一种含义上说,图画剖析是一门更广的学科。实际上,这两范畴的分界线常常是模糊不清的。
机器视觉运用一般具有商业滋味。例如,机器视觉是许多制作进程的要害部分。另一方面,"图画剖析"--按多数人的了解--更可能运用于科学研讨实验室。一些专家说,图画剖析常常处理的操作不及机器视觉处理的操作清晰。对不知道物体,例如学术实验室中(图1)或许乃至临床病理学实验室中的动物组织细胞的图画进行表征或分类就是一例。
图1 冷泉港(纽约)实验室霍华德休斯医学院的一个研讨小组运用Matlab及其图画捕获和图画处理东西箱来研讨哺乳动物的大脑怎么运作。运用图画捕获东西箱,研讨人员就可将显微镜图画从摄像机直接流式传输到Matlab,并可运用图画处理东西箱功用来剖析一段时刻内的图画。为了一按按钮就能进行捕获和剖析,研讨人员在Matlab中发明了生动的图形用户界面。
在机器视觉中,你一般对照相机或图画传感器所调查的物体有一般的了解,但你需求取得更详细的信息。产品检测设备属于机器视觉这一类。例如,你知道一幅图画描绘的是哪种印制电路板模型,可是你有必要断定一切元件的类型是否正确以及方位是否妥当。断定元件是否正确和方位是否合适当然要涉及到图画剖析,可是这种剖析比临床实验室中的那种剖析更为直观。
机器视觉使命的分类
几位专家将首要机器视觉使命分为以下几类:
● 对比如垫圈、螺母和螺栓等元件进行计数,并从噪声布景中提取可视信息。
● 丈量 (也称为测定) 视点、尺寸以及相关方位。
● 读出,包含比如从条形码中获取信息、对蚀刻在半导体芯片上的字符的OCR(光学字符识别)以及读出二维DataMatrix码等操作。
● 对物体进行比较,例如,将出产线上的单元与相同类型的KGU(已知优质单元)进行比较,找出比如短少元件或标签等的制作缺点。这种比较可能是简单的图样相减,也可能涉及到几许或矢量图形匹配算法。如果被比较物体的尺寸或方向各不相同的话,就有必要选用后者。比较的类型包含检测物体的有无、匹配颜色和比较印刷质量。被检查的物体可能与阿司匹林药片一样简单,其正确标记需在包装之前加以验证。
上述列表因为很详细,所以可能意味着你能够运用菜单驱动的依据图形的开发东西来创立机器视觉设备,而不是运用如C++这样的依据文本的言语来编写代码。虽然具有长时间用依据文本的言语对机器视觉设备进行编程的开发者一般更情愿坚持运用他们多年来成功运用的东西,但你的确能够运用多种菜单驱动的图形化运用开发软件包之一。虽然业界中的一些人对这种不愿改动的倾向颇有微词,但要问一问自己,如果你延聘来处理某种设备的咨询专家第一次尝试运用新软件包来完结你的作业的话,你的感触怎么呢?
即便在各种依据图形的东西傍边,供货商们也把那些真实供给可编程才能的和那些仅答应用户装备设备的区别开来。这种可装备的办法能让你更便利地使设备运转,并能供给许多开发者所需的灵活性。编程功用可为开发者供给更大的灵活性,但却会延伸开发时刻-特别是关于那些第一次运用一种东西的人来说更是如此。在某些情况下,可装备的办法和可编程的办法都以相同的言语发作输出,然后使你能运用编程功用来修正或进步你用可装备的办法创立的设备(图2)。这样的灵活性的潜在长处是巨大的:你能够运用更强大的东西来完善某种设备,并可凭借底子的东西,敏捷使之在原始级作业。这种办法可下降在完善办法上浪费时刻的可能性,而你后来发现这些办法存在底子缺点。
图2 运用Data Translation公司的Vision Foundry进行设备开发的首要代替技能比如了东西箱的优越性,东西箱使你能够运用可装备的依据菜单的交互式东西快速验证概念,然后再经过编程功用改善其设备。在Vision Foundry中,你能够经过编写直观的脚正本完结大部分编程使命。
正在发作的调整
或许更重要的是怎么运用两种办法的轻松交换运用来简化许多机器视觉设备中正在进行的不行避免的调整。例如,在AOI (主动光学查验)中,你或许希望除掉任何与KGU不同的UUT (被测单元)。唉,如果选用这种战略,查验进程大概会除掉你出产的大部分单元,即便其间大多数单元具有能够接受的性能。阐明因为非有必要不同而导致AOI体系除掉一个优质部件的简单比如就是UUT运用的某个元件的日期代码与KGU上的等效元件的日期代码不同。
此刻,你可在设备的规划期间预见到数据代码问题,并确保体系疏忽包含日期代码的区域内的图画不同。惋惜的是,虽然如此,其它非有必要不同更难意料,你有必要估计到你发现这些非有必要不一起需求修正设备。实际上,一些AOI体系的软件简直能主动地进行这样的修正;如果你奉告体系它除掉了优质单元,则软件就会将单元的图画与原始KGU进行比较,并在有不同的区域内不再对随后的单元进行查验。
不过,这样的办法有时分会发作并不令人满足的成果。假定查验体系装置在一间有外部光线能够从窗户进入的房间内,然后使UUT的照度发作改变。虽然检查员能够一挥而就地习惯这种改变,可是这样的改变会导致视觉体系将相同物体的图画分为不同物体的图画,然后引起不行意料的查验失利。虽然遮住窗户能够防止外部光线进入,可是调整测验程序使KGU在各种照明极点情况下都能经过或许更加经济合算。
即便如此,这个比如也指出了照明在机器视觉和图画剖析中的重要性。照明自身就是一门科学或艺术。各式各样的照明技能具有不同的长处和弱点,而对UUT的照明办法能够处理或改善普通的机器视觉问题(参考文献1)。
项目本钱及时刻期限
机器视觉项目的本钱相差很大。有几个这样的项目的本钱不逾越5000美元,其间包含硬件、预包装软件开发东西以及设备开发者的工时本钱。不过,如此低价的项目本钱很可能不包含为了抵达满足性能而对设备进行调整和调试的本钱。在本钱范围的另一端,项目本钱逾越一百万美元。这类项目中最常见的可能就是在轿车和航空工业中对主动出产线的严重改善。依据一些供货商说,最常见的项目本钱一般从数万美元到略高于十万美元不等。从管理层同意项目启动到视觉体系在出产中正常运用的项目期限一般不到六个月,而且常常只要一两个月。
并不令人惊奇的是,简直一切视觉项目都从取得底子问题的答案开端。这些问题的答案充分地断定了视觉体系硬件的本钱:需求多少台摄像机?有必要具有多高的图画分辨率?五颜六色成像是否必要?每秒有必要收集多少帧?用不用发作模仿输出的摄像机?如果这样,就需求挑选一个帧接纳板来将模仿信号转换成数字方式,在必要时还要图画帧的收集与外部触发事件同步(参考文献2)。
虽然一些用于模仿摄像机的帧接纳器能够一起接纳来自多个摄像机的输入,可是一次为一台摄像机供给一个接口的电路板更为常见。如果你挑选具有数字接口的摄像机,你会运用能够进行图画处理和图画收集的"智能"摄像机吗?仍是由摄像机将原始(未处理的)图画数据发送到主机PC进行处理?还有,数字摄像机选用哪种接口规范或总线与主机PC通讯呢?适用于某些总线的数字摄像机需求帧接纳器。可是,与用于模仿摄像机的帧接纳器不同,用于数字摄像机的帧接纳器不进行模/数转换。
与硬件相关的考虑要素可能会逾越这些问题。而且,一些问题选用了一般正确的默许假定,即视觉体系的主计算机是一台运转规范版别Windows (www.microsoft.com)的PC。机器视觉系统有时分在实时操作体系下运转,而图画剖析软件则经常在Unix或Linux下运转。此外,与其它实时体系一样,许多实时视觉体系选用与Pentium (www.intel.com)或Athlon (www.amd.com)器材不同的CPU。
摄像机接口
使摄像机与主机计算机接口依然是视觉体系规划的一个要害问题。虽然呈现了数字化接口的摄像机,虽然成像体系选用IEEE 1394 (也称为FireWire和i-Link)来与摄像机接口,但摄像机接口的挑选仍值得细心考虑。(正在敏捷成为干流高速PC外设接口的USB 2.0并不是工业成像范畴的一个要素,这首要是因为,虽然其480 Mbps的数据传输速率名义上比开始版别的FireWire更高,但USB 2.0的以主机为中心的协议关于成像来说却比FireWire更慢。)
FireWire是消费类视频体系和家庭文娱体系中盛行的高速串行总线。这种即插即用的总线选用多点体系结构和对等层通讯协议。该规范的开始详细化包含速率高达400 Mbps的数据传输。数据传输速率最终将抵达3.2 Gbps。2003年1月,IEEE发布了1394b,而且其拥护者们希望不久就能够在视觉硬件中看到800Mbps的版别。不过,虽然工业FireWire摄像机具有合理的本钱,但它在消费类设备中的可用性在不断添加(在消费类设备中,所需的分辨率--有时分还有帧频--均比工业设备中所要求的更为适度),其纤细而柔软的串行电缆用起来很便利,其总线数字技能具有抗扰性,但选用这类摄像机依然受到约束。
本钱可能会约束FireWire在工业成像范畴中的遍及。工业FireWire摄像机的本钱要比具有相同帧频和分辨率的工业模仿输出摄像机高。另一方面,FireWire摄像机与模仿摄像机的本钱比较有时分可能会发作误导。在具有内置FireWire端口的体系中,摄像机一般不需求额定的接口硬件。这种摄像机包含一个ADC(模/数转换器),而模仿摄像机则需求帧接纳器来完结必要的ADC功用(图3)。
图3 National Instruments公司的依据Celeron的CVS-1454型细巧视觉体系(Compact Vision System)比如了为工厂环境规划的机器视觉硬件。虽然这一体系(右上)并非一个规范的办公室PC,但它包含三个FireWire端口然后不需求特殊的摄像机接口硬件。该体系与National Instruments公司的LabView图形化开发环境配套运用,而这个开发环境能经过交互式图形化东西快速开发程序,如果有必要,随后再运用完好的图形化编程功用调试设备。
FireWire摄像机选用IEEE 1394的同步协议,这就能确保带宽并确保数据包依照它们的发送次序抵达(如果他们悉数抵达的话)。该规范的其它协议(异步的)确保消息传递但不确保数据包依照它们的发送次序抵达。每个同步设备能够每隔125μs--也就是以8kHz的最大速率--宣布一个带宽恳求。起总线管理器效果的设备赋予每个宣布恳求的设备在随后125μs内发送预订数目数据包的权利。
总线上的同步设备越多,每个设备可得到的带宽就越少。当FireWire总线上仅有一台摄像机时,一台1280×960像素黑白摄像机差不多能够每秒发送15帧。一台640×480像素的FireWire五颜六色摄像机大约能够每秒发送30帧。虽然这两个比如中的任一个似乎都不会运用总线的悉数可用数据传输容量,但每个像素的比特数以及摄像机使数据格式化的办法却会对最大帧速率发作影响。顺便阐明一下,分辨率越高并不总是越好。分辨率较高的摄像机不只价格更贵,帧速率一般比分辨率较低的摄像机更慢,而且还更容易提醒UUT和KGU之间微不足道的不同,然后进步AOI体系错误地检测毛病的速率。
更多摄像机接口
除了FireWire之外,数字输出摄像机的接口选件还包含RS 422并行接口和Camera Link(表1)。RS 422摄像机接口还没有彻底规范化,所以一般需求摄像机专用接口卡。从用于模仿输出摄像机的接口卡的含义上来说,这些卡并不是帧接纳器,但它们一般相同可插入主PC的PCI总线。因为有时分需求50多根连线,并行接口被证明并不适用。不过,RS 422数字摄像机依然受欢迎,而且持续用得广泛。
AIA的Camera Link是性能最高的数字输出摄像机接口规范。与FireWire不同,Camera Link答应每条总线上只要一台摄像机,但许多PC能够包容多条Camera Link总线。Camera Link可在并行组合的单向链路、串行链路和点对点链路上,运用SERDES(串行化/解串行化)技能以高达4.8 Gbps的速度发送数据。每条链路可传送来自7个通道的数据,并运用每条链路需求两根导线的LVDS (低电压差分信号传输) 技能。通道的数目决议了Camera Link总线的最大数据速率。一条装备彻底的总线能够有76个通道,其间包含11条链路和22根导线,不过该规范考虑到具有28个通道和56个通道的总线 (4和8条链路及8和16根连线)。每条Camera Link总线一般需求PC中的一个独立接口卡。
选用Camera Link总线现在还涉及到编写额定的软件。因为在PC中生成Camera Link总线的卡既稀少又没有彻底规范化,所以紧缩包裹型运用程序开发软件包一般短少Camera Link启动程序。虽然如此,如果需求Camera Link的有目共睹的速度,那你就没有多少挑选地步。
某些时分,你可运用智能摄像机来减少视觉体系有必要处理的数据量,因为智能摄像机能够先对其收集的数据进行处理或紧缩,然后再将数据发送给主机PC。这样的摄像机有时分既可下降摄像机与主机之间的数据速率又可下降主机与主机中负载之间的数据速率,但本钱较高。可是,你有必要确保数据紧缩要么是真实无损的,要么是不需求紧缩中丢失的数据。