Jetson-tx1 Caffe-SSD 安装与测试

来源:互联网 发布:怎么管理淘宝店铺 编辑:程序博客网 时间:2024/05/16 17:17

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/pythonsudo 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 caffeImportError: 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')

运行效果展示:
这里写图片描述

原创粉丝点击