- 07/19
- 2018
-
QQ扫一扫
-
Vision小助手
(CMVU)
将软件代码从PC迁移到嵌入式系统以运行视觉应用程序会带来各种挑战。Basler的现场应用工程师Frank Karstens就这项挑战提出了自己的建议。
大多数传统的机器视觉系统都基于经典的PC设置,越来越多的机器视觉领域的公司开始认识到嵌入式方法的优势:低功耗、占空间少的、系统成本低的优势。
然而,将现有软件代码从经典PC设置转移到嵌入式目标需要克服一些挑战,例如不同的操作系统,Windows VS Linux;不同的处理器架构,例如x86 VS ARM;不同的相机接口,例如GigE VS MIPI CSI-2。
对于经典的基于PC的设置,业界已经通过2003年建立的GenICam(相机通用接口)标准找到了答案。
GenICam标准化摄像机配置和图像数据传输,并为软件开发人员提供标准API。 有针对各种操作系统和处理器架构的GenICam参考实例。 最重要的是,还提供了基于GenICam的相机制造商特定的SDK,这使得相机API更易于使用。 SDK支持的操作系统,处理器架构和相机接口技术的越多,用户从一种技术转移到另一种技术时的灵活性就越大,将代码的移植越容易。
在典型的基于PC的机器视觉应用中,GenICam有助于提供稳定的接口,并提供即插即用的功能。制造商A为GigE相机编写的代码可以很容易地由制造商B重复用于USB 3.0相机,用户只需要进行微小的修改。
然而,对于嵌入式视觉,情况有所不同。 有许多变量需要考虑。视觉传感器不一定是相机; 它可能是相机模块,甚至是裸CMOS传感器。 此外,处理平台的选择更多。经典CPU架构如x86,ARM,MIPS和PowerPC,必须与FPGA,GPU,基于DSP的方法等竞争。 从一个传感器或相机移动到另一个传感器或相机,或改变处理系统架构,很可能需要软件开发人员重写视觉软件的关键部分。
将代码从非嵌入式设置迁移到嵌入式设置时可能出现的挑战取决于所选的摄像头接口。 具有GigE或USB 3.0的嵌入式系统的代码实际上与非嵌入式方法的代码没有什么不同。 如果非嵌入式系统的相机接口代码是为符合GenICam的API编写的,并且只要目标处理平台提供这些接口,则现有代码可以在移植到嵌入式目标时重复使用而无需任何修改。
如果工程师想要使用MIPI CSI-2接口,则情况并非如此。 2003年,加速开发和产品发布周期,移动设备或组件供应商组成了移动行业处理器接口(MIPI)联盟。 CSI-2规范是目前用于将视觉传感器或相机机模块连接到移动处理器或SoC的头号标准。
MIPI CSI-2将成为嵌入式机器视觉应用最重要的相机接口。缺少像GenICam这样的标准化API使得重复利用已有代码变得困难。
对于软件开发人员来说,意味着找到一个相机SDK,为非嵌入式和嵌入式处理平台,操作系统和接口技术(包括MIPI CSI-2)提供最广泛的支持。 拥有一个统一的相机API意味着可以重复使用大量现有代码,并为用户提供更大的灵活性,使他们能够从一种技术转移到另一种技术,并将现有代码移植到新目标。