1. 程式人生 > >R-FCN配置(python版)

R-FCN配置(python版)

https://github.com/Orpine/py-R-FCN
首先,需要安裝Caffe和pycaffe,起碼機子搭過caffe環境
其次,可能需要Python安裝包:cython,python-opencv,easydict
先裝一個python包管理器pip:

sudo apt-get install python-pip
再裝那三個包:
sudo pip install cython
sudo pip install python-opencv
sudo pip install easydict

硬體準備
ResNet50:4個G視訊記憶體;ResNet101:6個G視訊記憶體

1、克隆工程:

git clone https://github.com/Orpine/py-R-FCN.git

2、克隆caffe

cd py-R-FCN
git clone https://github.com/Microsoft/caffe.git
cd caffe
git reset --hard 1a2be8e

3、編譯caffe

cp Makefile.config.example Makefile.config
# In your Makefile.config, make sure to have this line uncommented
WITH_PYTHON_LAYER := 1
# Unrelatedly, it's also recommended that you use CUDNN
USE_CUDNN := 1
make -j8 && make pycaffe

4、編譯lib
cd ../lib
make


6、修改./tools/train_net.py中的函式

def parse_args():
    """
    Parse input arguments
    """
    parser = argparse.ArgumentParser(description='Train a R-FCN network')
    parser.add_argument('--gpu', dest='gpu_id',
                        help='GPU device id to use [0]',
                        default=0, type=int)
    parser.add_argument('--solver', dest='solver',
                        help='solver prototxt',
                        default='models/pascal_voc/ResNet-50/rfcn_end2end/solver_ohem.prototxt', type=str)
    parser.add_argument('--iters', dest='max_iters',
                        help='number of iterations to train',
                        default=40000, type=int)
    parser.add_argument('--weights', dest='pretrained_model',
                        help='initialize with pretrained model weights',
                        default='data/imagenet_models/ResNet-50-model.caffemodel', type=str)
    parser.add_argument('--cfg', dest='cfg_file',
                        help='optional config file',
                        default='experiments/cfgs/rfcn_end2end_ohem.yml', type=str)
    parser.add_argument('--imdb', dest='imdb_name',
                        help='dataset to train on',
                        default='voc_2007_trainval', type=str)
    parser.add_argument('--rand', dest='randomize',
                        help='randomize (do not use a fixed seed)',
                        action='store_true')
    parser.add_argument('--set', dest='set_cfgs',
                        help='set config keys', default=None,
                        nargs=argparse.REMAINDER)

    # if len(sys.argv) == 1:
    #     parser.print_help()
    #     sys.exit(1)

    args = parser.parse_args()
    return args

我這裡偷了個懶.還是用的py-faster-rcnn中的VOC2007資料
7、訓練模型
python ./tools/train_net.py

7.1、官方指令碼詳見./experiments/scripts下的幾個rfcn開頭的指令碼,預設情況需要合併voc2012和voc2007
7.2、訓練自己的資料詳見http://www.cnblogs.com/CarryPotMan/p/5390336.html


8、測試demo
修改

./tools/demo_rfcn.py
替換成自己的模型,配置檔案,資料就行了