在macOS sierra系统中利用VMware Fusion Pro 8.5 安装Ubuntu16.04
安装依赖库
依赖库在Ubuntu下的安装基本都可以通过apt-get命令实现
$ 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 libgflags-dev libgoogle-glog-dev liblmdb-dev
$ sudo apt-get install libatlas-base-dev
下载caffe
通过git命令从官网获取,Ubuntu16.04系统中自带git
$ cd ~
$ git clone git://github.com/BVLC/caffe.git
安装opencv3.0
opencv2.4及以上版本都可以,但是3.0与其他版本操作有所不同,在这里选择opencv3.0进行安装
安装opencv的依赖库
$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
下载opencv3.0
$ mkdir ~/opencv
$ cd ~/opencv
$ wget https://github.com/Itseez/opencv/archive/3.0.0-alpha.zip -O opencv-3.0.0-alpha.zip
$ unzip opencv-3.0.0-alpha.zip
编译opencv3.0
$ cd ~/opencv
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
cmake在获取ippicv_linux_20140513.tar文件时一直出错,从这里下载所需文件覆盖到opencv/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e路径下的相应文件即可(最后一个目录的名字可能不同)
重新编译:
$ cd ~/opencv/build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
此时makefile已经生成了, 之后执行:
$ make
$ sudo make install
链接opencv3.0
打开/etc/ld.so.conf文件,添加一行内容:
include /usr/local/lib
之后用ldconfig命令链接起来:
$ sudo ldconfig
- 因为opencv3.0把imread相关函数放到imgcodecs.lib中了(原来是imgproc.lib),所以要修改~/opencv/Makefile文件,在opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs后面添加opencv_imgcodecs
- 此外修改caffe/examples/cpp_classification/classification.cpp文件,加入:
#include <opencv2/imgproc/types_c.h>
#include <opencv2/objdetect/objdetect_c.h>
至此opencv就完全安装完成了
编译caffe
$ cd ~/caffe
$ cp Makefile.config.example Makefile.config
# 修改Makefile.config文件:去掉CPU_ONLY:= 1的注释
$ make all
$ make test
$ make runtest
在make all
的过程中出现了找不到hdf5.h头文件的错误
需要在Makefile.config文件的第85末尾添加一个路径,修改之后:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
另外第173行把hdf5_hl 和hdf5修改为hdf5_serial_hl 和 hdf5_serial,修改之后:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
重新执行make操作即可