Jetson-tx1 Caffe-SSD 安装与测试

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')

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值