机器学习的边缘性应用
扫描二维码
随时随地手机看文章
深度学习是实施机器学习的众多方法之一,通常使用神经网络(NN)完成学习阶段,来自动决定最相关的数据部分,加以分析,进而推理出最合适的响应。NN技术在训练阶段需要海量数据,因此,这一方面的研究和发展还有很大的提升空间。
一直以来,科幻小说和电影都将机器刻画成拥有完全自主能力和智慧的存在,远超普通人类。这些内容让人倍感激动,并提出了一些具有挑战性的问题,但是我们距离能将这些虚拟构建的内容变成能够在真实世界中存在的机器还有多远呢?
就像每部优秀的电影一样,技术进步的条件也是:具有足够的利益驱动、基础足够牢靠、商业案例切实可行并有优秀的人才配合实施计划。现在,所有这些条件都已经具备,机器学习的发展势头也非常迅猛,已经广泛用于各种范围的应用,例如,语音识别和控制、人脸识别和身份识别、智能检测和手势控制、物体检测和识别、异常检测和增强现实等。
在我们深入探讨之前,需要先解释一些常见的机器学习术语。
人工智能(AI)是一个非常宽泛的概念,是指使用机器完成“智能”的事情并像人一样能够决策和行动。在这一领域的解决方案一直都非常专业且门槛很高。
机器学习(ML)是实施AI的众多方法之一。这个概念是如果您向自学习机器发送大量数据,让它们学习如何自行判断并完成任务,而不需要针对每个行为进行明确编程。这样的事情正在发生,并且迅速得到广泛应用。
平衡机器学习的性能与成本
机器学习研究和开发之初使用的是全球最强大的计算机,而且许多训练和推理仍需在云端的超级计算机和服务器区上完成。但是现在,技术已经进步到足以将机器学习从云端移动到边缘,这样更实用。
我们为什么要在边缘实施机器学习?主要是为了提升用户体验。人们不希望设备花费太长时间来识别人脸和服从命令。如果在云端完成识别和响应,这很可能出现延迟、降低可靠性,并且更可能出现不合适的响应。
服务型机器人、无人机和自动驾驶车辆等可以移动的机器对边缘端机器学习具有更大的需求,因为它们必须持续收集传感器输入、推理出设备目前的状态并在毫秒内决策下一步行动。物理定律限制了通过无线连接到遥远的云端服务器来进行如此密集的数据收集和实时响应。简而言之,可以移动的自动化机器需要完全独立、可靠的机载学习和决策制定。
许多人和机器都需要保护隐私、保护重要数据和通信内容,以防遭受黑客攻击和复制。我们发现,防止未经授权的应用使用语音、视频和传感器数据的需求越来越高。显而易见,当原始数据存放在本地边缘机器上时,很少甚至不需要向云端传输数据,这样更容易保护用户的安全与隐私。
最后,技术成本已经降低到足够低的水平,以便将机器学习处理应用在楼宇、家庭和车内的边缘设备中。现有的云端带宽、处理和存储费用可在以后进一步降低甚至消除,这可以抵消将机器学习从云端迁移到各类型边缘设备或传感器节点所带来的成本。
开启机器学习革新
恩智浦及其和合作伙伴一直以来不断合作,提供集成式硬件、软件和工具,开始为实际应用开发价格合理且实用的机器学习解决方案。通过合作,我们正在构建业内最广泛、可扩展性最高、基于Arm®技术的处理平台,它可以允许任何开发扩展或收缩,以针对每个特定用例制定高性价比解决方案。这会使软件和平台得以高度再利用,并降低维护和拥有成本。
作为开展机器学习的第一步,许多NN解决方案在复杂的集中式计算平台上建造训练模型或推理引擎,之后还可以在边缘端的小型设备上运行。训练模型或推理引擎是一组数学等式,可以检测或识别对象、语言或预期行为中的变化。TensorFlow和Caffe是使用应用编程接口(API)来解决复杂数学问题的框架示例,使在不同平台和硬件资源类型之间迁移训练模型和应用变得更加简单。
下一步是从大量市面上已经存在的平台中选择一个并将训练模型迁移到这个平台。用于低带宽传感器输入的机器学习通常可以由基于Arm Cortex®-M4或Cortex-M7技术的超低成本MCU(例如恩智浦的i.MX RT跨界处理器)处理。典型功能包括关键词声学检测、特殊声音或异常情况侦测,例如振动或环境异常变化。 对于有限数量的人或单词,人脸和语音识别也可以使用基于Cortex-M的微控制器运行。
随着复杂性的增加,尤其是在使用摄像头传感器输入的情况下,可能会需要使用具有多核处理能力的设备,例如,具有一到四个Arm Cortex-A53内核、以及一个Cortex-M7内核的i.MX 8M Nano应用处理器,具有OpenCL功能的GPU,MIPI-CSI摄像头输入和许多其他集成功能。
通过该平台,您能够利用小尺寸(40 x 48 mm)量产型片上系统(SoC)快速从原型扩展到生产,该系统内置运行Linux®操作系统的i.MX 8M四核应用处理器、eMMC内存、LPDDR4 RAM、Wi-Fi®和蓝牙无线电以及Google强大的Edge TPU协处理器。Edge TPU是Google设计的一款小型ASIC,可在低功耗(4 TOPS,2W)下提供高性能的机器学习推理,并能够以高于每秒100帧的速度运行MobileNet v2等移动视觉模型。
为了获得更高的对象识别能力,您也可以使用i.MX 8QuadMax等应用处理器,这类处理器集成了两个Cortex-A72、四个Cortex-A53、两个Cortex-M4内核、两个具有OpenCL和OpenVX视觉扩展的GPU、一个DSP、最多可处理八个单通道摄像头的八个MIPI-CSI通道以及其他多通道摄像头组合。Basler(德国)和Congatec(德国)在i.MX 8QuadMax上展示了其组合的机器视觉和对象识别购物解决方案,并且正在迁移到i.MX 8M系列以进一步优化成本。
有了这些可供选择的硬件解决方案后,接下来我们还需要工具来优化性能、降低系统成本、增加响应时间和准确性,以及优化每个训练模型或推理引擎使用片上资源的方式。
机器学习软件开发环境
随着机器学习迁移到边缘,最大的挑战之一是在资源受限的设备上部署机器学习应用,尤其是已经在云中构建机器学习应用的情况下。为了直接在边缘设备上运行,必须优化这些模型并将其与支持特定计算机硬件类型的推理引擎(即CPU、GPU、DSP或机器学习加速器)进行匹配。
Au-Zone Technologies Inc.提供了许多带工具的机器学习演示,可以优化各种设备的解决方案。他们的DeepView™机器学习工具包和RunTime推理引擎可帮助开发人员在各种嵌入式MCU、CPU、GPU和机器学习加速器上快速设计、训练和部署深度学习网络。Au-Zone的智能物联网开发套件建立在机器学习工具包的基础上,提供一系列经过验证的传感器、处理器和模型组合,以支持极其快速的原型制作、定制和商业部署。
恩智浦的eIQ™机器学习软件开发环境支持具有推理引擎、神经网络编译器和优化库的机器学习算法,这些算法专门针对恩智浦MCU、i.MX RT跨界处理器和i.MX应用处理器。eIQ利用了开源技术,并且已完全集成到恩智浦MCUXpresso软件开发套件(SDK)和Yocto开发环境中。可以处理所有机器学习软件的依赖关系,包括将先进的机器学习技术连接到底层计算引擎所需的必要硬件抽象层,从而帮助开发者更轻松地开发完整的系统级应用。
在此视频中,Arcturus Networks Inc.介绍了他们使用eIQ开发环境迁移ArmNN和OpenCV模型以确保公共安全的经验。
eIQ软件开发环境正在迅速扩展。 我们已经部署并优化了其对多种技术的支持,例如CMSIS-NN、TensorFlow、TensorFlow Lite、OpenCV和Arm NN。eIQ软件结合示例应用进行对象检测和语音识别,为在边缘部署机器学习奠定了基础。正在进行或计划进行进一步开发以提供:
基于目前热门的的神经网络框架(例如TensorFlow、Caffe和ONNX)导入预训练模型的准则
端到端示例应用演示了典型的客户用例,例如,摄像头推理引擎
支持新兴的神经网络编译器,例如,GLOW
一套传统机器学习算法,例如支持矢量机器(SVM)和随机森林
云端解决方案
尽管在本地计算机上运行机器学习模型有明显的好处,但是我们不能忽视由Amazon和Microsoft等领先服务供应商提供、基于云的热门机器学习解决方案的优势。他们提供语音、视觉和其他机器学习服务,以及强大的开发工具包,这些工具包易于使用、成本低廉且工作量最少。
Amazon的参考解决方案可以帮助您使用内置的Alexa™语音服务(AVS)来创建交互式产品。这些工具包包括芯片组、语音处理技术和客户端软件,经过认证可以利用在各种处理器上运行的AVS应用编程接口。
Microsoft通过由恩智浦i.MX RT106C跨界处理器支持的Azure IoT异常检测解决方案,为Azure IoT用户带来了人工智能(AI)和机器学习(ML)功能。该工具箱提供一整套传感器和相关的异常检测工具箱,利用各种机器学习算法,如随机森林和简单向量机(SVM),模拟设备的正常行为,并通过本地和云组合机制,检测异常行为。对于旋转组件、状态检测和入侵检测的预测性维护应用等,这样可以在保持完整的在线日志记录和处理能力的同时大幅降低云带宽要求。
微软和恩智浦还宣布携手合作,提供新的Microsoft Azure Sphere认证跨界应用处理器,以在边缘节点处理器上无缝运行Azure Sphere安全平台,该处理器将提供多核异构计算、丰富的图形体验和低功耗音频处理能力。
恩智浦将继续与领先的软件和硬件公司、研究人员和分销商合作,提供机器学习解决方案,涵盖范围从通用示例代码和参考设计,到经认证的即用型专用平台,可以让您灵活地添加自定义功能。
技术已经准备就绪,恩智浦也已经准备就绪,助您将机器学习理念发展为现实世界中价格合理且安全的产品。