mac下跑R-FCN并用自己的数据集训练

来源:互联网 发布:mac的ctrl 编辑:程序博客网 时间:2024/06/06 12:24

1、首先,需要安装Caffe和pycaffe,起码机子搭过caffe环境

macos下面搭建caffe参考:

http://blog.csdn.net/yimingsilence/article/details/54095628

2、克隆工程:

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. git clone https://github.com/Orpine/py-R-FCN.git  

3、克隆caffe

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. cd py-R-FCN  
  2. git clone https://github.com/Microsoft/caffe.git  
  3. cd caffe  
  4. git reset --hard 1a2be8e  

后面用这个版本各种出错,然后换了微软的版本

该caffe版本是微软版本
[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. cd $RFCN_ROOT  
  2. git clone https://github.com/Microsoft/caffe.git  

4、编译caffe

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. cp Makefile.config.example Makefile.config  
  2. # In your Makefile.config, make sure to have this line uncommented  
  3. WITH_PYTHON_LAYER :1  
  4. # Unrelatedly, it's also recommended that you use CUDNN  
  5. USE_CUDNN :1  
  6. make -j8 && make pycaffe  

更多请参见:

http://blog.csdn.net/yimingsilence/article/details/54095628

5、编译lib
[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. cd ../lib  
  2. make  

6、到py-R-FCN/data/scripts中运行里面的获取数据的脚本,把要测试的数据下载下来

7、如果要用resnet网络的模型要下载这个模型,不下载demo也能跑通:

     下载数据(VOC,COCO),下载模型(ResNet,https://pan.baidu.com/s/1hrOZdju这个下载到的数据放到py-R-FCN/data/rfcn_models里面(文件夹没有新建一个),并且改名格式为:resnet50_rfcn_final.caffemodel

然后运行py-R-FCN/tools里面的demo.py就可以看到效果了。

8、修改./tools/train_net.py中的函数

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. def parse_args():  
  2.     """  
  3.     Parse input arguments  
  4.     """  
  5.     parser = argparse.ArgumentParser(description='Train a R-FCN network')  
  6.     parser.add_argument('--gpu', dest='gpu_id',  
  7.                         help='GPU device id to use [0]',  
  8.                         default=0type=int)  
  9.     parser.add_argument('--solver', dest='solver',  
  10.                         help='solver prototxt',  
  11.                         default='models/pascal_voc/ResNet-50/rfcn_end2end/solver_ohem.prototxt'type=str)  
  12.     parser.add_argument('--iters', dest='max_iters',  
  13.                         help='number of iterations to train',  
  14.                         default=40000type=int)  
  15.     parser.add_argument('--weights', dest='pretrained_model',  
  16.                         help='initialize with pretrained model weights',  
  17.                         default='data/imagenet_models/ResNet-50-model.caffemodel'type=str)  
  18.     parser.add_argument('--cfg', dest='cfg_file',  
  19.                         help='optional config file',  
  20.                         default='experiments/cfgs/rfcn_end2end_ohem.yml'type=str)  
  21.     parser.add_argument('--imdb', dest='imdb_name',  
  22.                         help='dataset to train on',  
  23.                         default='voc_2007_trainval'type=str)  
  24.     parser.add_argument('--rand', dest='randomize',  
  25.                         help='randomize (do not use a fixed seed)',  
  26.                         action='store_true')  
  27.     parser.add_argument('--set', dest='set_cfgs',  
  28.                         help='set config keys'default=None,  
  29.                         nargs=argparse.REMAINDER)  
  30.   
  31.     # if len(sys.argv) == 1:  
  32.     #     parser.print_help()  
  33.     #     sys.exit(1)  
  34.   
  35.     args = parser.parse_args()  
  36.     return args  

我这里偷了个懒.还是用的py-faster-rcnn中的VOC2007数据
8、训练模型
[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. python ./tools/train_net.py  

8.1、官方脚本详见./experiments/scripts下的几个rfcn开头的脚本,默认情况需要合并voc2012和voc2007
8.2、训练自己的数据详见http://www.cnblogs.com/CarryPotMan/p/5390336.html


9、测试demo
修改

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. ./tools/demo_rfcn.py  
替换成自己的模型,配置文件,数据就行了
0 0
原创粉丝点击