OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2711|回复: 1

机器学习提升嵌入式视觉应用

[复制链接]

31

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2020-5-13
在线时间
16 小时
发表于 2020-5-22 16:19:07 | 显示全部楼层 |阅读模式
机器学习将持续作为众多应用的重要推动因素,尤其是视觉导向的机器人或所谓的「协作机器人」应用。结合处理器核心与可编程逻辑的异质SoC,能打造出高效且可重配置的解决方案。
在目前的嵌入式视觉领域中,最热门的话题之一就是机器学习(machine learning)。机器学习涵盖多个产业重要趋势,不仅是嵌入式视觉(Embedded Vision;EV),而且在工业物联网(IIoT)和云端运算中均发挥极为显著的作用。
对于不熟悉机器学习的人来说,很多时候机器学习是透过神经网路的创造和训练而实现的。神经网路(neural network)一语极为通用,包含大量截然不同的子类别。这些子类别的名称一般用于辨识被实现的具体网路类型。这些网路在大脑皮层上建模,大脑皮层中每个神经元接收输入、处理后并将其传达给另一个神经元。因此,神经元一般由输入层、多个内部隐藏层和一个输出层组成。
在最简单的层面上,神经元取得输入、施加权重给输入,然后在加权输入总和上执行传递函数。其结果随后传递至隐藏层中的另一层,或传递给输出层。将某一阶段的输出传递给另一阶段而不形成一个周期的神经网路被称为「前馈神经网路」(FNN),而那些存在反馈、内含定向周期的神经网路则被称为「循环神经网路」(RNN)。
在众多机器学习应用中极为常用的神经网路之一是「深度神经网路」(DNN)。这类神经网路拥有多个隐藏层,能实现更复杂的机器学习任务。为了确定每一层使用的权重和偏差值,必须对神经网路进行训练。在训练过程中,为该神经网路施加一定数量的正确输入和错误输入,并使用误差函数教授网路所需的性能。训练深度神经网路可能需要相当庞大的资料集,才足以正确训练所需性能。
机器学习最重要的应用之一是嵌入式视觉领域,其中,各类系统正从视觉实现的系统演进为视觉引导的自动化系统。相较于其他较简单的机器学习应用,嵌入式视觉应用最主要的区别在于采用二维(2D)输入格式。因此,在机器学习实施方案中,采用称为卷积神经网路(CNN)的网路结构,因为它们能够处理2D输入。
CNN是一种前馈网路,其中包含多个卷积层和子采样层以及一个单独的全连接网路,以执行最终分类。由于CNN的复杂性,它们也被归类在深度学习类别。在卷积层中,输入影像被细分为一系列重叠的小模组(tile)。在进行进一步的子采样和其它阶段之前,来自该卷积的结果先使用启动层建立启动图,然后应用到最终的全连接网路上。CNN网路的具体定义取决于所实施的网路架构,不过,一般通常至少包含下列元素:
卷积—用于辨识影像中的特征
‧修正线性单元(reLU)—用于在卷积后建立启动图的启动层
‧最大池化(Max Pooling)—在各层间进行子采样
‧全连接—执行最终分类
这些元素中的每一个权重都经由训练决定,而CNN的优势之一就在于训练网路相对容易。透过训练产生权重需要庞大的影像集,其中既有需要检测的物件,也有伪影像。这样能让我们为CNN建立所需的权重。由于训练过程中所涉及的处理要求,训练流程一般执行于提供高性能运算的云端处理器上。
架构
机器学习是一个复杂的课题,尤其是如果每一次都得从头开始,定义网路、网路架构以及产生训练演算法。为了协助工程师实作网路和训练网路,有一些产业标准架构可供使用,例如Caffe和Tensor Flow。Caffe架构为机器学习开发人员提供各种工具库、模型以及具有C++库的预训练权重,同时提供Python和Matlab绑定。该架构能让使用者无需从头开始,就能建立并训练网路,以执行所需的运算。
为了便于重复使用,Caffe的使用者能通过model zoo共用自己的模型。Model Zoo提供多种能根据所需的专门任务实作和更新的模型。这些网路和权重定义在prototxt档案中。在用于机器学习环境时,prototxt档是用于定义推论引擎的档案。
实现嵌入式视觉和机器学习
基于可编程逻辑的解决方案越来越广泛地用于嵌入式视觉应用,例如异质的赛灵思(Xilinx) All Programmable Zynq-7000 SoC和Zynq UltraScale+MPSoC等多处理器SoC(MPSoC)。这些元件结合了可编程逻辑(PL)架构以及处理系统(PS)中的高性能ARM核心。这种组合形成的系统能够拥有更快的回应速度、极其灵活以便于未来修改,并且提供了高能效解决方案。
对于许多应用来说,低延迟的决策与反应时间极为重要,例如视觉导向的自主机器人,其回应时间对于避免对人员造成伤害、对环境造成破坏至关重要。增加反应时间的具体方法是使用可编程逻辑,实作视觉处理流水线,以及使用机器学习推断引擎实现机器学习。
相较于传统的解决方案,在这方面使用可编程逻辑,能够减少系统瓶颈问题。在使用基于CPU/GPU的方法时,每一阶段的运算都必须使用外部DDR,因为影像不能在有限的内部快取功能之间传递。可编程逻辑途径让内部RAM得以按需要提供缓冲,从而实现串流的方法。如此则可免于在DDR内储存中介元素,不仅减少影像处理的延迟,同时也降低了功耗,甚至提高了确定性,因为无需与其他系统资源分享存取。
文章来源:http://emb.hqyj.com/Column/20209415.html

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2019-7-11
在线时间
1 小时
发表于 2020-5-22 16:19:08 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-28 13:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表