Ubuntu系统---安装Caffe (+OpenCV+Python+CPU-only)

安装配置Ubuntu14.04+Caffe

(+OpenCV+Python+CPU-only) 记录

【作者:Wu Ping。时间:20180428。】

本人已经安装很多次的Caffe了:从开始的初探到出现问题的重新安装,或者电脑系统重装后的再次安装,或者因为不同的电脑版本、不同的Ubuntu版本、软件的不同安装方式等等原因,每一次安装都会有不同的“不顺利经历”,顺次解决问题即可。虽然遇到的问题不尽相同,但是总体流程基本相同。

“安装过程,因为平台不同、设备不同、操作者不同,会遇到各种奇怪的问题和报错信息,请善用Caffe官网的Issues和caffe-user论坛,以及Google和Baidu。参考本指南,请下载最新版caffe-master,新版本很多文件已经变更。”

一、目录

(1)Linux系统:Ubuntu 14.04 (64位)【这里安装教程略】

(2)安装开发所需要的一些基本包及安装caffe依赖项

(3)安装ATLAS for Ubuntu

(4)安装OpenCV

(5)编译Caffe

(6)测试Caffe是否安装成功

(7)配置Pycaffe

(8)测试Pycaffe接口是否配置成功

 

二、安装包准备(下载)

(1)Ubuntu 14.04下载网址:http://www.ubuntu.com/download/desktop

(2)OpenCV下载地址:1官网上下载https://opencv.org/releases.html 。2从sourceforge上http://jaist.dl.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.10/opencv-2.4.10.zip

(3) Caffe下载地址:https://github.com/BVLC/caffe

 

三、开始安装【图文说明】

1Linux系统:Ubuntu 14.04 64位)【略】

 

 

 

2)安装开发所需要的一些基本包及安装caffe依赖项。

首先,安装开发所需要的一些基本包:sudo apt-get install build-essential。如果出现essential包不可用的情况,可以执行下列命令解决:sudo apt-get update。

接着,安装其他依赖项Ubuntu14.04用户执行: sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencvdev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdbdev protobuf-compiler

如果后面安装caffe出现“没有什么文件或者找不到什么目录”:make all。则sudo apt-get update,再继续单独执行找不到的那个相应文件。比如:

# sudo apt-get install libatlas-base-dev

# sudo apt-get install libprotobuf-dev

# sudo apt-get install libleveldb-dev

# sudo apt-get install libsnappy-dev

 

3)安装ATLAS for Ubuntu

执行命令:sudo apt-get install libatlas-base-dev。注:ATLAS, MKL,或OpenBLAS都可以,我这里选择安装ATLAS。安装atlas简单易行。

 

4)安装OpenCV

第一种方法(之前成功安装,这次安装没成功,不知道何因):这个尽量不要手动安装, Github上有人已经写好了完整的安装脚本:

https://github.com/jayrambhia/Install-OpenCV。下载该脚本,解压".zip"文件,

1安装2.4.10 (推荐):https://gist.github.com/bearpaw/c38ef18ec45ba6548ec0

1. 下载安装脚本 https://github.com/bearpaw/Install-OpenCV

2. 进入目录: Install-OpenCV/Ubuntu/2.4

进行Ubuntu/2.4目录,对所有脚本增加可执行权限:sudo chmod +x *.sh

3. 安装依赖项: # Install-OpenCV/Ubuntu

# sh ./dependencies.sh

4. 执行脚本 sh /2.4/opencv2_4_10.sh 或者 sh /2.4/opencv2_4_9.sh

即一:

$ git clone https://github.com/bearpaw/Install-OpenCV

$ cd Install-OpenCV/Ubuntu/2.4

$ sh ./opencv2_4_10.sh


   编译过程很慢,中间我还报过一次错,不得不重新来了一次。如果觉得难度不够的话,可以选择官网的安装包:http://opencv.org/,我这里是根据大神编译过的版本进行安装的。

 

即二:

# cd caffe

# sudo git clone https://github.com/jayrambhia/Install-OpenCV

# cd Install-OpenCV/Ubuntu

# sudo sh dependencies.sh

# cd 2.4

# sudo sh opencv2_4_10.sh

 

2安装2.4.9(不推荐)

这块儿时间比较长,保证网络连接,需要联网下载安装包,大概三十分钟,记不清了。。

 

第二种方法(手动安装,这次成功了。)详见附《ubuntu14.04中安装opencv2.4.10

 

