这篇博客主要讲述发表在ICCV2015上的有关图像语义分割的model的用法的指南。(本人不才,竟然跑了一周多,一定要把其中各种吐血的错误写出来)。
源码网址 http://crfasrnn.torr.vision/
论文网址:http://www.robots.ox.ac.uk/~szheng/papers/CRFasRNN.pdf
开始时,博主是在以上源码网址下的model,但是因为自己环境上的caffe不包含crfasrnn的模型,按照git上的描述也没有成功配置,正在焦头烂额时看到了torrvision分享的针对于crfasrnn的caffe源码,网址:https://github.com/torrvision/caffe/tree/crfrnn 。一定要下载这个!!!
下载完成后:
1.把caffe-crfrnn文件夹放到项目文件夹crfasrnn-master下
2.配置caffe环境,由于博主用的服务器已经安装好了caffe环境,所以本博文仅就配置caffe-crfrnn所需做的改动进行说明:(caffe配置参考https://blog.csdn.net/babytang008/article/details/78631776)
①安装依赖项
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
②根据caffe/python目录下的requirements.txt安装python附加依赖库:
for req in $(cat requirements.txt); do sudo pip install $req; done
③根据需求调整Makefile.config文件(尽量少改动,修改前记得备份)
USE_CUDNN:=1
使用cudnn加速,取消这行注释
如果使用2.4(没有装opencv3)的话就不用管OPENCV_VERSION
CUDA_DIR := /usr/local/cuda
如果装的是默认位置就不用改 CUDA_ARCH :=
这里删掉5以下的(官网查询1080Ti显卡的计算性能是6.1:https://developer.nvidia.com/cuda-gpus) BLAS :=atlas
选择blas版本,这里按默认选择atlas(如果以后需要使用intel mkl可以在这里修改后再次编译caffe) PYTHON_INCLUDE :=
这里默认是/user/lib/...
但是pip把numpy实际安装在了/usr/local/lib/...
需要检查后改一下,同 时PYTHON_LIB
后也要追加/usr/local/lib/
目录 MATLAB_DIR:= /usr/local/MATLAB/R2015b
这里改为matlab安装路径
INCLUDE_DIRS
这里追加 /usr/include/hdf5/serial
同时打开Makefile在LIBRARIES +=
后把hdf5_hl hdf5
替换成hdf5_serial_hl hdf5_serial
④编译caffe
cd crfasrnn-master/caffe-crfrnn/cmake
mkdir build
cmake -D BUILD_TIFF=ON -std=c++11 ../
make all -j4
make pycaffe
cmake时可能会出现如下错误:
解决方法:cmake时输入:
sudo su
cmake -D BUILD_TIFF=ON
⑤make时可能会出现如下错误:
解决方案:(ps.不要相信网上那些卸载proto的方法,最后麻烦的还是自己)
修改./bashrc文件,禁用anoconda,即把bashrc文件中anaconda的路径注释掉就行啦,
source ~/.bashrc
重启编译窗口
make clean
make all -j4
⑥运行model
首先,
cd crfasrnn-master/python-scripts
python download_trained_model.sh
下载完caffemodel后,把caffemodel放到目录crfasrnn-master/caffe-crfrnn/examples/crfasrnn_segmentation下,
然后
cd crfasrnn-master/caffe-crfrnn/examples/crfasrnn_segmentation
修改crfasrnn_demo.py中的参数,包括_CAFFE_ROOT、_MODEL_DEF_FILE、_MODEL_FILE
运行程序:
python crfasrnn_demo.py
运行成功后就能看到output.png啦,结束啦