Ubuntu16.04编译caffe CPU版、opencv3

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-23 05:04   49   0

2、安装caffe SSD:

(1)安装依赖:sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev

liblmdb-dev protobuf-compiler

(2)克隆caffe仓库,并复制一份Makefile.conifg:

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

cd caffe

git checkout ssd

cp Makefile.config.example Makefile.config

(3) 修改Makefile.config:

vi Makefile.config

# 这里我是使用CPU版本的,因此修改如下行

# CPU-only switch (uncomment to build without GPU support).

CPU_ONLY := 1

# 接下来修改配置是OPENCV可用(这里有个问题就是,当我取消注释掉USE_OPENCV := 0,在后续执行时,依然会提醒我OPENCV这个模块没有找到。

# 查看Makefile文件,发现编译OPENCV与否的判断条件是判断USE_OPENCV是否为1,于是修改其为USE_OPENCV := 1,再次编译就通过了,修改为如下

# 行)

# uncomment to disable IO dependencies and corresponding data layers

USE_OPENCV := 1

# 这里我使用的是OPENCV3,所以修改为如下行

# Uncomment if you're using OpenCV 3

OPENCV_VERSION := 3

(4)好像看起来一切都准备好了,尝试编译

make all

(5)可能会遇到的问题:

(5.1)错误如下:src/caffe/layers/hdf5_data_layer.cpp:13:18: fatal error: hdf5.h: No such file or directory compilation terminated.

Makefile:581: recipe for target '.build_release/src/caffe/layers/hdf5_data_layer.o' failed

通常情况下,我们在上面已经安装了hdf5.h,但是好像系统不知道去哪找hdf5.h这个头文件。

$ ls /usr/lib/x86_64-linux-gnu/ | grep libhdf5_seria

# 你会看到如下内容

# 我们建立一个软连接

sudo ln -s /usr/lib/x86_64-linux-gnu/libhdf5_serial.so.10.1.0 /usr/lib/x86_64-linux-gnu/libhdf5.so

sudo ln -s /usr/lib/x86_64-linux-gnu/libhdf5_serial_hl.so.10.0.2 /usr/lib/x86_64-linux-gnu/libhdf5_hl.so

# 这里需要我们修改Makefile.config的文件,使其能够找到hdf5.h

vi Makefile.config

# 将对应行修改为如下行

# Change INCLUDE_DIRS to add hdf5 files, if you have problem with hdf5.h package, please see Step-4.3.

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial

# 再次编译

make all

(5.2) 可能你也会遇到一些其他错误,如liblmdb not found、glog not found等。安装对应的包即可

(6)一切顺利的话,跑一个test,测试一下:

make test

make runtest

# 全OK的话,就成功了。

# 这里为了使用Python直接使用caffe,把Python也编进去

# Make sure to include $CAFFE_ROOT/python to your PYTHONPATH.

make pycaffe

# 这里可能会遇到这个错误(CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp python/caffe/_caffe.cpp:10:31: fatal error:

# numpy/arrayobject.h: No such file or directory compilation terminated.

# Makefile:501: recipe for target 'python/caffe/_caffe.so' failed)

# 原因是numpy被安装到了一个不同路径,所以找不到numpy/arrayobject.h

vim Makefile.config

# 将对应行修改为如下行

PYTHON_INCLUDE := /usr/include/python2.7 /usr/lib/python2.7/dist-packages/numpy/core/include

# 再次make,这次应该就OK了,接下来我们通过编辑bashrc文件,将这个caffe 模块加到$PYTHONPATH

sudo vim ~/.bashrc

# 将加粗部分替换为你的caffe下的Python路径

export PYTHONPATH=/home/hostname/caffe/python:$PYTHONPATH

source ~/.bashrc

# 测试一下,import成功就OK了

Python

import caffe

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP