您的位置:首页 > Web前端

Jetson-tx1 Caffe-SSD 安装与测试

2017-09-07 13:53 507 查看
1 介绍

该片博文主要记录在Jetson-TX1上如何安装Caffe-SSD框架,以备日后方便查阅!

2 依赖包

依次安装以下依赖项,如果不想每一次install都出现yes or no的提示项,可以在命令末尾加上“-y”。

$ sudo apt-get install build-essential -y

$ 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

$ sudo apt-get install libatlas-base-dev -y

$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev -y

$ sudo apt-get install python-pip -y

$ sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran python-numpy -y


3 下载源码

$ git clone https://github.com/weiliu89/caffe.git 
$ cd caffe/

$ git checkout ssd # 切换至分支ssd


4 pycaffe所需依赖包

cd ~/caffe/python

sudo su # 使用超级权限

for req in $(cat "requirements.txt"); do pip install -i https://pypi.tuna.tsinghua.edu.cn/simple $req; done


PS.终端输入Ctrl+Shift+d退出sudo su模式

5 caffe-ssd编译

5.1 修改Makefile.config

$ cd ~/caffe

$ cp Makefile.config.example Makefile.config

$ gedit Makefile.config


修改CUDNN、INCLUDE_DIRS、LIBRARY_DIRS以及CUDA_ARCH(PS:–表示删除,++表示添加)

--#USE_CUDNN := 1
++USE_CUDNN := 1

--INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
--LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
++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

--CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
--             -gencode arch=compute_20,code=sm_21 \
--             -gencode arch=compute_30,code=sm_30 \
--            -gencode arch=compute_35,code=sm_35 \
--             -gencode arch=compute_50,code=sm_50 \
--             -gencode arch=compute_52,code=sm_52 \
--             -gencode arch=compute_61,code=sm_61

++CUDA_ARCH := -gencode arch=compute_53,code=sm_53 \  #Jetson-Tx1
++             -gencode arch=compute_62,code=sm_62    #Jetson-Tx2


5.2 修改Makefile

打开Makefile

$ cd ~/caffe

$ gedit Makefile


修改文件

--NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
++NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)


ps:修改这一步是为了避免出现string.h ‘memcy’ was not declared in this scope这样的错误,这种错误通常是由于gcc版本太新而导致的。

5.3 建立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 # 使连接生效


5.4 编译

$ cd ~/caffe

$ mkdir build

$ cd build

$ cmake ../

$ make -j4

$ make pycaffe -j4


5.5 测试Python运行环境

$ cd ~/caffe/python

$ python

$ import caffe


ps:上面是在测试Python环境,只要没报错,就可以说明编译成功了。

5.6 测试Alexnet

$ cd ~/caffe

$ ./build/tools/caffe time --gpu 0 --model ./models/bvlc_alexnet/deploy.prototxt


6 SSD模型测试

6.1 下载模型:

6.2增加pycaffe环境变量

$ cd

$ echo "export PYTHONPATH=/home/nvidia/caffe/python:$PYTHONPATH" >> ~/.profile

$ source ~/.profile

$ echo $PYTHONPATH #检查环境变量的值


ps:PYTHONPATH根据自己安装的实际情况设置。

6.3 进行webcam检测

$ cd ~/caffe

$ python examples/ssd/ssd_pascal_webcam.py


该过程中可能遇到一下错误:

Traceback (most recent call last):
File "examples/ssd/ssd_pascal_webcam.py", line 2, in <module>
import caffe
ImportError: No module named caffe


修改ssd_pascal_webcam.py文件;

from __future__ import print_function

++caffe_root = '/home/nvidia/caffe' #caffe的根目录
++import sys
++sys.path.insert(0,caffe_root + 'python')


运行效果展示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息