Movidus 神经计算棒 树莓派平台 ncsdk2.0 完全配置 及 一些问题

配置之前的琐事和解决方法

之前配置了的1.x版本的ncsdk。错误百出,于是有了另一篇文章就是纯API配置,没有配完全版。

经过我的测试,用以下方法配置是可以用的。配置方法和下面的2.0类似,不过有可能出现170错误

PREV_INSTALL_INFO='$SUDO_PREFIX find /opt /home -name $INSTALL_INFO_FILENAME -print 2> /dev/null'

make install: Error in line 170

那么解决方法是什么呢?

根据makefile里面的信息,它是在/ opt / movidius那里运行安装程序。我在/opt/movidius/NCSDK/install-ncsdk.sh中找到了安装程序

第170行。

修改这个至少完成了安装过程。但是卸载好像不能用了。只能自己去删除文件。后续有待测试。

在第170行那里,把下面的语句注释掉。

#PREV_INSTALL_INFO=`$SUDO_PREFIX find /opt /home -name $INSTALL_INFO_FILENAME -print 2> /dev/null`
#if [[ ! -z $PREV_INSTALL_INFO ]]; then
#   PREV_OWNER=$(ls -l $PREV_INSTALL_INFO | awk '{print $3}')
#   if [ $PREV_OWNER != $USER ]; then
#       echo "Previous installation not owned by current user, continue at your own risk"
#   fi
#   PREV_INSTALL_DIR=${PREV_INSTALL_INFO%/*}
#   PREV_NCSDK_VER=`cat $PREV_INSTALL_DIR/version.txt`
#   echo "NCSDK version $PREV_NCSDK_VER previously installed at $PREV_INSTALL_DIR"

#   compare_versions $PREV_NCSDK_VER $INSTALLER_NCSDK_VER

#   #TODO: remove older version, or update as necessary
#   if [[ $VERCOMP_RETVAL == 0 ]]; then
#       echo "Previously installed version is the same as installer version, overwriting..."
#   elif [[ $VERCOMP_RETVAL == 1 ]]; then
#       echo "Previously installed version is older than installer version, upgrading..."
#   else
#       echo "Previously installed version is more recent than installer version, downgrading..."
#   fi
#fi

然后回到下载的ncsdk的文件夹里面,找到install.sh这个文件,用文本编辑器编辑

gedit install.sh

找到第35行,把它们改成这样,该注释掉的注释掉

# untar the new install and run the install script
#sudo tar zxvf ./ncsdk.tar.gz
#sudo rm -rf NCSDK
#sudo mv $ncsdk_pkg* NCSDK
cd /opt/movidius/NCSDK
cp /tmp/ncsdk.conf .
./install-ncsdk.sh

在把同目录下的ncsdk.conf改成这样

MAKE_PROCS=1
SETUPDIR=/opt/movidius
VERBOSE=yes
SYSTEM_INSTALL=yes
CAFFE_FLAVOR=ssd
INTEL_CAFFE=no
CAFFE_USE_CUDA=no
INSTALL_TENSORFLOW=yes
INSTALL_TOOLKIT=yes

 

然后直接运行

make install

应该就行了,在运行例子的时候可能会遇到

RuntimeError: module compiled against API version 0xb but this version of numpy is 0xa

这个是你的numpy的版本太低了,升级一下就好了。

sudo pip3 install -U numpy

 

 

回到正题,我完全重新刷了树莓派,重新开始安装ncsdk2.0

一,NCSDK2.0的安装

    官方参考配置安装链接

1.准备

在桌面创建一个文件夹,放下载的东西

cd ~/Desktop
mkdir workspace
cd workspace

 

2.克隆2.0安装包和例子

git clone -b ncsdk2 http://github.com/Movidius/ncsdk

git clone -b ncsdk2 https://github.com/movidius/ncappzoo.git

-b ncsdk2选项从ncsdk2分支中检出最新版本的NCSDK 2.如果省略此选项,则将在主分支上安装NCSDK版本,该分支当前为NCSDK 1.x.

注意:如果安装1.x的不用加-b ncsdk2,可能出现的问题在上面已经写出来了,安装步骤基本一样

 

3.源更新

sudo apt-get update

sudo apt-get upgrade

 

4.安装一些依赖包

sudo apt-get update -y && sudo apt-get upgrade -y
sudo apt-get install -y build-essential cmake pkg-config
sudo apt-get install -y libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install -y libxvidcore-dev libx264-dev
sudo apt-get install -y libgtk2.0-dev libgtk-3-dev
sudo apt-get install -y libatlas-base-dev gfortran
sudo apt-get install -y python2.7-dev python3-dev


sudo apt-get install -y libusb-1.0-0-dev libprotobuf-dev
sudo apt-get install -y libleveldb-dev libsnappy-dev
sudo apt-get install -y libopencv-dev
sudo apt-get install -y libhdf5-serial-dev protobuf-compiler
sudo apt-get install -y libatlas-base-dev git automake
sudo apt-get install -y byacc lsb-release cmake
sudo apt-get install -y libgflags-dev libgoogle-glog-dev
sudo apt-get install -y liblmdb-dev swig3.0 graphviz
sudo apt-get install -y libxslt-dev libxml2-dev
sudo apt-get install -y gfortran
sudo apt-get install -y python3-dev python-pip python3-pip
sudo apt-get install -y python3-setuptools python3-markdown
sudo apt-get install -y python3-pillow python3-yaml python3-pygraphviz
sudo apt-get install -y python3-h5py python3-nose python3-lxml
sudo apt-get install -y python3-matplotlib python3-numpy
sudo apt-get install -y python3-protobuf python3-dateutil
sudo apt-get install -y python3-skimage python3-scipy
sudo apt-get install -y python3-six python3-networkx

