为细胞分析、汽车零件尺寸测量或分析多光谱卫星图像而设计的图像处理和机器视觉应用,为系统设计人员带来了不同的挑战。虽然所有这些应用都是计算密集和数据密集型应用,但是这些应用对于图像捕获和分析的速率要求,也存在较大的差别。
图1:在(a)明亮的阳光下和(b)黑暗中拍摄的汽车图像,上传到谷歌的Cloud Vision和Cloud Sight图像识别软件。谷歌的Cloud Vision分析返回的结果为(a)和(b),清楚地识别了每辆汽车的牌照(c和d)。当这样的图像上传到Cloud Sight的图像识别软件时,识别该汽车为一辆丰田车(e)。
尽管在数字病理学系统中,高速图像捕获可能不是必需的,但对于设计用于以每分钟数千(或更多)个零件的速率检测汽车零件的机器视觉系统而言,高速捕获图像至关重要。在这样的系统中,图像捕获和处理的速度至关重要,而最重要的是视觉系统的延迟,以及可能需要的“合格/不合格”机制。
客户–服务器模型
云计算(或更准确地说,使用远程服务器 络来存储、管理和处理数据)将有希望分散图像处理和机器视觉系统中所需的大部分图像处理,这将影响当前使用本地处理能力和存储的一些应用。通过远程查找处理和存储能力,图像处理应用可远程使用,并可由用户按需或按单次使用付费模式付费。
这些模型以多种不同的形式提供,特别是以软件即服务(SaaS)、平台即服务(PaaS)和基础架构即服务(IaaS)的形式。虽然SaaS使用在基于云端系统上运行的供应商应用,但PaaS允许第三方软件公司远程开发、运行和管理它们的应用。最后,IaaS为那些希望运行远程应用程序的用户提供管理和可扩展资源(参见Nadir K.Salih和Tianyi Zang的“云计算中的开源和封闭源的调查与比较”;http://bit.ly/VSD-CLOU)。
这种云计算基础设施对图像处理和机器视觉系统开发者提出了挑战。虽然基于云的系统将理想地尝试自动分配和平衡处理负载,但确保数据以满足应用程序需求的速度传输、处理和返回数据,仍然是开发人员的职责。
在“云计算:云配置的挑战”一文中,美国中佛罗里达大学的Dan Marinescu教授指出,由于共享 络和未知拓扑,基于云的基础架构会出现节点间延迟和带宽波动,这些往往会影响应用程序的性能。
云服务
今天,许多公司允许系统集成商使用这种 络上传和处理数据。通过这样做,开发人员不需要投资本地处理能力,而是使用远程处理能力和存储能力。Amazon Web Services(AWS)、微软、谷歌和IBM均提供IaaS产品。这些公司以及美国Clarifai公司和Cloud Sight公司也提供图像识别应用程序编程接口(API)以开发应用程序。
图2:利用谷歌地图和覆盖的卫星成像仪,纳米比亚洪水 表为科学家提供了有关该地区洪水不断更新的信息。
在Gaurav Oberoi的 站(http://bit.ly/VSD-5API)上,比较了其中五种图像识别功能,并提供了一款名为“Cloudy Vision”的开源工具,以便开发人员可以测试他们自己的图像,并为他们的应用选择最佳解决方案。目前提供这类服务的公司中,谷歌和Cloud Sight都允许开发人员通过简单地将图像拖放到基于Web的界面来测试功能。
车牌拍照
为了更好地理解这类基于 络的图样识别系统的有效性,Vision Systems Design的工作人员决定使用新加坡Optasia Systems公司在本刊“神经 络帮助识别车牌服务于交通控制”一文中展示过的相同图像,来处理自动车牌识别(ANPR)问题。
Optasia Systems公司开发的IMPS AOI-M3系统使用德国Basler公司的相机,以及运行于主机上的基于本地软件的前馈人工神经 络。
使用Optasia Systems公司提供的相同图像,将在明亮的阳光下和黑暗中拍摄的汽车图像(见图1),两者大小分别大约5MB和0.5MB,首先上传到谷歌的Cloud Vision和Cloud Sight的图像识别软件。使用大约17Mbps的上传速度,谷歌的Cloud Vision对图1a和图1b的分析结果分别在大约8秒和4秒内返回。考虑到传输图像并返回结果所需的最短时间大约为2.5s,处理丰田的大幅高亮度图像数据花费了大约6秒。返回结果都清楚地标识了每辆汽车的车牌。当同样的图像上传到Cloud Sight的图像识别软件时,该汽车在上传和处理时间约3秒后被识别为丰田车。
显然,Dan Marinescu教授概括的延迟和带宽波动,通常会影响应用程序的性能。但是,即使将图像传输速度降至使用最快光 络的最低值,系统仍是非确定的,并且表现出一定程度的延迟。如果将来自简单摄像机和照明系统的带时间戳的图像传输到这种基于云的软件,则可能不需要本地处理能力,从而减少此类系统的尺寸和成本。
科学的解决方案
虽然处理捕获图像的结果可能(还)不会像使用本地、更确定性的系统那样快,但这样的配置在确定性和延迟效应不太重要的车牌识别、医疗和遥感系统中,将是非常有益的。
例如,澳大利亚沃尔特和伊莉莎霍尔学院(Walter and Eliza Hall Institute)的研究人员,与澳大利亚DiUS公司共同开发基于AWS云的系统,以便在计算机集群上执行图像分析。
“由于沃尔特和伊莉莎霍尔学院每周常规会产生2-3TB的图像数据,因此图像分析显示出了计算需求的瓶颈,”DiUs公司软件工程师Pavi De Alwis说道,“科学家们也受到计划、共享计算和存储基础架构需求的限制。”为了克服这个问题,威斯康星大学麦迪逊分校的Curtis Rueden所维护的Fiji/ImageJ开源图像软件,被移植到AWS的Elastic Compute Cloud(EC2)中,这种计算配置允许用户租用“虚拟”计算机来运行其应用程序。所使用的计算机集群的图像处理工作负荷的基准可在 址http://bit.ly/VSD-DIUS中找到。
图3:在实施其基于云的Neural Vision软件时,Cyth Systems公司提供了一种培训机器视觉系统以自动识别缺陷等特征的方法。将图像上传到云端服务器系统后,图像的关键特征被手动标记、处理和分类。然后分析结果,以确定特征已被识别的精确度,如果结果令人满意,则将系统部署在生产线上。
同样,遥感应用正在开展开源项目。其中之一是Project Matsu,由美国国家航空航天局(NASA)和Open Commons Consortium公司合作,旨在开发用于处理卫星图像的基于云的系统。
使用Apache Hadoop(由美国Apache Software Foundation提供的开源软件框架,用于分布式存储),Project Matsu的开发人员已使用Hadoop的MapReduce编程模型来开发Project Matsu的“Wheel”。该软件框架对来自NASA Earth Observing-1(EO-1)卫星上搭载的高级陆地成像仪(ALI)和Hyperion高光谱成像仪的高光谱数据进行统计分析。然后显示为 表,即用户界面显示不断更新的有关洪水的信息(见图2)。
迈向机器视觉
在科学和医疗应用正在利用云计算的处理和存储功能的同时,一些机器视觉和图像处理供应商正在提供基于云的解决方案,作为其客户应用的部分或全部解决方案。
例如,美国国家仪器公司认为既包括云计算、又包括公司称之为“edge”计算的混合方法,是一种结合了实时和基于云计算益处的解决方案。“在该场景下,云用于大型计算和数据汇总职责,而edge节点提供确定性的逐秒分析和决策制定,”视觉产品经理Kevin Kleine说。“这种赋能有助于实现可追溯性、流程优化、原始图像和结果汇总、深度神经 络模型培训和系统管理等优势,同时不会牺牲在线‘合格/不合格’分析所需的延迟和确定性。”
这样的云系统汇总来自edge计算节点的数据,并且可以部署算法,或将更新处理送回具有紧密反馈回路的edge系统。“在理想系统中,可以根据从边缘节点收集的最新数据,以云中的设定节奏(例如每天)训练神经 络。然后可以将一个新模型部署到所有适当的边缘节点,以使用最新的算法对它们进行更新,实现其逐秒计算和决策职责。”Kleine说。
NI已经开发了适合这种架构的几种组件。虽然NI通过LabVIEW云工具包集成了云服务,尤其是AWS,但其SystemLink系统管理软件,为分布式测试和测量应用提供了集中管理能力。此外,该公司的工业控制器产品线还为机器视觉提供了优化的边缘计算节点。
“我不认为机器视觉检测流程很快就能在云中运行,”德国Stemmer Imaging公司执行总监Mark Williamson说,“在诸如机器视觉系统的边缘流程中,可能会将结果和/或不合格的图像发送到云端。这通过使用OPC统一架构(OPC-UA)实现,以连接到可与所有云提供商以及基于SAP的工厂控制系统连接的安全数据平台。在这里,云的目标是运行分析以识别趋势和常见故障,并提供非实时趋势。工厂将选择想要的平台,然后期望机器视觉系统与它们交互。Stemmer的OPC-UA接口可以作为这些选项的桥梁。”
德国MVTec Software公司市场营销和业务发展总监Maximilian Lückenhaus博士同意Kleine的观点,即延迟对于在机器视觉环境中实施云计算来说,是一项巨大挑战。
“任务必须在几毫秒内完成,因此延迟极其重要。由于这可以通过大幅减少图像数据的大小来克服,所以面临的挑战是压缩图像,以便图像处理算法仍然可以提取相关信息。”将来,自适应压缩任务可能会用于解决这个问题。“另外,”他说,“许多客户不希望敏感数据在公司 络外传输,因此有些用户使用现场‘私有云’。”
MVTec公司的软件HALCON已经允许客户构建自己的基于云的解决方案,该公司目前正在与其客户联系,以了解他们的未来需求。“虽然存在朝向PaaS的趋势,”Lückenhaus说,“但MVTec不会只关注一家提供商,因此我们计划支持各种云提供商,例如谷歌和微软。”
大数据集
处理大量图像数据的其他供应商必须进行相对快速的处理,这些供应商更接受采用纯云概念。美国Cyth Systems公司技术营销工程师Ryan Bieber表示:“我们利用了云的近乎无限的数据存储和广泛的计算能力,从而充分利用了云技术。”在实施Neural Vision软件时,该公司提供了一种自动识别缺陷等特征的方法。将图像上传到AWS或基于谷歌的云端服务器系统后,图像的关键特征被手动标记(见图3)。
利用NI开发的图像处理算法,对图像特征执行边缘检测和颜色分析,然后图像分类器使用结果来提供对象进行分类的加权值。“一旦这个过程完成,”Bieber说,“Cyth Systems与其客户分析结果,以确定特征的识别准确度。如果结果令人满意,系统将部署在生产线上。”
与Cyth Systems公司一样,加拿大Matrox公司的Matrox成像库(MIL)也用于处理基于云的系统中的大型数据集。为此,Matrox的客户可以授权MIL在Microsoft的云平台Azure上运行。其中一位客户提供的服务可以自动检查客户上传到云端的蓝图。然后使用MIL识别这些图纸上的符 ,以生成详细的内容 告,然后将其提供给客户的客户。
基于云计算的机器视觉和图像处理系统的未来取决于一些变量,例如安装可以传输图像数据而没有过度延迟、抖动和数据包丢失的 络,图像数据是否能以可接受的速度进行处理,以及这种分析的结果是否能及时用于控制基于 络的系统,如机器人、驱动器和照明控制器。
“在延迟、抖动和数据包丢失方面的严格要求,使通用云不适合实时交互式多媒体服务,”西班牙胡安卡洛斯国王大学的Luis López教授说。出于该原因,欧盟委员会资助了NUBOMEDIA,这是一款开源PaaS,允许使用简单的API来配置计算机视觉应用程序。
图4:组合运动探测器元件和面部识别元件,可以实现元件的流水线。在这种情况下,当探测到运动时,将尝试探测图像中的面部。
基于Kurento、Web实时通信(WebRTC)协议和API,计算机视觉算法将使用抽象底层代码复杂性的API进行配置。例如,将运动探测器元件和面部识别元件组合起来,可以实现元件的流水线(图4)。在这种情况下,当探测到运动时,软件会尝试探测图像中的面部。
尽管取得了这些进展,但要使“云中”机器视觉成为现实,还有很多事情需要完成。现在新兴的基于智能FPGA的相机可以执行板载坏点校正和Bayer插值,GenICam等标准格式可以在XML描述文件中描述这种相机的属性,高速光纤接口可用于许多此类相机。
为了确保大图像可以有效地传输到主机,需要高速、低延迟的 络将这些数据传输到基于云的系统。在那里,系统集成商可能需要多个通用、分布式计算机,可配置和可分区的FPGA,以及基于GPU的处理器来执行图像处理任务。为了确定实时机器视觉应用是否能够以这种方式执行,需要开发软件工具来确定这种系统的延迟、抖动和数据包丢失。更重要的是,即使已开发好,说服那些工厂的工作人员将这些任务交给基于远程服务器系统的工作人员,也不是一件容易的事。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!