0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机器视觉应用程序从神经网络中获取应用所需

电子设计 来源:郭婷 作者:电子设计 2019-02-21 08:18 次阅读

人工智能AI)长期以来一直是科幻作家和学者的主题。将人类大脑的复杂性复制到计算机中的挑战催生了新一代的科学家,数学家和计算机算法开发人员。现在,持续的研究已经让位于人工智能的使用,更常被称为深度学习机器学习,这些应用正日益成为我们世界的一部分。虽然基本概念已存在很长时间,但商业现实从未完全实现。近年来,数据产生的速度飙升,开发人员不得不长时间思考如何编写算法以从中提取有价值的数据和统计数据。此外,另一个关键因素是高可扩展级别的计算资源的可用性,这是云自愿产生的。例如,口袋里的智能手机可能会使用Google的Now('OK Google')或Apple的Siri语音命令应用程序,这些应用程序使用深度学习算法(称为(人工)神经网络)的强大功能来启用语音识别和学习功能。然而,除了与手机通话的乐趣和便利之外,还有许多工业,汽车和商业应用,现在正受益于深度学习神经网络的力量。

卷积神经网络

在看一些这些应用程序之前,让我们先研究一下神经网络是如何工作的,以及它需要什么样的资源。当我们一般性地谈论神经网络时,我们应该更准确地将它们描述为人工神经网络。它们作为软件算法实现,基于人类和动物的生物神经网络 - 中枢神经系统。多年来已经构思出几种不同类型的神经网络结构,其中卷积神经网络(CNN)是最广泛采用的。其中一个关键原因是它们的架构方法使它们非常适合使用基于GPUFPGA设备的硬件加速器提供的并行化技术。 CNN流行的另一个原因是它们适合处理具有大量空间连续性的数据,其中图像处理应用程序非常适合。空间连续性是指共享相似强度和颜色属性的特定位置附近的像素。 CNN由不同的层构成,每个层都有特定的用途,并且在它们的操作中使用两个不同的阶段。第一部分是指令或训练阶段,它允许处理算法理解它具有哪些数据以及每个数据之间的关系或上下文。 CNN被创建为来自结构化和非结构化数据的学习框架,计算机创建的神经元形成连接和断开的网络。模式匹配是CNN背后的关键概念,在机器学习中广泛使用。

机器视觉应用程序从神经网络中获取应用所需

图1:CNN的层方法

有关CNN工作原理的更多见解可以在Cadence 1a 的论文中找到,以及在最近的IEEE社会新会议上记录的有用视频 1b 计算机前沿。当微软研究团队 1c 赢得ImageNet计算机视觉挑战时,CNN对图像处理应用程序有用的证据得到了进一步的尊重。

CNN的第二阶段是执行。由不同的层节点组成,关于可能的图像可能变得越来越抽象的命题。卷积层从图像源中提取低级特征,以便检测图像中的线或边等特征。其他层(称为汇集层)用于通过对图像的特定区域进行平均或“汇集”共同特征来减少变化。然后可以将其传递给进一步的卷积和池化层。 CNN层的数量与图像识别的准确性相关,尽管这增加了系统性能需求。如果存储器带宽可用,则层可以以并行方式操作,CNN中计算密集度最高的部分是卷积层。

开发人员面临的挑战是如何提供足够高的计算资源来运行CNN,以确定在应用程序的时间限制内所需的不同图像分类的数量。例如,工业自动化应用可能使用计算机视觉来识别部件需要在传送带上路由到哪个下一级。暂停该过程直到神经网络识别该部分将破坏流程并减缓生产。

实施CNN

加速部分CNN正在进行的“强化”学习和执行阶段将显着加快这一主要是数学任务。凭借其高内存带宽和计算能力,GPU和FPGA是这项工作的潜在候选者。具有任何Von Neumann架构所展示的缓存瓶颈的传统微处理器可以运行算法,但是将层抽象任务移交给硬件加速器。虽然GPU和FPGA都提供了重要的并行处理能力,但GPU固定架构的性质意味着FPGA具有灵活且动态可重构的架构,更适合CNN加速任务。凭借非常精细的粒度方法,基本上在硬件中实现CNN算法,与GPU的软件衍生算法方法相比,FPGA架构有助于将延迟保持在绝对最小值并且更具确定性。 FPGA的另一个优点是能够在设备结构内“硬化”功能模块,例如DSP;这种方法进一步加强了网络的确定性。在资源使用方面,FPGA非常高效,因此每个CNN层都可以在FPGA架构内构建,并且靠近它自己的内存。

机器视觉应用程序从神经网络中获取应用所需

图2:图像处理概述CNN

图2突出显示了为行业图像处理应用设计的CNN的关键组件块,两个中间代表CNN核心的块。

基于FPGA的CNN加速应用程序的开发通过使用C语言的OpenCL 2a 并行编程扩展来补充。适用于卷积神经网络的FPGA器件的一个例子是英特尔可编程解决方案组(PSG)的Arria 10系列器件,正式名称为Altera

为了帮助开发人员着手进行基于FPGA的CNN加速项目,英特尔PSG提供了CNN参考设计。这使用OpenCL内核来实现每个CNN层。使用通道和管道将数据从一个层传递到下一个层,该功能允许在OpenCL内核之间传递数据,而不必占用外部存储器带宽。卷积层使用FPGA中的DSP模块和逻辑实现。硬化块包括浮点函数,可进一步提高设备吞吐量,而不必影响可用内存带宽。

图3所示的框图突出显示了一个可以使用FPGA作为加速处理单元的示例图像处理和分类系统。

