NVIDIA JETSON AGX XAVIER試玩-caffe篇

pondahai
8 min readMar 25, 2019

目前深度學習的框架眾多百家爭鳴,所幸nvidia之前的TX1/TX2模組有許多人為它移植框架,這裡介紹常見的caffe深度學習框架來試玩這台xavier。以下用步驟式說明詳細。

開始之前請玩家注意,開源資源瞬息萬變,如安裝遇到問題請詳閱錯誤訊息,有時候解答就在訊息中。

先到caffe官網拜訪一下,這個框架是 Yangqing Jia創建的,目前由 Berkeley AI Research (BAIR)及社群維護著。caffe深度學習框架可以用來快速實現影像分類與偵測。
http://caffe.berkeleyvision.org/

下載
到github下載zip或是下git clone指令
網址:https://github.com/BVLC/caffe
將下載檔案放在/home/nvidia
解壓縮後的資料夾更名為caffe

注意:以下操作都必須令caffe原始碼資料夾位在/home/nvidia

安裝相依

在終端機依序輸入下列指令
sudo apt install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler libgflags-dev libgoogle-glog-dev liblmdb-dev python3-pip libfreetype6-dev libpng-dev gfortran
sudo apt install --no-install-recommends libboost-all-devsudo apt install libatlas-base-dev

將系統python版本改為3

在終端機中執行下列命令
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2

複製一組Makefile.config檔案

在終端機中執行下列命令
cd caffe
cp Makefile.config.example Makefile.config

修改Makefile.config
用gedit編輯檔案,將下列設定字串的行首井字移除

開啟使用cuDNN

設定opencv版本為3

確認CUDA版本,要將前兩行命令遮蔽

確認Python版本,本範例使用python3.6,因此首先將原python2設定遮蔽

接著將python3設定字串中的3.5改成3.6

增添include及library路徑,在原路徑字串尾加入新增路徑

編譯

在終端機中執行下列命令
cd caffe
make all

編譯後測試,編譯結果如出現錯誤則須根據錯誤結果將之排除

接著在終端機中執行下列命令
make test
make runtest

安裝python所需程式庫,以及編譯pycaffe
需要先將caffe/python/requirements.txt內的python-dateutil的那一行改為python-dateutil>=2.0

前往 caffe/python 資料夾,在終端機輸入下列指令安裝所需python程式庫cd python
for req in $(cat requirements.txt); do sudo pip3 install $req; done
將python-dateutil升級
pip3 install --upgrade python-dateutil
上述指令沒有錯誤發生的話,接著執行編譯pycaffe
cd ..
make pycaffe

增添環境變數,以下指令需要以caffe原始碼資料夾位在/home/nvidia下

在終端機中執行下列命令
export PYTHONPATH=/home/nvidia/caffe/python/:$PYTHONPATH

python程式庫測試

進入python環境
輸入以下指令按Enter,結果應該要無錯誤
import cv2
import caffe
在python直譯環境下測試程式庫其結果無錯誤

到目前以上的步驟,可能遇到的問題解法如下
沒有pip則安裝pip3

在終端機中執行下列命令
sudo apt install python3-pip

上列python程式庫安裝可能會出現scikit-image錯誤,可單獨再安裝一次

在終端機中執行下列命令
pip3 install scikit-image

如果sckit-image發生安裝錯誤,錯誤訊息中可能會提到下列欠缺的程式套件
libfreetype6-dev
libpng12-dev(需要libpng-dev程式套件包)

在終端機中執行下列命令
sudo apt install libfreetype6-dev libpng-dev
再執行一次
pip3 install scikit-image

上述安裝過程有可能發生錯誤,這次說沒有fortran編譯器,於是安裝它

在終端機中執行下列命令
sudo apt install gfortran
再執行一次
pip3 install scikit-image

安裝模型資料

在caffe資料夾下執行
./data/ilsvrc12/get_ilsvrc_aux.sh
接著終端機下執行下列指令取得模型檔
cd /home/nvidia/Downloads
wget http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel

下載測試程式

執行下列命令取得辨識程式原始碼
cd /home/nvidia/Downloads
wget https://gist.githubusercontent.com/pondahai/558e30bd70330a935a90967dca115644/raw/e975af64cb28030a10a3a7be03869de819d03c0f/my-mod-tegra-cam-caffe.py

安裝USB攝影機

執行測試程式

在終端機中執行下列命令,以下指令是同一行
python my-mod-tegra-cam-caffe.py \
--prototxt /home/nvidia/caffe/models/bvlc_reference_caffenet/deploy.prototxt \
--model /home/nvidia/Downloads/bvlc_reference_caffenet.caffemodel \
--labels /home/nvidia/caffe/data/ilsvrc12/synset_words.txt \
--mean /home/nvidia/caffe/data/ilsvrc12/imagenet_mean.binaryproto

執行結果如下影片所示,祝你好玩!

參考資料:
https://devtalk.nvidia.com/default/topic/1044473/caffe-installation-on-xavier/
https://github.com/astorfi/Caffe_Deep_Learning/tree/master/Installation

--

--

pondahai

有容乃大 海納百川 我是彭大海 以前是工程師 現在不是工程師 贊助鏈結: https://www.paypal.me/pondahai