ATOM代码运行(三) ---Train

关于ATOM代码Tracking查看以下博客
ATOM代码运行(一)–Tracking
ATOM代码运行(二)–Tracking
现在看一下训练部分:pytracking /ltr/

大体浏览以下训练模块中包含的一些子模块的功能:
actors: 将输入数据送入网络计算相应的损失
admin: 包括加载网络,tensorboard功能,也包含了环境设置
dataset: 一些训练数据集的集合,例如:TrackingNet,GOT-10k,LaSOT,ImageNet-VID和COCO
data_specs: 用于不同数据集训练集合验证集的分段
data: 处理数据,例如,加载图片,数据增强,从视频中随机挑选帧
external: 对于训练所需要的外部库,PreciseRoIPooling
models: 包含了不同层和网络定义
trainers: 训练的主要的类
train-settings:设置文件, 就如论文所讲的使用LaSOT和TrackingNet数据集并用COCO 数据集增强来进行网络训练

在第一个博客中运行的安装脚本:bash install.sh conda_install_path pytracking会自动生成本地配置文件“admin/local.py”(用于训练),“evaluation/local.py”(用于测试),如果那个local.py文件没有生成,可以运行admin.environment.create_default_local_file()来生成它,然后在这里设置你需要训练的数据集的路径和你保存模型的路径,代码中设定的是论文所讲的使用LaSOT和TrackingNet数据集并用COCO 数据集增强来进行网络训练,可是你恰好没有这两个数据集或者不想用这两个数据集训练怎么办呢?修改代码atom_default.py,瞅了一眼,需要修改的地方还挺多,被迫选择把没有的数据集注释掉,然后就有一系列问题,主要那时候注释不干净
ATOM代码运行(三) ---Train_第1张图片
在环境和其他依赖都设置好的情况下,可以使用以下开始训练了
conda activate pytracking
cd ltr/
python run_trainning.py train_module train_name
这里有两个参数:
train_module:是train_settings里面的子模块,如bbreg
ATOM代码运行(三) ---Train_第2张图片
train_name:是用于训练atom默认的设置文件名字,atom_default,可以看上图
eg: python run_training.py bbreg atom_default
如果找不到数据集的路径会报一下错:ATOM代码运行(三) ---Train_第3张图片
总之修改后一堆报错,先放着,下载好数据集或者有其他方法再来更新吧!!!
ATOM代码运行(三) ---Train_第4张图片
************************************************ 更新 ************************************************
以上原因 就像师兄说的原因 没有去干净 不看代码你根本不知道哪块和哪块有千丝万缕的关系
最主要的在ltr/train_settings/bbreg/atom_default.py,这里包含了整个过程,当然运行的时候 是 run_training.py,在这里会调用上面这个代码。最后还是弄来了所有的数据集进行训练,训练情况如下;
ATOM代码运行(三) ---Train_第5张图片
ATOM代码运行(三) ---Train_第6张图片

ATOM代码运行(三) ---Train_第7张图片
ATOM代码运行(三) ---Train_第8张图片
ATOM代码运行(三) ---Train_第9张图片
ATOM代码运行(三) ---Train_第10张图片
训练的时候加载的data:
在这里插入图片描述
先经过samper.py得到以下:
ATOM代码运行(三) ---Train_第11张图片
接着经过processsing.py得到第一张data图

那proposals是怎么得到呢?看图:
ATOM代码运行(三) ---Train_第12张图片
这个函数调用processing_utils.py中的perturb_box()方法:
ATOM代码运行(三) ---Train_第13张图片
在这里也计算了iou,最后map to [-1,1] gt_iou = gt_iou * 2 - 1
************************************************ 更新 ************************************************
补充一下COCO数据集:
在这里插入图片描述
ATOM代码运行(三) ---Train_第14张图片
ATOM代码运行(三) ---Train_第15张图片
ATOM代码运行(三) ---Train_第16张图片
ATOM代码运行(三) ---Train_第17张图片

from pycocotools.coco  import COCO
self.img_pth=os.path.join(root,'images/train2017/')
self.anno_path=os.path.join(root,'annotations/instances_train2017.json')
self.coco_set=COCO(self.anno_path)
dataset=json.load(open(annotation_file,'r'))

加载external ,得到local.py,更改coco数据集,如上

你可能感兴趣的:(代码运行)