2017年入手了一个一代 Movidius Neural Compute Stick(以下都简称NCS了,即神经计算棒),大概500多,加上一个树莓派3B+就1k多了。当时作为一个刚入坑Linux和树莓派的小白来说,学习这东西的时候 Debug 的过程实在受不了就放弃了,树莓派就一直当个嵌入式板子玩了。现在又想搞深度学习,就又拾起来了,毕竟自己的 Ubuntu 环境配置的比较丰富了。另外,这个东西也要停止支持来了(https://baijiahao.baidu.com/s?id=1632555337469826194&wfr=spider&for=pc),不能白浪费了。
目录
1、连接及启动虚拟机(VMware 12.0)
2、安装 NCSDK
3、单个NCS官网教程(Linux)及填环境坑
技术贴参考:https://github.com/ihere1/movidius-face
官方入门教程:https://software.intel.com/en-us/articles/get-started-with-neural-compute-stick
本文基于虚拟机的 Ubuntu 16.04 LTS,单个神经计算棒(1代)跑了一个官方 Demo ,搞了差不多一天,总出现环境 BUG,这里贴出来。
虚拟机启动Ubuntu就不多说了,连接NCS,这时候要在虚拟机菜单栏中找到 虚拟机 -> 可移动设备 ->连接 Movidius(从主机断开)。这里连接到虚拟机的 Ubuntu 系统。
https://software.intel.com/en-us/openvino-toolkit/choose-download/free-download-linux
记得选择相应的版本,有的同学可能下载的是windows文件下了,这时候就需要通过共享文件夹的方式,把压缩文件放到Ubuntu系统下解压安装。
假设以上步骤都已完成,接下来进行官网教程。
cd ~/Downloads
tar xvf l_openvino_toolkit_.tgz
cd l_openvino_toolkit_
sudo -E ./install_openvino_dependencies.sh
./install_GUI.sh
这里逐句分析上述命令了:
第一行:进入到 home 下的下载文件夹,这个是在Linux系统中下载的默认文件夹,你可以把安装包从共享文件夹复制到这里面,当然也可以直接在共享文件夹下操作(不推荐)。
第二行:解压安装包,“xvf”参数意义自行查找吧。
第三行之后:安装 NCSDK,最后一行是GUI界面安装。和Windows环境下差不多,点一点就行。一定要确保网络畅通,耐心等待。
source ~/intel/openvino/bin/setupvars.sh
cd ~/intel/openvino/install_dependencies
./install_NCS_udev_rules.sh
上述代码:
第一行:在安装好软件后,将软件的 setupvars.sh 放到环境变量里面。坑来了!!!
可能有些同学发现执行这个source ~后会报错:
/home/##/intel/openvino/bin/setupvars.sh: No such file or directory
打开home下的目录发现intel下就只有个isip的空文件!其实这个setupvars的文件路径在下面这个目录下:
/opt/intel/computer_vision_sdk/bin
所以你应该 source 这个东西:
source /opt/intel/computer_vision_sdk/bin/setupvars.sh
常规操作,最好是把这个东西放在 ~.bashrc 里面,也好今后用。
第二行:其实找到这个软件安装目录就好了,第二步就是安装驱动,当然,驱动文件也不在它说的那个里面,下述目录:
/opt/intel/computer_vision_sdk
第三步执行没问题,不涉及到其他环境和硬件问题。
接下来就是 Demo 的运行了:
cd ~/intel/openvino/deployment_tools/model_optimizer/install_prerequisites/
./install_prerequisites.sh
cd ~/intel/openvino/deployment_tools/dem
./demo_squeezenet_download_convert_run.sh -d MYRIAD
第一行:你只要找到前面说的目录应该就没问题了。
第二行:执行安装文件,这里通常会报一些警报、错误。多数和 Python 环境和 numpy库有关。尽量改一下吧。一个是更新 pip,一个是更新 numpy。
我更新的时候遇到了个 pip 不能安装 numpy的问题,这里要卸载 pip 重新安装。根据报错信息直接百度就能找到,我找不到之前的报错信息了,所以这里就不贴了。
第三行:进入 Demo 目录下,准备执行 Demo。
第四步:运行 Demo 。运行完大概是这个样子:
当然,这里常规有坑:
凡是遇到 Permission denied 的错误全部是权限问题,切个 root 或 sudo 一下就解决。
另外
g++: internal compiler error: Killed (program cc1plus)
这种属于运行内存不足问题,关机(如果设置过了 .bashrc可以放心关机),在虚拟机设置里面增加你内存大小,我的2GB报错,调整到了4GB.不想关机的还可以参考以下博客:
https://blog.csdn.net/fenquegong2126/article/details/80988452
另一个坑:
Can not init USB device: NC_DEVICE_NOT_FOUND
这个坑花的时间比较长,又是关机重启,又是重新插拔硬件。解决方案:
$ cd /opt/intel/common/mdf/lib64
$ sudo mv igfxcmrt64.so igfxcmrt64.so.org
$ sudo ln -s libigfxcmrt64.so igfxcmrt64.so
$ cd /opt/intel/mediasdk/lib64
$ sudo mv libmfxhw64.so.1 libmfxhw64.so.1.org
$ sudo mv libmfx.so.1 libmfx.so.1.org
$ sudo mv libva-glx.so.2 libva-glx.so.2.org
$ sudo mv libva.so.2 libva.so.2.org
$ sudo mv libigdgmm.so.1 libigdgmm.so.1.org
$ sudo mv libva-drm.so.2 libva-drm.so.2.org
$ sudo mv libva-x11.so.2 libva-x11.so.2.org
$ sudo ln -s libmfxhw64.so.1.28 libmfxhw64.so.1
$ sudo ln -s libmfx.so.1.28 libmfx.so.1
$ sudo ln -s libva-glx.so.2.300.0 libva-glx.so.2
$ sudo ln -s libva.so.2.300.0 libva.so.2
$ sudo ln -s libigdgmm.so.1.0.0 libigdgmm.so.1
$ sudo ln -s libva-drm.so.2.300.0 libva-drm.so.2
$ sudo ln -s libva-x11.so.2.300.0 libva-x11.so.2
一般对于 NCS 1.0来说,前三行应该能解决问题,但是我在论坛里面看到说对于2代好像没有用。
https://software.intel.com/zh-cn/node/801068?language=en
https://software.intel.com/en-us/search/site/language/en/language/zh-hans?query=movidius