配置faster rcnn 的第一步需要配置好caffe,一遍caffe的编译安装没问题后,fast rcnn 也可以成功。

 

第一步:源码安装caffe   (只是测试是否成成功编译caffe,可直接调到第二步)

            1   github上下载caffe-master

            2  安装前的准备:为了避免不必要的各种包冲突,使用anaconda创建一个python2.7的虚拟环境。

            3  使用pip install安装caffe-master /python/requirelist.txt 中的各种Python包。这一步需要特别注意protobuf

                的版本与外界系统的protoc版本一致,系统protoc 版本查看方式为:protoc   --version

            4  配置Makefile.config 文件,注意把Python 相关路径设置为anaconda的Python。

            5  make all -j8       make pycaffe.     此处需注意若make报错缺少某模块,pip安装好模块后在编译前需要make clean.

            6  编译完caffe的python 接口后,需要在~/.bashrc 中添加   export PYTHONPATH=/home/xxxx/

                caffe-master/python:$PYTHONPATH. 即将编译好的caffe 添加到python 搜索路径。(、该步并不是必须,后来注释掉

                 ~/.bashrc文件中该行后,仍然成功,可能make pycaffe 已经自动添加路径了)。

            7   测试是否成功。 source activate xxxx 进入虚拟换将, 输入Python进入交互,import caffe 如果不报错即成功。

第二步 安装 py- faster-rcnn

           1    从github 上下载并解压得到py-faster-rcnn 文件夹

           2   进入py-faster-rcnn/caffe-faster-rcnn文件夹,将上面第一步4中配置好的makefile文件拷贝到此文件夹,也可以

                直接修改makefile。

           3   make all -j8          make pycaffe

           4   进入py-faster-rcnn/lib  文件夹   运行make 命令

           5   下载训练好的模型,github官网提供的脚本网址已经失效,自己前往

                 https://dl.dropboxusercontent.com/s/o6ii098bu51d139/faster_rcnn_models.tgz 下载

                下载完后 tar -zxvf  faster_rcnn_models 把解压的文件夹放在 data 文件夹下。

           6  测试。  py-faster/rcnn 文件夹运行 /tools/demo.py  

 

可能遇到的错误:

   1  Check failed: ReadProtoFromBinaryFile(param_file, param)

        failed to parse netparameter

        该错误主要是模型的问题,解决方法为 一定用tar 命令解压下载的模型,不能用系统自带的右键extract here.

   2  protobuf 版本问题,主要包括:

       python google.protobuf.internal import enum_type_wrapper

       This file was generated by a newer version of protoc

       解决方法为确保Python环境内部与系统的protobuf版本一致。

   3  /usr/lib/libgdal.so.20: undefined symbol: sqlite3_column_table_name

       sql版本问题,解决方法为 conda update sqlite

    4  cannot find -lcblas

       没有安装BLAS, 解决方法为:sudo apt-get install libatlas-base-dev

    5  It requires a deb-src line in your sources.list

        解决方法: 将etc/apt/soource.list 中 deb_src前面的注释去掉。(需要源码安装)

     6 undefined reference to google::protobuf::io

        原因: anaconda 环境中安装的protobuf 是32位的。解决方法为重新安装64位的(未实验)或者直接

        卸载掉环境中的protobuf ,只保留系统的protobuf。