当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]目前嵌入式视觉领域最热门的话题之一就是机器学习。机器学习涵盖多个行业大趋势,不仅在嵌入式视觉 (EV) ,而且在工业物联网 (IIoT) 和云计算中均发挥着极为显赫的作用。对

目前嵌入式视觉领域最热门的话题之一就是机器学习。机器学习涵盖多个行业大趋势,不仅在嵌入式视觉 (EV) ,而且在工业物联网 (IIoT) 和云计算中均发挥着极为显赫的作用。对不熟悉机器学习的人来说,很多时候机器学习是通过神经网络创建和训练来实现的。神经网络一语极为宽泛,包含相当数量的截然不同的子类别。这些子类别的名称一般用于识别被实现的网络的具体类型。这些网络均在大脑皮层上建模,在大脑皮层中每个神经元接收输入、处理输入并将其传达给另一个神经元。因此神经元一般由输入层、多个隐藏内部层和一个输出层组成。

 

图1:简单的神经网络

在最简单的层面上,神经元获得输入,施加权重给输入,然后在加权输入总和上执行传递函数。结果随后传递给隐藏层中的另一个层,或传递给输出层。将一级的输出传递给另一级且不构成循环的神经网络被称为前馈神经网络 (FNN),而那些有反馈、内含定向循环的神经网络则被称为递归神经网络 (RNN)。在众多机器学习应用中极为常用的神经网络是深度神经网络 (DNN)。这类神经网络拥有多个隐藏层,能实现更复杂的机器学习任务。为确定每层使用的权重和偏差值,需要对神经网络进行训练。在训练过程中,该神经网络施加有一定数量的正确输入和错误输入,并使用误差函数教授网络所需的性能。训练深度神经网络可能需要庞大的数据集来正确训练所需性能。

机器学习最重要的应用之一是嵌入式视觉领域,各类系统正在从视觉使能系统演进为视觉引导自动化系统。嵌入式视觉应用与其他更简单的机器学习应用的区别在于它们采用二维输入格式。因此,在机器学习实现方案中,通过使用称为卷积神经网络 (CNN) 的网络结构,因为它们能够处理二维输入。CNN 是一类前馈网络,内置多个卷积层和子采样层以及一个单独的全连通网络,以执行最终分类。鉴于 CNN 的复杂性,它们也归属深度学习类别。在卷积层中,输入图像被细分为一系列重叠的小模块。在进行进一步的子采样和其它阶段之前,该卷积的结果先通过激活层创建激活图,然后应用到最终的全连通网络上。CNN 网络的具体定义因实现的网络架构而异,但它一般会包含至少下列元:

● 卷积 – 用于识别图像中的特征

● 修正线性单元(reLU)- 用于在卷积后创建激活图的激活层

● 最大池化 – 在层间进行子采样

● 全连通 - 执行最终分类

这些元中每一个元的权重通过训练决定,同时 CNN 的优势之一在于训练网络相对容易。通过训练生成权重需要庞大的图像集,其中既有需要检测的对象,也有伪图像。这样能让我们为 CNN 创建所需的权重。由于训练流程中所涉及的处理要求,训练流程一般运行在提供高性能计算的云处理器上。

框架

机器学习是一个复杂的课题,尤其是在每次不得不从头开始,定义网络、网络架构和生成训练算法的时候。为帮助工程师实现网络和训练网络,有一些行业标准框架可供使用,例如 Caffe 和 Tensor Flow。Caffe 框架为机器学习开发人员提供各种库、模型和 C++ 库内的预训练权重,同时提供 Python 和 Matlab 绑定。该框架能让用户无需从头开始即能创建网络并训练网络,以开展所需的运算。为便于重复使用,Caffe 用户能通过 model zoo 共享自己的模型。Model Zoo 提供多种能根据所需的专门任务实现和更新的模型。这些网络和权重定义在 prototxt 文件中。在用于机器学习环境时,prototxt 文件是用于定义推断引擎的文件。

 

图2:定义网络的 Prototxt 文件实例

实现嵌入式视觉和机器学习

基于可编程逻辑的解决方案,例如异构赛灵思 All Programmable Zynq® -7000 SoC(片上系统)和 Zynq® UltraScale+™ MPSoC 等多处理器片上系统 (MPSoC) 越来越广泛地用于嵌入式视觉应用。这些器件将可编程逻辑 (PL) 架构与处理系统 (PS) 中的高性能ARM® 内核完美组合在一起。这种组合形成的系统拥有更快的响应速度,极为灵活便于未来修改,并且提供了高能效解决方案。对许多应用来说低时延决策与响应循环极为重要。例如视觉引导自主机器人,响应时间对避免给人员造成伤害、给环境造成破坏至关重要。缩短响应时间的具体方法是使用可编程逻辑实现视觉处理流水线和使用机器学习推断引擎实现机器学习。在这方面使用可编程逻辑,与传统解决方案相比可减少系统瓶颈问题。在使用基于 CPU/GPU 的方法时,运算每一阶段都需要使用外部 DDR,因为图像不能在有限内部缓存内的功能间传递。可编程逻辑方法使用内部 ARM 按需提供缓存,允许采用流媒体方法。避免在 DDR 内存储中间元不仅可降低图像处理的时延,而且还能降低功耗,甚至提高确定性,因为无需与其他系统资源共享访问。

使用赛灵思提供的 reVISION™ 堆栈,在异构 SoC 中能轻松实现图像处理算法和机器学习网络。基于 SDSoC™ 工具,reVISION 能同时支持传统图像应用和机器学习应用。在 reVISION 内部,同时支持 OpenVX 和 Caffe 框架。为支持 OpenVX 框架,内核图像处理功能可被加速到可编程逻辑中,以创建图像处理流水线。同时机器学习推断环境支持可编程逻辑中的硬件优化库,以实现执行机器学习实现方案的推断引擎。

