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
5、下载数据(VOC,COCO),下载模型(ResNet,https://pan.baidu.com/s/1hrOZdju)
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
替换成自己的模型,配置文件,数据就行了