CentOS7下安装caffe(包括ffmpeg\boost\opencv)

因为有项目想采用深度学习,而caffe是深度学习框架中比较理想的一款,并且跨平台,以及可以采用python/matlab的方式进行调用等优势,所以想在服务器上安装,下面就开始了血泪史。。。

服务器是阿里云的centos7.3,安装caffe,需要安装ffmpeg,boost,opencv等等。本文依照ffmpeg3.3.2 版,boost为1.64版,opencv为2.4.13.2,caffe的版本为最新版为例来说。

本文主要采用自行编译安装各大软件。

首先安装一些依赖包

1 yum install autoconf automake gcc gcc-c++ git libtool make nasm pkgconfig zlib-devel SDL* yasm* python-devel nasm* cmake* git ncurses* *freetype2*

需要提一下,如果将来要采用python调用caffe的话,必须将numpy提前装好,最新的版本为1.13.2, ipython安装5.0版本(python2.7下)

安装Numpy 1.13.2 以及ipython

1 pip install numpy
2 pip install pandas 
3 pip install ipython==5.0

ok,装好就可以往下继续安装其他的的包了,先安装ffmpeg

1、安装x264编码器

    因为最新版的x264进行编译的时候要求asm的版本较高,此处分享链接

1 mkdir build
2 cd build
3 wget ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20120718-2245-stable.tar.bz2
4 tar -jxf x264-snapshot-20120718-2245-stable.tar.bz25 cd x264-snapshot-20120718-2245-stable/
6 ./configure --prefix="/usr/local/ffmpeg" --bindir="/usr/local/ffmpeg/bin" --enable-static --enable-shared --enable-pic
7 make 
8 make install

 2、安装x265编码器

1 cd build
2 git clone https://github.com/videolan/x265.git
3 cd x265/build/linux
4 cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="/usr/local/ffmpeg/" -DENABLE_SHARED:bool=off ../../source
5 make
6 make install

3、安装libfdk_acc

1 git clone --depth 1 git://git.code.sf.net/p/opencore-amr/fdk-aac
2 cd fdk-aac
3 autoreconf -fiv
4 ./configure --prefix="/usr/local/ffmpeg" --enable-shared --enable-static --with-pic5 make
6 make install

4、安装libmp3lame

1 wget http://iweb.dl.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
2 tar zxf lame-3.99.5.tar.gz
3 cd lame-3.99.5
4 ./configure --prefix="/usr/local/ffmpeg" --bindir="/usr/local/bin" --enable-shared --enable-nasm --enable-static --with-pic
5 make
6 make install

5、安装libopus

1 git clone git://git.opus-codec.org/opus.git
2 cd opus
3 ./autogen.sh
4 ./configure --prefix="/usr/local/ffmpeg" --enable-shared --enable-static --with-pic 5 make 6 make install

6、安装libogg库

1 curl -O http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.gz
2 tar xzvf libogg-1.3.2.tar.gz
3 cd libogg-1.3.2
4 ./configure --prefix="/usr/local/ffmpeg" --enable-shared --enable-static --with-pic
5 make
6 make install

7、安装libvorbis库

1 curl -O http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.4.tar.gz
2 tar xzvf libvorbis-1.3.4.tar.gz
3 cd libvorbis-1.3.4
4 LDFLAGS="-L/usr/local/ffmpeg/lib" 
5 CPPFLAGS="-I/usr/local/ffmpeg/include"
6  ./configure --prefix="/usr/local/ffmpeg" --with-ogg="/usr/local/ffmpeg" --enable-shared --enable-static --with-pic
7 make
8 make install

8、安装libvps库

1 git clone --depth 1 http://git.chromium.org/webm/libvpx.git
2 cd libvpx
3 ./configure --prefix="/usr/local/ffmpeg" --enable-examples --enable-shared --enable-static --enable-pic
4 make
5 make install

9、编译安装ffmpeg

此处我才用的是2.8.12的代码,需要编辑ffplay.c,加上头文件<SDL/SDL_version.h>

修改 /etc/ld.so.conf 添加/usr/local/ffmpeg/lib

1 git clone --depth 1 git://source.ffmpeg.org/ffmpeg
2 cd ffmpeg
3 export PKG_CONFIG_PATH=/usr/local/ffmpeg/lib/pkgconfig/:/usr/lib64/pkgconfig/:/usr/share/pkgconfig/$PKG_CONFIG_PATH 
4 ./configure --prefix="/usr/local/ffmpeg" --extra-cflags="-I/usr/local/ffmpeg/include" --extra-ldflags="-L/usr/local/ffmpeg/lib" --bindir="/usr/local/bin" --pkg-config-flags="--static" --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-avresample --enable-pic --enable-static --enable-shared
5 make
6 make install

 10、编译安装boost

1 wget https://dl.bintray.com/boostorg/release/1.64.0/source/boost_1_64_0.tar.gz
2 tar -zxf  boost_1_64_0.tar.gz
3 cd boost_1_64_0
4 ./boostrap.sh
5 ./b2 install

 11、再次安装一些依赖包