reVISION 提供与 Caffe 的集成,这样实现机器学习推断引擎就如同提供 prototxt 文件和经训练的权重一样简单,框架负责处理其余工作。然后使用 prototxt 文件对运行在处理系统上的 C/C++ 调度器进行配置,以加速可编程逻辑中硬件优化库上的神经网络推断。可编程逻辑用于实现推断引擎,内含 Conv、ReLu 和 Pooling 等功能。

机器学习推断引擎实现方案中使用的数值表示系统也对机器学习性能有重要作用。机器学习应用正越来越多地使用更高效的降精度定点数值系统,例如 INT8 表达式。与传统的浮点 32 (FP32) 方法相比,使用定点降精度数值系统不会造成显著的精度下降。因为与浮点相比,定点数学在实现难度上也明显更低,转而采用 INT8 能在一些实现中提供更高效、更快速的解决方案。使用定点数值系统对在可编程逻辑解决方案中的实现方案而言相当理想,reVISION 在可编程逻辑中能与 INT8 表达式协同工作。这些 INT8 表达式方便在可编程逻辑中使用专门的 DSP 模块。在使用相同的内核权重时,这些 DSP 模块架构能实现最多两个并发 INT8 乘法累加运算供执行。这样不仅能提供高性能实现方案,而且还能够降低功耗。只要采用,可编程逻辑的灵活性也还便于实现进一步降精度定点数值表达系统。[!--empirenews.page--]

真实性

在真实环境中,reVISION 堆栈能带来明显优势。在嵌入式视觉应用中使用机器学习的应用实例之一,如车辆避碰系统。在 reVISION 中针对赛灵思 UltraScale+ MPSoC 并开发相关应用,使用 SDSoC 在可编程逻辑中按需为各项功能加速以达到优化性能,能明显改善响应性。在都用于实现 GoogLeNet 解决方案的条件下,将 reVISION MPSoC 的响应时间与基于 GPU 的方法进行对比,差异相当明显。reVISION 设计能在 2.7ms 内发现潜在的碰撞事件并启动车辆制动(使用的批量规模为 1),而基于 GPU 的方法则需要用时49ms-320ms(具体取决于其实现方案)(对大批量规模)。GPU 架构需要大批量规模才能实现合理的吞吐量,但会以牺牲响应时间为代价,而 Zynq 在批量规模为 1 的情况下也能以极低时延实现高性能。这种反应时间上的差异可以决定碰撞发生与否。

总结

机器学习将继续成为众多应用的重要推动因素,尤其是在视觉导向机器人或所谓的“协作机器人”中。将处理器内核与可编程逻辑结合的异构 SoC, 能创建非常高效、极具响应性且可重配置的解决方案。像reVISION 这样的堆栈的推出,首次将可编程逻辑的好处带给了更广阔的开发者社群,同时还缩短了解决方案的开发时间。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

北京——2024年3月29日 亚马逊云科技宣布,通过与光环新网和西云数据的紧密合作,在亚马逊云科技(北京)区域和(宁夏)区域推出文件存储服务Amazon FSx for OpenZFS,为客户提供基于 OpenZFS文件...

关键字: 生成式AI 机器学习 电子芯片设计

通过大量的数据,训练出一个能处理此类数据的模型,使得这个模型可以根据已知的数据,准确率很高的判断出未知的数据,从而使得人类能够采取正确的方法去处理某些事情。

关键字: 机器学习 模型 图像

在监督学习中,系统会被给定一组已知输入和输出,需要学习到一种函数,使得该函数能够根据给定的输入预测出正确的输出。代表算法有线性回归、逻辑回归、决策树、深度神经网络等。

关键字: 机器学习 数据源 图像

深度学习需要大量的计算。它通常包含具有许多节点的神经网络,并且每个节点都有许多需要在学习过程中必须不断更新的连接。换句话说,神经网络的每一层都有成百上千个相同的人工神经元在执行相同的计算。

关键字: 机器学习 神经网络 TensorFlow

今天,小编将在这篇文章中为大家带来机器学习的有关报道,通过阅读这篇文章,大家可以对它具备清晰的认识,主要内容如下。

关键字: 机器学习 TensorFlow PyTorch

在当今大数据和人工智能时代,机器学习作为核心的技术驱动力,正以前所未有的速度改变着我们的生活和工作方式。从基础的数据分析到复杂的决策支持系统,机器学习模型的成功构建和应用离不开一套严谨的流程。本文将详尽阐述机器学习过程中...

关键字: 机器学习 人工智能

机器学习作为人工智能领域的核心技术,其应用日益广泛,从搜索引擎优化到医疗诊断,从金融风控到自动驾驶等众多领域均发挥着重要作用。深入理解并掌握机器学习的关键步骤是成功构建高效模型和解决方案的基础。本文将详细阐述机器学习的主...

关键字: 机器学习 人工智能

本文中,小编将对机器学习予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 机器学习 深度学习

在这篇文章中,小编将为大家带来机器学习的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 机器学习 数据分析

北京——2024年3月27日,亚马逊云科技正式宣布,将与埃森哲、人工智能公司Anthropic展开全球合作,帮助企业,尤其是医疗健康、公共服务、银行和保险等受到强监管的行业,引入并规模化定制生成式AI技术,在追求创新、优...

关键字: 生成式AI 加速器 机器学习
关闭
关闭