基于嵌入式系统的机器视觉技术简析

本文涉及的产品
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介:

空间有限且要求功耗较低的应用,通常是嵌入式计算机系统发挥作用的舞台。典型的例子是移动设备,从工厂中的移动测试设备到牙科扫描仪,其中运行的都是嵌入式计算机系统。嵌入式视觉也是机器人的一个极好解决方案,尤其是将相机集成到机器人的手臂上时。
在机器视觉领域,典型的相机集成工作是通过GigE或USB接口实现的,这可以说是一种将相机连接到PC(或IPC)的即插即用解决方案。与制造商的软件开发工具包(SDK)一起使用,可以轻松访问相机,这一工作原理也可以迁移到嵌入式系统中。
机器视觉
图:(a)传统的基于PC的通用机器视觉系统;(b)针对特定解决方案的嵌入式机器视觉或图像处理系统的相机模块组件,其在性价比方面更优化。

利用单板计算机(SBC),基本的集成原理依然不变。低成本且易于获得的单板计算机,在一块SoC电路板上包含了计算机的所有部分——RAM、存储器插槽、IO端口(USB 3.0、Gig-E等)。
常用的单板机,如Raspberry Pi或Odroid,都具有兼容的接口(USB /以太网)。还有一些行业公认的来自Toradex或研华等公司的单板机,均提供这些标准接口。
工业智能相机
图:许多相机制造商提供SDK版本,允许用户将相机集成到ARM平台上,就像将相机集成到Windows PC上一样。
主要区别在于这些单板机所配备的处理器类型。虽然已经有单板机提供基于x86架构的处理器,但是目前大多数单板机上的处理单元使用的都是ARM处理器,因为它们的功耗更低。
越来越多的相机制造商也提供在ARM平台上工作的软件开发套件(SDK)版本,以便用户可以像在Windows PC中集成相机一样,以熟悉的方式将相机集成到ARM平台上。
在最好的情况下,SDK为Windows PC和ARM这两种平台提供相同的功能和API(应用程序可编程接口),甚至软件应用代码的一部分可以重用。因此,相比于标准的基于PC的视觉系统,嵌入式视觉系统的相机集成工作更为简单。
当需要剥离更多的冗余处理技术时,针对某些特定应用的嵌入式系统,可以做到更精简的水平。这就是为什么许多系统是基于模块系统的(SoM)。这些非常紧凑的板卡式电脑模块只包含一个处理器(准确地说,通常是片上系统SoC)、微控制器、存储器和其他基本元件。

这种SoM需要安装在载板上,载板上具有为特定接口准备的插口。有了这样一个相对便宜的载板,系统可以很容易地针对特定应用和系统要求进行个性化设计,因为SoM是现成的产品,所以可以保证整个系统设置的低成本。

通常,这种设置也可以配备标准接口连接器(如USB)。在这种情况下,即插即用的好处与单板机或是基于PC的机器视觉系统是一样的。但是,这往往不符合非常具体和精简的系统设置的想法。同样,由于空间、重量或功耗方面的要求,USB接口可能并不合适,相反,会使用相机到处理器之间更直接的连接方式。

此外,许多嵌入式视觉系统是基于(或包括)FPGA(现场可编程门阵列)模块的。这些器件对于立体视觉产品或面部检测应用中所需要的计算工作是理想的。

所有这些都是为什么可能需要将相机直接连接到FPGA或SoC的原因。

特定图像数据传输

直接将相机连接到SoC用于图像数据传输,可以通过基于LVDS的连接或MIPI CSI2标准实现。这两种方法在硬件方面都没有明确的标准化。这意味着没有指定的连接器,甚至没有规划电缆内的通道数量。因此,为了连接特定的相机,通常需要在载板上设计匹配的连接器,并且不是标准形式。

MIPI CSI2是来自移动设备行业的标准,用于描述信号传输和软件协议标准。很多SoC具有CSI接口,并且有可用于选定的相机模块和专用SoC的驱动程序。但是,它们并不以统一工作方式,也没有通用的驱动程序。因此,可能需要单独修改驱动程序,并且与驱动程序的数据连接,可能需要在应用程序软件侧进一步修改,以实现图像数据的收集。因此,CSI2并不是一个安装后就可立即使用的解决方案。