机器视觉应用程序从神经网络中获取应用所需

图3:使用FPGA加速的图像分类系统的框图

英特尔PSG还在其网站上提供了许多关于在工业,医疗和汽车应用中使用FPGA卷积神经网络的有用文档和视频。选择深度学习应用程序的框架是关键的第一步。为了帮助开发人员,有越来越多的工具,如OpenANN(openann.github.io),一个人工神经网络的开源库,以及信息社区网站,如deeplearning.net和embedded-vision.com。流行的深度学习设计框架包括对使用OpenCL的支持,包括基于C ++的Caffe(caffe.berkeleyvision.org)和基于Lua的Torch。 DeepCL是另一个完全支持OpenCL的框架,虽然它尚未获得前两个用户群。

结论

工业市场热衷于利用深度学习神经网络的功能可以带来许多制造和自动化控制应用。由于德国工业4.0等倡议以及更广泛的工业物联网概念,这一重点得到了进一步的发展。配备高品质的视觉相机,CPU和CPU。例如,FPGA解决方案和相关控制,卷积神经网络可用于自动化大量制造过程检查,提高产品质量,可靠性和工厂安全性。

凭借其动态可配置逻辑架构,高内存带宽和高功效,FPGA非常适合加速CNN的卷积和汇聚层。由许多社区驱动的开源框架和并行代码库(如OpenCL)提供支持,未来将FPGA用于此类应用程序是安全的。 FPGA提供了高度可扩展且灵活的解决方案,以满足许多工业领域的不同应用需求。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1601

    文章

    21296

    浏览量

    593036
  • 神经网络
    +关注

    关注

    42

    文章

    4570

    浏览量

    98702
  • 机器视觉
    +关注

    关注

    160

    文章

    4039

    浏览量

    118271
收藏 人收藏

    评论

    相关推荐

    神经网络Matlab程序

    神经网络Matlab程序
    发表于 09-15 12:52

    神经网络教程(李亚非)

    网络BP算法的程序设计  多层前向网络BP算法源程序  第4章 Hopfield网络模型  4.1 离散型Hopfield
    发表于 03-20 11:32

    labview BP神经网络的实现

    请问:我在用labview做BP神经网络实现故障诊断,在NI官网找到了机器学习工具包(MLT),但是里面没有关于这部分VI的帮助文档,对于”BP神经网络分类“这个范例有很多不懂的地方,比如
    发表于 02-22 16:08

    神经网络解决方案让自动驾驶成为现实

    的技术创新的灵活架构非常重要。神经网络在自动驾驶的应用第一批神经网络应用程序将专注于视觉处理,以支持诸如自动行人、交通信号或道路特征识别等功能。由于这些系统的性能不断改进,例如处理越来
    发表于 12-21 17:11

    非局部神经网络,打造未来神经网络基本组件

    `将非局部计算作为获取长时记忆的通用模块,提高神经网络性能在深度神经网络获取长时记忆(long-range dependency)至关重
    发表于 11-12 14:52

    计算机视觉神经网络资料全集

    CV之YOLOv3:深度学习之计算机视觉神经网络Yolov3-5clessses训练自己的数据集全程记录(第二次)——Jason niu
    发表于 12-24 11:52

    机器学习神经网络参数的代价函数

    吴恩达机器学习笔记之神经网络参数的反向传播算法
    发表于 05-22 15:11

    【案例分享】ART神经网络与SOM神经网络

    ,同理,阈值越大,则容纳的模式类也就越多----------以上纯属个人理解,如果有错误欢迎指正。ART比较好地缓解了竞争型学习的“可塑性-稳定性窘境”,其中可塑性指神经网络要能够学习新知识,稳定性
    发表于 07-21 04:30

    ETPU-Z2全可编程神经网络开发平台

    工智能应用开发可归纳为以下几个步骤:(1)准备数据集在传统的有监督的神经网络算法,数据集对最终的算法性能起着决定性的关键作用。因此,神经网络算法训练的首要任务,就是实现数据集的搜集工作。在
    发表于 05-18 17:13

    解析深度学习:卷积神经网络原理与视觉实践

    解析深度学习:卷积神经网络原理与视觉实践
    发表于 06-14 22:21

    如何构建神经网络

    原文链接:http://tecdat.cn/?p=5725 神经网络是一种基于现有数据创建预测的计算系统。如何构建神经网络神经网络包括:输入层:根据现有数据获取输入的层隐藏层:使用反
    发表于 07-12 08:02

    轻量化神经网络的相关资料下载

    视觉任务,并取得了巨大成功。然而,由于存储空间和功耗的限制,神经网络模型在嵌入式设备上的存储与计算仍然是一个巨大的挑战。前面几篇介绍了如何在嵌入式AI芯片上部署神经网络:【嵌入式AI
    发表于 12-14 07:35

    卷积神经网络模型发展及应用

    卷积神经网络模型发展及应用转载****地址:http://fcst.ceaj.org/CN/abstract/abstract2521.shtml深度学习是机器学习和人工智能研究的最新趋势,作为一个
    发表于 08-02 10:39

    卷积神经网络简介:什么是机器学习?

    抽象人工智能 (AI) 的世界正在迅速发展,人工智能越来越多地支持以前无法实现或非常难以实现的应用程序。本系列文章解释了卷积神经网络 (CNN) 及其在 AI 系统机器学习
    发表于 02-23 20:11

    模糊系统、模糊神经网络应用程序设计

    模糊系统、模糊神经网络应用程序设计-上科。
    发表于 04-11 17:14 0次下载