Intel推出的人工智能神器你值得拥有

时间:2019-1-09  来源:BataGo倍塔狗  访问数:545次

文章素材来源于RS(欧时电子元件)

 

 

Neural Compute Stick (神经计算棒),让人工智能在低功率嵌入式应用中成为现实。
人工智能 (AI),与核聚变清洁能源一样,数十年来被人们认为将对社会产生深远的影响,凭借近年来取得的科技进步,人工智能终能应用到更广泛的实际应用中。但是仍有一个问题未解决:视觉处理等多种关键应用是计算密集型应用,低功耗设备的本地处理能力显然无法胜任。

 

Movidius — 现已归于 Intel 麾下 — 推出 Myriad 2 视觉处理单元 (VPU),解决了这个问题。该单元可在低功耗条件下实现软件可编程的机器视觉。

 

在本文中,我们对 Myriad VPU 技术和相关 SDK 进行初步探索,并利用神经计算棒 (NCS) 获得实际操作经验。神经计算棒支持低成本开发和原型制作。

 

100Gflops 功耗仅为1W

 

 

来源:Movidius Myriad 2 VPU 产品简述

 

Movidius 神经计算棒 (139-3655) 带来出众的视觉处理性能,运算性能超过 100Gflops,能耗仅约 1W。采用 600MHz 系统芯片 (SoC),集成 12x VLIW 128 位处理器,核心优势为 2MB 片上存储器,传输速率为 400Gbps。

 

产品的主要特点有:
◆支持 FP16、FP32 和整数运算,支持 8、16 和 32 位精度
◆在设备上实时推断,不需要云连接
◆快速部署现有卷积神经网络 (CNN) 型号或经独特训练的网络
◆通过主机 PC 上的单个 USB 3.0 端口输送所有数据和电源
尽管该产品配备 USB 3.0 端口,但 USB 2.0 端口便足以应对多数应用。另外请注意,为获得更高的性能,可通过合适的 USB 集线器连接多个 NCS。

 

Caffe 支持
开放资源Caffe 框架 可对深度学习应用提供支持。它由伯克利人工智能研究 (BAIR) 实验室开发。Caffe 的指导原则如下:
◆表达形式:模型与相应优化以文本形式而非代码形式给出。
◆速度快:对于研究和类似工业而言,速度是高科技模型和海量数据的重要基础。
◆模块化:新任务和设置需要能够灵活调整和扩展。
◆开放性:要取得科学和应用进步,需要公共代码、参考模型以及再现性。
◆社区性:通过共同讨论和开发 BSD-2 项目,学术研究、早期原型和工业应用可以分享成功经验。

项目网站详细介绍了 Caffe 的架构和功能。如果您像我一样极少接触人工智能技术,那么还有相当多的知识需要了解。但是无需惊慌,因为 Movidius 神经计算 (NC) SDK 囊括了框架和硬件支持,以及采用现有神经网络模型的应用示例。换句话说,您可以随时开始使用,评估网络和 NCS 硬件的性能。

 

SDK 安装

 

 

要安装 NC SDK,需要运行 Ubuntu 16.04 的计算机。其它系统也许能够安装,但这是唯一指定的操作系统。

下面我们将介绍简要的操作步骤,推荐下载入门指南 PDF 和其它官方文件,获得更详细的说明。

一旦下载完毕,NC SDK 可以随以下组件一起安装:

$ sudo apt-get update $ sudo apt-get upgrade
$ tar xvf MvNC_SDK_1.07.07.tgz
$ tar xzvf MvNC_Toolkit-1.07.06.tgz
$ cd bin
$ ./setup.sh

安装可能需要一段时间,因为工具包将与相关组件一起安装。请注意,安装脚本通过更新 ~/.bashrc 文件来设置相应的 PYTHONPATH 环境变量。例如,默认安装位置应加入的代码行为:
export PYTHONPATH=$env:”/opt/movidius/caffe/python”:$PYTHONPATH
如果其它用户想要使用 SDK,他们也需要将该行代码加入各自的 ~/.bashrc 文件。

 

假设我们仍然在二进制目录中,然后为示例代码安装 Caffe 模型:
$ cd data
$ ./dlnets.sh

如果我们回到 SDK 根目录下,那么便可安装 API:
$ cd ../..
$ tar xzvf MvNC_API-1.07.07.tgz
$ cd ncapi
$ ./setup.sh

 

要安装 NC SDK,需要运行 Ubuntu 16.04 的计算机。其它系统也许能够安装,但这是唯一指定的操作系统。

 

下面我们将介绍简要的操作步骤,推荐下载入门指南 PDF 和其它官方文件,获得更详细的说明。

 

一旦下载完毕,NC SDK 可以随以下组件一起安装:

$ sudo apt-get update
$ sudo apt-get upgrade
$ tar xvf MvNC_SDK_1.07.07.tgz
$ tar xzvf MvNC_Toolkit-1.07.06.tgz
$ cd bin $ ./setup.sh

 

