MDNet代码链接:py-MDNet
云GPU:featurize
- 对于源代码有两个结果一个是在VOT2013-2015数据集上训练的结果一个是在imagenet-VID上训练的结果
- 先在VOT2013-2015进行训练,数据集下载地址可以参考这个博客(27条消息) 常见目标跟踪数据集下载链接整理(更新中)_laizi_laizi的博客-CSDN博客_目标跟踪数据集下载
- 根据readme保存下载的数据集,因为我在云服务器上跑的(云服务器选择的是featurize这个平台,相对比较平价好用,显卡选用的是RTX 3060)所以数据集的存放地址和readme里面的不一样,在运行代码时需要对一些路径进行修改,改成自己的路径就可以
- 修改prepro_vot.py的路径,其他文件的路径也需要进行相应的修改
#seq_home = 'datasets/VOT' seq_home='/home/featurize/data' seqlist_path = '/home/featurize/work/py-MDNet-master/datasets/list/vot-otb.txt' output_path = '/home/featurize/work/py-MDNet-master/pretrain/data/vot-otb.pkl'
- 然后运行prepro_vot.py文件
运行中出现的问题
出现这个问题的主要原因是vot2015的数据集的图片存放在color目录下,所以需要对代码进行修改
gt = np.loadtxt(os.path.join(seq_home, seq, 'groundtruth.txt'), delimiter=',')
if seq[0:7] == 'vot2015':
seq = seq + '/color'
img_list = sorted([p for p in os.listdir(os.path.join(seq_home, seq)) if os.path.splitext(p)[1] == '.jpg'])
else:
img_list = sorted([p for p in os.listdir(os.path.join(seq_home, seq)) if os.path.splitext(p)[1] == '.jpg'])
成功运行prepro_vot.py后生成vot-otb.pkl文件
-
运行train_mdnet.py文件
对main中的函数进行修改如下,将默认数据集修改为vot
#parser.add_argument('-d', '--dataset', default='imagenet', help='training dataset {vot, imagenet}')
parser.add_argument('-d', '--dataset', default='vot', help='training dataset {vot, imagenet}')
出现下面的错误
解决办法可以参考博客:解决“ImportError: cannot import name ‘imresize’”_越野者的博客-CSDN博客
修改如下:
from PIL import Image import numpy as np #scaled = imresize(cropped, (img_size, img_size)) scaled = np.array(Image.fromarray(cropped).resize((img_size, img_size)))
这里的路径也要进行修改
#opts = yaml.safe_load(open('pretrain/options_{}.yaml'.format(args.dataset), 'r'))
opts = yaml.safe_load(open('/home/featurize/work/Myproject/MDNet/pretrain/options_{}.yaml'.format(args.dataset), 'r'))
potions_vot.yaml中的路径也要进行修改
# data path data_path: "/home/featurize/work/Myproject/MDNet/pretrain/data/vot-otb.pkl" # model path init_model_path: "/home/featurize/work/model_mdnet/imagenet-vgg-m.mat" model_path: "/home/featurize/work/Myproject/MDNet/models/mdnet_vot-otb.pth"
运行结束后:得到model:mdnet_vot-otb.pth
运行run_tracker.py文件
然后运行报如下错误
修改model.py文件
if run:
x = module(x)
if name == 'conv3':
#x = x.view(x.size(0), -1)
x = x.contiguous().view(x.size(0), -1)
if name == out_layer:
return x
本文仅是自己的运行记录,欢迎批评指正!!



