英特尔在其人工智能大会(AIDC 2018)上发布了第二代英特尔神经计算棒(Intel NCS 2),据说,这是一个你没有玩过的全新版本,性能提升不只一星半点,幸运的我很快就到手了一个。
Intel NCS 2
新一代的神经计算棒身材并没有走样,依然是那个骚蓝色的铝合金外壳,要说外观上的区别那就是产品的名称,正面丝印 Intel Neural Compute Stick 2,已经没有了Movidius的字样。虽然Movidius也是Intel的公司,但是从这一点也可以看出Intel的品牌意识之强,而且整体使用下来,我的感觉就是,NCS2已经不只是一个加速深度学习推理的辅助工具了,它已经正式融入了Intel AI生态系统,成为Intel 在AI领域开疆拓土的一个利器。
话不多说,按照说明书首页指示,打开开发者上手指南:developer.movidius.com/start,强忍住直接敲代码的冲动,很认真地看了一下Intel NCS2的介绍。
正如宣传中所说,这款产品最大的亮点就是使用了Intel最新的视觉处理单元(VPU)—— Intel Movidius Myriad X。除了更多的计算核心之外(从12核增加到16核),还集成了用于深度神经网络推理的专用硬件加速器,与上一代Intel®Movidius™神经计算棒(NCS)相比,Intel NCS2的性能提升高达八倍。
其他的技术细节:
- 全新的Myriad X VPU每秒提供超过1万亿次DNN推理性能
- 16个可编程128位VLIW SHAVE矢量处理器
- DNN比原始神经计算棒快8倍
- 增强型视觉加速器,利用20多个硬件加速器执行光流和立体声深度等任务,无需额外的计算开销
- 5MB至450 GB / s带宽的均匀片上存储器
- 新的硬件编码器提供30Hz和60Hz帧速率的4K分辨率支持
- 针对Intel Neural Compute Stick 2优化的英特尔OpenVINO工具包分发版
- 支持的框架:TensorFlow,Caffe
- 操作系统支持: Ubuntu* 16.04.3 LTS (64 bit), CentOS* 7.4 (64 bit), and Windows® 10 (64 bit)
- 连接性:USB 3.0 Type-A
- 尺寸: 2.85 in. x 1.06 in. x 0.55 in. (72.5 mm x 27 mm x 14 mm)
- 操作温度: 0° C to 40° C
除了硬件上的提升之外,Intel 对NCS2的开发平台也做了较大的整合,不再单独使用Movidius SDK,而是使用英特尔®分布式OpenVINO™工具包。这是一个快速开发高性能计算机视觉和深度学习视觉应用的软件平台,其中包括英特尔深度学习部署工具包,具有模型优化器和推理引擎,以及面向 OpenCV 和 OpenVx的优化计算机视觉库,支持跨计算机视觉加速器的异构执行 - CPU,GPU,VPU和FPGA 。
通俗的理解一下就是,组织祭出了视觉领域的新旗帜,Intel平台下的子弟,不管你用的什么框架,只要经过OpenVINO的优化和革命的洗礼,你就是革命的一块砖,可以快速成长在英特尔的任何硬件和加速器上。emmm。。。就是这样。
Intel NCS 2使用体验
听起来很棒有木有,内心有一点小激动的我,赶紧翻出了我的树莓派,当年第一次玩NCS,在树莓派3上插两个神经棒识别鸟的场景还历历在目。
然而,现实就是这么残忍,目前的OpenVINO™工具包版本,平台要求是,第6代至第8代Intel®Core™和Intel®Xeon®处理器,可以支持的操作系统是 Ubuntu* 16.04.3 LTS (64 bit)、Windows® 10 (64 bit) 和 CentOS* 7.4 (64 bit),并不支持树莓派和Raspbian。
最趁手的兵器不能用,只好使用虚拟机上的Ubuntu 16.04了,OpenVINO虽然可以支持Win10,但是,我就是不喜欢它,又能有什么法子。
不废话,按照上手指南的步骤开始操作,共有五步:
- Step 1: Gather Your Equipment
- Step 2: Install the Toolkit
- Step 3: Configure the Neural Compute Stick USB Driver
- Step 4: Test the Installation
- Next Steps: Explore Additional Examples
第1步:装备已经备齐
我用的主机处理器是八代 i7,在VMware虚拟机中安装Ubuntu* 16.04.3 LTS (64 bit),虚拟机安装Ubuntu的步骤这里不再赘述,需要注意的一点是安装VMware Tools,并且将USB控制器设置为USB 3.0,切记这一点哦!
第2步:安装OpenVINO™工具包
到Intel® Distribution of OpenVINO™ toolkit页面下载工具包,首先需要登录Intel账号,提交个人姓名、邮箱、公司、地区等信息后,就可以下载OpenVINO™工具包,Intel 提供了Linux、带有FPGA支持的Linux和Windows三个平台的版本,可以下载网络定制版或者完整版。
安装指令:
cd ~/Downloads
tar xvf l_openvino_toolkit_<VERSION>.tgz
cd l_openvino_toolkit_<VERSION>
./install_cv_sdk_dependencies.sh
./install_GUI.sh
按照界面向导完成安装。在“ 安装摘要”页面上,选择“ 自定义”以选择安装选项。
第3步:配置神经计算棒USB驱动程序
cd ~/Downloads
下面的代码块(以cat开头)是一个命令。在终端窗口中输入整个代码块。这会在 〜/ Downloads中创建一个名为97-usbboot.rules的文件 。
cat <<EOF > 97-usbboot.rules
SUBSYSTEM=="usb", ATTRS{idProduct}=="2150", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEM=="usb", ATTRS{idProduct}=="2485", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEM=="usb", ATTRS{idProduct}=="f63b", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
EOF
sudo cp 97-usbboot.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
sudo ldconfig
rm 97-usbboot.rules
第4步:测试安装
将神经计算棒插入计算机的USB端口,然后在新的终端窗口中运行以下命令:
安装依赖的软件包:
cd ~/intel/computer_vision_sdk/deployment_tools/model_optimizer/install_prerequisites/
./install_prerequisites.sh
图像分类示例:
cd ~/intel/computer_vision_sdk/deployment_tools/demo
./demo_squeezenet_download_convert_run.sh -d MYRIAD
第一次运行会有些慢,因为脚本需要安装软件依赖项并编译所有示例代码。
运行结果如下:
好了,到这里呢,我已经成功搭建好了Intel NCS2的软件开发环境,下面可以运行示例了。
后续步骤:探索其他示例
在同一终端窗口中运行以下每个命令:这是一个交通摄像头车辆检测的示例
cd ~/intel/computer_vision_sdk/deployment_tools/demo
./demo_security_barrier_camera.sh -d MYRIAD
这个示例运行了多个神经网络,例如车辆属性和车牌检测和识别。该脚本运行带有多个选项的命令。要手动运行这些,可以在终端窗口中输入以下两个命令。注意:inference_engine_samples文件夹是在 /home目录下。
cd ~/inference_engine_samples/intel64/Release
./security_barrier_camera_demo -i ~/intel/computer_vision_sdk/deployment_tools/demo/car_1.bmp -d MYRIAD -m ~/intel/computer_vision_sdk/deployment_tools/intel_models/vehicle-license-plate-detection-barrier-0106/FP16/vehicle-license-plate-detection-barrier-0106.xml -d_va MYRIAD -m_va ~/intel/computer_vision_sdk/deployment_tools/intel_models/vehicle-attributes-recognition-barrier-0039/FP16/vehicle-attributes-recognition-barrier-0039.xml -d_lpr MYRIAD -m_lpr ~/intel/computer_vision_sdk/deployment_tools/intel_models/license-plate-recognition-barrier-0001/FP16/license-plate-recognition-barrier-0001.xml
运行结果如下图所示
这个示例使用的是本地文件中的car图片,识别结果在图片中有显示。如果使用一代神经棒来运行这个模型,至少需要插两个神经棒才可以,Intel NCS2的性能提升确实看得见,而且运行这个示例的时候神经棒的发热量并不大。
上手指南中还有一个有意思的人脸识别的示例,此示例需要开启摄像头。
cd ~/inference_engine_samples/intel64/Release
./interactive_face_detection_demo -d MYRIAD -m ~/intel/computer_vision_sdk/deployment_tools/intel_models/face-detection-retail-0004/FP16/face-detection-retail-0004.xml -d_ag MYRIAD -m_ag
~/intel/computer_vision_sdk/deployment_tools/intel_models/age-gender-recognition-retail-0013/FP16/age-gender-recognition-retail-0013.xml -d_em MYRIAD -m_em ~/intel/computer_vision_sdk/deployment_tools/intel_models/emotions-recognition-retail-0003/FP16/emotions-recognition-retail-0003.xml -d_hp MYRIAD -m_hp ~/intel/computer_vision_sdk/deployment_tools/intel_models/head-pose-estimation-adas-0001/FP16/head-pose-estimation-adas-0001.xml
贴几张运行中的截图
这个示例可以检测人脸面部,情感,年龄,性别和姿势。如此忧郁的脸庞识别出的结果是面无表情(neutral),表情夸张一点识别的会更准,ok,结果就酱。
Intel在OpenVINO™工具包中还给出了很多推理加速的示例,有兴趣的可以尝试,当然这些示例不只是运行在VPU中的。
总结
总体使用下来,Intel NCS2确实是一款非常不错的微型无风扇深度学习开发套件,无论是硬件性能还是开发工具,都比上一代NCS提高太多。遗憾的一点是目前的OpenVINO™工具包并不支持树莓派,只能寄希望于后续版本了。
目前NCS2已经在售,售价由一代的599元提高到了749元,剁不剁手,由你自己抉择。
英特尔在其人工智能大会(AIDC 2018)上发布了第二代英特尔神经计算棒(Intel NCS 2),据说,这是一个你没有玩过的全新版本,性能提升不只一星半点,幸运的我很快就到手了一个。
Intel NCS 2
新一代的神经计算棒身材并没有走样,依然是那个骚蓝色的铝合金外壳,要说外观上的区别那就是产品的名称,正面丝印 Intel Neural Compute Stick 2,已经没有了Movidius的字样。虽然Movidius也是Intel的公司,但是从这一点也可以看出Intel的品牌意识之强,而且整体使用下来,我的感觉就是,NCS2已经不只是一个加速深度学习推理的辅助工具了,它已经正式融入了Intel AI生态系统,成为Intel 在AI领域开疆拓土的一个利器。
话不多说,按照说明书首页指示,打开开发者上手指南:developer.movidius.com/start,强忍住直接敲代码的冲动,很认真地看了一下Intel NCS2的介绍。
正如宣传中所说,这款产品最大的亮点就是使用了Intel最新的视觉处理单元(VPU)—— Intel Movidius Myriad X。除了更多的计算核心之外(从12核增加到16核),还集成了用于深度神经网络推理的专用硬件加速器,与上一代Intel®Movidius™神经计算棒(NCS)相比,Intel NCS2的性能提升高达八倍。
其他的技术细节:
- 全新的Myriad X VPU每秒提供超过1万亿次DNN推理性能
- 16个可编程128位VLIW SHAVE矢量处理器
- DNN比原始神经计算棒快8倍
- 增强型视觉加速器,利用20多个硬件加速器执行光流和立体声深度等任务,无需额外的计算开销
- 5MB至450 GB / s带宽的均匀片上存储器
- 新的硬件编码器提供30Hz和60Hz帧速率的4K分辨率支持
- 针对Intel Neural Compute Stick 2优化的英特尔OpenVINO工具包分发版
- 支持的框架:TensorFlow,Caffe
- 操作系统支持: Ubuntu* 16.04.3 LTS (64 bit), CentOS* 7.4 (64 bit), and Windows® 10 (64 bit)
- 连接性:USB 3.0 Type-A
- 尺寸: 2.85 in. x 1.06 in. x 0.55 in. (72.5 mm x 27 mm x 14 mm)
- 操作温度: 0° C to 40° C
除了硬件上的提升之外,Intel 对NCS2的开发平台也做了较大的整合,不再单独使用Movidius SDK,而是使用英特尔®分布式OpenVINO™工具包。这是一个快速开发高性能计算机视觉和深度学习视觉应用的软件平台,其中包括英特尔深度学习部署工具包,具有模型优化器和推理引擎,以及面向 OpenCV 和 OpenVx的优化计算机视觉库,支持跨计算机视觉加速器的异构执行 - CPU,GPU,VPU和FPGA 。
通俗的理解一下就是,组织祭出了视觉领域的新旗帜,Intel平台下的子弟,不管你用的什么框架,只要经过OpenVINO的优化和革命的洗礼,你就是革命的一块砖,可以快速成长在英特尔的任何硬件和加速器上。emmm。。。就是这样。