5)编译Caffe

 上述基本环境准备好后,下载:https://github.com/BVLC/caffe后,进入caffe目录,复制一份Makefile.config 命令:cp Makefile.config.example Makefile.config。

然后,根据自己环境修改相应内容:

   1 取消 CPU_ONLY := 1前面的注释。

   2. cuda 安装路径改为自己的路径 : CUDA_DIR := /usr/local/cuda-6.5

   3. 配置路径:实现caffe对python和matlab接口的支持。

这里仅仅在CPU下配置环境所以只修改 CPU_ONLY := 1。

接下来就可以编译Caffe:

1,sudo make all -j2

2,sudo make test

3,sudo make runtest

Make all 后的截图如下:

 

Make test后的截图如下:

 

Make runtest后的截图如下:

 

6)测试Caffe是否安装成功

以mnist的为例,检验caffe是否装成功,以下命令都在CAFFE根目录下运行:

1.准备数据

sh ./data/mnist/get_mnist.sh

sh ./examples/mnist/create_mnist.sh

2.训练模型:

sh ./examples/mnist/train_lenet.sh

需要修改sudo vi lenet_solver.prototxt 先进入命令模式,使用a进入编辑模式,修改完之后,使用esc退出编辑模式,进入末行模式,再使用“:wq”保存修改并退出(“:q!”为退出但不保存修改):

# solver mode: CPU or GPU

solver_mode: CPU

3.测试模型:

sh ./examples/mnist/test_lenet.sh

新建test_lenet.sh:

1. #!/usr/bin/env

2. "空行"

3.

./build/tools/caffe test model=examples/mnist/lenet_train_test.prototxt weights=examples/mnist/lenet_iter_10000.caffemodel iterations 100

 

7)配置Pycaffe

第一步:安装Python-caffe接口的依赖包。

第一种方法(直接执行安装requirement里面的包,没成功)。确保前面的:1,sudo make all -j2;2,sudo make test;3,sudo make runtest等不出错,如果某一行报错之后想要重试,建议先make clean再重新开始。更新安装依赖。

cd caffe 

cat python/requirements.txt | xargs -L 1 sudo pip install 

确定使用的是anaconda提供的python环境,然后进入caffe/python, 执行下列命令,

确保pip已经安装

sudo apt-get install python-pip

for req in $(cat requirements.txt); do pip install $req; done  #python运行需要的库。 

再次回到caffe根目录我们可以执行:

在caffe根目录的python文件夹下,有一个requirements.txt的清单文件,上面列出了需要的依赖库,按照这个清单安装就可以了。

在安装scipy库的时候,需要fortran编译器(gfortran),如果没有这个编译器就会报错,因此,我们可以先安装一下。

回到caffe的根目录,然后执行安装代码:

cd ~/caffe

sudo apt-get install gfortran

cd ./python

for req in $(cat requirements.txt); do pip install $req; done

安装完成以后,再次回到caffe根目录我们可以执行:

sudo pip install -r python/requirements.txt

就会看到,安装成功的,都会显示Requirement already satisfied, 没有安装成功的,会继续安装。

 

第二种方法(直接安装,这次成功)。按照Requirement.txt里面的手动安装,执行如下命令: 

sudo apt-get install Cython python-numpy python-scipy python-skimage python-matplotlib ipython python-h5py python-leveldb python-networkx python-nose python-pandas python-gflags python-protobuf python-gflags python-yaml 

sudo apt-get install python-sklearn  protobuf-c-compiler protobuf-compiler

make pycaffe 出现问题如下:

 

 

因为存在低版本的,所以总是报错,本人预想卸载低版本的后再升级,而后通过下方法也可以实现:

sudo pip install six --upgrade --target="/usr/lib/python2.7/dist-packages" 
类似的:
sudo pip install leveldb --upgrade --target="/usr/lib/python2.7/dist-packages"
 

第二步:加入PythonPath

             第一种方法:添加~/caffe/python到$PYTHONPATH。

$ gedit ~/.bashrc    #vim 或者gedit,打开bashrc 

           export PYTHONPATH=/home/usrname/caffe/python:$PYTHONPATH   #添加到文件最后,本人是export PYTHONPATH=/home/wp/caffe/python:$PYTHONPATH。

$ source ~/.bashrc    #使更改生效。这样,在其他地方打开python,也可以import caffe了。

 

第二种方法:添加~/caffe/python到$PYTHONPATH。

$ sudo gedit /etc/profile

用sudo,只用gedit /etc/profile修改后无法保存

# 末尾添加: export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH

我的是:export PYTHONPATH=/home/wp/CAFEE/caffemaster/python:$PYTHONPATH

