机器视觉系统设计的组件

已创建:August 13, 2021
已更新:July 1, 2024

 

智能相机、计算机视觉、机器视觉……不管你怎么称呼它,视觉应用正在被集成到越来越多的产品中。大多数PCB设计师熟悉的经典应用是制造业,最近则是智能手机上的面部识别。那些经常与机器视觉设计和系统打交道的知情设计师正在见证许多独特的应用,如医学、汽车、机器人、航空航天、安全,当然还有其他领域。

 

电子行业发生的一个有趣现象是,随着新技术的不断普及,将其集成到新系统中变得越来越容易。机器视觉肯定已经跨过了一个门槛,标准化、开发者支持以及丰富的组件对于那些想在这一领域创新的设计师来说是可用的。如今,有几个流行的硬件平台是新设计师的入门选项。如果你已经超越了原型设计阶段,并且你正在准备生产级硬件,新的处理器正在使得利用机器学习等先进技术的更高度集成系统成为可能。

 

在这份指南中,我们将探索构建机器视觉系统所需的一些组件和嵌入式开发者可用的资源。机器视觉系统有一个重要的硬件和机械工程元素,因为我们正在处理相机和光学。这些系统的开发非常丰富,涉及多个学科的任务。幸运的是,组件制造商和开源开发者可以访问许多资源来帮助加速硬件设计和系统开发,我们鼓励感兴趣的开发者查看我们在这里展示的一些示例以开始。

机器视觉系统架构

就电子产品而言,机器视觉系统与其他系统相比有一个相当通用的架构。下面显示的框图展示了在机器视觉系统中实现的一个通用高级架构。这些系统可以有不同级别的集成和形态因素,下面显示的一些模块可能集成到更强大的处理器中。

 

高级机器视觉系统架构

没有一个典型的机器视觉系统可以作为其他设计的参考,因为机器视觉是一种能力,而不是产品或特定类型的设计。如上面的框图所示,机器视觉系统有共同的特征,但它们是用不同的组件集实现的。我们需要从处理器级别开始,看看图像处理算法如何能够高效地实现,而不是简单地列出支持机器视觉系统的组件列表。

FPGA、MPU还是GPU?

MCU或基于MCU的SoC一直很受欢迎,即使是对于实现机器视觉能力的系统也是如此。具有标准数字接口的MCU可以与专用于视觉处理的ASIC接口,而FPGA可以足够大以实现内联图像采集、DSP功能和其他系统级处理。GPU可以提供一个专用的外部视觉处理器,将数据返回给主控制器。

 

 

 

就进阶程度而言,MPU + FPGA或MPU + GPU架构更适合近实时机器视觉。它们也更适合处理高分辨率图像,因为FPGA/GPU可以实现并行化,这在需要高分辨率/高色深处理时可以缩短处理时间。这是FPGA的主要优势,因为逻辑灵活,但如果没有先前的经验,开发高级处理的管理和算法会更加困难。

 

所有这些并不是说MCU和MPU不能用作机器视觉应用中的主控制器。例如,你的手机和电脑就不使用这些,它们可以执行一些简单的图像处理任务,从低帧率视频和静态图像开始。公平地说,这些设备中的CPU/SoC往往比高端MPU具有更多的计算能力。MCU可以用于低分辨率、低帧率、低色深或单色图像处理,随着你增加更多计算能力,你可以处理更详细的图像。在生产中,MPU是更好的选择,因为你可能需要访问外部高速内存,这意味着你需要DDR RAM接口,可能还需要PCIe来连接一些外设,这些通常不会在较慢的MCU上找到。

特定应用与通用

如果你想在系统中实现更高级的图像识别和分割算法,那么你可能会选择SOM、COM或单板计算机作为你的机器视觉应用的主控制器。如果处理器有足够的片上内存和外部RAM,它通常可以实现大多数采集和处理任务,同时还运行一个应用程序来控制你的系统的其余部分。这些架构通常用于非常特定应用中的基于阈值的图像分割和对象检测任务,从低到中等帧率视频数据。

机器视觉设计的挑战

