社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

点亮深度学习技能?让嵌入式平台来点升级吧

贸泽电子 • 1 年前 • 181 次点击  

图1

随着机器视觉在深度学习 (DL) 方法的推动下持续发展,我们在自动化和缺陷检测领域打开了通向无数可能性的大门。在嵌入式系统中集成深度学习有望实现变革,特别是在涉及机器人、自动驾驶汽车和工业流程的场景中。从智能门铃之类的自主活动到诸如使用无人机进行缺陷检测的复杂任务,结合更高端的机器视觉方法可提高这些智能设备的智能程度,让以前无法实现的功能成为现实。不过,这种融合本身也存在一系列挑战,包括延迟、能效、安全性和隐私性。要满足这些需求,就要仔细选择合适的算法、嵌入式系统的适应和部署策略,为创造更加智能、响应更敏捷的世界铺平道路。


Machine Vision

深度学习在嵌入式机器视觉中的应用


随着机器视觉的改进和基于深度学习的方法在自动化和缺陷检测工艺中取得长足进步,许多应用从集成深度学习技术中受益匪浅。工业自动化和家居自动化流程(特别是那些涉及武器、车辆或其他机器人元素的流程)从观察、理解和响应其环境以完成一系列动作的能力中受益颇多。

由于这些智能设备和嵌入式系统的工作环境复杂多变,因此越来越有必要在机器视觉中使用深度学习方法。这种增强的智能化水平可用于完成自主活动,如送货、地面维护、智能门铃和楼宇门禁、吸尘、制造和仓库打包。这些应用的其中一部分也涉及监控和缺陷检测。

对于使用无人机或其他小型自动驾驶车辆检测管道、电线、信号塔和其他资产是否存在缺陷等应用,添加基于深度学习的机器视觉也可以提高效率。有了足够的数据,这些模型就不那么脆弱,在不同条件下比传统的机器视觉模型表现得更加稳健。

然而,将深度学习引入机器视觉不仅成本高昂,还要考虑几个能够决定成功与否的计算和硬件要求。由于这些应用需要实时检测、分类和响应自动化流程中的缺陷或其他感兴趣的对象,通过网络发送数据以获得结果的时间就常常很有限。

因此,一旦将模型部署到设备上,所选择的硬件就需要具有较低的深度学习推理延迟。而且,根据具体应用,电源效率也可能是一个考虑因素,特别是对于像无人机或探测器这种使用内置电源执行检测工作的自动驾驶车辆。它们在充满电后的持续工作时间越长,工作效率就越高。由于深度学习需要大量的计算功能,因此确保其高效运行并对所使用硬件进行低功耗优化就十分关键。


嵌入式系统,如NXP Semiconductors i.MX 8M Plus评估套件,专门针对以上要求而设计,可以在不影响电源效率的前提下,将强大的人工智能加速功能纳入设计当中。这些应用的其他重要需求还包括安全性和隐私性。例如,在家居自动化应用或资产缺陷检测中,通常需要将数据保存在设备上(而不是共享到云端),或者需要确保流经网络的数据和通信完全加密。

当期望在自主机器人或车辆上实时运行这些算法时,直接集成高质量、低延迟、稳健的传感器数据用于机器视觉也至关重要,这一点应反映在硬件的选择上。



Machine Vision

嵌入式系统的算法选择


这些机器视觉应用的深度学习算法选择在很大程度上要受上述要求的影响。设计人员需要特别注意磁盘上的模型大小、内存和推理延迟。对于任何涉及从相机数据流中检测物体(例如缺陷、人、汽车、动物)的情况,都可能存在一个对大多数视觉输入有着广泛理解的预先训练或“基础”模型。这些开源模型会接触大量的数据,并且可以扩展到更细微的应用。

但是,当需要执行的任务与用于训练模型的任务显著不同时,性能测试就变得十分重要。例如,与识别人或汽车的任务相比,识别电线缺陷或管道内部缺陷的任务就涉及不同的对象和数据。

