随着市场上越来越多的视觉板卡,及配套的软件包大量涌现。相信大家都会觉得,难以决定到底选用哪一家公司的产品才是最佳选择。 3PLv;@!#j}
V_?5 cwZ
在展开讨论之前,首先要纠正一个普遍存在的错误观念:即,在我们选用板卡的标准不是“好”与“坏”、“强”与“弱”,而是“适合”与“不适合”。一张设计出色的采集卡外加功能强大的软件配套,自然是一个“好”的选择。但如果在你的二次开发应用系统中,只用到了其软件 包中一半的函数。那么,对于你们公司来说,整套产品虽然是“好”的产品,但却不是适合的产品 Lmx95[#@a
y8uB>z+#+;
1. 板卡硬件功能的对比 |"vUC/R2&
N*N@wJy:5
目前市场上的视觉板卡,主要可分为三类:一、视觉采集卡。这就是我们最提到的Frame Grabber。它最主要的功能就是将相机中输出的模拟图象信号,转换成数字信号,最终传至电脑中的内存中去;二、具有显示功能的视觉卡。这种板卡,在上一种采集卡的基础之中,又另加入了图象显示功能。即,可以将图象直接显示到任何显示器上;三、自带处理器的板卡。这种板卡本身就带有处理器,进行图象处理工作的程序,不必在电脑中而可以直接在板卡上运行。 NZSP*# !B
由于以上三种板卡在硬件上就有很大不同,很难作横向对比。因此我们仅就板卡一些常见的功能作分析对比。 j^}p'w Tu{
Tp&03
· 相机支持:随着市场上各种新功能相机的出现,板卡与相机的匹配问题便更加显得重要了。一、制式。CCD相机有各种不同制式,如CCIR、RS170等等。确定板卡是否支持所有制式的信号;二、异步信号。异步信号可以节省拍照时间。不过在选用具有异步信号功能的相机之前,首先要确定板卡也有此功能。这一功能对于运行速度要求极高的系统来说,至关重要。以RS170为例,如果没有这一功能,系统等待拍照的时间为0~40毫秒;三、逐行扫描。 越来越多的系统会使用到逐行扫描相机,因此要首先知道板卡是否支持这种相机;四、多分辨率支持。不是每张板卡都可以支持所有分辨率的相机;五、多频道。多数板卡,都可以同时控制二个以上的相机。至于,其他一些不常见的功能,如时钟功能等,这里略过不提。 8o-*s+EY"&
K%ltB&
· 灯源激发:相当多的板卡带有灯源激发功能。这不仅缩短了系统总体运行的时间,简化了编程人员的工作。更重要的在于,这一功能可以更加有效地使灯源与相机同步工作。 b/='M`D}#G
x8xSA*@k
· 图象存储:大家已经知道,相机拍照的时间最多为40毫秒,而系统对于图象进行分析、测量的时间则要漫长得多。因此,在实际操作中,常常会出现相机“等待”电脑的情况。因此,一些板卡便另设有一些内存,作为图象的缓冲区。即,在前一幅图象尚未分析完之间,接下来相机所传来的图象,暂时存放到缓冲区中。之后,再以先进先出的方式,逐一送至电脑内存。不过,关于板卡的这一硬件功能,市场上有两个全然相反的评价。 G%w hOIFRq
qr[H0f]
· 其他参数:如,信号转换速度等。 hmv"|1Sa!~
ixZ w;+h
2. 板卡软件包的对比 Gk0f#;
<GI{`@5C
面对不同公司的视觉软件包时,该如何作出正确的选择?根据上面所讲“软件包的基本功能与构成”一节,就其中较重要的部分,下面我们一一作出分析。 sG`:mc~0
GtRc7,
我们首先要考虑的问题是:哪一家公司的软件更加容易使用,即在此软件包基础上作二次开始,是否容易上手、能否缩短开发时间。从以下几个方面来考虑: UGK4uK+I`
V8w!yc
· 开发硬件环境:此软件包在你公司所选用的电脑硬件系统下是否能正常运行。如,是否支持PCI接口、显示卡等。 5"=qVmT)
1-4iy_d
· 开发操作系统;此软件包在你们公司所选用的操作系统下能否正常运行。如,是否支持WIN2000,Linux等等。 gf()NfUvRH
/l -lkG5
· 开发语言:此软件包是否适用于你们公司所选用的开发语言。如,使用VC++,VB、CPB、DELPHI等语言作二次开发,是否简单易用。 pZx'%-\-T
u/3 4E=
当然我们还要对比不同公司的软件包,在图象处理方面的功能的优劣。 &)@|WLW
o;+$AU1f
· 边缘寻找功能:边缘寻找,是图象处理中最为基本也是最为常用的工具。此功能主要以下几个参数作对比:一、精度。可以查阅软件包的产品介绍或是使用说明;二、稳定性。可使用不同图象对软件进行实际测试,如,进行GR&R测试;三、多样性。是否能够应付各种不同的实际情况。如,不同形状的边缘寻找,不同明暗情况下的边缘寻找等等;四、速度。可在统一的情况下(如,使用同一图象)对不同系统进行实际测试。 hiWfVz{~
E(F<shT#
· 目标定位功能:目标定位功能,是图象处理中另一基本且常用的工具。同样有以下几个参数作对比:一、精度。可以查阅软件包的产品介绍或是使用说明;二、稳定性。可使用不同图象对软件进行实际测试;三、速度。对于目标定位功能来说,其运行速度的快慢,可以认为是其软件水平高低的直接标志之一。可在统一的情况下(如,使用同一图象、同一速度电脑)对不同系统进行实际测试;四、操作复杂程度。由于目标定位功能比边缘寻找功能在算法上要复杂得多,这就使得此功能参数设置的繁简程度,会直接影响二次开发的难易。 a%a_sR\)
|[/[*hDZ9
· 图象欲处理功能:图象欲处理功能(如,二值化、边缘锐化、反差调节等等),可以提高图象分析速度、简化分析工程。 5T)qn`%
XS5*=hv:
· 字符读取功能(OCR):对于那些主要应用于各种字符读取的视觉系统来说,此功能尤为重要。 kGsd3t!'
S3rN]!B+
· 数据读取功能:目前,绝大多数公司的软件包中,都带有条形码、二维码的读取功能。大家所要注意的是,不同软件应付在不良情况的能力,如,光源不足、图象不清、源码残缺等情况。 i#o:V/Z.
^W|B Xxo
· 图象缓冲功能:与板卡的“图象存储”功能相似,这一功能的主要目的,是为了缓解拍照与运算时间上不同步的矛盾。与板卡上硬件缓冲区所不同的是,这一功能纯由软件来实现。通常的概念是,在内存中开辟一固定空间,从板卡传来的图象信号,在电脑分析完之前都会按序存在这一空间里。每幅图象地址的指针,另存在一堆栈中。图象以先进先出的方式清除。 ?YzOA${
8C1 ' g7A<
· 实际应用功能:很多公司,为了适应越来越激烈的市场竞争,在原有的底层软件基础上,又开发出可应用于某一特定领域的软件包,以方便这一行业中的视觉二次开发商。如,半导体行业中BGA检测工具;显示器生产业中的显示检测工具;机器手行业中的系统定位工具等等。 pJ Iq`)p5
7/nnl0u8
· 接口功能:软件包是否能够方便地与其他软件或控件接口,一起运行。 G j^J pG
J0@<6~V6o
· 其他辅助功能:除以上所讲的各功能以外。各视觉公司,又各自开发出一些其他非图象处理的软件工具,以方便开发者使用。如,数据分析工具(SPC)、图象显示工具、画图工具等等。 D7.|UG?G
9Ml^\|
3. 应用系统开发时限及功能 ^a&-GhX;
Te=[tx~x
在对该选用哪家公司板卡的问题上,作出决定之前。我们还要考虑公司所要开发的目标系统,要拥有哪些功能?在确定了系统这些功能之后,接下来要考虑这些功能是否要由自己来完成,还是使用板卡公司所提供的底层软件包,等等一系列的问题。 V3j1M?>
1oq5|2p
下面,我们就将这些问题按思考步骤综合一下: $Fx:w
-I-u.!
a) 系统功能:首先确定所要开发的系统,应该有哪些基本功能。 +cS%b}O`$
LWQ.!;HY p
b) 开发时限:再根据项目的具体要求,确定系统开发周期。 kk_$j_0
/,v>w,
c) 开发商支持:软件包开发商是否有详尽的使用说明;是否能提供足够的源代码;如果在本地区有技术支持人员;技术支持人员是否会说中文--如果不会,你们的开发人员是否能与他们很好地沟通。 $I40 hk
%a-*Ku
d) 人力资源:考虑能够参与开发工作的人力资源,包括:编程能力、视觉知识等等方面。考虑这个问题,是因为通常选用功能完备的软件包,并不一定能缩短开发时间,但却能够简化开发工作,使源程序便于优化。 n]$50_@
DK8eFyG^2
e) 分析软件包功能:确定软件包所提供的工具,是否能够支持系统所要求实现的功能。 d4OWnPHv&}
=\;yxl
f) 最后决定:根据系统所要实现的功能--哪家公司的软件包,能够覆盖最多的系统功能;项目要求的开发时间--哪家公司的软件最容易使用、开发周期最短;公司的人力资源--哪家公司的软件包,最适合你公司开发人员的水平。综合以上各点最决定:哪家的公司的板卡及软件包,最适合你。