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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章