ubuntu安装caffe、matlab 和 opencv

写在前面

最近要跑一套caffe+matlab的代码,然后动手在ubuntu16.04下装了一下。坑比较多,过程比较坎坷。感觉caffe+matlab还是很不好用的组合。
我只装了cpu-only。下文主要记录的是我遇到的问题,每个人的情况不一样,不一定适用。

安装matlab

matlab是有官方linux版的,当然要许可证。安装包和crack在网上也有,找仔细一点就好了。caffe官网有讲只支持特定的版本,事实上我装了支持版本(2014a)也遇到了报错,为了避免多余的麻烦还是按官网来。
我拿到手的是两个压缩包,解压其中一个就能得到iso文件。然后:

  • 用命令行挂载
    sudo mount –t auto –o loop ××.iso /target/path/that/exist
    双击也能挂载,但进去的install文件显示无法确定权限,chmod没用,我也没找到其他运行方法。
  • 运行安装程序
    sudo ./install
  • 会弹出图形化安装界面,后面一路常规操作,填写序列号请看自己包里的readme或者其他帮助文档,替换文件同理。

安装openv

官网下source,我选了3.4.1。进入根目录:

mkdir build # 创建编译的文件目录
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make #编译
sudo make install #安装
pkg-config --modversion opencv  #看版本,检查是否安装成功

当然也可以从一开始就用apt-get的安装方法,好像版本比较老。好处是很容易成功。

安装caffe

  • 先装几个依赖,根据官网参考版本
  • github上下载master分支
  • 解压后
 cd caffe-master
 cp Makefile.config.example Makefile.config
 vim Makefile.config

这里讲一下.config的几个配置点:

# CPU_ONLY := 1  ->  CPU_ONLY := 1
# OPENCV_VERSION:=3  ->  OPENCV_VERSION:=3(如果装的是opencv3需要做这一步)
# MATLAB_DIR=/usr/local/  ->  /usr/local/MATLAB/R2014a(这是我的matlab安装路径,类推)
INCLUDE_DIRS := \$(PYTHON_INCLUDE) /usr/local/include -> 
INCLUDE_DIRS := \$(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := \$(PYTHON_LIB) /usr/local/lib /usr/lib ->
LIBRARY_DIRS := \$(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

另外修改MakeFile:

CXXFLAGS += -pthread -fPIC \$(COMMON_FLAGS) \$(WARNINGS)
CXXFLAGS += -std=c++11(这行是自己加的)
NVCCFLAGS += -ccbin=\$(CXX) -Xcompiler -fPIC \$COMMON_FLAGS)

这句话不加的话,make matcaffe不能过。

  • 编译caffe
 make all
 make test
 make runtest

注意这里用的gcc和g++的版本有要求。我一开始为了支持matlab的版本,用了4.7.4遇到报错,换回5就好了。

  • 编译matlab接口
 make matcaffe
 make mattest

我用的2014a支持的版本只到4.7,但是用5编译也能通过。这里可能会遇到报错:

/usr/local/MATLAB/R2014a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version `CXXABI_1.3.8' not found 

这是因为matlab自带的libstdc++.so.6不包含那个版本,但是我们系统可能有带,用命令查看:

strings /usr/lib/x86_64-linux-gnu libstdc++.so.6 | grep CXXABI_1.3.8

如果有输出就表示系统的库文件可用。用下面的命令“注释”matlab自带的文件:

cd /usr/local/MATLAB/R2014a/sys/os/glnxa64/
mv libstdc++.so.6 libstdc++.so.6.bak

这样matlab会自己去找系统里的库文件。

  • 运行matlab
    最后用sudo matlab运行,在代码里配置一下caffe路径,就可以跑代码啦。

你可能感兴趣的:(视觉)