安装Caffe——SSD

前言

此篇博文,博主将详细介绍Jetson TX1如何安装运行caffe框架。因为要在开发板上跑ssd的demo,所以就直接clone ssd项目了,反正ssd也是caffe的一个分支,除了ssd特有的层,二者在编译运行上几乎一样。

安装依赖包

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

sudo apt-get install build-essential -y #必要的编译工具依赖
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

PS:毕竟不是笔记本电脑,下载安装过程可能极为缓慢,需要有充足的时间和耐心。

安装easy_install和pip

pip和easy_install的作用是方便以后安装python软件包

下载安装easy_install

wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py 

也可以使用博主上传的py文件:ez_setup.py

sudo python ez_setup.py --insecure 

下载安装pip

wget https://bootstrap.pypa.io/get-pip.py 

也给出下载地址:get-pip.py

sudo python get-pip.py

安装python常用库

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

克隆ssd源码

git clone https://github.com/weiliu89/caffe.git
cd caffe/
git checkout ssd #切换至分支ssd

安装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模式

编译caffe-ssd

这里建议先把能改的都改了,最后进行编译,一次就可以成功,可以节省不少时间。

修改Makefile.config

cd ~/caffe
cp Makefile.config.example Makefile.config
gedit Makefile.config
  1. USE_CUDNN := 1 取消注释
  2. INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include 后面打上一个空格 然后添加/usr/include/hdf5/serial
  3. LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 后面打上一个空格,然后添加/usr/lib/aarch64-linux-gnu/hdf5/serial/

说明:第1步的作用是使用cudnn编译,第2、3步是添加hdf5的路径,没有的话会出现找不到hdf5.h的错误。

修改Makefile

cd ~/caffe
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 #使连接生效

说明:这一步是为了建立软连接,避免出现找不到lhdf5_hl和lhdf5的错误。

编译caffe-ssd

cd ~/caffe
make all -j4
make test -j4
make runtest -j4
make pycaffe -j4
make matcaffe -j4 #可选,但要修改其他选项,参看底部文献

编译过程中可能会出现nvcc warning: The 'compute_20'and 'sm_21' architectures are ......这种警告,可以不管,只要编译过程中不报错就OK。

cd ~/caffe/python
python
import caffe

上面是在测试Python环境,只要没报错,就可以说明编译成功了。也有可能会出警告:UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment 这种情况也不要紧,可用下面命令消除之:

import matplotlib
matplotlib.use('TkAgg')

PS:make runtest -j4居然运行了一个多小时,已经无力吐槽。。。

测试AlexNet

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

测试结果为total time:10687.4ms

运行caffe-ssd

在Jetson TX1上运行ssd的过程和电脑上基本一样,详细的步骤可以参考博主的文章:
SSD:Single Shot MultiBox Detector的安装配置和运行
这里,仍然简要说下步骤:

下载使用已有模型

想直接看看ssd效果的话,可以下载作者训练好的模型:下载地址

得到了一个压缩包:models_VGGNet_VOC0712_SSD_300x300.tar.gz ,将其解压,把其中的VGGNet文件夹放到/home/ubuntu/caffe/models/目录之下。

增加pycaffe环境变量

cd 
echo "export PYTHONPATH=/home/ubuntu/caffe/python" >> ~/.profile
source ~/.profile
echo $PYTHONPATH #检查环境变量的值

如果没有这一步的话,可能会出现no module named caffe或者no module named caffe-proto这种错误。

进行webcam检测

cd ~/caffe
python examples/ssd/ssd_pascal_webcam.py

过一会应该会出现检测窗口,但非常不幸的是,开始报错,说无法打开摄像头,原因推测是没有成功调用Jetson TX1内置的CSI摄像头,方法找到了再补充。

进行video检测

cd ~/caffe
python examples/ssd/ssd_pascal_video.py

这里会对内置的演示视频进行检测,这次没有出问题,可以运行成功,我就不放图了,效果和电脑比较有一定差距,帧率比较低,看以后能不能想办法加速一下。

PS:在终端键入Ctrl+Shift+C可退出程序运行。

进行image检测

参看博主之前的博文:SSD: Single Shot MultiBox Detector检测单张图片

开发板也研究一周了,ssd也还算能跑的通,看来下一步就得训练自己的数据模型了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,036评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,046评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,411评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,622评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,661评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,521评论 1 304
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,288评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,200评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,644评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,837评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,953评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,673评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,281评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,889评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,011评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,119评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,901评论 2 355

推荐阅读更多精彩内容