英伟达jetson TX1的caffe-ssd配置
本文主要介紹,英偉達超級計算模塊jetson tx1的刷機過程及其配置caffe的教程
刷Jetpack包
首先是刷英偉達官網提供的Jetpack2.3,該包的具體介紹見:https://developer.nvidia.com/embedded/jetpack
首先看所需要的一些硬件:
一個裝有ubuntu14.04的host(官網要求host必須是14.04系統)
Usb hub(Tx1需要用鍵鼠對它進行操作)
鍵鼠
HDMI接口的顯示屏
路由器 連接host和tx1
下載jetpack2.3安裝包
https://developer.nvidia.com/embedded/jetpack
下面是主機上進行的:
在/home/ubuntu/新建一個文件夾JetPack-2.3用于存放下載文件JetPack-L4T-2.3-Linux-x64.run
cd /home/ubuntu/ mkdir JetPack cp /home/ubuntu/Downloads/JetPack-L4T-2.3-linux-x64.run /home/ubuntu/JetPack安裝jetpack
cd /home/JetPack chmod 777 JetPack-L4T-2.3-linux-x64.run ./ JetPack-L4T-2.3-linux-x64.runNext
選擇tx1
NEXT
由于我已經安裝好了所有的包,所以這邊的Action一欄是no action,如果沒有安裝過的話,會顯示install xxx。
這里點擊Next后,接受所有的申明,就開始了漫長的下載與安裝…(我等了10多個小時)
沒有選擇安裝opencv。
下載完后進入網絡配置選項,選擇通過路由器連接互聯網,同時將TX1連接到與主機同一個路由器上。
選擇eth0端口,點擊Next
設置 TX 1 為 Force USB Recovery Mode (強制USB恢復模式)
關閉設備,移除電源適配器
用自帶的Micro USB 轉 USB 數據線連接主機與TX1
連接電源適配器
按下POWER按鈕
按住FORCE RECOVERY 按鈕不放開,同時按一下RESET按鈕,等待兩秒鐘,松開FORCE RECOVERY 按鈕
在上面這個終端用命令
lsusb
lsusb命令查看是否含有Nvidia Corp設備,確認存在后敲擊Enter,開始將操作系統以及開發包拷貝到TX1,中途連接TX1的顯示器會顯示Ubuntu 16.04 桌面系統
待安裝部署完成后,在主機上退出 JetPack L4T 即可,這樣就完成了 JetPack 2.3 的配置
配置opencv3.1
OpenCV 3.1 是目前較為穩定的版本,因此推薦大家在TX1上安裝OpenCV 3.1
下載 OpenCV 3.1
下載 OpenCV for Linux/Mac (Version 3.1)
https://github.com/Itseez/opencv/archive/3.1.0.zip
http://dev.t7.ai/jetson/opencv/
安裝依賴庫
sudo apt-add-repository universe sudo apt-get update sudo apt-get install -y build-essential make cmake cmake-curses-gui g++ sudo apt-get install -y libavformat-dev libavutil-dev libswscale-dev sudo apt-get install -y libv4l-dev libeigen3-dev libglew1.6-dev libgtk2.0-dev編譯安裝OpenCV 3.1
cd /home/Ubuntu/Downloads cp opencv-3.1.0.zip /home/Ubuntu/ cd .. unzip opencv-3.1.0.zip cd opencv-3.1.0 mkdir build cd build cmake -DWITH_CUDA=ON -DCUDA_ARCH_BIN="5.3" -DCUDA_ARCH_PTX="" -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DCUDA_FAST_MATH=ON ..由于CUDA 8.0不支持OpenCV的 GraphCut 算法,可能出現以下錯誤:
/home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:120:54: error: 'NppiGraphcutState' has not been declared typedef NppStatus (*init_func_t)(NppiSize oSize, NppiGraphcutState** ppStat ^ /home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:135:18: error: 'NppiGraphcutState' does not name a type operator NppiGraphcutState*() ^ /home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:141:9: error: 'NppiGraphcutState' does not name a type NppiGraphcutState* pState; .......此時需要修改OpenCV源碼,使其不編譯graphcuts.cpp 即可
進入opencv-3.1.0/modules/cudalegacy/src/目錄,修改graphcuts.cpp文件,將:
#include "precomp.hpp" #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)修改為:
#include "precomp.hpp" #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)sudo make -j4 install
編譯好的OpenCV庫會默認安裝到 /usr/local/文件夾下
配置caffe-ssd
添加依賴庫:
?
sudo add-apt-repository universe sudo apt-get update -y sudo apt-get install python-pip python-dev sudo apt-get install cmake -y # General Dependencies sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev \ libhdf5-serial-dev protobuf-compiler -y sudo apt-get install --no-install-recommends libboost-all-dev -y # BLAS sudo apt-get install libatlas-base-dev –y sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran python-numpy # Remaining Dependencies sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev -y sudo apt-get install python-dev python-numpy –y下載源碼:
git clone https://github.com/weiliu89/caffe.git cd caffe/ git checkout ssd #切換至分支ssd cd /home/Ubuntu/caffe/python for req in $(cat "requirements.txt"); do pip install -i https://pypi.tuna.tsinghua.edu.cn/simple $req; done修改Makefile.config
cd /home/ubuntu/caffe cp Makefile.config.example Makefile.config gedit Makefile.config1、將 USE_CUDNN := 1 取消注釋 2、INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include 后面打上一個空格 然后添加/usr/include/hdf5/serial LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 后面打上一個空格,然后添加/usr/lib/aarch64-linux-gnu/hdf5/serial/ 3、# Uncomment if you're using OpenCV 3 OPENCV_VERSION := 3 4、# Uncomment to support layers written in Python (will link against Python libs) WITH_PYTHON_LAYER := 1
說明:第1步的作用是使用cudnn編譯,第2、3步是添加hdf5的路徑,沒有的話會出現找不到hdf5.h的錯誤。
gedit Makefile進入文件,修改
NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)為?
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)說明:修改這一步是為了避免出現string.h 'memcy' was not declared in this scope這樣的錯誤,這種錯誤通常是由于gcc版本太新而導致的。
建立hdf5軟連接
cd /usr/lib/aarch64-linux-gnu sudo ln libhdf5_serial.so.10.1.0 libhdf5.so sudo ln libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so sudo ldconfig #使連接生效編譯caffe
cd /home/Ubuntu/caffe make all -j4 make test -j4 make runtest -j4(這一步,github給出的選項是可選,沒必要搞其實) make pycaffe -j4都搞完之后,驗證一下是否安裝成功
cd python import caffe沒有報錯就ok
測試AlexNet
測試SSD:
下載VGGNET的模型
http://www.cs.unc.edu/~wliu/projects/SSD/models_VGGNet_VOC0712_SSD_300x300.tar.gz
解壓,把其中的VGGNET文件夾放到/home/Ubuntu/models/下
/home/ubuntu/models/VGGNET
這時候添加pycaffe的環境變量
?
cd echo "export PYTHONPATH=/home/ubuntu/caffe/python" >> ~/.profile source ~/.profile echo $PYTHONPATH #檢查環境變量的值接下來是調用一個usb攝像頭,并用抓取到的視頻進行檢測
在.profile文件中添加環境變量
echo "export LD_PRELOAD=/usr/lib/aarch64-Linux-gnu/libv4l/v4l1compat.so" >> ~/.profile然后在examples/ssd/ssd_pascal_webcam.py文件中修改"webcam_id=1"即可。
然后運行:
cd /home/ubuntu/caffe python examples/ssd/ssd_pascal_webcam.py檢測效果只有6幀,好慢呀!
問題
遇到問題:
can not find –lopenblas解決問題:
sudo apt-get install libopenblas-devhttp://www.openblas.net/
?
?福利答謝大家!
感謝您閱讀本篇文章,對此特別發放一個無門檻的現金紅包,打開支付寶掃碼領取,可以領到錢的哦!
?
本文參考:
https://github.com/weiliu89/caffe/tree/ssd#installation
http://blog.csdn.net/Jalong_Ma/article/details/52743923
http://blog.csdn.net/jesse_mx/article/details/53404563
總結
以上是生活随笔為你收集整理的英伟达jetson TX1的caffe-ssd配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux mysql 共享存储空间_L
- 下一篇: Java制作一个盒子程序_编写一个简单的