分享 | 英特尔第二代神经计算棒(Intel Neural Compute Stick 2)相关测试

分享 | 英特尔第二代神经计算棒(Intel Neural Compute Stick 2)相关测试

爱分享的 OpenVINO 中文社区

内容来源| 李栋
内容排版| 李擎
原文链接:https://blog.csdn.net/weixin_43317210/article/details/107030841

正文

英特尔第二代神经计算棒(Intel Neural Compute Stick 2)相关测试

英特尔在2018年正式推出了身材依然只有U盘大小的第二代神经计算棒(Neural Compute Stick 2/NCS 2),可让开发者更智能、更高效地开发和部署深度神经网络应用,满足新一代智能设备的需求。

在这里插入图片描述

  1. NCS 2介绍

NCS 2 仍然类似U盘造型,尺寸只有72.5×27×14毫米,通过USB 3.0 Type-A接口插入主机,兼容64位的 Ubuntu 16.04.3、CentOS 7.4、Windows 10操作系统。
NCS 2内置了最新的 Intel Movidius Myriad X VPU 视觉处理器,集成16个 SHAVE 计算核心、专用深度神经网络硬件加速器,可以极低的功耗执行高性能视觉和AI推理运算,支持 TensorFlow、Caffe 开发框架。
NCS 2 的性能比之前的 Movidius 计算棒有了极大的提升,其中图像分类性能高出约5倍,物体检测性能则高出约4倍。

  1. NCS 2的在深度学习方面的测试

最近通过参加 DFRobot行业AI 开发者大赛,入手了一个 NCS 2。

在这里插入图片描述

NCS 2 的主要定位就是在应用于物联网。传统嵌入式设备受价格和体积影响,一般性能比较低(嵌入式设备使用的单片机、树莓派等计算、控制核心的性能肯定比电脑使用的cpu差得多),并不适合做深度学习中有关图像的运算。而 GPU 等设备因为体积较大,价格昂贵等因素,无法应用于物联网的设备端,而且在物联网的设备端只需要训练好的网络模型进行推理,不需要训练,因此在一定程度上来说,GPU用于推理会造成性能过剩。而NCS2则解决了这个矛盾,它的主要定位就是用于物联网的设备端,代替原有设备进行深度学习的推理,实现边缘计算。NCS2的体积较小,价格低,专门用于图像计算,性能高于传统的嵌入式设备,起到了取长补短的功能。

本文主要就是对NCS 2在常用图像分类,目标检测等物联网应用场景进行测试,检测NCS 2在实现深度学习网络的推理中的表现。

  1. 测试环境

操作系统:ubuntu 16.04
软件环境:OpenVINO 2019 r1
测试硬件:NCS 2(vpu)
CPU(Intel Core i7-8750H)

  1. 测试内容

本部分将4个经典的深度学习模型分别部署在CPU和NCS2,对比了他们的推理性能。

4.1 squeezenet 分类模型测试

在这个部分中,我们将使用 cpu和NCS 2(vpu)分别实现 squeezenet 的推理,实现对下图的分类

在这里插入图片描述

首先,利用 OpenVINO 将 squeezenet 图像分类模型部署在cpu上。

在这里插入图片描述

CPU 得到的推理结果如下图所示,图片中显示了TOP10分类以及其相应概率,同时可以看到 CPU 在squeezenet的推理速度非常快,可以达到378.231FPS,远远超过普通应用的需求。

在这里插入图片描述

同理,利用 OpenVINO 将 squeezenet 图像分类模型部署在 NCS 2(vpu)上。

在这里插入图片描述

VPU 得到的推理结果如下图所示,图片中显示了 TOP10 分类以及其相应概率。与CPU的推理结果相比,VPU 推理得到的结果与 CPU 结果的大致相同,但是在具体某种类的概率上有所不同,这是因为 CPU 推理时,使用的是32位的浮点数,而VPU推理的时候使用的是16位的浮点数,因此在具体的概率值上,可能会有轻微的变化,但是在分类的准确度上不会有太大影响。同时可以看到 vpu 在 squeezenet 的推理速度相对 cpu 较慢,为78.89FPS,仍可以满足绝大多数普通需求。

在这里插入图片描述

4.2 车牌识别模型测试

这一部分将测试车牌识别模型,车牌自动识别系统如今广泛应用于小区,停车场。实现阻止无关车辆,放行登记车辆,自动缴费等功能。模型将对下列图片中的车牌号进行识别和检测

在这里插入图片描述

首先,将模型部署在cpu上测试其性能:

在这里插入图片描述

测试结果如下图所示:

在这里插入图片描述

模型成功识别出来了车牌号“冀 MD711”,推理速度达到77.01FPS,性能有些过剩,远超普通应用的需求。
将模型应用于 VPU :

在这里插入图片描述

得到的结果如下图所示:

在这里插入图片描述

VPU同样正确识别出来了车牌号“冀 MD711”,推理速度达到20.79FPS。可以满足一般应用的需求。

4.3 人脸检测模型测试

人脸检测模型也是在现实生活中广泛引用的深度学习模型,下面将测试一个人脸检测模型在 CPU、VPU上的性能表现。本文测试的模型不仅包含人脸检测,还包括人脸 3D 模型检测,性别判定,年龄预测,表情判定等,因此总体模型比较复杂,具体应用时可以单独选择一项或几项应用。
首先查看模型部署在 CPU 上的性能表现:

在这里插入图片描述

在 CPU上,模型的推理速度依然非常快,可以达到38.14FPS。可见高性能的 CPU 即使在如此复杂的模型推理中,依然有些性能过剩。
而VPU的测试结果则如下所示:

在这里插入图片描述

在VPU上,模型的推理速度减慢为10.79FPS,在实际应用上可能会显得比较慢。这因为测试的模型比较复杂的缘故,实际应用中,可能并不需要人脸3D模型检测,性别判定,年龄预测,表情判定等全部功能,因此对模型进行简化可以加快其推理速度,使模型成功引用与VPU,替代嵌入式设备的控制核心进行深度学习推理任务。

4.4 GoogleNetV2物体检测模型测试

本部分将测试GoogleNetV2物体检测模型在CPU、VPU上的性能表现。
首先看CPU的性能表现:

在这里插入图片描述

检测的速度达到:31.72FPS
然后看VPU的表现性能:

在这里插入图片描述

检测的速度达到:13.01FPS
这个结果与4.3的测试结果类似,使用CPU检测性能过剩,而使用VPU推理的速度则稍微变慢。这说明在某些较复杂的模型中单独一个NCS 2可能并不能完全胜任深度学习模型的推理工作,可以考虑将推理任务分组由多个NCS 2完成,或者使用NCS 2作为核心推理设备的加速组件用于加快模型推理。

5 结论

通过以上测试可以得出,Intel推出的NCS 2(VPU)可以作为物联网设备端AI应用的计算核心,胜任诸如图像分类,车牌检测等常用的深度学习模型的推理任务,实现边缘计算的功能。在应用某些较为复杂的模型时,可以使用多个NCS2(VPU)进行协同工作,或者将NCS 2作为核心推理设备的加速组件,加速模型的推理,实现更好的应用。

关注我们,让开发变得更有趣👇
在这里插入图片描述

微信号:openvinodev
B站:OpenVINO 中文社区

*OpenVINO and the OpenVINO logo are trademarks of Intel Corporation or its subsidiaries.

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页