日期
01/13
2016
咨询
  • QQ扫一扫

  • Vision小助手
    (CMVU)

智能相机在嵌入式应用中挑战基于PC的系统
收藏
2016-01-13 14:53:36来源: 中国视觉网

  智能相机曾一度用于执行点处理任务,例如存在/不存在检测和条形码检测。然而,随着传感器尺寸的减小和成本的下降、半导体存储器和嵌入式处理器性能的提升,现在市场上已经出现了能够执行许多图像处理功能的智能相机,而这些功能在过去只能由基于PC的系统实现。
  事实上,随着这类智能相机系统的流行,英国市场研究公司Future Market Insights(FMI)预测,从现在开始到2020年,这类智能相机市场将会以约23.84%的复合年均增长率增长。
  利用这些智能相机,开发者可以通过利用嵌入式照明、透镜、传感器、处理器、软件和I/O能力,简化机器视觉系统的部署,同时降低设计成本。通过实施带有智能相机的系统,开发者不用再费心选择与机器视觉设计相关的各个组件,而是将精力集中在执行特定功能所需要的软件上。
  话虽如此,但是这种智能相机也有其局限之处,因其将机器视觉系统的所有功能集成到一个相机系统中,可供开发者选择的图像传感器、相机速度以及由任何特定供应商提供的处理能力和软件能力都是有限的。
  板载处理
  智能相机系统目前部署于许多应用中,从条形码检验、物体识别、过程监控到质量控制。为了执行这些应用,智能相机设计人员必须使用能够加速图像处理功能的相机架构。通常使用FPGA用于CCD或CMOS成像器的定时控制,用于捕获图像并执行点处理功能,或接近的运算,例如平场校正、滤波和Bayer插值。通过使用FPGA执行这种预处理功能,可以减轻相机机载处理器的压力,使其执行全局图像处理任务,而这最好由相机内的CPU或DSP处理。
  虽然许多智能相机使用CPU和DSP完成图像处理功能,日本东芝泰力(Toshiba Teli)公司在其最新设计的SPS02智能传感器中却采取了更为激进的做法。该相机配有GPIO、USB和RS-232接口,并采用了西班牙AnaFocus 公司具有144×176像素的Q-Eye图像传感器,像素尺寸为33.6 μm×33.6 μm。该专利像素架构允许在不使用FPGA或主机CPU的情况下,实现时间滤波、形态运算和斑点分析等功能。为了支持SPS02,东芝泰力公司提供了一个称为Visual Architect的图形化编程环境,其外观与LabVIEW相似,设计用于图形创建、编译、调试及执行视觉应用。
  特定应用
  通过在相机中执行图像处理任务,便不需要将拍摄的图像传送到主机进行分析。取而代之的是获得的结果可以通过相机内置的接口(往往通过低成本以太网接口)传输。这样一来,就克服了像Camera Link等其他高速“计算机-相机”接口传输距离受限的问题,使得智能相机能够实现更长距离的数据传输,同时还消除了高速电缆和接头的成本。同样,许多智能相机装置提供I/O功能,允许这些相机触发PLC等外部设备,或者对照明组件等外部器件供电。
  为任何给定的应用选择一款智能相机,要依赖于许多不同的因素,这其中包括应用类型、开发将需要的时间、将要部署的相机数量以及每台相机的成本等等。例如,在需要部署众多相机执行单个任务的应用中,购买一款带有最少高级软件支持的智能相机也许更有效。使用基于PC的开发工具,可以采用像C++这样的高级语言编写图像处理软件,在相机的主处理器上编译和运行。虽然做到这一点所需的开发时间会比较长,但是系统开发者能够避免缴纳任何运行许可费,否则将要求购买现成的图像处理库。
  在需要的相机系统数量较少时,或者可能需要在生产线上执行多项功能时,购买带有高级软件开发工具的智能相机可能更有效。这允许使用标准PC开发工具调用高级语言的多个图像处理功能,然后集成到智能相机中。
  目前市场上一些公司已经提供了集成了自身机器视觉软件的智能相机,如美国Cognex公司、意大利Datalogic公司、加拿大Matrox公司、美国National Instruments(NI)公司和德国Vision Components公司,因此系统开发人员可以从一系列基于Intel处理器的相机中进行选择,允许使用多个软件供应商的软件开发工具包(SDK)。这使得系统开发人员能够从众多智能相机供应商那里选择多个相机,使用熟悉的软件开发工具构建他们的应用。
  第三方支持
  智能相机厂商以多种方式将第三方软件包集成到他们的产品中。在某些情况下,这些软件包已经由相机厂商量身定制,以满足特定的机器视觉应用需求,而其他供应商可以选择支持多种软件包。
  德国Matrix Vision公司采取了前一种方法,在其mvBlueGEMINI“工具盒技术”基于Cortex-A9的双核相机中,利用了MVTec公司HALCON软件的功能(见图1)。这样一来,开发者可以从一些专门为机器视觉定制的菜单可选择工具中选择,例如使用HALCON图像处理库执行“获取图像”和“寻找对象”。

 

 

  图1:Matrix Vision公司在其mvBlueGEMINI基于Cortex-A9的双核智能相机中,利用了MVTec公司HALCON软件的功能。
  美国Adlink Technology公司采取了后一种方式,在其最新的x86 NEON-1040智能相机设计中,使用了400万像素60 fps的全局快门传感器,以及Intel Atom四核1.9 GHz处理器(见图2)。通过内置的PWM照明控制模块,该相机支持第三方机器视觉软件,例如德国MVTec公司的HALCON、德国Stemmer Imaging公司的Common Vision Blox,以及波兰Adaptive Vision公司的Adaptive Vision Studio。

 

 

  图2:Adlink Technology公司生产的x86 NEON-1040智能相机支持第三方机器视觉软件,例如HALCON、Common Vision Blox,以及Adaptive Vision公司的Adaptive Vision Studio。
  尽管这些SDK简化了机器视觉任务的开发,基于PC的机器视觉软件的传统厂商,认识到智能相机提供的市场机遇,已经利用它们的软件进一步简化系统开发。使用基于菜单或图形化流程图,这些智能相机产品允许部署许多常用的图像处理功能,同时支持离散I/O、RS-232和网络协议。因为这些工具基于公司软件库的底层功能,系统集成商可以使用用户可调用的函数或自定义图像处理程序,添加附加的图像处理能力。
  例如,针对其NI 177x系列智能相机,NI公司提供其NI Vision Builder用于自动检测(AI),这是一种交互式菜单驱动开发环境,允许开发人员配置、检测和部署智能相机,从而无需编程就能够配置许多任务,例如图形匹配、代码读出和存在检测。
  Matrox公司的Design Assistant视觉软件使用基于流程图的方法,为用户提供了集成开发环境(IDE),可以通过构建流程而不是通过编写代码或者调用图像处理函数来创建应用。同样的软件可以让用户创建基于Web的操作界面,可以本地或远程访问。配置完成后,就可以将该软件部署于该公司的4Sight GPm视觉系统或Matrox公司的Iris GT智能相机中,或者任何带有GigE Vision或者USB3 Vision相机的PC上。
  远程监控
  一旦开发了这样的软件,可以将其下载后在智能相机上进行测试。一旦有效,可能需要远程监控相机上运行的应用程序。为了解决这个问题,许多公司现在提供IP使能的相机,允许运行Web浏览器的远程PC或无线平板电脑访问智能相机。
  例如,选择基于加拿大Teledyne DALSA公司的BOA智能相机进行智能相机系统开发的人员,可以使用该公司的基于图标的iNspect Express软件,加快应用程序开发。由于软件嵌入在相机中,可以使用远程PC机上的Web浏览器界面,配置和访问智能相机上的任意iNspect Express应用程序。
  美国Microscan公司的Vision HAWK智能相机产品线,为开发者提供了类似的选择。使用该公司的AutoVISION软件开发应用程序之后,系统集成商可以在Web浏览器中使用该公司基于Web的CloudLink软件,在相机执行检查任务时进行远程监控(见图3)。

 

 

  图3:使用Microscan公司的AutoVISION软件开发应用程序后,在Vision HAWK智能相机执行检查任务时,系统集成商可以在Web浏览器上使用该公司基于Web的CloudLink软件进行远程监控。
  虽然这样的相机因其机载处理能力、照明和I/O能力被称作为智能相机,但它们也许还可以更加智能。目前,部署这类系统的开发人员可以选择像Microscan公司的Vision HAWK和Vision MINI智能相机这样的产品,允许自动控制对焦、增益和曝光,以达到最佳的对比度。
  将这样的功能性与高级图像处理软件集成,以及在不同设置间自动循环,将允许这类智能相机进行智能决策,如对于任何特定的图像处理任务,哪种设置最有用?如何减少相机的设置时间?智能相机厂商是否能够提供这种软件呢?让我们拭目以待。