用了好久,都没写,还是按惯例写一下。总体步骤其实就是上面流程图那样。安装、配置、下载预训练模型、放入自己数据、修改模型结构然后训练和测试,每个模型都是这个流程。
安装
1.下载源码
https://github.com/Orpine/py-R-FCN
Py=python版本
2.安装caffe依赖和caffe
1)安装依赖
pip install cython
pip install easydict
apt-get install python-opencv
2)下载caffe
git clone https://github.com/Microsoft/caffe.git
3)配置caffe
4)打开终端,cd 你的RFCN路径/lib,然后make一下
5)编译caffe的python接口:make pycaffe
安装完毕
下面下载预训练模型测试试一试:
这个要翻墙下载,里面有res50和res101的imagenet预训练模型。
测试
把模型放到rfcn项目的对应位置
$RFCN_ROOT/data/rfcn_models/resnet50_rfcn_final.caffemodel
$RFCN_ROOT/data/rfcn_models/resnet101_rfcn_final.caffemodel
打开终端,运行
cd $RFCN_ROOT
./tools/demo_rfcn.py --net ResNet-50
训练自己的数据
在data文件夹下放入自己的数据集,格式如下
VOCdevkit/VOC2007
VOC2007里面就是自己的数据了,主要有三个文件夹
JPEGImages、Annotations、ImageSets
1)修改模型的结构参数
因为自己的数据类别和预训练的不一样,所以输出神经元节点的数量不一样,要自己设置。这里涉及到一个问题,那就是预训练模型和测试模型的区别。
预训练模型是别人保存的中间网络权重参数,其实尾巴的输出神经元数量没有保存,所以自己微调一下就能用,而训练好的测试模型就是将模型参数全部保存下来了,如果你的数据类别和别人一样那么你也可以用,当然,不一样的可能性还是很大的。就是改改数字而已。
修改的文件一共有7个:
<1>修改class-aware/train