目标跟踪之Pysot系列代码训练(SiamRPN\SiamRPN++)

代码地址:https://github.com/STVIR/pysot
环境配置参考博客:Siam系列跟踪算法工具包PySOT配置

一、数据集准备

Pysot系列跟踪器训练的时候,首先将数据集进行裁剪,一共是四个数据集:VID, YOUTUBEBB, DET, COCO

1.1 VID数据集

VID数据集是Object detection from video的简称,主要是ILSVRC2015的VID子集
建立软链接

ln -sfb /data3/publicData/Datasets/ILSVRC2015/Annotations/VID/train/ILSVRC2015_VID_train_0000/* ILSVRC2015_VID/Annotations/VID/train/a
ln -sfb /data3/publicData/Datasets/ILSVRC2015/Annotations/VID/train/ILSVRC2015_VID_train_0001/* ILSVRC2015_VID/Annotations/VID/train/b
ln -sfb /data3/publicData/Datasets/ILSVRC2015/Annotations/VID/train/ILSVRC2015_VID_train_0002/* ILSVRC2015_VID/Annotations/VID/train/c
ln -sfb /data3/publicData/Datasets/ILSVRC2015/Annotations/VID/train/ILSVRC2015_VID_train_0003/* ILSVRC2015_VID/Annotations/VID/train/d
ln -sfb /data3/publicData/Datasets/ILSVRC2015/Annotations/VID/val/* ILSVRC2015_VID/Annotations/VID/train/e

ln -sfb /data3/publicData/Datasets/ILSVRC2015/Data/VID/train/ILSVRC2015_VID_train_0000/* ILSVRC2015_VID/Data/VID/train/a
ln -sfb /data3/publicData/Datasets/ILSVRC2015/Data/VID/train/ILSVRC2015_VID_train_0001/* ILSVRC2015_VID/Data/VID/train/b
ln -sfb /data3/publicData/Datasets/ILSVRC2015/Data/VID/train/ILSVRC2015_VID_train_0002/* ILSVRC2015_VID/Data/VID/train/c
ln -sfb /data3/publicData/Datasets/ILSVRC2015/Data/VID/train/ILSVRC2015_VID_train_0003/* ILSVRC2015_VID/Data/VID/train/d
ln -sfb /data3/publicData/Datasets/ILSVRC2015/Data/VID/val/* ILSVRC2015_VID/Data/VID/train/e

进入到"./pysot-master/training_dataset/vid/"目录,

  1. 运行python parse_vid.py,将每张图片的groundtruth读取,并保存。
    (也可以不软连接,直接修改一下sub_sets = sorted({'a', 'b', 'c', 'd', 'e'})VID_base_path
    运行完成如下,会生成vid.json文件:
    在这里插入图片描述

  2. 运行python par_crop.py 511 12,将图片裁剪为511*511大小,12是线程数。
    运行成功后,会在vid文件夹底下生成crop511文件夹,里面是裁剪后用于训练的样本图片。
    在这里插入图片描述

  3. 运行python gen_json.py,生成train.json和val.json
    在这里插入图片描述

1.2 COCO数据集

进入到"./pysot-master/training_dataset/coco/"目录(下载的COCO数据集train2017,val2017,annotations_trainval2017都放在对应目录底下,或者使用软连接放在此目录底下),执行如下指令

cd pycocotools && make && cd ..
python par_crop.py 511 12
python gen_json.py
1.3 DET&YT_BB数据集

DET数据集是ILSVRC2015数据集的DET,处理方式和COCO一样,而YT_BB是从YouTube上面整理的数据集(DaSiamRPN里面提到的训练方式),考虑到该数据集体量庞大,处理时间相当长,所以这两个数据集就没用于训练了。

1.4 pretrained_model下载

从作者提供的谷歌网盘地址下载预训练模型并修改pysot/core/config.py:https://gitcode.net/mirrors/stvir/pysot/-/blob/master/TRAIN.md在这里插入图片描述

二、多GPU训练

进入到目录:pysot/core,打开config.py,修改用于训练的数据集(138行)
在这里插入图片描述

cd experiments/siamrpn_r50_l234_dwxcorr
CUDA_VISIBLE_DEVICES=0,1
python -m torch.distributed.launch \
    --nproc_per_node=2 \
    --master_port=2333 \
    ../../tools/train.py --cfg config.yaml

此处用的是GPU0和GPU1两块显示,所以CUDA_VISIBLE_DEVICES=0,1,--nproc_per_node=2可以根据自己的条件修改。

在这里插入图片描述
模型保存在snapshot文件夹底下,如下:
在这里插入图片描述

三、训练断点重续

训练过程中不可避免会出现意外,而且训练时间很久,如果重新运行算法,训练会默认重新训练(从epoch1开始),不会断点重续,但其实Pysot代码是有这个功能的,我也是好多次之后才发现。。。
打开tools/train.py文件修改第三百行,指定cfg.TRAIN.RESUME的路径,即可加载之前一半的模型。

在这里插入图片描述

评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值