本文faster-rcnn+caffe的安装中遇到的问题解决方案参考了以下博文:
转载原文链接:https://blog.csdn.net/hongbin_xu/article/details/76100132
1.在caffe-fast-rcnn文件夹下进行make编译时:
(1)首先将预先编译好的原来caffe-master文件夹里的Makefile和Makefile.config复制到当前文件夹,也可以自行修改。此处附上自己修改的Makefile和Makefile.config文件。
Makefile修改如下:
#LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
# Automatic dependency generation (nvcc is handled separately)
CXXFLAGS += -MMD -MP
CXXFLAGS += -std=c++11#NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
Makefile.config文件修改如下:
# cuDNN acceleration switch (uncomment to build with cuDNN).
USE_CUDNN := 1# CPU-only switch (uncomment to build without GPU support).
# CPU_ONLY := 1
# Uncomment if you're using OpenCV 3
OPENCV_VERSION := 3
# MATLAB_DIR := /usr/localMATLAB_DIR := /usr/local/MATLAB/R2014a
# MATLAB_DIR := /Applications/MATLAB_R2012b.app
ANACONDA_HOME := /home/bml/anaconda2
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python2.7 \
$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include# We need to be able to find libpythonX.X.so or .dylib.
PYTHON_LIB := /usr/lib
PYTHON_LIB := $(ANACONDA_HOME)/lib# Uncomment to support layers written in Python (will link against Python libs)
WITH_PYTHON_LAYER := 1下面这几篇博客给出了一些常见报错及解决办法:
为了caffe(四)学习人家的文章
caffe跑试验遇到错误:Check failed: error == cudaSuccess (2 vs. 0) out of memory# Whatever else you find you need goes here.
#INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
#LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/libINCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
2.在编译make时,如果出错以下途中错误,则输入命令: export CPLUS_INCLUDE_PATH=/usr/include/python2.7
或者export CPLUS_INCLUDE_PATH=/home/bml/anaconda3/include/python3.6m/
原因:
python路径都改为了anaconda的路径,但是CPLUS的path没有设置,系统中我也没把aneconda设置成默认的python导致的。
3.编译make pycaffe时出现此类错误:系统中实际已经安装好了numpy,但是我的系统中安装了Anaconda2,而且在Makefile。config中写入了anaconda的路径,导致系统中有两个python路径,所以出现此类错误。修改方法:打开bashrc文件,先将anaconda路径注释,保存,再打开makefile.config文件,将anaconda路径注释,,然后在在python_include路径中加入local.
#ANACONDA_HOME := /home/bml/anaconda2
#PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
# $(ANACONDA_HOME)/include/python2.7 \
# $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/local/lib/python2.7/dist-packages/numpy/core/includevbvsdf
4.测试demo.py文件:进入faster-rcnn根目录下:
./tools/demo.py
运行后出现:
意思是,在载入VGG16_faster_rcnn_final.caffemodel时出错。查阅资料,发现这是因为gpu的显存不够。
如果是自己训练和测试模型,可以去更改配置文件中的batch_size,将test和train的batch_size都改为1。我们只是测试别人训练的模型也没法更改了。
注意:本人的电脑是惠普暗影精灵二代Pro:GTX1050显卡,8G内存,1T硬盘,128G固态,2G独显
退一步考虑,我们下载下来的faster_rcnn_models模型中有两个:
VGG16_faster_rcnn_final.caffemodel
ZF_faster_rcnn_final.caffemodel
VGG16是大型模型,而ZF模型则是较小的模型。
所以我们换成使用ZF模型进行测试。
方法一:
使用如下指令:
./tools/demo.py --net zf
方法二:
由于默认使用VGG16模型,所以修改为使用ZF模型。
打开demo.py:
定义了一个字典,有两个模型,VGG16和ZF。
修改vgg16为zf,这样默认载入的就是zf的模型而不是vgg16的了。
保存一下,可以开始测试了。
输入指令:
cd $RCNN_ROOT
./tools/demo.py
测试结果:
自动载入图片进行测试,识别出的东西会用红框标出。
图像 小部件
我使用的是gpu版本的caffe,如果要使用CPU版本的caffe,可以参考这篇博客:ubuntu16.04+py-faster-rcnn+ZF运行demo.py 。 修改一些东西,使用步骤大致一样。