像许多其他本质上与低级模拟信号操作的设计一样,机器视觉系统和设计有自己的一套需要考虑的电气挑战。一些解决方案位于图像处理级别,其他则与系统级别相关,涉及到组件选择。以下是设计师在机器视觉设计中必须考虑的一些主要挑战:

 

  • 热管理:安装在更紧凑系统中的高分辨率摄像头在运行期间可能会接收大量热量,这可能需要散热片或通过外壳的气流来保持冷却。带有较小处理器和较大电路板的系统通常可以自行保持冷却,但是较小的电路板配备更快的处理器可能需要一个与外壳粘合的界面材料来移除热量。

  • EMI/EMC:由于机器视觉系统通常是混合信号系统,它们需要适当的布局来防止数字组件与CMOS传感器或CCD的输出之间的干扰。CMOS可能是更好的选择,因为数据转换是在芯片级别完成的。为了确保在紧凑系统中快速处理时准确恢复图像,请确保实施一些EMI抑制的最佳实践。

  • 电源完整性:视觉系统和HMI系统如果布局不正确,即使在设计没有使用高速组件或协议的情况下,也可能遇到电源完整性问题。这听起来像是一个可以通过过滤解决的问题,但事实并非如此。相反,解决方案可以简单到确保放置一个接地平面,用于路由所有进入主板的数字信号。

  • 安装光学元件:视觉系统需要光学元件来定义物体和图像平面,并在成像传感器上形成清晰的图像,以便进行数据采集。现代机器视觉系统需要一个稳定的安装支架,具有低滞后性,可能还需要带有集成电机控制的自动对焦。这既是一个机械设计挑战,也是一个电气设计挑战,后者涉及电机控制和定时电路的功率消耗。

 

您需要的组件

显然,我们不可能在本文中展示每一个可能的组件,因为那样会太长。我们能做的是给您提供一个好的组件列表,您可以用它来开始构建系统的不同部分。在下面的列表中,我包括了一些示例组件,您可以用它们来开始构建一个新系统的每个部分:

 

  • STM32MSP430这样的MCU是运行轻量级机器视觉系统和实现一些简单AI推理任务的好选择。

  • 对于需要更多计算能力的情况,Zynq FPGA平台是机器视觉系统的绝佳选择。Xilinx还为基于Zynq的机器视觉系统提供了大量的开发者支持。

  • CMOS图像传感器和CCD传感器可以是单色的或彩色的,并且它们有多种分辨率。像ON Semiconductor的MT9P031I12STC-DR1就是一个适用于高分辨率机器视觉应用的彩色CMOS传感器的好例子。

  • 对于开发高级应用,OpenCV是一套优秀的开源库,包括许多机器视觉系统中使用的标准图像处理功能。还有其他在线开源库可以用于更专业的应用开发。

 

对于图像识别、分割和带跟踪的对象识别等更通用的任务,我会推荐使用GPU或FPGA,而不需要对视频数据中的原始图像进行特定应用的预处理。我之所以在这里提及,是因为我们需要考虑如何与图像传感器接口,并且需要将传感器与处理器匹配。在FPGA中,采集逻辑和后续处理可以与应用的其他逻辑并行实现。

 

一个受欢迎的开放硬件平台,可用于系统开发是OpenMV。这些相机模块整合了图像采集逻辑、安装光学元件的硬件以及确保EMI/EMC和SI/PI的PCB。它们还与STM32 MCU和其他平台兼容。这是一个适合应用开发者使用的系统,他们想要使用外部处理器作为系统中更大应用的主控制器,但又不想深陷硬件开发和调试的困境。

 

M7相机模块(左)和FLIR Lepton适配器模块(右)。

 

将机器视觉设计与云集成

机器视觉在所有形式上都非常有用,我们不应该感到惊讶,高级的MCU、MPU或FPGA解决方案应该与云集成。根据如何利用云计算,您可能最好将处理任务卸载到数据中心,而不是在边缘执行,因此可以使用MCU或轻量级MPU。当现场需要快速处理时,应该在现场使用更强大的主控制器(FPGA、MPU + FPGA或MPU + GPU)执行处理任务。再次,选择取决于您在设备上执行的预处理量,以清理和压缩图像,然后将它们发送到云中进行处理。

 

对于涉及机器视觉的AI/ML应用,一些公司提供SoCs和ASICs作为较慢处理器的补充,或作为SBCs的附加模块。Google Coral就是这样的一个选项,充当专用处理器,用于运行涉及图像数据推理的TensorFlow Lite模型。其他选项正在从针对多视频流的AI推理的初创公司进入市场,理想情况下用更小的封装替换GPUs。

 

机器视觉系统需要做的远不止捕捉和处理图像。今天的系统是连接的,它们与多个传感器接口,您的机器视觉系统可能需要的一些其他组件包括:

 

 

机器视觉系统设计需要在多个领域的专业知识和与团队的合作,但这些系统的组件选择不应该困难。当您需要为您的机器视觉应用寻找组件时,使用Octopart中的高级搜索和过滤功能。当您使用Octopart的电子元件搜索引擎时,您将获得最新的分销商定价数据、零件库存和零件规格,并且所有这些都可以在用户友好的界面中免费访问。查看我们的集成电路页面以找到您需要的组件。

通过注册我们的新闻通讯,与我们的最新文章保持同步。

相关资源

返回主页
Thank you, you are now subscribed to updates.