日期
07/02
2024
咨询
  • QQ扫一扫

  • Vision小助手
    (CMVU)

嵌入式深度学习的特点及Euresys Easy DeepLearning的嵌入式应用
收藏
2024-07-02 14:47:05来源: 中国机器视觉网

嵌入式深度学习的定义

深度学习成为图像处理和机器视觉的一个技术热点,已经有一段时间了。无论是上游视觉厂商还是下游用户,对于该技术和相关产品及应用的关注,依然保持着高度热情。整个业界也在继续努力推动该技术向更多的领域发展。嵌入式深度学习是深度学习的一个尚未充分发展的分支领域,它具有独特的技术规格,市场对其也充满了需求和机遇。

嵌入式深度学习,是指在嵌入式设备中通过深度学习算法实现图像获取、信息处理、数据输出和最终系统决策的特定架构的深度学习技术。狭义上的嵌入式深度学习,图像获取和算法都在嵌入式设备端侧运行,是边缘AI的一种。

嵌入式深度学习系统的特点

嵌入式深度学习继承了嵌入式视觉系统的特点和优点,包括:紧凑性、集成性以及低功耗特性。嵌入式深度学习可实现在较小尺寸的硬件上或者空间中实现,适用于便携式、移动性以及特殊空间要求的应用。由于从图像的采集获取到分析处理、数据的输出以及交互功能都集成在同一系统中完成,嵌入式深度学习的图像系统具有时延短、信息传输安全性高以及对外界干扰较小的特点。嵌入式深度学习所需要的功耗,也得益于其硬件特性而显著低于普通系统。

但这些特点也为嵌入式深度学习带来了技术上的一些限制。首先,在实时性能方面,嵌入式的数据吞吐量会受到硬件的限制,其上限通常要低于普通的视觉系统;算法的运行效率在嵌入式平台上也受限于具体选择的硬件,并非其强项。其次,由于嵌入式系统的系统资源,包括CPU的处理能力、内存容量以及数据传输的带宽,都比较受限;如何合理有效地利用系统资源,是嵌入式系统需要重点考虑的一个关键问题;对于一些大负荷任务,嵌入式系统本身也无法提供足够的功耗支持。最后,由于嵌入式系统的高度集成性,限制了系统的扩展性、灵活性以及场景的通用性。

鉴于以上限制,实现嵌入式深度学习就不得不在深度学习模型的训练以及部署的过程中,充分考虑这些技术限制,并做出合理的取舍和平衡。

模型能够实现的精度和检测速度,是深度学习最重要的考量指标。但是模型的精度和检测速度受到了多种因素的影响和制约,包括数据集的规模和质量、模型的架构和规模、训练策略和过程、硬件资源以及模型的部署等。

在嵌入式深度学习的实际应用中,模型的精度和检测速度是两种互斥的指标。硬件资源在性能、扩展性、功率支持等方面的制约,使得解决精度和速度的互斥,只能通过合理的取舍和各指标间的平衡来达成。这就增加了开发的繁琐性和难度。

如果一款嵌入式深度学习软件能够为开发者提供如下帮助,将能解决开发者面临的诸多问题,加速嵌入式深度学习落地应用:可以选择多种模型规模;提供各种手段解决训练过程中的迭代收敛以及过、欠拟合问题;有多种针对硬件优化的推理部署方案;在嵌入式系统上可以直接进行一体化的标定、训练、验证和推理等操作。

Euresys支持嵌入式深度学习的图像处理库Easy DeepLearning

Euresys的Easy DeepLearning是其图像处理软件库Open eVision的一部分,是专门为基于深度学习的图像处理和应用而开发的视觉软件产品。它提供了EasyClassify、EasySegment Unsupervised、EasySegment Supervised、EasyLocate - Axis aligned bounding box和EasyLocate - Interest Point Easy五个不同的工具,可以进行图像的分类、分割以及对象的识别。通过这些工具,开发者可以构建缺陷检测、物体识别、异常分析等视觉检测和图像处理应用。

微信图片_20240702145329.png

嵌入式Easy DeepLearning支持Jetson系列模块、Raspberry Pi 4及后续产品、基于ARM架构(aarch64)的各种主板和系统、AMD Kria K26 SOM模块等硬件,从而可以在以这些核心硬件为架构的嵌入式系统、智能相机、边缘控制器和IoT设备上,部署深度学习图像检测应用。

Easy DeepLearning在嵌入式平台上运行时,需要Linux64 ARM版本的操作系统以及兼容aarch64(ARMv8-A)架构的处理器,正常运行需要至少配置有512M的RAM和512M的存储空间。嵌入式版本的Easy DeepLearning针对平台特点进行了文件优化,提供更紧凑小巧的文件架构,以适应平台的资源限制性。

