图像识别——ubuntu16.04 movidius VPU NCSDK深度学习环境搭建-桐烨科技-踏上文明的征程-51CTO博客
这篇文章本人不打算长篇累牍去写,结合以前写的文章,从软件角度去写一些点滴,伴随人工智能AI的火爆,现在图像识别算法也异常火爆,上一篇文章提到Intel movidius Myriad 2 VPU(MA2450)是一种简单易用的深度学习平台,说到简单易用,但很多网友和客户还是一头雾水,本人还是觉得在这里班门弄釜一下,简单写一些,在ubuntu环境下搭建深度学习开发环境。
Intel movidius提供一个免费下载的深度学习开发版本,叫NCSDK,是配合Intel movidius 神经计算棒(Neural Compute Stick简写:NCS)一起使用的,目前最新的版本是V2.05.00,这个版本我们的软件工程师还在测试,这里先介绍V1.12.00。 Intel movidius官网是: https://developer.movidius.com/。很多公司都已经采购一个Intelmovidius 神经计算棒学习。NCSDK安装手册要求使用64bit ubuntu16.04,这个本公司软件工程师也正在玩的环境。这里本人也没有必要去如何安装64bit ubuntu16.04,即ubuntu-16.04.3-desktop-amd64.iso,因为本人已经写过32bit的ubuntu16.04的文章见《图像识别DM8127开发攻略——开发环境搭建》和64bit ubuntu18.04的文章《Ubuntu-18.04 LTS嵌入式linux开发环境搭建》,参考这两篇文章应该完全可以正确安装64bit ubuntu16.04,不过有两个工具需要安装:Docker和Python virtualenv,百度一下使用apt-get install docker-ce相关文章和apt-get install virtualenv,apt-get install virtualenvwrapper相关文章。
环境搭建很简单,Intel movidius已经把整个免费的NCSDK打包好,你只要保证你的64bit ubuntu16.04能上网就可以了。
#apt update (安装ubuntu时如果做了就不做这一步)
#apt-get install git (安装ubuntu时如果做了就不做这一步)
#git clone https://github.com/movidius/ncsdk.git(这个是链接下载V1.XX的版本)
#cd ncsdk
#make install
#make examples (建议先插上神经计算棒在电脑上)
注意-注意-注意:20180817补充说明:上面的git方法下载官网宣布已经失效,movidius官网现在提供新的方法:
#wget https://ncs-forum-uploads.s3.amazonaws.com/ncsdk/ncsdk-01_12_00_01-full/ncsdk-1.12.00.01.tar.gz
#tar xvf ncsdk-1.12.00.01.tar.gz
#cd ncsdk-1.12.00.01
#make install
#make examples
同样V2.05版本可以关注官网的下载方法。
使用git去官网服务器下载对应的NCSDK包,上面的命令前面两个在安装ubuntu的时候就应该安装了,没有安装git工具就做前面两个命令。实际上是简简单单4个命令,就基本保证安装好Intel movidius NCSDK深度学习开发环境(不过这个网络下载安装时间有点长,耐心等待)。然后去淘宝或者京东花550-599元买一个Intel movidius 神经计算棒,插上电脑就可以玩了,VMware虚拟机安装的64bit ubuntu16.04都可以使用,只要支持usb2.0或者同时支持USB2.0-USB3.0的电脑都可以玩。也可以采购本公司的VPU模组,不过本公司的VPU模组(新版本也同时支持USB2.0和USB3.0信号)适合在嵌入式板子上面使用。下面是PC端需要的配置:
安装结束后,我们进入ncsdk目录下去看看。
上面3个图注意一下examples里面的路径,ls看看就明白了,NCS配套的SDK中已经集成了一些网络模型比如AlexNet,GoogLeNet,SqueezeNet等,可以直接拿来使用。官方提供的API同时支持C/C++以及Python语言,让用户灵活选择自己熟悉的编程语言。
除了上面的NCSDK软件包,还有另外一个很重要的ncappzoo,NC App Zoo是一个让用户可以分享自己使用NCS做的一些应用、模型的地方,见Intel movidius官网。
还有NCSDK软件工具主要包括了mvNCCompile、mvNCProfile以及mvNCCheck:
• mvNCCompile是将Caffe/TF模型转换为NCS可识别的graph文件
• mvNCProfile是提供每层的数据用于评估Caffe/TF网络模型在NCS上的运行效率,辅助开发者优化网络模型结构
• mvNCCheck是通过在NCS和Caffe/TF上运行网络比较推断的结果
(注意:这些编译工具放在/usr/local/bin目录下,并不在ncsdk源码包里面,还有/opt/movidius目录下也有很多东西,可以进去看一下)
API则是计算神经棒的硬件调用接口,通过训练得到的网络模型可以使用mvNCCompile工具编译为能被NCS识别的graph文件,通过调用API,NCS可以通过USB接口方便的与主机(比如树莓派3B)通信,NCS利用训练好的网络模型计算出图像分析的结果,并传输到主机上,完成推理工作。
以上是PC端 64bit ubuntu16.04环境搭建movidius ncsdk,安装过程是相当简单。当然上面提到的环境搭建并不是嵌入式ARM环境的搭建,在ARM 搭建这个环境需要用到匹配的交叉编译环境,这里先不描述。