python faster rcnn

来源:互联网 发布:义乌淘宝培训多少钱 编辑:程序博客网 时间:2024/05/21 00:47

第一部分:下载并编译pvanet
1、终端输入:
git clone --recursive https://github.com/sanghoon/pva-faster-rcnn.git
2、建立Cython模块:
cd $pva-faster-rcnn/lib
make –j16
3、编译caffe及pycaffe
cd $pva-faster-rcnn/caffe-fast-rcnn
cp Makefile.config.example Makefile.config
修改Makefile.config文件:
去掉cudnn前面#
Opencv_version不用注释
BLAS=atlas(我测试的库,mkl没有试过)(sudo apt-get install libatlas-base-dev即可安装)
去掉with_python_layer前面的#,注意一定要去掉,不然无法训练数据(测试的时候不需要)

修改后保存退出

make –j16
make pycaffe –j16


第二部分:下载预训练模型
为小伙伴们提供百度网盘下载链接
链接:http://pan.baidu.com/s/1kVRRPDd 密码:1cdt
1、打开文件将test.model放入$pva-faster-rcnn/models/pvanet/full/这个目录下
2、将test(1).model重命名为test.model放入$pva-faster-rcnn/models/pvanet/comp/目录下
其他的模型我就没有去试验啦,后续有时间就会更新这些模型的训练方法的


第三部分:下载voc07数据

打开终端(任何目录)输入:
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar

解压(严格按照此顺序):
tar xvf VOCtrainval_06-Nov-2007.tar
tar xvf VOCtest_06-Nov-2007.tar
tar xvf VOCdevkit_08-Jun-2007.tar

将生成的VOCdevkit文件夹更名为VOCdevkit2007移动至$pva-faster-rcnn/data/目录下面


第四部分:voc07测试预训练模型

终端输入:
cd $pva-faster-rcnn
1、full/test.model测试:
./tools/test_net.py --gpu 0 --def models/pvanet/full/test.pt --net models/pvanet/full/test.model --cfg models/pvanet/cfgs/submit_160715.yml
2、Comp/test.model测试:
./tools/test_net.py --gpu 0 --def models/pvanet/comp/test.pt --net models/pvanet/comp/test.model --cfg models/pvanet/cfgs/submit_160715.yml
此测试会得到系列类别的AP值

第五部分:预训练model训练并测试voc07数据
终端输入:
1、训练:
cd $pva-faster-rcnn
./tools/train_net.py --gpu 0 --solver models/pvanet/example_finetune/solver.prototxt --weights models/pvanet/full/test.model –iters 100000 --cfg models/pvanet/cfgs/train.yml –imdb voc_2007_trainval(其他参数默认)
训练结果会在pva根目录生成output文件夹,模型就在里面
2、测试:
./tools/test_net.py --gpu 0 --def models/pvanet/example_finetune/test.prototxt --net output/faster_rcnn_pavnet/voc_2007_trainval/pvanet_frcnn_iter_100000.caffemodel --cfg models/pvanet/cfgs/submit_160715.yml (其他参数默认)


第六部分:预训练model
训练并测试自己数据
1、数据制作:
还记得fasterrcnn数据如何制作的吗?参考博客http://blog.csdn.net/samylee/article/details/51201744
Tips:参考voc07的数据格式,我们可发现,生成的数据最后只需保留Annotations、ImageSets和JPEGImages三个文件夹即可,ImageSets/Main文件中用到的只有trainval.txt和test.txt这两个文件(数据分布:trainval=train+val,all_data=trainval+test),多类别如果增加负样本或模糊样本可以考虑1、0及-1操作(其中1表示有目标,0表示模糊目标,-1表示没有目标
数据集制作完成后将这三个文件夹复制至一个文件夹(命名为VOC2007)当中,再移动至$pva-faster-rcnn/data/VOCdevkit2007中,替换原来的VOC2007

2、类别设置:(有几类设置几类,类似fasterrcnn,我的数据集为1类行人数据)

1)打开文件/models/pvanet/example_finetune/train.prototxt

num_classes:2(开头处)(我实验时一类)

2)修改lib/datasets/pascal_voc.py

self._classes = ('__background__', # always index 0
                              'people')(只有这一类)

3)修改lib/datasets/imdb.py

数据整理,在一行代码为 boxes[:, 2] = widths[i] - oldx1 - 1下加入代码:
 for b in range(len(boxes)):

      if boxes[b][2]< boxes[b][0]:

         boxes[b][0] = 0

4)修改完pascal_voc.py和imdb.py后进入lib/datasets目录下删除原来的pascal_voc.pyc和imdb.pyc文件,重新生成这两个文件,因为这两个文件是python编译后的文件,系统会直接调用。

终端进入lib/datasets文件目录输入:

python(此处应出现python的版本)

>>>import py_compile

>>>py_compile.compile(r'imdb.py')

>>>py_compile.compile(r'pascal_voc.py')

3、训练数据:
cd $pva-faster-rcnn
./tools/train_net.py --gpu 0 --solver models/pvanet/example_finetune/solver.prototxt --weights models/pvanet/full/test.model –iters 100000 --cfg models/pvanet/cfgs/train.yml –imdb voc_2007_trainval
(其他参数默认)
4、测试模型:
./tools/test_net.py --gpu 0 --def models/pvanet/example_finetune/test.prototxt --net output/faster_rcnn_pavnet/voc_2007_trainval/pvanet_frcnn_iter_100000.caffemodel --cfg models/pvanet/cfgs/submit_160715.yml (其他参数默认)


0 0