Euresys为嵌入式Easy DeepLearning也提供了用户界面Easy DeepLearning Studio。通过该用户界面,开发者可以进行数据的导入、标定、模型设置、训练、验证、推理测试和比较评估(具体的实现取决于嵌入式平台硬件的资源和支持情况)等一系列评估和验证工作。

微信图片_20240702145334.png

在完成了前期的评估验证工作之后,开发者可以调用相关库文件的API,将算法部署到整个应用工程中去,形成整体的视觉应用。嵌入式Easy DeepLearning支持C++编程开发API,可以使用Qt进行应用开发,或者在系统Console上直接进行编译。根据开发者的习惯或者硬件的实际情况,也可以在x86平台的Linux PC上进行开发,通过交叉编译输出ARM平台的应用。

Easy DeepLearning如何解决嵌入式深度学习应用开发的特定问题

嵌入式深度学习的整个应用开发流程,和普通深度学习一致。但嵌入式版本的Easy DeepLearning从开发者的痛点出发,提供了一系列功能来实现系统资源的有效利用,并且平衡吞吐量和运行效率的指标要求,帮助工程师们快速且轻松地构建嵌入式图像检测应用。

自动配置开发环境

嵌入式Easy DeepLearning在安装过程中会完成开发环境的自动配置,减少了开发人员在配置环境方面的繁琐工作,降低了出错机会,节省了额外的时间成本。

向导式界面

Easy DeepLearning在嵌入式系统下也提供了向导式界面Easy DeepLearning Studio,可以让开发者享受图形界面下一目了然的清晰开发流程。在Jetson系列平台的系统中,还可以直接进行数据导入、标定和训练。

微信图片_20240702145338.png

数据集分割

数据分割可以自动地将数据集随机分成训练集、验证集和测试集三种。通过数据分割,可以有效防止训练模型出现过度拟合的问题,提升模型损失和泛化性的指标。

微信图片_20240702145342.png

模型容量大小的选择

模型容量和拟合能力正相关。如果模型容量过小,会出现训练过程中的欠拟合情况。但如果模型容量过大,会导致臃肿庞大,而且图像的处理时间也会变长。在嵌入式深度学习应用中,选择容量合适的模型才符合实现性能资源平衡原则。

Easy DeepLearning为开发者提供了多种模型容量选择。在EasyClassify中提供Extra Small、Small、Normal、Large、Extra Large五种模型容量选择。而在EasySegment和EasyLocate中,也分别提供了Small、Normal和Large三种容量选择。

微信图片_20240702145346.jpg

开发者可以综合其对于实时性能和精度的考虑,选择适合于硬件资源的较小的模型容量。

推理引擎的选择和部署

Easy DeepLearning支持多种推理引擎。缺省的推理引擎为Euresys自己开发的推理引擎,支持所有的平台和推理硬件,具有良好的兼容性。而对于带有Nvidia GPU的嵌入式系统,例如Jetson系列平台,Easy DeepLearning对TensorRT提供优化支持,可以进行训练和推理。同时开发者还可以通过推理精度的选择,来达到模型的规模、推理速度和精度之间的平衡。

微信图片_20240702145350.png

Easy DeepLearning嵌入式深度学习应用

以下为利用基于ARM平台的智能相机实施的手机后盖划痕的检测。该应用采用了Easy Segment Supervised工具,通过图像分割实现缺陷识别。在智能相机捕捉到待测图像以后,运行在相机上的深度学习模型对输入图像中的缺陷进行识别,并输出加亮的缺陷。

微信图片_20240702145355.png

该应用的系统构成非常简单紧凑。图像采集、传输和处理均在智能相机内完成,检测速度完全满足生产要求,安装和维护都很方便,大幅降低成本。

嵌入式深度学习为机器视觉带来的机遇和挑战

Easy DeepLearning使得开发者可以轻松地在各种嵌入式平台上开发和部署深度学习视觉检测应用,从而将深度学习的适用场景拓宽到更多行业,比如电子装配、元器件检测、物流仓储、食品药品制造、医疗成像、机器人、无人机、IoT应用等。

嵌入式深度学习提供更多维度的系统指标:除了成本和性能,还有集成度、便携性、功耗、成品化或产品标准化等。这些指标使得开发者和使用者可以适配出更贴合应用场景、具有最佳效益和回报的应用。

目前嵌入式深度学习的推广也还面临着一些问题亟待解决。首先是它的生态问题:这包括各厂家之间软硬件没有统一的规格标准,产品兼容性较差,生态的完整性也有所欠缺。另外,在机器视觉领域,嵌入式系统开发者的群体并不够大,其从业时间也较短,经验和带有行业交叉性质的知识储备也期待提高。相信随着时间的推移,嵌入式深度学习遇到的问题会得到更进一步的解决。

(文章来源于互联网,如有侵权,请联系删除)