sudo apt-get install -y libusb-1.0-0-dev libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler libatlas-base-dev git automake byacc lsb-release cmake libgflags-dev libgoogle-glog-dev liblmdb-dev swig3.0 graphviz libxslt-dev libxml2-dev gfortran python3-dev python-pip python3-pip python3-setuptools python3-markdown python3-pillow python3-yaml python3-pygraphviz python3-h5py python3-nose python3-lxml python3-matplotlib python3-numpy python3-protobuf python3-dateutil python3-skimage python3-scipy python3-six python3-networkx python3-tk

5.安装

cd ncsdk

找到ncsdk.conf用编辑器打开,把里面的#MAKE_NJOBS = 1的这一行前面的#号去掉。为了防止树莓派在编译的时候死机我们用1就好了,改2问题也不大,会快点。

然后

make install

等待安装完成就好了

然后编译例子

make examples

会提示你安装OpenCV的,没有装的话,选是装上就行了。

6.安装期间的问题

1.有时候会遇到一些这样的问题

Errno Permission denied:

是权限的问题,有时候没有权限去读取某个文件,导致文件安装失败或编译失败。找到你的文件的文件夹。一般是/选择/ movidius我们将整个文件夹和其子文件都改下权限和用户及用户组就行了。

sudo chmod -R +r /opt/movidius/*
sudo chown -R pi:pi /opt/movidius/*

2.在编译安装完成后,试试是否配置成功。

cd examples/apps/hello_ncs_py
make run

显示

making run
python3 hello_ncs.py;
D: [         0] ncDeviceCreate:307	ncDeviceCreate index 0

D: [         0] ncDeviceCreate:307	ncDeviceCreate index 1

D: [         0] ncDeviceOpen:501	File path /usr/local/lib/mvnc/MvNCAPI-ma2450.mvcmd

I: [         0] ncDeviceOpen:507	ncDeviceOpen() XLinkBootRemote returned success 0

I: [         0] ncDeviceOpen:536	XLinkConnect done - link Id 0

D: [         0] ncDeviceOpen:550	done

I: [         0] ncDeviceOpen:552	Booted 1.2-ma2450 -> VSC

I: [         0] getDevAttributes:373	Device attributes

I: [         0] getDevAttributes:376	Device FW version: 2.4.2450.f0

I: [         0] getDevAttributes:378	mvTensorVersion 2.4 

I: [         0] getDevAttributes:379	Maximum graphs: 10

I: [         0] getDevAttributes:380	Maximum fifos: 20

I: [         0] getDevAttributes:382	Maximum graph option class: 1

I: [         0] getDevAttributes:384	Maximum device option class: 1

I: [         0] getDevAttributes:385	Device memory capacity: 522073264

Hello NCS! Device opened normally.
I: [         0] ncDeviceClose:742	closing device

Goodbye NCS! Device closed normally.
NCS device working.

就成功了。

在试试其他的例子

回到工作区目录里面

cd ncappzoo/apps/birds/
make run

正常情况会运行这样

 

但是有可能会出现以下问题:

1.在运行以上程序时在编译时

making compile

mvNCCompile -w bvlc_googlenet.caffemodel -s 12 deploy.prototxt

mvNCCompile v02.00, Copyright @ Movidius Ltd 2016

Error importing caffe

其一,这是朱古力安装的问题,重新编译安装就好了。

其二,你的环境变量可能有问题

           工具包设置的默认PYTHONPATH/ opt / movidius / caffe / python,在你的bashrc文件中,它应如下所示:

export PYTHONPATH=:"${PYTHONPATH}:/opt/movidius/caffe/python"

如果在你的〜/ .bashrc中文件里面没有这一句的话,在最后加上就行了。

2.编译时报错

RuntimeError: module compiled against API version 0xb but this version of numpy is 0xa

这个是你的numpy的版本太低了,升级一下就好了。

sudo pip install -U numpy
sudo pip3 install -U numpy

我操作了第二条命令行才成功,看了用的是python3运行

版本的升降用一下命令就行了,类似在后面加版本号就可以升降级了

sudo pip3 install -U numpy==13.3.1

再次编译应该就可以了

3.例子编译错误

(1)stream_infer例子报错

making run
python3 stream_infer.py
Traceback (most recent call last):
  File "stream_infer.py", line 16, in <module>
    gi.require_version('Gst', '1.0')
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 118, in require_version
    raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace Gst not available
Makefile:27: recipe for target 'run' failed
make: *** [run] Error 1

这个是一些软件包没有安装:输入下面的命令行安装

sudo apt-get install gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 gstreamer1.0-tools

(2)video_face_match报错

因为里面有一个文件是外网的链接下载不了,所以报错把我下面的文件复制到ncappzoo/tensorflow/facenet里面就行了

下载页面

(3)caffe例子里面的MobileNetSSD编译报错,模型下载不了

MobileNetSSD_deploy.caffemodel 下载页面

 

参考网站:

make install:第170行的错误

ncsdk基本安装和配置

搭配Movidius神经计算棒的树莓派3B安装笔记

Movidius神经计算棒“疑难杂症”全解析

api ncsdk开发部署

mvnccompile

人脸识别raspberry pi 3b +

NCS上运行编译好的DNN模型

Movidius NCS SDK的安装过程解析

使示例错误

设置API,获取“来自Caffe导入错误”

github ncappzoo

使示例中的RuntimeError

展开阅读全文

没有更多推荐了,返回首页