我的系统:ubuntu16.04,64位
先安装OpenCV
OpenCV的官方文档:http://opencv.org
第一步,下载源码
cd ~/<my_working_directory>
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
注意:(1)下载好opencv.zip和opencv_contrib.zip,解压在自己的工作目录下,我直接放在ubuntu根目录下。(2)opencv和opencv_contrib的版本号要一致,可以在opencv官方github上点击release内选择版本下载,我用的是3.1版本。(3)3.X版本以后,OpenCV将源码分成了两部分,分别是稳定的核心功能库和试验性质的contrib库。
第二步,安装源码前先安装好需要的第三方环境
[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
第三步,使用cmake编译源码(包括opencv_contrib部分)
cd ~/opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release –D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules/ -D CMAKE_INSTALL_PREFIX=/usr/local ..
注意:如果编译过程中出现问题,如ippicv_linux_20151201.tgz国内被墙了,下载不成功或者提示hash值不对。解决方法是,下载好需要的文件替换到对应的目录
(~/opencv/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/ippicv_linux_20151201.tgz)
直接替换或者命令:
cd ~/opencv/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e
cp <下载的文件路径> ippicv_linux_20151201.tgz
然后重新cmake编译,提示Configuring done和Generating done即编译成功。
最后一步,编译安装,大概需要15~20分钟
cd ~/opencv/build
make
sudo make install
可以查看安装好的库文件ls /usr/local/lib
为方便后续代码的编写,修改文件:sudo vim /etc/ld.so.conf,添加一行/usr/local/lib,保存退出。
cd ~/opencv/build
sudo ldconfig
完成。
准备测试代码test_opencv.cpp和图片lena.jpg
编译:
g++ -otest_opencv test_opencv.cpp -lopencv_core -lopencv_highgui -lopencv_imgcodecs
运行:
./test_opencv
然后安装Caffe
caffe官网指引:http://caffe.berkeleyvision.org/install_apt.html
安装
caffe
依赖包
CUDA:CPU-only不用装
protobuf:
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
Boost:
sudo apt-get install --no-install-recommends libboost-all-dev
BLAS:
sudo apt-get install libatlas-base-dev
gflags
和
glog:
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
下载
caffe
https://github.com/BVLC/caffe
编译并安装
cd caffe
mkdir build
cd build
cmake –D CMAKE_BUILD_TYPE=Release –D CPU_ONLY=ON –D CMAKE_INSTALL_PREFIX=/usr/local ..
make all
make install
make runtest
注释:
-D
的意思是参数定义;
CMAKE_INSTALL_PREFIX=/usr/local
是指安装在系统的环境下,如果不指定则默认安装在
caffe/build/install
里;
..
的意思是编译的内容在
..
外一层的文件目录下,编译好的文件放在
build
文件夹里。
如果安装在install下,
export LD_LIBRARY_PATH=[caffe_path]/build/install/lib:${LD_LIBRARY_PATH}
如果安装在系统环境下,
export LD_LIBRARY_PATH=usr/local/lib:${LD_LIBRARY_PATH}
导入这个库的目的是:把这个库当成是系统库,在以后编译代码的时候直接指定我们用到什么库就可以了,而不用指定库的地址,如:
直接写
gcc -otest_blob test_blob.cpp -D CPU_ONLY -lcaffe -lstdc++ -lglog
不需要
gcc -otest_blob test_blob.cpp -D CPU_ONLY –L /usr/local/lib -lcaffe -lstdc++ -lglog
后续如果在运行
python
程序报错:
no module named caffe
,是因为路径不对,需配置环境变量。思路是把
caffe
中的
python
文件夹路径导入到
python
的解释器中:
sudo vim ~/.bashrc
在文件最下方加上export PYTHONPATH=~/caffe/python保存退出(:wq)
source ~/.bashrc使环境变量生效
注释:文件名前面加上“
.
”是因为它是隐藏文件。
Caffe
可视化
准备
pycaffe
环境
sudo apt-get update
sudo apt-get install python-pip python-dev python-numpy
sudo apt-get install gfortran graphviz
for req in $(cat ~/caffe-master/python/requirements.txt); do sudo pip install $req; done
sudo pip install pydot
注释:
requirements.txt
中写了需要安装的包,我们进行安装。
网络结构的可视化
方法一:
caffe
自带的工具
cd caffe-master/python
./draw_net.py –rankdir TB ~/caffe-master/examples/mnist/lenet_train_test.prototxt mnist.png
注释:
draw_net.py
工具可以画出
prototxt
文件搭建的网络结构;
./
的意思是在当前目录下;
TB
的意思是
top
到
bottom
,即图的方向;生成的
png
文件放在
draw_net.py
同目录下。
方法二:在线工具(推荐)
http://ethereon.github.io/netscope/#/editor
将
prototxt
文件内容复制进去,按下
Shift+Enter
即可。