envi特征提取工具是什么(原MovidiusCEORemi)
envi特征提取工具是什么(原MovidiusCEORemi)机器之心:VPU 主要对何种数据进行处理?能够完成哪些任务?这样的设计旨在优化运行在终端的计算机视觉以及机器学习应用的数据流,从而能够以极低的能耗达到相当高的性能水平。最新版本的 VPU 型号是 Myriad X,它的效率高达每秒钟 1 万亿次运算(1TOPS)。机器之心:VPU 由哪些核心模块组成?Remi:VPU 是视觉处理单元(Vision Processing Unit)的缩写,是我们发明的一种从用于视觉场景中提取语义信息的硬件。VPU 中有三个组成部分,分别是:而 DSP、CV 加速器、DL 加速器这三个部分共享一个通用存储结构,其具有多端口、高吞吐量的特性。
机器之心原创
作者:邱陆陆
Movidius Myriad VPU 是一块小到没地方写「Intel Inside」的芯片。而生产它的 Movidius 这家公司,在英特尔的「AI 全家桶」里也一直不是最抢眼的那个。它没有 Altera 和 Mobileye 的天价收购光环,也不像 Nervana 时常作为母公司的 AI「门面担当」出现在公众视野里。但是,这家创立于爱尔兰的公司拥有出货量在百万级别的芯片产品:视觉处理器 VPU,也是靠着这唯一一款产品,Movidius 承担起了英特尔「从云到端」的 AI 解决方案之中极为重要的一环:高效、低能耗的终端运算。
五月,Intel 在旧金山举办了第一届 AI 开发者大会 AIDevCon,Movidius 也在现场秀了秀肌肉。在现场对原 Movidius CEO,现英特尔新科技事业部副总裁 Remi El-Ouazzane 进行了专访、同时英特尔 Movidius 事业组市场负责人 Jack Dashwood 就现场展示的处理异构的 AI 及视觉工作流的 VPU 为我们进行了介绍。以下为采访与现场展示实录:
机器之心:VPU 由哪些核心模块组成?
Remi:VPU 是视觉处理单元(Vision Processing Unit)的缩写,是我们发明的一种从用于视觉场景中提取语义信息的硬件。VPU 中有三个组成部分,分别是:
- 可编程的超长指令字数字信号处理器(VLIW DSP)
- 固定功能的计算机视觉加速器,以及
- 深度学习加速器。
而 DSP、CV 加速器、DL 加速器这三个部分共享一个通用存储结构,其具有多端口、高吞吐量的特性。
这样的设计旨在优化运行在终端的计算机视觉以及机器学习应用的数据流,从而能够以极低的能耗达到相当高的性能水平。最新版本的 VPU 型号是 Myriad X,它的效率高达每秒钟 1 万亿次运算(1TOPS)。
机器之心:VPU 主要对何种数据进行处理?能够完成哪些任务?
Remi:VPU 是为视觉任务高度定制化的芯片。其处理的输入主要有两种类型,分别是来自传感器的实时图像数据,和预先录制好的视频或图像数据。只要是与这两类数据相关的任务,VPU 都有涉猎。从成像、编码等信号处理任务,到图像的形变与形变矫正、深度信息处理(stereo depth)等经典计算机视觉任务,再到提取语义的深度学习任务,均有涉及。因此,VPU 是一个专门用于图像任务的,处理信号处理、计算机视觉、深度学习交差点的异构复杂结构。
机器之心:VPU 的设计逻辑是什么?
Remi:VPU 中的几乎所有架构设计都是为了同一个目标:优化数据流。这是因为在当前的终端计算,尤其是深度学习计算中,用于数据传输的能量消耗是用于计算的 10 倍乃至更多。
如今是一个全新的体系架构时代,如今的工作任务如果部署在通用架构上会需要巨量的内存,因此这意味着当市场体量足够大吼,专用的芯片开始有发展空间。
要使性能最大化并将功耗降至最低,唯一的方法就是最大程度增加数据的本地性,或者说最大限度地减少外部内存访问次数。任何需要离开芯片进入内存的操作相比于片上操作都要支付成倍的能量成本。
如果你去看 Intel Nervana 设计的永远训练的神经网络处理器(NNP),你会发现逻辑完全相同,也是最大化片上数据的利用,只不过它们需要处理的数据集规模更大。
机器之心:具体如何实现这一目标呢?
Remi:举个例子,我们在设深度学习加速器的时候,详细地研究了非常多种不同的神经网络,ResNet50、SSD、Inception 的各个版本等等。我们尝试去理解,当我们部署这些神经网络时,如何以最大化数据本地性为原则对其进行拆分。
我们使用非常多技术来做到这一点:例如是否可以优化网络的位分辨率(是 FP32、INT16 还是 INT8),是否可以对网络进行剪枝(pruning)。是否可以利用其稀疏特性,来减少 0 的传递。
机器之心:有人说,当下的深度学习的模型结构仍处于剧烈变化时期,很可能现在常用的计算类型、优化方式两年后就不适用了,因此对于设计特定结构的 ASIC 来说,为时尚早。Movidius 如何避免这一问题呢?
Remi: 首先,对于从数据中心到终端设备的各种应用来说,越靠近设备端,对可编程性的需求就越弱。这是因为设备端的操作需要高度优化而数据中心端的任务则有商榷余地和其他优化方法。
如今,我们的很多部署都紧靠 Xeon(英特尔的服务器系列 Xeon),一台或多态 VPU 紧靠一台 Xeon 设备。这就是我们的「保险策略」:一旦出现了需要可编程性的任务,就利用 Xeon 实现。
同时,VPU 本身也具有一定的可编码性:其上的 DSP 部分是完全可编码的,可以用于完成各类任务。例如,在 Myriad 2(Myriad X 的上一代芯片)上,并没有一个专门加速神经网络的部分,所有的神经网络计算就是在 dsp 部分加速的。因此这是我们预防模型大规模变动的第二重「保险」。
机器之心:VPU 主要被用于哪些市场?
Remi:安全监控(Security Surveillance)是体量最大,也是增长最快的一个市场,安全监控占据了公司超过 50% 的业务。VPU 被用于安防相机以及联网摄像头中,也被用于终端服务器中。这部分业务的数量众多也是因为安全监控市场本身就是一个体量极为庞大的市场,我认为今天的 AI 领域有三个巨大的市场,分别是安全监控、自动驾驶和移动设备,其他市场相比之下都要小得多。
其次是智能零售。智能零售中也用到了大量的终端服务器:在零售店中,你可以部署多台摄像机,其中一些具有一定的计算能力,另一些只是单纯地记录并传输影像,但是所有的摄像机都与部署在店内的服务器相连,服务器能够利用多种数据进行快速的动态分析,比如顾客的年龄分布,客流情况、移动模式等等。终端服务器不同于部署在数据中心的服务器,大多是针对特定的事件和任务,例如视频分类和视频评分,进行定制的,因此效率更高而能耗更小。
工业也是一个有趣的市场,VPU 越来越多地被用于工业中的机器自动化。它可以在生产线的传送带上进行缺陷检测,也可以测量包裹尺寸以进行卡车装箱。
以上是 Movidius 的业务中占比最大的三个市场。
机器之心:除此之外,您还对哪些市场有兴趣?哪些方向代表了 VPU 五年后的愿景呢?
Remi:从市场的角度来讲,我相信 VPU 会增加非常多新的应用场景,例如医疗健康和机器人。
我相信在专业医疗领域会爆发一场革命,而 Movidius 也会参与其中,例如,我们正在于一家便携式超声设备公司合作,降低超声波仪器的成本。但是同时,由于并不是所有医生都具有超声波影像阅读能力,我们也需要机器学习来帮助医生使用其检查结果。除此之外,机器人领域也会有很多变化。很多机器人公司漫长的研发周期都已接近尾声,在未来五年内,除了之前提到的工业机器人之外,消费机器人也会有更多的表现。
从技术的角度来讲,本地训练是最让我兴奋的一环。强化学习等技术正在逐渐容许设备在本地进行调整,这会对终端算力提出更大的要求。
机器之心:除了芯片和针对学界的神经计算棒(NCS)之外,Movidius 还有_其他产品线吗?
Remi:我们还有内含 Myriad 2 或 Myriad X 的开发者工具包。它是一块包含 VPU 在内的开发板,包含摄像头,各种输入输出接口。客户可以利用开发板进行研发和测试,然后在研发完成后,再接入自己的工具包、传感器等。不过开发板并不直接进行「零售」,我们直接向需要开发 VPU 相关设备的公司销售这一产品。
机器之心:能否介绍一下近期公开的 OpenVino 框架以及进行了很大改进的 ngraph 框架?
Remi:OpenVino 是一个针对图像相关应用的部署的软件框架。它进行两种操作:一,针对不同的英特尔计算硬件优化模型;二,将模型编译到目标芯片上。举个例子,如果我用 TensorFlow 在 PC 上训练了我的识别模型,然后要分别部署到英特尔的 CPU、FPGA 和 VPU 上。在 OpenVino 的帮助下,我不用手工调整模型以适应每一种硬件,OpenVino 会自动实现这个过程。
但 OpenVino 不参与训练周期,训练仍然是 ngraph 的领域。ngraph 主要旨在让开发人员可以自由地利用任何硬件训练自己的神经网络并进行推理,从数据中心到终端算力,训练可以发生在任何地方。
另外,ngraph 是 100% 以深度学习为中心的框架,而 OpenVino 则关注视觉这个垂直领域,它关注很多属于视觉领域但并非深度学习的过程,例如成像。
在展台区,Movidius 展示了如何将四项不同的 AI 与视觉任务流畅地部署在一块 Movidius Myriad X VPU 上。据 Jack Dashwood 介绍,四个任务分别是来自普通摄像头的实时数字成像(ISP),来自两个最高可达 180Hz 的 720p 摄像头的深度视觉(stereo depth)加速,基于经典视觉模型的特征跟踪(feature tracking)和基于深度学习的目标检测。
而同时、多任务是 VPU 最重要的一项能力。例如,VPU 在大疆 Spark 中承担了大部分的成像任务和视觉任务:包括从专业级别的 CMOS 传感器和航拍镜头中获取信号并生成高质量的图像输出等图像处理任务,以及人脸识别、手势识别、对象跟踪与检测、发现障碍时的警告与避障等计算机视觉任务。在大疆与子公司睿炽联合开发的玩具无人机 Tello 内,VPU 更是唯一的计算芯片。
图:左为大疆 Spark,右为睿炽 Tello