Faster Rcnn end2end训练流程(Pascal格式数据集)

前言赘述几句:本文有参考过其他大佬写的文档,但时间久远记不清了。侵删。求职季攒人品,把自己整理过的东西发出来分享一下,本人很水,以下流程也比较机械,有不合适的地方欢迎指出。


1.将数据集所有标签复制到'/home/jiangshan/py-faster-rcnn/data/VOCdevkit2007/VOC2007/Annotations'目录下。

2.将数据集所有图片复制到'/home/jiangshan/py-faster-rcnn/data/VOCdevkit2007/VOC2007/JPEGImages'目录下。

3.将'/home/jiangshan/py-faster-rcnn/data/VOCdevkit2007/VOC2007/ImageSets/Main/'目录下的test.txt文件、train.txt文件、trainval.txt文件、val.txt文件内容清空。

然后执行Desktop目录下的matlab文件generate_sets.m文件,命令为:

>>matlab

>>cd /home/jiangshan/Desktop/

>>generate_sets(不需要加后缀名)

其它需要改的文件:

4.lib/datasets/下的pascal_voc.py(修改类别)和factory.py(添加新数据集?好像不用。。)

5.models/pascal_voc/下存放相应的模型配置文件,打开相应的train.prototxt:

(1)、input-data层的num_classes: n (自己要训练的类别+1,1为背景类background)

(2)、roi_data层的num_classes:n

(3)、cls_score层的num_output:n

(4)、bbox_pred层的num_output : 4*n

6.再打开同一目录下的test.prototxt文件:

(1)、cls_score层的num_output:n(自己要训练的类别+1,1为背景类background)

(2)、bbox_pred层的num_output : 4*n

7.lib/datasets/imdb.py文件:

找到append_flipped_images函数,修改

widths = self._get_widths()

这一行,为:

widths = [PIL.Image.open(self.image_path_at(i)).size[0]

  fori in xrange(num_images)]

8.experiments/cfgs/faster_rcnn_end2end.yml文件:

可以根据自己的需要在这个文件中添加配置,例如在训练时进行模型快照的迭代次数,是否翻转等,相应的参数可以参考py-faster-rcnn/lib/fast_rcnn/config.py。 不需要更改config.py,在faster_rcnn_end2end.yml中添加语句即可。

9.训练前,将output文件夹、data/cache/中的文件、data/VOCdevkit2007/annotations_cache中的文件删除。

10.学习率等参数可在models/pascal_voc/ZF/faster_rcnn_end2end/solver.prototxt文件中进行修改。

11.迭代次数可在tools/train_net.py中进行修改。

(注:如果修改了迭代次数,那么步长也要修改----将models/pascal_voc/ZF/faster_rcnn_end2end/solver.prototxt文件中的stepsize修改掉,数值要小于迭代次数。

12.检查一下显卡情况:

执行nvidia-smi命令。

12.开始训练:

进入py-faster-rcnn目录,执行:

./experiments/scripts/faster_rcnn_end2end.sh0 ZF pascal_voc

注----格式:

#./experiments/scripts/faster_rcnn_end2end.sh GPU NET DATASET [options args to{train,test}_net.py]

# DATASET is either pascal_voc or coco.

 

注:建议开一个tmux窗口来跑。



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
抱歉,作为AI语言模型,我无法为您提供完整的Faster R-CNN代码,但我可以为您提供一些指导。 Faster R-CNN是目标检测的一种方法,利用深度学习网络进行训练。在使用Faster R-CNN之前,您需要准备数据集并进行预处理。 以下是使用MATLAB进行Faster R-CNN训练的步骤: 1. 下载Faster R-CNN源代码:您可以从GitHub上下载Faster R-CNN的MATLAB代码。 2. 准备数据集:您需要将数据集转换为MATLAB支持的格式。您可以使用MATLAB提供的图像标注工具(Image Labeler)来标注图像,并将它们保存为MATLAB支持的格式。您还可以使用MATLAB提供的数据存储工具来将图像和标注数据保存为一个MAT文件。 3. 配置训练选项:Faster R-CNN提供了一些训练选项,包括网络架构、损失函数、学习率等。您需要根据您的数据集和训练需求进行选择和配置。 4. 开始训练:使用MATLAB训练脚本开始训练。在训练期间,您可以监控训练损失和精度,并调整训练选项以优化训练结果。 5. 评估模型:在训练完成后,您可以使用测试集对模型进行评估。评估结果可以帮助您了解模型的性能,并进行调整和改进。 6. 应用模型:在模型训练和评估完成后,您可以将模型应用于新的图像数据,并进行目标检测。 以上是使用MATLAB进行Faster R-CNN训练的大致步骤。当然,每个步骤都需要详细的配置和调整,具体操作还需要参考Faster R-CNN源代码和MATLAB官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值