概述
继fasterrcnn后,又一个pva-fasterrcnn的配置教程,希望可以帮助大家。
注意:有些复制的终端命令如果不能在终端运行,请注意英文全角半角问题,可以将命令输入终端,无须复制粘贴命令
第一部分:下载并编译pvanet
1、终端输入:
Git clone --recursive https://github.com/sanghoon/pva-faster-rcnn.git
2、建立Cython模块:
cd $pva-faster-rcnn/lib
make –j16(为啥用16相信大家也很清楚啦)
3、编译caffe及pycaffe
cd $pva-faster-rcnn/caffe-fast-rcnn
cp Makefile.config.example Makefile.config
修改Makefile.config文件:
去掉cudnn前面#(我用cudnn4.0,仅供参考)
Opencv_version不用注释(我用的2.4.10,3.0没有测试过,所以不用注释)
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
'face') (只有这一类)
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] = 1 ######(widerface)
需要修改:
x1 = float(bbox.find('xmin').text)
y1 = float(bbox.find('ymin').text)
x2 = float(bbox.find('xmax').text)
y2 = float(bbox.find('ymax').text)
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 (其他参数默认)
第七部分:实验结果
目前我训练了10000左右,loss为0.1左右,其他四个参数分别在0.2、0.1、0.01、0.01左右
最后
以上就是凶狠高跟鞋为你收集整理的PVAnet配置教程的全部内容,希望文章能够帮你解决PVAnet配置教程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复