在XP电脑上使用AVT相机时,使用自带的演示程序通常都能正常采集到程序。但是随着视窗操作系统的升级,升级到Win7后,发现即使最新的AVTActiveFirePackage_3_0也无法采集到图像。不是找不到相机,就是无法取得图像。但是在安装有NI Acquisition的系统中,使用NI的IMAQdx驱动,却又可以对AVT的工业相机正常采集图像。
下面我们使用AVT的Guppy Pro 503B来测试其在Win7下的图像采集。
图1 AVT 相机驱动
我们共使用了四个AVT的Guppy Pro 503B工业黑白相机,在图1中可以看到,共有四个相机,都使用了NI的IMAQdx驱动。503B相机是1394B接口的相机,我们使用了一块两芯片四通道的PCI-E 1394B卡(为什么使用此卡,请查看石鑫华视觉网 “多个500万像素相机同时采集图像”)。采集卡的驱动使用的是LSI的驱动(芯片是LSI生产的)。这时我们打开NI的Max或VBAI、Vision Assistant等进行图像采集,可以对每个相机正常采集图像:
图2 AVT 503B在NI MAX下采集图像可以达到13FPS
在NI MAX中可以查看到四个503B相机,并且每个相机都可以正常采集图像且能达到最高速13帧每秒。下面我们安装AVT自己的图像采集程序AVTActiveFirePackage_3_0。
安装此演示程序与其它程序一样,直接下一步Next即可。中间如果出现选择安装AVT驱动程序选项的,勾上即可。安装完成后,会对AVT的相机程序更换驱动,更换成AVT自家的驱动程序。如图3所示:
图3 AVT相机安装自己的驱动程序
从图3中可以看到,没有了NI设备,在图像设备中出现了四个AVT Guppy PRO F503B相机,使用的是AVT ActiveCam 5.0.2.0的驱动。
安装完AVTActiveFirePackage_3_0后在桌面上会生成两个AVT的图标:
图4 AVT图标
上面一个AVT的图像采集演示程序AVT ActiveCam Viewer,下面一个为AVT的相机驱动配置程序AFP Driver Installer。我们先看使用下面的驱动安装程序,进行驱动安装(在安装AVTActiveFirePackage_3_0时,驱动已经安装过了,因此可以省略)。但是我们可以看一下此应用程序的界面:
图5 AVT Driver Installer程序界面
从图中可以看到,此程序会把所有AVT相机的驱动程序更换为AVT自己的(在安装时可以选择是否需要更换)。
因为相机的驱动程序已经更换成AVT的了,一般来讲,这时使用AVT的演示采集程序,是可以采集到图像的了。下面打开AVT ActiveCam Viewer来采集图像试试。
图6 AVT ActiveCam Viewer程序崩溃
打开AVT ActiveCam Viewer后并没有出现想象中的图像采集界面,反而出现了这样的一个程序崩溃的对话框。APPCRASH程序崩溃通常是由于系统不兼容引起的。这是WIN7引入的一个新的机制。因此我们需要将程序设置为早期版本的兼容模式。
在桌面AVT ActiveCam Viewer图标上点击鼠标右键,然后选择属性,弹出如下对话框:
图7 AVT ActiveCam Viewer兼容性设置
在属性对话框中,选择兼容性,然后在兼容模式下勾选以兼容模式运行这个程序。经验证,当选择以Vista SP2、Vista SP1、Server 2008 SP1、Server 2003 SP1、XP SP3、XP SP2等兼容模式运行时,可以正常采集图像:
图8 选择不同的兼容模式
图9 AVT ActiveCam Viewer程序打开并正常采集图像
而当选择Win2000、Win 98、NT、ME 、95等兼容模式运行时,同图6中所示一样无法打开程序。而当选择Win7兼容模式时(本系统是WIN7 SP1的),能打开AVT ActiveCam Viewer采集程序,但是无法采集图像:
图10 AVT ActiveCam Viewer打开但无法采集图像
在图10的左下角显示No Frames Received,没收到帧,无法采集图像。证明此版的程序在Win7下兼容性不行,无论是Win7还是Win7 SP1,均无法正常采集图像。
这时,我们再打开NI的MAX,发现在其中可以发现相机设备,但是无法打开进行正常的采集。AVT的驱动程序并不兼容NI的平台。
图11 NI MAX中能发现硬件,但是无法打开采集图像
图11中,提示打开错误,驱动程序不兼容。并提醒用户更换驱动程序。确定后,我们右键选择相应的相机,然后再选择Driver,并更换为NI IMAQdx驱动,如图12所示:
图12 在NI MAX下更换AVT驱动为NI IMAQdx驱动
按照图12所示更换为NI的驱动后,会出现cam1,这样就可以正常采集了。当然也可在设备管理器中更换驱动程序。
上面提到的是在1394卡使用自己芯片的驱动程序下使用的。另外AVT自己也有1394总线驱动。执行AVT1394BusDriverPackage1.0安装程序。可以将1394卡的驱动程序安装成AVT的驱动程序:
图13 AVT1394BusDriverPackage1.0安装程序
一如继往的点击下一步(Next),完成后出现驱动程序安装界面:
图14 AVT1394BusDriverPackage驱动程序选择更换界面
选择一个1394芯片,然后点击右下角的Switch to AVT 1394 bus driver即可将驱动更换为AVT的驱动程序:
图15 1394卡更换为AVT驱动
这时在设备管理器中也可以发现1394卡的驱动已经更换为AVT的驱动程序。
图16 设备管理器查看设备驱动已经更换为AVT的
以这种状态打开AVT ActiveCam Viewer,会提示未发现相机。这主要是因为相机的驱动使用的是NI的驱动程序。
图17 AVT ActiveCam Viewer未发现AVT相机
我们使用AFP Driver Installer将相机驱动程序更换成AVT的,或者从设备管理器中将相机驱动更换为AVT的:
图18 更换相机驱动为AVT的
图19 AVT ActiveCam Viewer能发现相机并能正常采集
这时如果再用NI的MAX打开,可以发现相机,但是就如图11一样,无法打开相机。需要更换为NI的驱动后方可采集图像。
另外有一些开发者反应,使用AVT ActiveCam Viewer采集的图像有变形、花屏等现象。变形的现象,可以使用升级补丁AFP3.0-Patch-Package-1,将其中的atl.dll、AvtActiveCam.dll两个动态连接库复制并覆盖到AVT ActiveCam Viewer安装目录下,可以解决问题。
花屏,可以查看本站资源“多个500万像素相机同时采集图像”设置相应的Packet size,可以解决花屏的问题。