设计人员还应确保预先训练的模型架构针对嵌入式设备进行了优化。具体而言,应该选择一个足以在设备上运行的超小模型架构——目标为一个兆字节(而不是千兆字节)大小的模型。此外,模型的加载和使用不应过于缓慢,通常较大的模型才会出现这种情况。一般来说,已经采用了特定的技术来优化这些架构和模型权重,例如,权重剪枝或量化有助于在保持性能的同时缩小尺寸和降低复杂性。

选择嵌入式深度学习视觉模型还需要确保格式相对标准(如TensorFlow Lite),以便可能直接将其转换为设备的需求。幸运的是,开源视觉模型的可用广度意味着从头开始设计和训练深度学习模型在很大程度上已成为过去。



Machine Vision

使模型适应既定应用


在评估嵌入式模型用于机器视觉的适用性时,某些特定应用的性能可能并不理想。这可能缘于原始训练数据分布(例如获取设备和条件)与应用期望的实际数据之间存在差异。此外,应用可能存在基础模型,但是它们可以检测到的对象类型并不完全符合要求。

例如,执行对象检测的标准模型可能不包含缺陷或不常见兴趣对象所属的特定类别。在这两种情况下,设计人员都应该通过微调或重新训练来调整模型,以提高性能或适应目标任务所需的类别。这样做需要根据应用的识别和分类需求标记新的数据。这些数据采用开源数据集的形式,与从实际资产中获得的领域预期数据或自定义数据相似或一致,并根据需要进行标记。

找到合适的数据标记平台简化这一过程,如Labelbox或Label Studio,并将标注保持为深度学习的标准格式。一旦更新的模型执行到所需的级别,就可以开始部署。



Machine Vision

部署嵌入式模型


由于嵌入式系统有大量可用的模型格式,因此选择具有集成软件的硬件非常重要,这样可以简化模型移植。移植模型的第一步是编写数据预处理所需的代码,或者让图像处理应用利用已经包含这些代码的嵌入式系统。


例如,NXP i.MX 8M Plus评估套件与NXP eIQ®机器学习软件配合使用,其中包括机器视觉预处理管道,作为深度学习软件的一部分部署到板上。这些预处理步骤通常包括将原始像素流转换为RGB以及调整帧大小或裁剪帧。同样,在模型推断之后,可能需要一些后处理,例如将边界框覆盖在观看设备(如LCD屏幕)的相机输入上。

下一步是将模型转换为所需的格式,以便在嵌入式设备上运行,提供实时推理。这通常涉及将模型转换为标准格式,如开放神经网络交换 (ONNX) 格式,这样更便于优化硬件。接下来,模型和相邻的代码将打包到目标设备的机器可执行二进制文件中,生成一个捆绑包。有好几个开源编译器都可以完成这项任务,比如Facebook的Glow。此步骤的输出可以部署到用于给定应用的嵌入式系统中。由于移植模型的过程很复杂,涉及到上述部分的诸多子步骤,因此通常建议选择一个包含软件的嵌入式平台,以便更快捷、更简便地进行移植。


例如,NXP i.MX 8M Plus评估套件就是一款包含eIQ软件包的可编程套件,简单的点击操作就可以完成所有这些步骤。一旦设备运行了模型推理引擎,其输出就可用于目标应用——缺陷检测、工业自动化等。



Machine Vision

结语


在嵌入式系统的计算机视觉中集成深度学习功能可以比传统方法实现更复杂、更具创新性的应用。潜在的受益范围包括家居和工业自动化以及各个领域的缺陷检测。不过,这项工作需要仔细考虑延迟、能效、安全性和隐私等挑战,特别是在选择硬件时。算法的选择和改造也是确保目标应用性能优化的重要步骤。甚至嵌入式模型的部署也是一个精细的过程,需要合适的硬件和软件才能实现流畅的转换。

最终,这种融合将为需要计算机视觉的嵌入式应用造就一个效率与创新齐飞的新时代。


该发布文章为独家原创文章,转载请注明来源。对于未经许可的复制和不符合要求的转载我们将保留依法追究法律责任的权利。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/169819
 
181 次点击