虽然LVDS是高速数据传输广泛使用的连接方式,具有明确定义的信号传输原理,但LVDS中也没有用于图像数据传输的标准化软件协议。因此,也没有现有的标准驱动程序。一些制造商提供补充系统,如基于专有协议的具有LVDS输出的相机、以及具有相应适配驱动程序的处理板,它们能够直接协同工作。这种方式的优点是能实现一个易于集成的完整解决方案,但是用户在硬件使用方面会受到一定的限制。

其他制造商提供开放的基于LVDS的相机输出,其对于任何硬件集成都是免费的。在这种情况下,必须要创建一个驱动程序。实际上,这个信号处理可以在FPGA上执行。这种基于FPGA的图像抓取算法可以从头开始编程,但是也有一些工具可用于减少集成工作量。

例如,在这种FPGA上使用预开发的IP核。Basler公司具有LVDS接口的板级相机dart,提供的开发套件中就包括一个带有参考实现(FPGA编程)的处理板,以为集成视觉设备提供直接样本。

相机配置

这些板对板连接的另一个方面是相机配置。控制信号可以通过各种总线系统(CAN、SPI或I²C)在SoC和相机之间交换。到目前为止,业界还没有针对这个功能设置标准。目前哪些成像参数可以控制、以及如何控制,完全取决于相机制造商;即使支持或不支持GenICam的决定,也取决于制造商。但好消息是,所有这些总线系统都得到大多数SoC的支持。因此,使用适当的驱动程序,软件可以直接访问相机进行配置和更改成像参数。

一个开放的软件协议对于访问相机配置也很重要。Basler通过其pylon SDK中的I²C(作为的BCON的一部分实现LVDS接口)支持相机访问,从而提供简化配置编程的标准化API。
对于某些应用而言,嵌入式视觉可能是一个有趣的解决方案;一些基于GigE或USB的应用,可以使用单板计算机开发。由于这些类型的硬件很受欢迎,并且在价格、性能和质量标准(消费者和企业)方面选择范围较广,这使得嵌入式视觉成了很多情况下的理想选择。朗锐智科(www.loongv.com)多年来从事嵌入式开发及机器视觉方案服务,在嵌入式视觉技术具备丰富的经验,能为客户提供全面的技术支持及服务。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
7月前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶系统中的应用深入理解操作系统内存管理:原理与实践
【5月更文挑战第28天】 随着人工智能技术的飞速发展,图像识别作为其重要分支之一,在多个领域展现出了广泛的应用潜力。尤其是在自动驾驶系统中,基于深度学习的图像识别技术已成为实现车辆环境感知和决策的关键。本文将深入探讨深度学习算法在自动驾驶图像识别中的作用,分析其面临的挑战以及未来的发展趋势,并以此为基础,展望该技术对自动驾驶安全性和效率的影响。
|
7月前
|
存储 算法 定位技术
LabVIEW和NIUSRP硬件加快了认知无线电开发
LabVIEW和NIUSRP硬件加快了认知无线电开发
51 1
|
7月前
|
机器学习/深度学习 人工智能 算法
机器视觉:原理、应用与编程实践
机器视觉:原理、应用与编程实践
113 3
|
7月前
|
算法 Java C语言
嵌入式系统:技术原理、应用与编程实践
嵌入式系统:技术原理、应用与编程实践
142 0
|
7月前
|
传感器 数据采集 数据可视化
探究物联网技术的核心知识点:传感器、嵌入式系统和数据分析
探究物联网技术的核心知识点:传感器、嵌入式系统和数据分析
183 0
|
机器学习/深度学习 人工智能 算法
Orbeus 夏威:「嵌入式」和「云」是计算机视觉未来发展的两大方向
2012 年,Orbeus 的两位来自波士顿大学的联合创始人中止了原定的博士项目并拒绝了来自 Google 的 offer,毅然走向了创业的道路。2014 年,他们推出了一款手机终端图片搜索与管理软件 PhotoTime,早于 Google 发布的同类产品 Google Photos,甫一首发就被苹果商店选为当季最佳新应用。创业三年后,这家硅谷的明星创业公司被亚马逊所收购,开始了一段新的征程。
754 0
Orbeus 夏威:「嵌入式」和「云」是计算机视觉未来发展的两大方向
|
传感器 芯片
嵌入式系统降低功耗的设计技术
嵌入式系统降低功耗的设计技术
|
人工智能 计算机视觉 测试技术