配置之前的琐事和解决方法
之前配置了的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
其一,这是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 下载页面