Faster R-CNN利用新的网络结构来训练
2017-11-13 17:18
190 查看
前言
最近利用Faster R-CNN训练数据,使用ZF模型,效果无法有效提高。就想尝试对ZF的网络结构进行改造,记录下具体操作。
一、更改网络,训练初始化模型
这里为了方便,我们假设更换的网络名为LeNet。
首先,需要先训练在Faster R-CNN中用来初始化网络的模型:LeNet.caffemodel。
这里比较简单,直接用完整的LeNet去训练一部分数据(VOC2007,VOC2012均可),数据初始大小resize为224*224,即可得到初始化网络的模型。
二、在Faster R-CNN中更相关内容(Faster R-CNN是基于matlab)
1.文件夹"experiments":
(1)添加文件script_faster_rcnn_VOC2007_LeNet.m(内容同script_faster_rcnn_VOC2007_ZF.m,将文件中的ZF替换为LeNet)。
(2)子文件夹"+Model"添加文件LeNet_for_Faster_RCNN_VOC2007.m(内容同ZF_for_Faster_RCNN_VOC2007.m,将文件中的ZF替换为LeNet)
(3)子文件夹"models"中内容也需要更换,具体改动见下面"文件夹"models"中内容修改和添加"
2.文件夹"fetch_data"中:
(1)添加文件fetch_model_LeNet.m(内容同fetch_model_ZF.m,将ZF替换为LeNet)
3.文件夹"functions":
(1)子文件夹"rpn"中proposal_train.m部分内容修改:
同理 proposal_test.m。
(2) 子文件夹"fast_rcnn"中fast_rcnn_train.m文件修改如同(1)。
4.文件夹"models":
选取子文件夹"rpn_prototxts"为例
(1)添加文件夹"LeNet",将文件夹"ZF"中的所有文件都拷贝过来,然后对每个文件进行修改:
train_val.prototxt:将主体网络ZF替换为LeNet,然后对文件里的参数作出更改,如下图。
test.prototxt:将主体网络ZF替换为LeNet即可,并修改网络名称为LeNet。
solver_xxxx.prototxt:
(2)添加文件夹"LeNet_fc6",将文件夹"ZF_fc6"中的所有文件都拷贝过来,然后对每个文件进行修改,修改方式如上。
对于子文件夹"fast_rcnn_prototxts"来说,添加和修改方式如上述(1)(2)一致。
三、总结
做完上述工作,即可顺利的利用自己的网络来进行Faster R-CNN的训练了。
最近利用Faster R-CNN训练数据,使用ZF模型,效果无法有效提高。就想尝试对ZF的网络结构进行改造,记录下具体操作。
一、更改网络,训练初始化模型
这里为了方便,我们假设更换的网络名为LeNet。
首先,需要先训练在Faster R-CNN中用来初始化网络的模型:LeNet.caffemodel。
这里比较简单,直接用完整的LeNet去训练一部分数据(VOC2007,VOC2012均可),数据初始大小resize为224*224,即可得到初始化网络的模型。
二、在Faster R-CNN中更相关内容(Faster R-CNN是基于matlab)
1.文件夹"experiments":
(1)添加文件script_faster_rcnn_VOC2007_LeNet.m(内容同script_faster_rcnn_VOC2007_ZF.m,将文件中的ZF替换为LeNet)。
(2)子文件夹"+Model"添加文件LeNet_for_Faster_RCNN_VOC2007.m(内容同ZF_for_Faster_RCNN_VOC2007.m,将文件中的ZF替换为LeNet)
(3)子文件夹"models"中内容也需要更换,具体改动见下面"文件夹"models"中内容修改和添加"
2.文件夹"fetch_data"中:
(1)添加文件fetch_model_LeNet.m(内容同fetch_model_ZF.m,将ZF替换为LeNet)
3.文件夹"functions":
(1)子文件夹"rpn"中proposal_train.m部分内容修改:
同理 proposal_test.m。
(2) 子文件夹"fast_rcnn"中fast_rcnn_train.m文件修改如同(1)。
4.文件夹"models":
选取子文件夹"rpn_prototxts"为例
(1)添加文件夹"LeNet",将文件夹"ZF"中的所有文件都拷贝过来,然后对每个文件进行修改:
train_val.prototxt:将主体网络ZF替换为LeNet,然后对文件里的参数作出更改,如下图。
test.prototxt:将主体网络ZF替换为LeNet即可,并修改网络名称为LeNet。
solver_xxxx.prototxt:
(2)添加文件夹"LeNet_fc6",将文件夹"ZF_fc6"中的所有文件都拷贝过来,然后对每个文件进行修改,修改方式如上。
对于子文件夹"fast_rcnn_prototxts"来说,添加和修改方式如上述(1)(2)一致。
三、总结
做完上述工作,即可顺利的利用自己的网络来进行Faster R-CNN的训练了。
相关文章推荐
- py-faster-rcnn流程(6)——训练Fastrcnn网络二阶段
- 基于ZF网络的Faster RCNN网络结构详解(非常详细版)
- [计算机视觉][神经网络与深度学习]Faster R-CNN配置及其训练教程
- [计算机视觉][神经网络与深度学习]Faster R-CNN配置及其训练教程2
- 基于ZF网络的Faster RCNN网络结构详解(非常详细版)
- 基于ZF网络的Faster RCNN网络结构详解(非常详细版)
- Faster R-CNN网络结构
- 从结构、原理到实现,Faster R-CNN全解析(原创)
- faster-rcnn 之 RPN网络的结构解析
- CNN、DNN、RNN 内部网络结构区别
- Python+H5py实现将SVHN样本库转换为FasterRcnn训练样本
- Python Faster R-CNN深度学习训练数据处理
- py-faster-rcnn + ZF 实现自己的数据训练与检测(二)
- 几种CNN网络结构及其资源使用
- python实现简单的卷积神经网络CNN案例1:定义CNN网络结构
- faster-rcnn 之 RPN网络的结构解析
- python版faster rcnn利用matlab绘制RP曲线
- 网络拓扑结构5-9-1读取数据库并训练预测
- Faster RCNN训练出现问题:Matlab版本训练
- matlab利用训练好的BP神经网络来预测新数据(先保存网络,再使用网络)