官方安装文档:http://caffe.berkeleyvision.org/installation.html
官方Ubuntu安装文档:http://caffe.berkeleyvision.org/install_apt.html
博客:http://www.linuxidc.com/Linux/2016-09/135034.htm
http://www.linuxdiyf.com/linux/23093.html
切换到root权限,依次安装:
sudo apt-get install libprotobuf-dev
sudo apt-get install libleveldb-dev
sudo apt-get install libsnappy-dev
sudo apt-get install libopencv-dev
sudo apt-get install libhdf5-serial-dev
sudo apt-get install protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
CPU Only的情况下,跳过了CUDA相关的安装;
接下来是BLAS:
sudo apt-get install libatlas-base-dev
使用默认Python来建立pycaffe接口,需要安装:
sudo apt-get install python-dev(如果是用python3,需要安装:sudo apt-get install python3-dev)
一些兼容性依赖库:
sudo apt-get install libgflags-dev
sudo apt-get install libgoogle-glog-dev
sudo apt-get install liblmdb-dev
sudo apt-get install python-skimage
没有安装git的话需要先装一下git
sudo apt-get install git
下载Caffe源码
git clone https://github.com/BVLC/caffe.git
如果需要Caffe的Python(默认版本,python2.7)接口,切换到caffe下的python目录下,输入以下命令下载python依赖库(先安装pip):
sudo apt-get install python-pip
for req in $(cat requirements.txt); do pip install $req; done
到Caffe文件夹中,拷贝一份Makefile.config.example并重命名成Makefile.config,修改该配置文件:
cp Makefile.config.example Makefile.config
使用文本编辑器打开Makefile.config,因为这里没有配置GPU,所以去掉CPU_ONLY := 1前面的注释;
由于Ubuntu16.04文件结构的变化,#Whatever else you find you need goes here.处要改成下面这样:
# Whatever else you find you need goes here.
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 pycaffe,结果报错,错误和numpy相关,重新打开Makefile.config目录,又查找了一下numpy的安装目录,发现对应不上,需要重新设置,需要把原本如下的内容:
# NOTE: this is required only if you will compile the python interface.
# We need to be able to find Python.h and numpy/arrayobject.h.
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include
更改为:
注意:更改前请看一下前后这两个路径下有没有numpy的安装包,如果没有请执行sudo apt-get install python-numpy 去安装,安装完之后看一下numpy的路径在哪里,再决定要不要改路径
# NOTE: this is required only if you will compile the python interface.
# We need to be able to find Python.h and numpy/arrayobject.h.
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/local/lib/python2.7/dist-packages/numpy/core/include
之后就是编译(编译前请切换到caffe文件下):
sudo make pycaffe
sudo make all
sudo make test
sudo make runtest
测试Caffe的Python接口,切换到caffe/python文件目录下,记录下来当前路径,输入以下命令:
export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
通过打开命令终端,输入“python”命令进入python环境:
不能通过python的应用程序或者快捷方式进入python,这样的话会得到下面的错误:
如果没有报错,证明安装成功。
上面的方法,一旦关闭终端或者打开新终端则失效,如果放到配置文件中,可以永久有效果,命令操作如下:
将caffe根目录下的python文件夹加入到环境变量
先打开配置文件bashrc
sudo gedit ~/.bashrc
虽然steven这一层在最终的路径里看不到,但是它是必须写到里面的,否则是不完整的路径,会报错
关于如何切换python2和python3
切换成python2.7.12,请执行下面的命令(任意目录下)
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python2.7 /usr/bin/python
切换成python3.5.2,请执行下面的命令(任意目录下)
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3.5 /usr/bin/python
切换成python3.5.2 后:
1).安装pip3
sudo apt-get install python3-pip
2).升级必要的包
进入CAFFE文件夹, 进入里面的PYTHON文件夹,然后输入
for req in $(cat requirements.txt); do pip3 install $req; done
使用pip3查看已安装包的版本:pip3 list
使用pip3更新包:pip3 install --upgrade 要升级的包名。
此处pip3 install --upgrade matplotlib
注意此处升级matplotlib库之后,版本没有变化,还是2.2.2,但是问题解决了
-打开Makefile.config
在这里加上注释(禁用python2.7):
# We need to be able to find Python.h and numpy/arrayobject.h.
# PYTHON_INCLUDE := /usr/include/python2.7 \
# /usr/lib/python2.7/dist-packages/numpy/core/include
这里去掉注释(启用python3):
# Uncomment to use Python 3 (default is Python 2)
PYTHON_LIBRARIES := boost_python3 python3.5m
PYTHON_INCLUDE := /usr/include/python3.5m \
/usr/lib/python3/dist-packages/numpy/core/include
这里的“/usr/lib/python3/dist-packages/numpy/core/include”中的python,到底是python3还是python3.5以及在哪个文件夹,根据实际情况找到后配置,python3的numpy可以通过pip3 install numpy来安装
关于python3.5.2下导入caffe还是没有实现,后续再研究.
1:先升级
sudo apt-get update
sudo apt-get upgrade
2:后安装一些安装openCV需要的包
sudo apt-get install build-essential cmake pkg-config
pkg-config是编译opencv的时候需要的,cmake是为了camke的时候用
sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev
这些包都是为了OPENCV从硬盘里读入各种格式的图片
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev
为了读入视频
sudo apt-get install libgtk-3-dev
为了使用opencv里的highgui模块
sudo apt-get install libatlas-base-dev gfortran
为了优化opencv里的各种功能
sudo apt-get install python2.7-dev
为了安装python开发头和库
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev 安装另外的一些必要的库
以上步骤完成后,我们进入opencv目录,创建build目录:
mkdir build
像这样:
进入build目录,开始编译,执行(注意这是一个命令并且后面的两个点不能少):
cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..