zoukankan      html  css  js  c++  java
  • 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 ");

            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。 如果能看到照片,那就表示成功。

     

  • 相关阅读:
    数据结构C语言实现----折半查找
    数据结构C语言实现----顺序查找
    数据结构C语言实现----图
    数据结构C语言实现----树
    数据结构C语言实现----循环队列
    数据结构C语言实现----销毁一个队列
    数据结构C语言实现----出队伍操作
    数据结构C语言实现----入队列操作
    数据结构C语言实现----创建一个队列
    数据结构C语言实现----栈的实例
  • 原文地址:https://www.cnblogs.com/carle-09/p/8977611.html
Copyright © 2011-2022 走看看