Faster R-CNN CPU环境搭建

参考:https://blog.csdn.net/zyb19931130/article/details/53842791

             https://blog.csdn.net/Lin_xiaoyi/article/details/78183683?locationNum=5&fps=1

             https://blog.csdn.net/m0_37717568/article/details/70743175

配置,编译与安装环境:

$ pip install cython
$ pip install easydict
$ sudo apt-get install python-opencv

1.下载fasrer-rcnn源代码并安装:

git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git

2.编译cython模块 

cd /py-faster-rcnn/lib
修改setup.py文件,注释掉GPU相关代码,如下:
#CUDA = locate_cuda()
#self.set_executable('compiler_so', CUDA['nvcc'])
# Extension('nms.gpu_nms',
#        ['nms/nms_kernel.cu', 'nms/gpu_nms.pyx'],
#        library_dirs=[CUDA['lib64']],
#        libraries=['cudart'],
#        language='c++',
#        runtime_library_dirs=[CUDA['lib64']],
        # this syntax is specific to this build system
        # we're only going to use certain compiler args with nvcc and not with
        # gcc the implementation of this trick is in customize_compiler() below extra_compile_args={'gcc': ["-Wno-unused-function"],
#        'nvcc': ['-arch=sm_35','--ptxas-options=-v','-c','--compiler-options',"'-fPIC'"]},
#include_dirs = [numpy_include, CUDA['include']]
#),

setup.py修改完成后,执行make

在py-faster-rcnn/lib目录下,运行以下命令:make

3、编译caffe和pycaffe

到/py-faster-rcnn/caffe-fast-rcnn/目录下,复制Makefile.config.example为Makefile.config,并修改Makefile.config文件和CMakeLists.txt文件(OFF改成ON),修改如下:

    去掉注释CPU_ONLY :=1  
    注释掉CUDA有关的行:  
    #CUDA_DIR := /usr/local/cuda  
    #CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \  
    #        -gencode arch=compute_20,code=sm_21 \  
    #        -gencode arch=compute_30,code=sm_30 \  
    #        -gencode arch=compute_35,code=sm_35 \  
    #        -gencode arch=compute_50,code=sm_50 \  
    #        -gencode arch=compute_50,code=compute_50  
    去掉注释WITH_PYTHON_LAYER := 1  
    INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial  
    LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/i386-linux-gnu/hdf5/serial /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial  
    #TEST_GPUID := 0  
    caffe_option(CPU_ONLY  "Build Caffe without CUDA support" ON) # TODO: rename to USE_CUDA  

编译:

    cd ~/py-faster-rcnn/caffe-fast-rcnn  
    make -j8&& make pycaffe  

4. 完成之后修改一些文件,因为默认为GPU模式

A>将 ~/py-faster-rcnn/lib/fast_rcnn/config.py的如下内容:  __C.USE_GPU_NMS = False

B>将 ~/py-faster-rcnn/tools/test_net.py和 ~/py-faster-rcnn/tools/train_net.py的caffe.set_mode_gpu()修改为caffe.set_mode_cpu().

C:修改/py-faster-rcnn/lib/fast_rcnn/nms_wrapper.py文件(注释该引用,并将False改成True)
#from nms.gpu_nms import gpu_nms

def nms(dets, thresh, force_cpu=True):

5.在环境一切就绪的情况下,将faster的模型下载下来(模型存放在data里):

cd py-fast-rcnn
./data/script/fetch_faster_rcnn_models.sh 
6. 在/home/xxx/py-faster-rcnn/tools目录下运行, python demo.py --cpu或者./tools/demo.py --cpu 

遇到的问题:

src/caffe/test/test_smooth_L1_loss_layer.cpp:11:35: fatal error: caffe/vision_layers.hpp

解决方法:
找到文件$CAFFE_ROOT/src/caffe/test/test_smooth_L1_loss_layer.cpp
注释或删除第十一行

11 #include "caffe/vision_layers.hpp"

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

此外:

1:进一步想用VOC2007进行实验,给出数据下载方式

(1)下载训练、测试数据集

wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar

wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar

wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar

 (2)解压

tar xvf VOCtrainval_06-Nov-2007.tar

tar xvf VOCtest_06-Nov-2007.tar

tar xvf VOCdevkit_08-Jun-2007.tar

 

(3)为了PASCAL VOC创建symlinks,创建软连接

ln -s VOCdevkit VOCdevkit2007

2:想安装opencv ,下载opencv-3.0.0.zip

 安装包存在了百度云网盘。链接:http://pan.baidu.com/s/1jHCpwpg 密码:m2je。

3 : 单独下载faster_rcnn模型,链接: https://pan.baidu.com/s/1miDWCEc 密码: xq4y

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

注:py-faster-rcnn在测试模型的时候,可以选择使用cpu mode或者gpu mode,但是如果使用该框架训练自己的模型,就只能使用gpu了。应该是作者考虑训练速度的原因,对roi_pooling_layer和smooth_L1_loss_layer只使用和提供了gpu版本的代码.

参考:https://blog.csdn.net/qq_14975217/article/details/51495844

猜你喜欢

转载自blog.csdn.net/qq_38096703/article/details/79748717