安装可能需要一段时间,因为工具包将与相关组件一起安装。请注意,安装脚本通过更新 ~/.bashrc 文件来设置相应的 PYTHONPATH 环境变量。例如,默认安装位置应加入的代码行为:

export PYTHONPATH=$env:”/opt/movidius/caffe/python”:$PYTHONPATH

如果其它用户想要使用 SDK,他们也需要将该行代码加入各自的 ~/.bashrc 文件。

假设我们仍然在二进制目录中,然后为示例代码安装 Caffe 模型:
$ cd data
$ ./dlnets.sh

 

如果我们回到 SDK 根目录下,那么便可安装 API:
$ cd ../..
$ tar xzvf MvNC_API-1.07.07.tgz
$ cd ncapi $ ./setup.sh

 

然后有一系列示例可以从二进制目录运行,以检验 NCS 运行效果。
$ cd ../bin $ make example00
$ make example01
$ make example02
$ make example03

 

视频流推断示例

 

 

Python 流_推断示例

现在我们来看看更有趣的示例!该示例需要一台视频输入设备,我们决定使用 Logitech C920 全高清网络摄像头 (125-4272),因为它能够出色地支持 Linux 系统。

$ cd ../ncapi/tools
$ ./get_models.sh
$ ./convert_models.sh
$ cd ../py_examples/stream_infer
$ python3 stream_infer.py

 

 

哎呀!60.60% 的显示上限?!好吧,先别急着发火 — NCS 做的只是苦力活,而我们依靠卷积神经网络 (CNN) 来进行推断。公平地说,这一点可以理解。无论如何,由上图可以看出,同一示例中对咖啡杯的处理效果更好,而对其它物品也有类似的处理效果。

 

这里的重点是人工智能进行推断的速度 — 以及所需的能耗,这一过程对能源消耗的确很快。

 

示例 stream_infer.py 中使用的默认模式称为 SqueezeNet。它属于一种 CNN,识别精度与比它早 4 年左右出现的 AlexNet 相似,它可以将LSVRC-2010 ImageNet 训练集中的 130 万张高清照片分成 1000 个不同的类别。据说,Albeit SqueezNet 可以用比 AlexNet 小 510 倍的模型实现这一点。

 

经配置,stream_infer.py 可以使用 SqueezeNet 或 AlexNet,以便对比在 NCS 上的使用效果。这仅仅与 Python 文件接近顶端位置的注释行(取消注释行)有关。除此以外,Gender 和 GoogleNet 模型也可以用同样的方法进行配置。

例如:
NETWORK_IMAGE_WIDTH = 224 # the width of images the network requires
NETWORK_IMAGE_HEIGHT = 224 # the height of images the network requires
NETWORK_IMAGE_FORMAT = “RGB” # the format of the images the network requires
NETWORK_DIRECTORY = “../../networks/GoogLeNet/” # directory of the network

 

示例 stream_infer.py 将在 NETWORK_DIRECTORY 中寻找 “graph”、“stat.txt” 和 “categories.txt” 文件。如果我们对比 AlexNet 和 SqueezeNet 的图片文件大小:

 

 

二值图的大小差距不到 510 倍,但也相当明显。

 

网络编译和分析

 

 

来源:Movidius NCS 工具包文件

新的 CNN(例如用于分类现有 CNN 未涵盖的图像)可以使用合适的框架进行设计和训练。然后该网络可编入图像文件,并使用 SDK 配备的 NCS 工具包进行配置。

 

面向嵌入式平台
API 必须首先与工具包安装在同一台计算机上(Ubuntu 16.04 x86-64 操作系统),但是库文件、头文件等可随后安装在其它平台上。实际上,SDK 提供了一系列 Raspbian Jessie 包。这意味着一旦安装了这些包,以及来自 Raspbian repo 的相关组件,只需在 stream_infer.py 中修改一行代码,该示例便可在 Raspberry Pi 上使用。

 

典型应用

 

Movidius VPU,用于全新 Motorola Moto Mod 中的 4K VR 像素处理。来源:movidius.com

 

机器视觉应用包括:
◆无人机和机器人
◆增强现实和虚拟现实领域
◆可穿戴器件
◆智能安全

 

Myriad VPU 在安全摄像机上的作用显而易见,例如识别停靠在车道上的车辆或区别窃贼和宠物。同样显而易见的是,它对于大幅提高家用机器人(例如吸尘器)和无人机应用(躲避或搜寻物品)价值的作用。这只是该技术的部分应用,人们很容易能够找到更多的用途。

 

最初的想法
在 Movidius 技术的帮助下,人工智能已广泛应用于许多实际应用中,许多先进产品纷纷寻找使用契机,例如智能手机的 4K VR 像素处理附件和无人机的感知和规避系统。神经计算棒的推出意味着任何人都可以立即开始用 Myriad 2 VPU 开展实验,同时轻松赋予现有嵌入式平台强大的深度学习能力。

上一篇: 下一篇:



  • 波浪
  • 波浪
  • 波浪
  • 波浪