机器视觉在过去十年中取得了长足的进步。能够检测视频帧内边缘和移动的最新算法,以及与图像传感器,可编程逻辑,微控制器和图形处理单元(GPU)相关的硅技术的进步,已帮助将其带入了广泛的嵌入式领域应用程序。可以下载到FPGA的更复杂的设计与新的开发环境(例如OpenCV)一起使用,以使嵌入式系统设计人员可以更轻松地访问机器视觉。

机器视觉的这种不断增长的扩散正在与将工业系统连接到物联网(IoT)的趋势融合。随着传感器变得越来越智能化(部分地由支持的计算机视觉算法驱动),因此生成的数据为工业系统的运行提供了宝贵的见解。反过来,这又开辟了监视设备的新方式,将自主机器人系统(如无人机)连接到物联网基础设施。

转向机器视觉的部分原因是带宽考虑,而另一个主要动机是使工业操作的更多部分自动化的前景。机器视觉的关键应用之一是检查系统。在过去的十年中,带有CMOS图像传感器的高性能相机系统的价格已大幅下降,从而可以在制造过程中更高分辨率地检查电路板和系统。这些相机模块与FPGA结合在一起,可以增加处理和决策的能力。这使摄像机可以对接收到的数据做出相应的响应,从而减少了通过网络发送视频的需求,并提高了整体操作效率。

将检查设备的机器视觉元素连接到物联网,可为正在对工厂性能进行分析的企业系统提供更多数据。机器视觉可以提供适合此类企业系统的抽象级别的信息,而不是原始数据。这显著降低了服务器和整个网络的带宽开销-企业系统正在处理来自物联网的数百万个数据点,因此服务器负载的任何减少都将有助于做出更及时的决策。

机器视觉摄取量的增加也为自动化工厂中的机器人制导系统打开了市场。因此,检查机器可以基于从机器视觉系统获得的结果,绕开中央企业服务器并直接与工厂中的其他设备进行通信。这样可以提高效率,并再次减少网络和服务器上的负载。机器视觉还被用于控制自动化设备,特别是在物料搬运中。这涵盖了从自动机器人控制系统到工厂周围物料转移到仓库中用于识别产品的自动拣选机的所有内容。

对于自主式物料搬运机器人,机器视觉就像在地板上确定一条线从一个位置到另一个位置一样简单。但是,它也可用于检测途中的人员或障碍物,从而使工厂操作员和机器人可以安全高效地协同工作。如前所述,产品拣选现在也采用了机器视觉,通过条形码识别物品,然后对齐机械手以捕获特定物品并将其放入篮子。摄像机和随之而来的本地处理都是必不可少的,并且作为广泛的物联网的一部分,拾取器/自主机器人也受到不断监控。

随着无人机越来越依赖于机器视觉,这种情况甚至扩展到了空中。事实证明,无人机是在难以到达的区域(例如,石油管道和天然气设施)进行检查的一种高效方法。除了允许无人机识别并接近特定目标区域外,以便可以对其进行更仔细地检查之外,机器视觉还被用于防撞目的-通过将摄像头系统连接至目标区域,避免固定障碍物甚至其他无人机。

然后是监视市场。越来越多地使用机器视觉在这里具有巨大的意义。无需每秒反馈百万位的视频数据供操作员查看,而是可以在本地处理视频并触发警报,而无需任何人工干预。在FPGA上运行的机器视觉算法越来越精确。结果,它们更好地区分了入侵者,动物或树上的叶子(例如)的移动,从而使操作员可以同时支持更多数量的监视节点。此外,监控摄像机本身可以指示其他机器响应警报。自主地面和空中车辆(如无人机)的组合可能会改变监视的整个方式。成像系统不是安装在固定的摄像机上,而是安装在机载飞行器上,该机在飞行过程中会不断监视该区域。这些无人机随后在电池电量耗尽时返回充电基地,并派出其他无人机代替它们。这意味着可以提供恒定的监视范围。更高级的机器视觉算法能够识别潜在威胁,然后召集其他空中和地面飞船到该地区以进一步监视情况-所有这些都无需操作员参与。相同类型的情况同样适用于农业应用,其中空运飞机上的机器视觉算法可以监视农作物的状况,并在出现问题时将操作员(或自动拖拉机)引导至目标区域响应动作的形式。

此处概述的应用程序已通过底层硬件和软件技术的进步而实现。机器视觉算法的结构越来越复杂,可以将它们下载到最新的FPGA和GPU。这些设备一次可以处理8或16个通道,支持每秒60帧的速率。它们还可以与OpenCV等高级软件结合使用。

最初,OpenCV最初主要专注于研究和原型制作,近年来已越来越多地用于从云到移动的各种平台上的已部署产品中。最新版本OpenCV 3.1已发布。以前的版本3.0是一项重大改进,将OpenCV提升到现代C ++标准,并合并了对3D视觉和增强现实的扩展支持。新的3.1版本引入了针对重要功能的改进算法,例如校准,光流,图像滤波,分割和特征检测。

未来的可能性

在机器视觉之后,机器学习是显而易见的下一阶段。计算机视觉算法能够提供对静止图像和视频内容的确定性分析,但是机器学习正在应用其他神经网络方法来“教”系统寻找什么。例如,最新版本的OpenCV现在支持用于机器学习的深度神经网络。

FPGA和GPU性能的提高为机器学习开辟了新的机会。这依赖于训练阶段,在该阶段中,神经网络显示了许多不同的图像,这些图像标记有感兴趣的对象,通常由实验室或云中的大型服务器系统处理。它产生一系列权重和偏差数据,然后将其应用于嵌入式设计中实现的同一网络。这个“推理引擎”使用这些权重来评估它正在查看的新数据是否包含那些对象。例如,最新的监控摄像头正在使用神经网络机器学习算法来超越传统功能(例如监视和记录),并提供其他视频分析功能(例如人群密度监视,立体视觉,面部识别,人员计数和行为分析)。然后可以将该本地处理交付到物联网中,从而集成到云中更广泛的分析软件中。