ubuntu16.04源码安装opencv3.4.1和caffe

以下安装都是在我以前安装的基础上安装的

1.安装依赖:

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 libopenblas-dev liblapack-dev libatlas-base-dev

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

sudo apt-get install git cmake build-essential

到此为止安装依赖完成,接下来安装opencv3.4.1,在此之前我已经安装了python3.6.4,cuda和cudnn.即相关的python包,可以参照前面的教程.

2.安装opencv

进入官网 : http://opencv.org/releases.html , 选择 3.4.1 版本的 source,并下载,解压到你要安装的位置,如/home/xiongdeng/application,然后进入到你解压的目录opencv-3.4.1,创建编译的build目录.具体命令如下:

make build    #创建目录

cd build

cmake -D CMAKE_BUILD_TYPE=Release  -D CMAKE_INSTALL_PREFIX=/usr/local ..

make -j8      #编译

sudo make install   #安装

说明:这个过程中会有警告,但是没有错误(很幸运)

安装后的可执行文件在/usr/local/bin

安装完成后可以通过下面这两种方式来查看opencv的本版:


  python也可以导入cv2包:

到此为止opencv安装完成.

3.安装caffe

3.1下载caffe,命令如下:

git clone https://github.com/BVLC/caffe.git    #文件在你的home目录下,

3.2进入caffe目录,将Makefile.config.example文件复制一份名为Makefile.config的文件,具体命令如下:

cp Makefile.config.example Makefile.config

3.3修改caffe目录下Makefile.config文件,可以用这个命令打开

gedit Makefile.config

3.4修改Makefile.config文件,具体修改如下:

使用cudnn, 将

#USE_CUDNN := 1 改为 USE_CUDNN:=1    (就是去掉#)

使用opencv,将

#OPENCV_VERSION := 3 改为 OPENCV_VERSION := 3  (就是去掉#)

使用python接口,将

#WITH_PYTHON_LAYER := 1 改为 WITH_PYTHON_LAYER := 1 (就是去掉#)

修改python路径:将

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/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

解决cuda9.0版本问题,去掉CUDA_ARCH的前两项,修改后为:

3.4修改caffe目录下的Makefile文件:

将 NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS) 替换为:

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

将 LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5 替换为:

LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

3.5因为ubuntu16.04的gcc的版本是5.4.0, 如图:

所以不需要修改/usr/local/cuda/include/crt/host.config.h文件,否则需要将

#error -- unsupported GNU version! gcc versions later than 6 are not supported! 修改为

//#error -- unsupported GNU version! gcc versions later than 6 are not supported!

3.6 在/etc/ld.so.conf.d/加入创建文件cuda.conf,内容如下:

如后执行命令sudo ldconfig 

说明如果不执行3.6步骤,那么后面使用sudo make runtest -j8 会报errer while loading shared libraries:libcudart.so.9.0之类的错误.如果去掉sudo, 可以执行,但是会报其他的错. 建议执行3.6后重启一下电脑,我是重启之后就好了

3.7 现在可以编译了,在caffe目录下:执行一下命令:

sduo make clean          (#非必须,用于清除前面的编译文件)

sudo make all -j8

sudo make test -j8

sudo make runtest -j8

出现下面截图说明安装成功了:

4.安装pycaffe

上一步成功安装caffe之后,就可以在命令行下通过caffe命令进行操作,安装pycaffe是为了通过python来操作caffe.编译pycaffe之前需要修改配置文件Makefile.config.[说明:python3.6.4是我之前用源码的方式安装的[numpy等很多库都已经安装],而Makefile.config关于python的路径都是使用ubuntu16.04自带的python2.7,所以需要修改相关python路径],具体修改如下:

注释掉2.7


说明:这个路径是根据Makefile.config文件的注释提示来填写的,根据自己的实际情况来填写.

在Makefile文件中修改2.7为3.6

为了避免出现这个错误:/usr/bin/ld:cannot find -lboost_python3

执行 命令:

cd /usr/lib/x86_64-linux-gnu

sudo ln -s libboost_python-py35.so libboost_python3.so

修改完后,切会到caffe目录, 执行命令:

sduo make clean          (必须,用于清除前面的编译文件)

sudo make all -j8

sudo make test -j8

sudo make runtest -j8

sudo make pycaffe -j8

如图,没有报任何错

到此为止pycaffe安装完成.

参考链接:https://blog.csdn.net/yhaolpz/article/details/71375762

https://blog.csdn.net/sinat_37924176/article/details/78301090

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值