faster-rcnn的训练流程及其如何训练自己的数据集(一)

本文介绍了Faster R-CNN在TensorFlow中的训练流程,包括理解训练目录结构、数据加载、roidb数据处理,以及训练前的准备工作。详细解析了从加载VOC2007数据集到构建训练所需的roidb数据,特别是数据增强和目标框回归目标的计算。文章旨在帮助读者系统地掌握Faster R-CNN的训练过程。
摘要由CSDN通过智能技术生成

前言:


关于faster rcnn的训练网络,哪怕你一直很努力,死磕代码。就会像这图一样智商不够用啊,这边看了那边忘。所以希望大家能体系的学习faster rcnn。因为走了很多弯路,总结一下自己的理解。本篇关于Faster rcnn 的训练是基于tensorflow版本的,因为最近一直在搞这个,也为了巩固一下知识点,在此写个博客,也希望能帮助到大家。废话不多说,我们直接开始。

第一点:首先要明白faster rcnn目录下都有哪些文件夹,都有什么用处。如下截图:

文件夹:

data--------->存放的是用于训练的数据集,一般我们用的都是voc2007的数据集,知道就行了,还有一个很重要的是文件夹是pretrain_model,必不可少的,这里面存放的VGG_imagenet.npy也就是VGG模型,这个大家在网上找找就能找到。还有一个cache文件夹是随着训练的进行,用来存放训练数据的,为了下次加载数据方便。

experiments---->下面有个scripts文件夹里面存放的是faster_rcnn_end2end.sh,算是起始指令吧,我们是通过运行这个文件,加载参数来调用其他各个文件的。

lib------------>该文件夹里面存放的东西很多,主要是一些python接口文件及运行的log文件。所以说程序运行之前先make一下。关于里面各个作用,下面我会根据训练流程一一讲解。

output-------->存放当然是你的输出结果了,你的训练结束后所训练好的模型。

tools------->里面的是训练、测试的加载起始文件。demo.py是一个简单的测试文件。

好了,关于各个文件的说明已经结束。

第二点:faster rcnn训练流程开始

1.数据加载

通过./experiments/scripts/faster_rcnn_end2end.sh gpu 0  VGG16 pascal_voc命令,调用tools/train_net.py加载完参数后 imdb = get_imdb(args.imdb_name)调用了get_imdb()函数(该函数来于lib/datasets/factory.py)返回的是一个lambda表达式(其实是通过pascal_voc()函数来创建imdb数据的,通过该表达式,进入了pascal_voc函数,初始化了imdb数据,此时,数据加载完成。---->self._roidb_handler = self.gt_roidb并设置了gt_r

Faster R-CNN(区域卷积神经网络)是一种流行的目标检测算法,它结合了Region Proposal Network (RPN) 和 Fast R-CNN 的优点。如果你想在PyTorch上使用Faster R-CNN来训练自己的数据集,你需要遵循以下步骤: 1. 数据准备:首先,你需要准备标注好的训练图像和相应的边界框(BBox)。PASCAL VOC、COCO等都是常见的目标检测数据集,如果你有自己的数据,需要将其转换成标准格式,如XML或YOLO的txt文件。 2. 准备库:安装必要的库,包括PyTorch、Detectron2(基于Faster R-CNN的库)、torchvision,以及用于数据处理的工具如`xml.etree.ElementTree`(如果需要解析XML)。 3. 加载预训练模型:下载并加载预训练Faster R-CNN模型,比如COCO模型,作为起点,这将为你的网络提供基础结构。 4. 定义自定义数据模块:创建一个新的数据模块,继承自Detectron2的`DatasetMapper`,并针对你的数据集调整输入大小、颜色空间转换等参数。 5. 训练配置:编写一个训练配置文件,指定优化器、学习率策略、迭代次数、批大小等参数,并指明你的模型路径。 6. 实现训练循环:使用Detectron2的`DefaultTrainer`类,设置数据模块、模型、配置和其他训练选项,然后运行训练循环。 ```python from detectron2.engine import DefaultTrainer # 创建训练器实例 trainer = DefaultTrainer( model="COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x", data_loader_train=..., data_loader_val=..., cfg=cfg, # 自定义训练配置 ) # 开始训练 trainer.train() ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值