TFA/FsDet训练官方VOC数据集

参考博客:https://blog.csdn.net/qiankendeNMY/article/details/128450196?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171013688916800184199679%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=171013688916800184199679&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-128450196-null-null.142^v99^pc_search_result_base3&utm_term=fsce&spm=1018.2226.3001.4187

 一、配置环境

1、代码下载链接:GitHub - wz940216/few-shot-object-detection: Implementations of few-shot object detection benchmarks

2、创建环境

conda create -n tfa python=3.7 #创建名为tfa的环境
conda activate tfa #激活环境

3、pytorch安装

这里我安装的是torch 1.9.0 + cu111

pytorch网址链接:PyTorch

pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html

4、detectron2安装

我安装的是对应torch1.9.0 + cu111的 detectron2 v0.5 版本(注意:detetron2需根据torch版本选择对应版本进行安装)

detetron2网址:Releases · facebookresearch/detectron2 (github.com)

python -m pip install detectron2==0.5 -f \
  https://dl.fbaipublicfiles.com/detectron2/wheels/cu111/torch1.9/index.html

5、其他库安装

cd 到下载的代码文件下,安装requirements.txt中所写库

python3 -m pip install -r requirements.txt

二、准备官方VOC数据集

1、下载官方VOC数据集,这里下载voc2007与voc2012,以下为下载链接

https://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar

https://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tar

https://pjreddie.com/media/files/VOCtest_06-Nov-2007.tar

将下载好的数据集整理成以下结构,其中datasets/VOC2007/Annotations保存的为标签文件,datasets/VOC2007/ImageSets/Main保存的是训练,测试的txt文件,datasets/VOC2007/JPEGImages保存的是所有的图像(包括所有基类和新类训练、验证以及测试的图像),VOC2012同VOC2017结构一致。

2、准备小样本数据集

修改datasets/prepare_voc_few_shot.py文件中参数

修改后运行

python datasets/prepare_voc_few_shot.py --seeds 1 30

运行成功后在datasets下生成vocsplit文件,其中共29个seed,每个seed中保存每个类别的小样本训练txt文件

3、下载官方权重

下载链接:https://link.csdn.net/?target=https%3A%2F%2Fdl.fbaipublicfiles.com%2Fdetectron2%2FImageNetPretrained%2FMSRA%2FR-101.pkl

将下载好的文件储存在base_model文件夹下

三、训练

(1)基础训练(这里以split1为例)

 修改configs/Base-Rcnn-FPN.yaml中学习率与batch_size

修改fsdet/meta_pascal_voc.py文件中数据集路径

修改configs/PascalVOC-detection/split/faster_rcnn_R_101_FPN_base1.yaml文件

weights修改为之前下载好的pkl文件路径,

这里我为了方便展示训练流程就修改了max_iter为50,自己训练的话不用修改

修改好后我们开始第一阶段训练,在终端运行以下代码 ,我采用单卡训练,故num-gpus为1

python3 -m tools.train_net --num-gpus 1 \
        --config-file configs/PascalVOC-detection/split1/faster_rcnn_R_101_FPN_base1.yaml

训练结果(为方便展示只训练了50iter,结果不会很好)

(2)初始化检测头

在进行完基础训练后,会生成checkpoint文件夹,在其中找到model_final.pth文件

在tools/ckpt_surgery.py中修改src1,save-dir,method参数,其中src1为上一步所提到的checkpoint文件夹下model_final.pth文件,save-dir为初始化检测头后权重文件保存路径,method为初始化方法,这里选择随机初始化

 运行tools/ckpt_surgery.py,在save-dir中路径产生初始化后权重文件

(3)迁移训练

这里我选择10shot训练方式,修改configs/pascalvoc/split1/faster_rcnn_ R_101_FPN_ft_all1_10shot.yaml文件中weights为上一步中转换后的权重文件

base-lr为学习率参数,可自行修改,ims_per_batch为batchsize参数,可自行修改,max-iters为迭代次数,可自行修改。

修改后运行

python3 -m tools.train_net --num-gpus 1 \
        --config-file configs/pascalvoc/split1/faster_rcnn_ R_101_FPN_ft_all1_10shot.yaml

训练完成

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值