#export PYTHONPATH=自己caffe文件夹下的python路径,一定要是自己的路径!!!

# 用完整路径,不要用~

$ source /etc/profile    #使之生效

 

8)测试Pycaffe接口是否配置成功

编译python接口:$  make pycaffe -j8

 

 

 

度娘,有说这么就是配置好了,也有说这么不是配置好的,是依赖项没有装全。本人记得之前配置过,貌似也不是这样子的,几经五六次的重新【配置加解决问题都是这样的结果,无可奈何不影响用就行了,继续。

 

运行python,进入caffe/python ,运行

$ python2.7

Python 2.7.12 (default, Jul  1 2016, 15:12:24)

[GCC 5.4.0 20160609] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import caffe

>>>

 

测试1,任意路径下执行:

[code]$ python

Python 2.7.6 (default, Jun 22 2015, 17:58:13)

[GCC 4.8.2] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import caffe

>>> 

 

测试2:

wp@ubuntu:~$ ipython

Python 2.7.6 (default, Oct 26 2016, 20:30:19)

Type "copyright", "credits" or "license" for more information.

IPython 1.2.1 -- An enhanced Interactive Python.

? -> Introduction and overview of IPython's features.

%quickref -> Quick reference.

help -> Python's own help system.

object? -> Details about 'object', use 'object??' for extra details.

In [1]: import caffe

In [2]:

输入python,如果显示如红框所示,说明当前python是系统默认的python。 说明刚才添加的环境变量没有起作用,需要用命令激活:source .bashrc 如果显示如蓝框所示,说明当前python用的是Anaconda里的python。安装成功!例如结果:

 

 

附录:

具体地,在ubuntu14.04中安装opencv2.4.10

安装索引:

第一部分---安装

1. 下载源码2.4.10

2. 解压 $unzip opencv-2.4.10.zip

3. 创建release目录

   $cd opencv-2.4.9

   $mkdir release

4. 装依赖包(网查教程)

5. 进release文件夹

   $cd release

6. 编译安装(耗时有点长哦)

   $cmake

   $make all

   $make install

第二部分---测试是否安装成功

1. 建立一个test.cpp文件

2. 写一个cmake的makefile(CMakeLists.txt)

3. 编译+运行+例子测试

上述可参考https://blog.csdn.net/wb4916/article/details/54021717。

具体实现图文过程:

1. 先下载OpenCV的源码。从sourceforge上 http://jaist.dl.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.10/opencv-2.4.10.zip 。或者官网上下载https://opencv.org/releases.html

 

2. 解压到任意目录。

终端命令$ unzip opencv-2.4.10.zip,或者直接提取。

 

3. 进入源码目录,创建release目录

$ cd opencv-2.4.10

$ mkdir release

 

4. 可以看到在OpenCV目录下,有个CMakeLists.txt文件,需要事先安装一些软件

$ sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev

 

5. 进入release目录,安装OpenCV是所有的文件都会被放到这个release目录下

$ cd release

 

6. cmake编译OpenCV源码,安装所有的lib文件都会被安装到/usr/local目录下

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

 

检查一下:wp@wp-ms-7519:~/opencv-2.4.10/release$ cmake --version

cmake version 2.8.12.2

 

7. 安装

$ sudo make install

 

8. 测试,在某个目录下建立一个test.cpp文件

#include <cv.h>

#include <highgui.h>

using namespace cv;

int main(int argc, char* argv[])

{

    Mat image;

    image = imread(argv[1], 1);

 

    if (argc != 2 || !image.data)

    {

        printf("No image data\n");

        return -1;

    }

 

    namedWindow("Display Image", CV_WINDOW_AUTOSIZE);

    imshow("Display Image", image);

    waitKey(0);

    return 0;

}

 

9. 写一个cmake的makefile,也叫CMakeLists.txt

project(test)

find_package(OpenCV REQUIRED)

add_executable(test test)

target_link_libraries(test ${OpenCV_LIBS})

cmake_minimum_required(VERSION 2.8)

 

10. 编译+运行

(请注意camke的后面还有一个点)

cmake .

make

 

这样就得到了一个可执行文件test。

 

11.  找一张xx.jpg图片做个测试,注意要和上面那个test可执行文件放在同一目录下面,这里名字取的是test.jpg。

 

12.  在可执行文件下执行$ ./test test.jpg。 如果能看到照片,那就表示成功。

 

posted on 2018-05-01 21:38  WP的烂笔头  阅读(1728)  评论(0编辑  收藏  举报