1 yum install a52dec* giflib* imlib* lame* libICE* libXdmcp* *dc1394* *raw1394* *avc1394* *raw1394*
2 yum groupinstall "Development Tools" 
3 yum install openssl* sqlite* gtk* *java* gstreamer* *v4l* gmp* gimp*  *java* libpng*

12、安装opencv2.4.13.2

 1 ln -s /usr/include/libv4l1-videodev.h   /usr/include/linux/videodev.h
 2 echo "/usr/local/ffmpeg/lib" >> /etc/ld.so.conf
 3 ldconfig
 4 export C_INCLUDE_PATH=/usr/local/ffmpeg/include/:/usr/include/:$C_INCLUDE_PATH
 5 export CPLUS_INCLUDE_PATH=/usr/local/ffmpeg/include/:/usr/include/:$CPLUS_INCLUDE_PATH
 6 export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib/:/usr/loca/lib/:/usr/lib/:$LD_LIBRARY_PATH
 7 wget https://github.com/opencv/opencv/archive/2.4.13.2.zip
 8 unzip 2.4.13.2.zip
 9 cd opencv-2.4.13.2/
10 mkdir build
11 cmake –D CMAKE_BUILD_TYPE=RELEASE–D CMAKE_INSTALL_PREFIX=./build/ ../opencv-2.4.13.2
12 make
13 make install

 13、再次安装依赖包

 1 yum install protobuf* leveldb* snappy* hdf5* lmdb* libunwind*
 2 wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/google-glog/glog-0.3.3.tar.gz
 3 tar -zxf glog-0.3.3.tar.gz
 4 cd glog-0.3.3/
 5 ./configure --enable-static --enable-shared --with-pic
 6 make 
 7 make install
 8 wget https://github.com/schuhschuh/gflags/archive/master.zip
 9 unzip master.zip
10 cd gflags-master/
11 mkdir build && cd build
12 export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
13 make

14、安装BLAS,CBLAS,OpenBLAS

 1 wget http://www.netlib.org/blas/blas-3.7.1.tgz
 2 tar -zxf blas-3.7.1.tgz
 3 cd BLAS-3.7.1/
 4 gfortran -c  -O3   *.f 
 5 ar rv libblas.a      *.o
 6 wget http://www.netlib.org/blas/blast-forum/cblas.tgz
 7 tar -zxf cblas.tgz
 8 cd CBLAS/
 9 cp Makefile.LINUX Makefile.in
10 cp ../BLAS-3.7.1/libblas.a testing/
11 cp lib/cblas_LINUX.a /usr/local/lib/libcblas.a
12 cp testing/libblas.a /usr/local/lib/libblas.a
13 cp include/cblas.h /usr/local/include/
14 wget http://github.com/xianyi/OpenBLAS/archive/v0.2.19.tar.gz
15 tar -zxf v0.2.19.tar.gz
16 cd OpenBLAS-0.2.19/
17 make
18 make PREFIX=/usr/local install
19 git clone https://github.com/BVLC/caffe.git
20 cd caffe
21 cp Makefile.config.example Makefile.config

15、编辑Makefile.config

8 CPU_ONLY := 1

28 # CUDA_DIR := /usr/local/cuda
29 # On Ubuntu 14.04, if cuda tools are installed via
30 # "sudo apt-get install nvidia-cuda-toolkit" then use this instead:
31 # CUDA_DIR := /usr
32 
33 # CUDA architecture setting: going with all of them.
34 # For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.
35 # For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.
36 #CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
37 #               -gencode arch=compute_20,code=sm_21 \
38 #               -gencode arch=compute_30,code=sm_30 \
39 #               -gencode arch=compute_35,code=sm_35 \
40 #               -gencode arch=compute_50,code=sm_50 \
41 #               -gencode arch=compute_52,code=sm_52 \
42 #               -gencode arch=compute_60,code=sm_60 \
43 #               -gencode arch=compute_61,code=sm_61 \
44 #               -gencode arch=compute_61,code=compute_61

50 BLAS := open
51 # Custom (MKL/ATLAS/OpenBLAS) include and lib directories.
52 # Leave commented to accept the defaults for your choice of BLAS
53 # (which should work)!
54 BLAS_INCLUDE := /usr/local/include
55 BLAS_LIB := /usr/local/lib

16、安装caffe

 1 cd python
 2 for req in $(cat requirements.txt); do pip install $req; done
 3 cd ..
 4 make all
 5 make test
 6 make runtest
 7 make pycaffe
 8 cp -r python/caffe/ /usr/lib64/python2.7/site-packages/
 9 echo "/root/build/caffe/.build_release/lib" >> /etc/ld.so.conf
10 pip uninstall numpy
11 wget https://pypi.python.org/packages/1a/5c/57c6920bf4a1b1c11645b625e5483d778cedb3823ba21a017112730f0a12/numpy-1.11.0.tar.gz#md5=bc56fb9fc2895aa4961802ffbdb31d0b
12 tar -zxf  numpy-1.11.0.tar.gz
13 cd numpy-1.11.0
14 python setup.py build
15 python setup.py install

 

 

 

posted @ 2017-07-08 11:08  苏陌宁  阅读(1783)  评论(0编辑  收藏  举报